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