陳 卓,李 倩,杜軍威
(青島科技大學(xué)信息科學(xué)技術(shù)學(xué)院,山東 青島 266061)
近些年來(lái),隨著互聯(lián)網(wǎng)的普及和知識(shí)爆炸性的增長(zhǎng),社區(qū)問(wèn)答網(wǎng)站積累了大量的用戶和內(nèi)容,同時(shí)也產(chǎn)生了大量的低質(zhì)量文本,極大地影響了用戶檢索滿意答案的效率,因此,如何提升答案質(zhì)量預(yù)測(cè)的性能變得尤為重要.對(duì)于問(wèn)答社區(qū)平臺(tái)來(lái)說(shuō),要盡可能地向用戶展現(xiàn)高質(zhì)量的答案,以此提高用戶的瀏覽體驗(yàn),同時(shí)促進(jìn)優(yōu)質(zhì)內(nèi)容的傳播[1].對(duì)用戶來(lái)說(shuō),有影響力的用戶給出的答案具有較高的可信度和可靠性[2].為此,需要根據(jù)高質(zhì)量答案的共有特征以及給出該答案的用戶特征,設(shè)計(jì)高效的高質(zhì)量答案識(shí)別方法,推動(dòng)社區(qū)發(fā)展并加快知識(shí)傳播,減少知識(shí)獲取成本[3].
日常生活中,化工無(wú)處不在.人們每天的吃穿住行都離不開(kāi)化工,但是目前針對(duì)化工問(wèn)答社區(qū)的研究甚少,本文以海川化工論壇為例,海川化工技術(shù)論壇(bbs.hcbbs.com)日均訪客10萬(wàn)人,擁有400萬(wàn)人注冊(cè)會(huì)員,這是一個(gè)很好的對(duì)化工領(lǐng)域的科研人員進(jìn)行專業(yè)知識(shí)交流的平臺(tái).海川化工論壇已成為國(guó)內(nèi)最有人氣的化工領(lǐng)域問(wèn)答及社交網(wǎng)站.目前將社區(qū)問(wèn)答系統(tǒng)答案質(zhì)量預(yù)測(cè)問(wèn)題看作是一個(gè)分類問(wèn)題.傳統(tǒng)的分類方法通常是基于機(jī)器學(xué)習(xí)的支持向量機(jī)、邏輯斯蒂回歸、隨機(jī)森林,但是支持向量機(jī)對(duì)核函數(shù)以及參數(shù)敏感;邏輯斯蒂回歸容易欠擬合,分類精度不高;隨機(jī)森林在噪聲較大的分類問(wèn)題上會(huì)過(guò)擬合[4].近年來(lái),深度學(xué)習(xí)受到廣泛關(guān)注.但是深度學(xué)習(xí)模型訓(xùn)練時(shí)間較長(zhǎng),需要的樣本數(shù)據(jù)量較大,容易出現(xiàn)冗余的現(xiàn)象,另外社區(qū)問(wèn)答系統(tǒng)中可能存在相關(guān)的用戶特征缺失現(xiàn)象,本文提出在提取出有效的文本特征和用戶特征的基礎(chǔ)上,使用FM算法來(lái)實(shí)現(xiàn)對(duì)高質(zhì)量答案的預(yù)測(cè).
圖1 總體算法流程
本文對(duì)從海川化工論壇爬取的數(shù)據(jù)進(jìn)行數(shù)據(jù)預(yù)處理,提取答案的文本特征(比如漢字個(gè)數(shù)、平均句長(zhǎng)等)和用戶特征(基于網(wǎng)絡(luò)表示學(xué)習(xí)的用戶特征),將文本特征和用戶特征轉(zhuǎn)化為向量拼接到一起,隨機(jī)選取一部分通過(guò)FM(因子分解機(jī))算法進(jìn)行訓(xùn)練,另一部分進(jìn)行測(cè)試,測(cè)試集所得到的結(jié)果即最終的答案質(zhì)量預(yù)測(cè)結(jié)果.整體算法流程如圖1所示.
本文的研究目標(biāo)是對(duì)于爬取的海川化工數(shù)據(jù)集,通過(guò)模型訓(xùn)練預(yù)測(cè)答案質(zhì)量.問(wèn)題定義:給定數(shù)據(jù)集(問(wèn)題,答案,用戶名,……),通過(guò)分析答案特征、用戶特征,并將其轉(zhuǎn)化為向量,輸入到模型進(jìn)行訓(xùn)練,優(yōu)化,得出答案質(zhì)量預(yù)測(cè)結(jié)果.
由于社區(qū)問(wèn)答的用戶比較復(fù)雜,數(shù)據(jù)量比較龐大,那么在給定數(shù)據(jù)集的情況下,要著重分析用戶給定的答案有什么特征,用戶怎么表示,本文對(duì)答案文本提取了一些有效的特征,用戶使用網(wǎng)絡(luò)表示學(xué)習(xí)的方式來(lái)體現(xiàn),但是這些特征之間都是獨(dú)立的,要考慮特征之間的交互作用,于是使用了FM算法,它能夠更好地挖掘特征之間的相關(guān)性,尤其在稀疏條件下.
本文將這些特征分成了兩個(gè)維度:答案的文本特征和用戶特征.文本特征是指直接統(tǒng)計(jì)得出的特征數(shù)據(jù),例如文本長(zhǎng)度、標(biāo)點(diǎn)符號(hào)個(gè)數(shù)、平均句長(zhǎng)等;用戶特征即用戶在海川化工論壇中回答問(wèn)題的影響力.
首先,文本特征包括如下方面:
漢字個(gè)數(shù)[5]:只計(jì)算答案文本中文字的個(gè)數(shù).該特征反應(yīng)的是用戶對(duì)答案最直觀的感受.
平均句長(zhǎng)[6]:每出現(xiàn)一個(gè)標(biāo)點(diǎn)符號(hào)算是一句,計(jì)算每一個(gè)句子的文本長(zhǎng)度,對(duì)所有計(jì)算的句子的文本長(zhǎng)度計(jì)算均值,即平均句長(zhǎng)等于每個(gè)句子的文本長(zhǎng)度求和除以句子個(gè)數(shù).
標(biāo)點(diǎn)符號(hào)個(gè)數(shù)[7]:答案文本中標(biāo)點(diǎn)符號(hào)的個(gè)數(shù).
詞語(yǔ)占比[8]:將答案文本分詞過(guò)后,將一些類似于“是”“的”“嗎”等的詞刪掉,剩下的就是詞語(yǔ),計(jì)算詞語(yǔ)的個(gè)數(shù).詞語(yǔ)占比等于詞語(yǔ)的個(gè)數(shù)除以文本長(zhǎng)度.
答賞人數(shù):是指在一個(gè)帖子當(dāng)中對(duì)回帖的人給財(cái)富人的數(shù)量.
財(cái)富:是一種論壇存在的虛擬積分值,主要用于論壇的賬號(hào)升級(jí),只能通過(guò)參與論壇互動(dòng)獲取.在論壇無(wú)論是升級(jí)、下載附件(1財(cái)富/線程/次消耗)、懸賞、發(fā)起各種活動(dòng),都離不開(kāi)“財(cái)富”這個(gè)基礎(chǔ)分值.
魅力值:本文提取的魅力值僅僅是每個(gè)人積極回復(fù)別人的求助(版主給評(píng)分)得到的,如果版主認(rèn)為所提供的答案對(duì)人們幫助很大或很清晰全面,那么得到的魅力值越多.
DeepWalk網(wǎng)絡(luò)表示學(xué)習(xí)是基于神經(jīng)網(wǎng)絡(luò)的算法通過(guò)對(duì)網(wǎng)絡(luò)結(jié)構(gòu)的深入學(xué)習(xí),具有相似網(wǎng)絡(luò)結(jié)構(gòu)的節(jié)點(diǎn),具有相似的網(wǎng)絡(luò)表示向量.文獻(xiàn)[9]從數(shù)學(xué)角度證明了DeepWalk方法等同于分解一個(gè)目標(biāo)矩陣G,具有較高的時(shí)間復(fù)雜度,但算法精度受限于分解算法的效率[10].基于矩陣分解的DeepWalk表示學(xué)習(xí)算法可避免網(wǎng)絡(luò)中隨機(jī)游走和進(jìn)行神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)和訓(xùn)練的過(guò)程,采用高效地矩陣分解方法對(duì)目標(biāo)矩陣G進(jìn)行分解.該方法能延續(xù)DeepWalk的優(yōu)點(diǎn),同時(shí)滿足了從鄰接矩陣直接轉(zhuǎn)換為網(wǎng)絡(luò)表示形式的需求.
網(wǎng)絡(luò)表示學(xué)習(xí)基本結(jié)構(gòu)如圖2所示,本文構(gòu)造一個(gè)用戶網(wǎng)絡(luò),即提問(wèn)者-回答者網(wǎng)絡(luò).其目的是將用戶網(wǎng)絡(luò)映射成向量矩陣.首先根據(jù)被答賞次數(shù)(獲得財(cái)富的次數(shù))將用戶分為兩類,對(duì)被答賞次數(shù)求均值,如被答賞次數(shù)大于均值,該用戶記為1,否則記為0.所有用戶為2 088個(gè),即初始矩陣G為m×n維,即2 088×2 088維.本文中用戶網(wǎng)絡(luò)為有向圖,如回答者b回答了提問(wèn)者a的問(wèn)題,那么提問(wèn)題者a指向回答者b,反向則沒(méi)有.如果回答者b回答了提問(wèn)題者a的問(wèn)題1次,那么初始矩陣G中(a,b)位置為1;如果回答2次,則(a,b)為2.由此可知,該初始矩陣G為非對(duì)稱矩陣.分解出的矩陣U是本文的最終用戶矩陣.對(duì)于圖S(U,E),U是用戶集合,E是連接提問(wèn)者與回答者之間的邊集合.一般來(lái)說(shuō),|U|=|E|.對(duì)每一個(gè)用戶u∈U,將其映射成一個(gè)k維向量rv∈Rk,k?|V|,對(duì)每一個(gè)邊e∈E,將其映射成一個(gè)k維向量ev∈Rk,k?|V|.設(shè)U=Rk×|V|,V=Rk×|E|,G是圖的鄰接矩陣.基本矩陣分解是最基礎(chǔ)的分解方法,將目標(biāo)矩陣G分解為矩陣U和V,通過(guò)不斷的迭代訓(xùn)練使得U和V的乘積越來(lái)越接近真實(shí)矩陣,預(yù)測(cè)值接近真實(shí)值就是使其差最小,目標(biāo)函數(shù)為
(1)
為了防止過(guò)擬合,本文加了L2正則項(xiàng),其中λ取0.1.
圖2 網(wǎng)絡(luò)表示學(xué)習(xí)基本結(jié)構(gòu)
對(duì)U,V采用梯度下降的方法進(jìn)行多次迭代更新,收斂時(shí)就是分解出來(lái)的矩陣:
(2)
(3)
其中η是學(xué)習(xí)率,本文中學(xué)習(xí)率取0.005,迭代次數(shù)為80.
因子分解機(jī)(Factorization Machines,簡(jiǎn)稱FM)是通過(guò)兩兩特征組合,將特征與特征之間的關(guān)聯(lián)聯(lián)系起來(lái),構(gòu)建交叉項(xiàng)特征以此來(lái)提高模型的效果[11].假設(shè)一個(gè)預(yù)測(cè)問(wèn)題的訓(xùn)練數(shù)據(jù)D=(X,y),其中,X∈Rn×p表示當(dāng)前數(shù)據(jù)集D有n個(gè)實(shí)例,每個(gè)實(shí)例由一個(gè)維度為p的稀疏向量組成,y∈Rn則表示n個(gè)實(shí)例對(duì)應(yīng)的真實(shí)標(biāo)簽,(Xi,yi)表示第i個(gè)實(shí)例Xi對(duì)應(yīng)標(biāo)簽為yi[12].
FM能夠?qū)斎霐?shù)據(jù)集D=(X,y)不同特征間的交互進(jìn)行分解建模,其d階交互模型公式為
(4)
分類問(wèn)題的損失函數(shù)
(5)
其中σ表示的是階躍函數(shù)sigmoid,
(6)
所以分類問(wèn)題的損失函數(shù)對(duì)權(quán)值的梯度(導(dǎo)數(shù))為
(7)
本文從海川化工論壇中爬取了幾百萬(wàn)個(gè)問(wèn)答對(duì),通過(guò)對(duì)這些問(wèn)答對(duì)進(jìn)行隨機(jī)數(shù)據(jù)抽取、數(shù)據(jù)清洗、預(yù)處理后保留了7 000多個(gè)問(wèn)答對(duì),其中包括1 400多個(gè)話題和7 000多個(gè)回答.邀請(qǐng)具有海川化工論壇使用經(jīng)驗(yàn)的人作為標(biāo)注人,首先對(duì)標(biāo)注人進(jìn)行培訓(xùn),使其形成一致的評(píng)價(jià)標(biāo)準(zhǔn),然后對(duì)答案進(jìn)行試標(biāo)注,對(duì)比標(biāo)注的差異,進(jìn)行學(xué)習(xí)改進(jìn),最后對(duì)答案進(jìn)行標(biāo)注,得到帶標(biāo)簽的訓(xùn)練數(shù)據(jù)集,把這些數(shù)據(jù)集的答案分別打上標(biāo)簽為1,2,3,標(biāo)簽1表示答案部分正確,但回答不完整;標(biāo)簽2表示答案回答正確且較全面,優(yōu)先推薦;標(biāo)簽3表示答案不正確.表1列出了爬取的初始數(shù)據(jù)中部分比較重要的數(shù)據(jù).表2是預(yù)處理過(guò)的數(shù)據(jù).
表1 初始數(shù)據(jù)
表2 預(yù)處理過(guò)的數(shù)據(jù)
4.2.1 文本特征分析
為了確保本文提取的特征對(duì)答案的選擇是有影響的,本文對(duì)從數(shù)據(jù)集中提取的特征進(jìn)行了一個(gè)P值、均值和標(biāo)準(zhǔn)差的計(jì)算.P值是一種概率,一種在原假設(shè)為真的前提下出現(xiàn)觀察樣本以及更極端情況的概率.統(tǒng)計(jì)學(xué)根據(jù)顯著性檢驗(yàn)方法所得到的P值,大部分情況假設(shè)錯(cuò)誤拒絕H0的概率為0.05,所以如果P值小于0.05,說(shuō)明錯(cuò)誤拒絕H0的概率很低,則有理由相信H0本身就是錯(cuò)誤的,而非檢驗(yàn)錯(cuò)誤導(dǎo)致.一般以P<0.05為顯著.P<0.01為非常顯著,當(dāng)P值小于0.05時(shí),這個(gè)獨(dú)立變量很重要,因?yàn)檫@它變量與輸出結(jié)果有關(guān).
表3 標(biāo)簽為1,2,3下的各個(gè)特征的均值、標(biāo)準(zhǔn)差、P值
由表3可看出標(biāo)簽2的漢字個(gè)數(shù)、平均句長(zhǎng)、標(biāo)點(diǎn)符號(hào)、答賞人數(shù)、總財(cái)富和總魅力遠(yuǎn)遠(yuǎn)高于標(biāo)簽1和標(biāo)簽3.
4.2.2 用戶特征分析
根據(jù)上面的分析,本文的用戶特征向量是通過(guò)矩陣分解得到的.將初始矩陣G分解為U和V,分解出的矩陣U是本文的最終用戶矩陣.要想得到最優(yōu)的矩陣U,需要通過(guò)調(diào)整參數(shù)來(lái)實(shí)現(xiàn),矩陣分解涉及的主要參數(shù)是學(xué)習(xí)率、迭代次數(shù)以及隱向量k(見(jiàn)圖3).
圖3 不同參數(shù)下的準(zhǔn)確率分布
圖3(a)表示在迭代次數(shù)為80,k為128時(shí)不同學(xué)習(xí)率下的準(zhǔn)確率分布,該準(zhǔn)確率表示矩陣分解的U,V和初始矩陣G的準(zhǔn)確度.由圖3(a)得出,在學(xué)習(xí)率為0.005時(shí)準(zhǔn)確率最高.圖3(b)表示在學(xué)習(xí)率為0.005,k為128時(shí)不同迭代次數(shù)的準(zhǔn)確率分布,可得出迭代次數(shù)為80時(shí)準(zhǔn)確率最高.圖3(c)表示在學(xué)習(xí)率為0.005,迭代次數(shù)為80時(shí)不同k值下的準(zhǔn)確率,可得出k為128時(shí)準(zhǔn)確率最高.因此,學(xué)習(xí)率取0.005,迭代次數(shù)取80,k取128.
表4 不同特征數(shù)量下所表示的特征
本文將所提取的答案文本特征和用戶特征轉(zhuǎn)化為向量并歸一化后,在FM模型中進(jìn)行預(yù)測(cè),輸出的結(jié)果即為預(yù)測(cè)的標(biāo)簽結(jié)果.本文將數(shù)據(jù)集分為訓(xùn)練集和測(cè)試集,測(cè)試集從其中隨機(jī)挑選了1 000個(gè),訓(xùn)練集為6 000多個(gè),為了評(píng)價(jià)模型的預(yù)測(cè)結(jié)果,本文采用準(zhǔn)確率作為衡量指標(biāo).目前,針對(duì)FM模型的優(yōu)化有3種優(yōu)化學(xué)習(xí)算法,分別是隨機(jī)梯度下降法(SGD)、交替最小二乘法(ALS)、馬爾可夫蒙特卡洛法(MCMC).為了證明本文提取的文本特征向量是否都對(duì)最終的預(yù)測(cè)結(jié)果有積極的影響,首先針對(duì)文本向量進(jìn)行分組實(shí)驗(yàn),如表4所示.
圖4表示在分解機(jī)維度為1.1.10,迭代次數(shù)為100,學(xué)習(xí)率為0.01,優(yōu)化方法為SGD時(shí)的不同文本特征下的準(zhǔn)確率,可看出當(dāng)特征數(shù)量為4時(shí),準(zhǔn)確率更高;圖5表示在文本特征為5,迭代次數(shù)為100,學(xué)習(xí)率為0.01,優(yōu)化方法為SGD時(shí)的不同分解機(jī)維度下的準(zhǔn)確率,由圖5可知分解機(jī)維度的改變對(duì)準(zhǔn)確率沒(méi)有影響.因此,后續(xù)實(shí)驗(yàn)將采用這4個(gè)特征,分解機(jī)維度取1.1.10.
圖4 不同文本特征下的準(zhǔn)確率
圖5 不同分解機(jī)維度下的準(zhǔn)確率
圖6是在分解機(jī)維度為1.1.10,學(xué)習(xí)率為0.01,優(yōu)化方法為SGD的情況下不同迭代次數(shù)對(duì)應(yīng)的準(zhǔn)確率;圖7是在分解機(jī)維度為1.1.10,迭代次數(shù)為100,優(yōu)化方法為SGD的情況下不同學(xué)習(xí)率對(duì)應(yīng)的準(zhǔn)確率.由圖6和7可知,在迭代次數(shù)為100,學(xué)習(xí)率為0.01的情況下準(zhǔn)確率最高.前面的實(shí)驗(yàn)都是只針對(duì)文本特征向量,后面則是將文本特征向量和用戶向量加起來(lái)的實(shí)驗(yàn).
圖6 不同迭代次數(shù)下的準(zhǔn)確率
圖7 不同學(xué)習(xí)率下的準(zhǔn)確率
圖8表示在學(xué)習(xí)率為0.01,分解機(jī)維度為1.1.10,迭代次數(shù)為100的參數(shù)條件下,將文本向量和用戶向量結(jié)合起來(lái)的SGD、MCMC、ALS 3種優(yōu)化方法的準(zhǔn)確率分布.由圖8可知,使用隨即梯度下降(SGD)優(yōu)化方法所得的準(zhǔn)確率最高.并且結(jié)合前面的實(shí)驗(yàn)發(fā)現(xiàn),將用戶向量加上之后,準(zhǔn)確率提高到了98.8%.本文隨機(jī)選取了2組和3組測(cè)試集,與第1組作比較,發(fā)現(xiàn)準(zhǔn)確率最高的是第1組,為98.8%(見(jiàn)圖9).
圖8 不同優(yōu)化方法下的準(zhǔn)確率
圖9 不同組下的準(zhǔn)確率
4.4.1 實(shí)驗(yàn)環(huán)境
實(shí)驗(yàn)環(huán)境見(jiàn)表5.
表5 實(shí)驗(yàn)環(huán)境設(shè)置
4.4.2 不同分類模型
模型1:word2vec+Bi-LSTM+Attention答案質(zhì)量預(yù)測(cè)模型.
首先對(duì)海川化工論壇數(shù)據(jù)進(jìn)行預(yù)處理,去除答案文本中的無(wú)關(guān)字符、網(wǎng)址鏈接、重復(fù)項(xiàng),之后利用哈工大LTP分詞工具進(jìn)行分詞操作,使用word2vec模型來(lái)訓(xùn)練詞向量,詞向量的長(zhǎng)度為200,詞向量上下文最大距離(window)為10,采用skip-gram模型,迭代次數(shù)為10,進(jìn)行詞向量訓(xùn)練.將經(jīng)過(guò)預(yù)處理的文本進(jìn)行word2vec分布式詞向量表示,將Bi-LSTM雙向LSTM網(wǎng)絡(luò)的時(shí)序特征輸入Attention層,Attention層先將各時(shí)序特征進(jìn)行加權(quán),將所有時(shí)序特征加權(quán)求和,經(jīng)過(guò)Softmax達(dá)到分類的效果.
模型2:word2vec+Bi-LSTM答案質(zhì)量預(yù)測(cè)模型.
由word2vec構(gòu)建文本向量作為L(zhǎng)STM的初始輸入,訓(xùn)練Bi-LSTM分類模型,自動(dòng)提取特征,進(jìn)行答案質(zhì)量預(yù)測(cè).
4.4.3 實(shí)驗(yàn)結(jié)果
本文實(shí)驗(yàn)?zāi)P筒捎玫姆诸惸P驮u(píng)估指標(biāo)為精確率(P)、召回率(R)及F1值,實(shí)驗(yàn)結(jié)果如表6所示[13].
表6 不同模型下的對(duì)比實(shí)驗(yàn)結(jié)果
由表6可以看出,本文提出的基于FM模型的分類方法相較于其他深度學(xué)習(xí)模型性能明顯提升,深度學(xué)習(xí)模型相對(duì)較差的原因在于沒(méi)有考慮用戶特征向量,不能有效地進(jìn)行特征提取,而本文算法效果更好.
針對(duì)問(wèn)答社區(qū)答案質(zhì)量預(yù)測(cè)問(wèn)題,本文提出一種基于FM模型的分類方法,并將其應(yīng)用到海川化工論壇,通過(guò)構(gòu)建一種新的用戶特征網(wǎng)絡(luò)表示形式并將其與文本特征拼接在一起,發(fā)現(xiàn)比其他深度學(xué)習(xí)模型性能明顯提升.在后續(xù)的工作中,將進(jìn)一步挖掘用戶答案文本,進(jìn)一步深化研究主題,為用戶預(yù)測(cè)更加優(yōu)質(zhì)的答案.