陳 卓,李 倩,杜軍威
(青島科技大學信息科學技術學院,山東 青島 266061)
近些年來,隨著互聯網的普及和知識爆炸性的增長,社區問答網站積累了大量的用戶和內容,同時也產生了大量的低質量文本,極大地影響了用戶檢索滿意答案的效率,因此,如何提升答案質量預測的性能變得尤為重要.對于問答社區平臺來說,要盡可能地向用戶展現高質量的答案,以此提高用戶的瀏覽體驗,同時促進優質內容的傳播[1].對用戶來說,有影響力的用戶給出的答案具有較高的可信度和可靠性[2].為此,需要根據高質量答案的共有特征以及給出該答案的用戶特征,設計高效的高質量答案識別方法,推動社區發展并加快知識傳播,減少知識獲取成本[3].
日常生活中,化工無處不在.人們每天的吃穿住行都離不開化工,但是目前針對化工問答社區的研究甚少,本文以海川化工論壇為例,海川化工技術論壇(bbs.hcbbs.com)日均訪客10萬人,擁有400萬人注冊會員,這是一個很好的對化工領域的科研人員進行專業知識交流的平臺.海川化工論壇已成為國內最有人氣的化工領域問答及社交網站.目前將社區問答系統答案質量預測問題看作是一個分類問題.傳統的分類方法通常是基于機器學習的支持向量機、邏輯斯蒂回歸、隨機森林,但是支持向量機對核函數以及參數敏感;邏輯斯蒂回歸容易欠擬合,分類精度不高;隨機森林在噪聲較大的分類問題上會過擬合[4].近年來,深度學習受到廣泛關注.但是深度學習模型訓練時間較長,需要的樣本數據量較大,容易出現冗余的現象,另外社區問答系統中可能存在相關的用戶特征缺失現象,本文提出在提取出有效的文本特征和用戶特征的基礎上,使用FM算法來實現對高質量答案的預測.

圖1 總體算法流程
本文對從海川化工論壇爬取的數據進行數據預處理,提取答案的文本特征(比如漢字個數、平均句長等)和用戶特征(基于網絡表示學習的用戶特征),將文本特征和用戶特征轉化為向量拼接到一起,隨機選取一部分通過FM(因子分解機)算法進行訓練,另一部分進行測試,測試集所得到的結果即最終的答案質量預測結果.整體算法流程如圖1所示.
本文的研究目標是對于爬取的海川化工數據集,通過模型訓練預測答案質量.問題定義:給定數據集(問題,答案,用戶名,……),通過分析答案特征、用戶特征,并將其轉化為向量,輸入到模型進行訓練,優化,得出答案質量預測結果.
由于社區問答的用戶比較復雜,數據量比較龐大,那么在給定數據集的情況下,要著重分析用戶給定的答案有什么特征,用戶怎么表示,本文對答案文本提取了一些有效的特征,用戶使用網絡表示學習的方式來體現,但是這些特征之間都是獨立的,要考慮特征之間的交互作用,于是使用了FM算法,它能夠更好地挖掘特征之間的相關性,尤其在稀疏條件下.
本文將這些特征分成了兩個維度:答案的文本特征和用戶特征.文本特征是指直接統計得出的特征數據,例如文本長度、標點符號個數、平均句長等;用戶特征即用戶在海川化工論壇中回答問題的影響力.
首先,文本特征包括如下方面:
漢字個數[5]:只計算答案文本中文字的個數.該特征反應的是用戶對答案最直觀的感受.
平均句長[6]:每出現一個標點符號算是一句,計算每一個句子的文本長度,對所有計算的句子的文本長度計算均值,即平均句長等于每個句子的文本長度求和除以句子個數.
標點符號個數[7]:答案文本中標點符號的個數.
詞語占比[8]:將答案文本分詞過后,將一些類似于“是”“的”“嗎”等的詞刪掉,剩下的就是詞語,計算詞語的個數.詞語占比等于詞語的個數除以文本長度.
答賞人數:是指在一個帖子當中對回帖的人給財富人的數量.
財富:是一種論壇存在的虛擬積分值,主要用于論壇的賬號升級,只能通過參與論壇互動獲取.在論壇無論是升級、下載附件(1財富/線程/次消耗)、懸賞、發起各種活動,都離不開“財富”這個基礎分值.
魅力值:本文提取的魅力值僅僅是每個人積極回復別人的求助(版主給評分)得到的,如果版主認為所提供的答案對人們幫助很大或很清晰全面,那么得到的魅力值越多.
DeepWalk網絡表示學習是基于神經網絡的算法通過對網絡結構的深入學習,具有相似網絡結構的節點,具有相似的網絡表示向量.文獻[9]從數學角度證明了DeepWalk方法等同于分解一個目標矩陣G,具有較高的時間復雜度,但算法精度受限于分解算法的效率[10].基于矩陣分解的DeepWalk表示學習算法可避免網絡中隨機游走和進行神經網絡學習和訓練的過程,采用高效地矩陣分解方法對目標矩陣G進行分解.該方法能延續DeepWalk的優點,同時滿足了從鄰接矩陣直接轉換為網絡表示形式的需求.
網絡表示學習基本結構如圖2所示,本文構造一個用戶網絡,即提問者-回答者網絡.其目的是將用戶網絡映射成向量矩陣.首先根據被答賞次數(獲得財富的次數)將用戶分為兩類,對被答賞次數求均值,如被答賞次數大于均值,該用戶記為1,否則記為0.所有用戶為2 088個,即初始矩陣G為m×n維,即2 088×2 088維.本文中用戶網絡為有向圖,如回答者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|.設U=Rk×|V|,V=Rk×|E|,G是圖的鄰接矩陣.基本矩陣分解是最基礎的分解方法,將目標矩陣G分解為矩陣U和V,通過不斷的迭代訓練使得U和V的乘積越來越接近真實矩陣,預測值接近真實值就是使其差最小,目標函數為
(1)
為了防止過擬合,本文加了L2正則項,其中λ取0.1.

圖2 網絡表示學習基本結構
對U,V采用梯度下降的方法進行多次迭代更新,收斂時就是分解出來的矩陣:
(2)
(3)
其中η是學習率,本文中學習率取0.005,迭代次數為80.
因子分解機(Factorization Machines,簡稱FM)是通過兩兩特征組合,將特征與特征之間的關聯聯系起來,構建交叉項特征以此來提高模型的效果[11].假設一個預測問題的訓練數據D=(X,y),其中,X∈Rn×p表示當前數據集D有n個實例,每個實例由一個維度為p的稀疏向量組成,y∈Rn則表示n個實例對應的真實標簽,(Xi,yi)表示第i個實例Xi對應標簽為yi[12].
FM能夠對輸入數據集D=(X,y)不同特征間的交互進行分解建模,其d階交互模型公式為
(4)

分類問題的損失函數
(5)
其中σ表示的是階躍函數sigmoid,
(6)
所以分類問題的損失函數對權值的梯度(導數)為
(7)
本文從海川化工論壇中爬取了幾百萬個問答對,通過對這些問答對進行隨機數據抽取、數據清洗、預處理后保留了7 000多個問答對,其中包括1 400多個話題和7 000多個回答.邀請具有海川化工論壇使用經驗的人作為標注人,首先對標注人進行培訓,使其形成一致的評價標準,然后對答案進行試標注,對比標注的差異,進行學習改進,最后對答案進行標注,得到帶標簽的訓練數據集,把這些數據集的答案分別打上標簽為1,2,3,標簽1表示答案部分正確,但回答不完整;標簽2表示答案回答正確且較全面,優先推薦;標簽3表示答案不正確.表1列出了爬取的初始數據中部分比較重要的數據.表2是預處理過的數據.

表1 初始數據

表2 預處理過的數據
4.2.1 文本特征分析
為了確保本文提取的特征對答案的選擇是有影響的,本文對從數據集中提取的特征進行了一個P值、均值和標準差的計算.P值是一種概率,一種在原假設為真的前提下出現觀察樣本以及更極端情況的概率.統計學根據顯著性檢驗方法所得到的P值,大部分情況假設錯誤拒絕H0的概率為0.05,所以如果P值小于0.05,說明錯誤拒絕H0的概率很低,則有理由相信H0本身就是錯誤的,而非檢驗錯誤導致.一般以P<0.05為顯著.P<0.01為非常顯著,當P值小于0.05時,這個獨立變量很重要,因為這它變量與輸出結果有關.

表3 標簽為1,2,3下的各個特征的均值、標準差、P值
由表3可看出標簽2的漢字個數、平均句長、標點符號、答賞人數、總財富和總魅力遠遠高于標簽1和標簽3.
4.2.2 用戶特征分析
根據上面的分析,本文的用戶特征向量是通過矩陣分解得到的.將初始矩陣G分解為U和V,分解出的矩陣U是本文的最終用戶矩陣.要想得到最優的矩陣U,需要通過調整參數來實現,矩陣分解涉及的主要參數是學習率、迭代次數以及隱向量k(見圖3).

圖3 不同參數下的準確率分布
圖3(a)表示在迭代次數為80,k為128時不同學習率下的準確率分布,該準確率表示矩陣分解的U,V和初始矩陣G的準確度.由圖3(a)得出,在學習率為0.005時準確率最高.圖3(b)表示在學習率為0.005,k為128時不同迭代次數的準確率分布,可得出迭代次數為80時準確率最高.圖3(c)表示在學習率為0.005,迭代次數為80時不同k值下的準確率,可得出k為128時準確率最高.因此,學習率取0.005,迭代次數取80,k取128.

表4 不同特征數量下所表示的特征
本文將所提取的答案文本特征和用戶特征轉化為向量并歸一化后,在FM模型中進行預測,輸出的結果即為預測的標簽結果.本文將數據集分為訓練集和測試集,測試集從其中隨機挑選了1 000個,訓練集為6 000多個,為了評價模型的預測結果,本文采用準確率作為衡量指標.目前,針對FM模型的優化有3種優化學習算法,分別是隨機梯度下降法(SGD)、交替最小二乘法(ALS)、馬爾可夫蒙特卡洛法(MCMC).為了證明本文提取的文本特征向量是否都對最終的預測結果有積極的影響,首先針對文本向量進行分組實驗,如表4所示.
圖4表示在分解機維度為1.1.10,迭代次數為100,學習率為0.01,優化方法為SGD時的不同文本特征下的準確率,可看出當特征數量為4時,準確率更高;圖5表示在文本特征為5,迭代次數為100,學習率為0.01,優化方法為SGD時的不同分解機維度下的準確率,由圖5可知分解機維度的改變對準確率沒有影響.因此,后續實驗將采用這4個特征,分解機維度取1.1.10.

圖4 不同文本特征下的準確率

圖5 不同分解機維度下的準確率
圖6是在分解機維度為1.1.10,學習率為0.01,優化方法為SGD的情況下不同迭代次數對應的準確率;圖7是在分解機維度為1.1.10,迭代次數為100,優化方法為SGD的情況下不同學習率對應的準確率.由圖6和7可知,在迭代次數為100,學習率為0.01的情況下準確率最高.前面的實驗都是只針對文本特征向量,后面則是將文本特征向量和用戶向量加起來的實驗.

圖6 不同迭代次數下的準確率

圖7 不同學習率下的準確率
圖8表示在學習率為0.01,分解機維度為1.1.10,迭代次數為100的參數條件下,將文本向量和用戶向量結合起來的SGD、MCMC、ALS 3種優化方法的準確率分布.由圖8可知,使用隨即梯度下降(SGD)優化方法所得的準確率最高.并且結合前面的實驗發現,將用戶向量加上之后,準確率提高到了98.8%.本文隨機選取了2組和3組測試集,與第1組作比較,發現準確率最高的是第1組,為98.8%(見圖9).

圖8 不同優化方法下的準確率

圖9 不同組下的準確率
4.4.1 實驗環境
實驗環境見表5.

表5 實驗環境設置
4.4.2 不同分類模型
模型1:word2vec+Bi-LSTM+Attention答案質量預測模型.
首先對海川化工論壇數據進行預處理,去除答案文本中的無關字符、網址鏈接、重復項,之后利用哈工大LTP分詞工具進行分詞操作,使用word2vec模型來訓練詞向量,詞向量的長度為200,詞向量上下文最大距離(window)為10,采用skip-gram模型,迭代次數為10,進行詞向量訓練.將經過預處理的文本進行word2vec分布式詞向量表示,將Bi-LSTM雙向LSTM網絡的時序特征輸入Attention層,Attention層先將各時序特征進行加權,將所有時序特征加權求和,經過Softmax達到分類的效果.
模型2:word2vec+Bi-LSTM答案質量預測模型.
由word2vec構建文本向量作為LSTM的初始輸入,訓練Bi-LSTM分類模型,自動提取特征,進行答案質量預測.
4.4.3 實驗結果
本文實驗模型采用的分類模型評估指標為精確率(P)、召回率(R)及F1值,實驗結果如表6所示[13].

表6 不同模型下的對比實驗結果
由表6可以看出,本文提出的基于FM模型的分類方法相較于其他深度學習模型性能明顯提升,深度學習模型相對較差的原因在于沒有考慮用戶特征向量,不能有效地進行特征提取,而本文算法效果更好.
針對問答社區答案質量預測問題,本文提出一種基于FM模型的分類方法,并將其應用到海川化工論壇,通過構建一種新的用戶特征網絡表示形式并將其與文本特征拼接在一起,發現比其他深度學習模型性能明顯提升.在后續的工作中,將進一步挖掘用戶答案文本,進一步深化研究主題,為用戶預測更加優質的答案.