牛耀強,孟昱煜,牛全福
(1.蘭州交通大學 電子與信息工程學院,蘭州 730070; 2.蘭州理工大學 土木工程學院,蘭州 730050)
隨著社交網絡技術的快速發展和廣泛使用,移動端設備日益普及,在線問答系統如知乎等也得到了快速發展,已成為人們日常生活中不可缺少的一部分。在知識問答系統中存在大量的數據信息,如問題信息、答案信息、用戶信息等。同時,在用戶與知識問答系統交互的過程中,會產生大量的行為數據,如用戶搜索過的問題、用戶查看過的文本、用戶評論過的文章、用戶贊同的文章、用戶的收藏文章、用戶評論過的文章以及用戶關注的作者等。這些異質數據中蘊含著豐富的價值,對實體建模和信息挖掘有著重要的影響。但隨著問答系統中異質數據的不斷增多,用戶畫像和精準推薦已經愈發具有挑戰性。
傳統的文本推薦方法主要分為協同過濾[1-2]、基于內容的推薦[3]和混合型的推薦[4-5]。隨著網絡的飛速發展,交互的應用遍布所有角落,用戶和文本之間的交互關系顯得十分的稀疏,傳統的推薦算法很難得到較好的應用[6-7]。近年來,隨著深度學習在計算機視覺和自然語言處理等領域取得的進展,逐漸展現出其對數據特征進行挖掘和提取的優勢。而特征提取正是推薦系統中的重要環節,特征學習的好壞關乎推薦系統的成敗,因此,業界逐漸開始研究深度學習領域。文獻[8]提出了一種多視角深度神經網絡模型,模型通過分析用戶的瀏覽記錄和搜索記錄提取用戶的特征,從而豐富用戶的特征表示,然后通過用戶和項目兩種信息實體的語義匹配來實現用戶的項目推薦。文獻[9]研究了標簽感知的個性化推薦問題,分別利用用戶的所有標簽和項目的所有標簽學習得到用戶和項目的隱表示,通過計算用戶隱表示和項目隱表示的相似度來產生推薦。對于微博文本推薦,文獻[10]提出了一種基于注意力的卷積神經網絡(Convolutional Neural Network,CNN)模型,將標簽推薦看作一個多分類問題,其模型包括一個全局通道和一個局部注意力通道,用CNN作為特征提取的方法來獲取微博的特征。文獻[11]研究如何利用評論信息來進行文本推薦的問題,提出一個基于注意力的CNN模型,該模型由一個用戶網絡和一個項目網絡組成,各網絡分別采用CNN從用戶的評論信息和項目的評論信息中學習用戶和項目的特征表示。目前由于循環神經網絡(Recurrent Neural Network,RNN)在處理序列問題的優勢,被廣泛地應用到文本推薦任務中。文獻[12]提出一種基于注意力的長短時記憶(Long-Short Term Memory,LSTM)模型進行微博標簽推薦,該模型將注意力機制與RNN結合,其優勢是既能抓住文本的序列特征,同時又能從微博中識別出最具有信息量的詞。文獻[13]提出基于注意力的記憶網絡來進行微博的提示推薦,考慮到微博文本長度通常較短,且存在詞稀疏和詞同義等問題,僅僅使用語言模型(如詞嵌入模型)獲得的推薦效果通常非常有限,因此,利用學習用戶的歷史微博記錄得出的特征來建模用戶的興趣,提升了推薦的準確性。這些推薦方法研究的重點從單一因素轉向充分利用大量異質數據和關系網絡,主要對用戶的長期興趣作出建議,而一些關于文本的心理學和社會學表明,用戶在特定時期的需求往往受到其當時所處狀態的影響。例如,當用戶在現實生活中遇到不同的問題時,他們在知識問答系統中關注的話題也會發生變化。
為滿足用戶的這種需求,文獻[14]提出了短期推薦的重要性。在歌曲推薦領域,文獻[15]從移動設備上收集用戶的短期信息,構建一個將用戶短期信息和歌曲內容相結合的概率模型,用于滿足用戶的短期需求。文獻[16-17]使用類似word2vec[18-19]的方法嵌入歌曲,進行短期文本推薦。文獻[20]考慮了用戶在臨時會話中花費在項目上的總時間。用戶與項目交互的時間越長,用戶的偏好就越強。他們使用2個帶注意機制的門控循環單元(Gated Recurrent Unit,GRU),從用戶行為數據模擬用戶總體偏好和主要目的,然后整合2個向量的結果,計算其與候選向量的相似性,得出推薦結果。文獻[21]提出一種分層RNN模型,該模型利用用戶的歷史信息來建模用戶的個人偏好變化,為用戶提供個性化的短期推薦。這些研究在短期推薦方面取得了一定的進展,但大部分模型使用同質數據得到用戶的特征表示,且使用詞袋模型作為推薦模型的輸入,這種方法丟失了句子的序列信息,對用戶特征提取并不完整,在訓練過程中維數災難和訓練復雜度過高的缺點仍然明顯。
本文通過融合文本數據(知乎話題文本、答案文本和用戶信息文本)和關系網絡這2種異質數據,提出基于異質注意力的循環神經網絡模型。使用句子級的分布記憶模型(PV-DM)[22]和TransR[23]將文本和關系嵌入到維度相同的高維向量作為模型的輸入,以降低訓練的復雜度。受機器翻譯[24]的啟發,將編碼器-解碼器框架引入模型中,在編碼階段,將用戶在短期內的興趣引入推薦模型中,經注意力層與解碼器相連接,使解碼器能動態地選擇并線性組合編碼器輸入序列的不同部分,以建模用戶在短期內的偏好。
RNN[25]的網絡結構如圖1所示。

圖1 RNN結構Fig.1 RNN structure
給定一個輸入序列x=(x1,x2,…,xT),RNN通過迭代公式:
ht=σ(Uxt+Wht-1+bh)
(1)
yt=Vht+bo
(2)
計算t時刻隱層向量序列h=(h1,h2,…,hT)和輸出向量序列y=(y1,y2,…,yT)。其中,U為輸入層到隱層的權重矩陣,W為隱層之間的權重矩陣,bh為隱層偏置向量,σ為隱層激活函數,常用的為Sigmoid函數,V為隱層到輸出層的權重矩陣,bo為輸出層偏置向量。
RNN在模型化序列問題時具有優勢,然而隨著隱藏層的增加,普通循環神經網絡模型也會帶來梯度消散的問題。因此,文獻[26]提出了一種循環神經網絡的變體,即長短時記憶模型(LSTM)。LSTM單元會以不受控制的方式在每個單位步長內重寫自己的記憶,而且 LSTM 有專門的學習機制能夠在保持先前狀態的同時,記憶當前輸入數據的特征。LSTM 神經網絡模型包含輸入門、遺忘門和輸出門3個門。GRU神經網絡是LSTM的變體,相比于 LSTM,GRU只有重置門和更新門。LSTM單元和GRU單元對比如圖2所示。

圖2 LSTM 單元與 GRU 單元對比Fig.2 Comparison of LSTM unit and GRU unit
與LSTM相比,GRU神經網絡的參數更少,不容易產生過擬合,且在訓練過程中需要的迭代次數更少,收斂時間更短。GRU的計算步驟如下:
1)計算重置門rt與更新門zt,計算公式如下:
rt=σ(Wxrxt+Whrht-1)
(3)
zt=σ(Wxzxt+Whzht-1)
(4)
其中,xt為t時刻輸入層的輸入,ht-1為t-1時刻GRU單元的輸出,W是連接權重矩陣,σ為Sigmoid激活函數。
(5)
3)計算GRU單元狀態及輸出ht,計算公式如下:
(6)
傳統RNN存在的不足是它僅能夠利用正向序列中當前時刻之前的內容。而在文本情感分析中,從反向序列而來的當前時刻之后的內容對人物情感的判斷也具有十分重要的作用。因此,如果同時訓練2個GRU神經網絡,一個采用正向序列學習,另一個采用反向序列學習,將正向和反向的最后一個狀態對應的向量連接后得到的向量作為最后的結果,這樣來自于序列過去和未來的互補信息就可以整合到一起用于推理人物情感。雙向RNN[27]用2個獨立的隱層分別從正向和反向2個方向來處理數據,以達到上述目的。本文使用的雙向GRU神經網絡模型結構如圖3所示,可以從正向和反向2個方向來處理文本信息。

圖3 雙向GRU神經網絡結構Fig.3 Structure of bidirectional GRU neural network
在線問答平臺包含大量的實體,這些實體相互連接形成一個巨大的關系網絡,如作者和文本、文本和讀者用戶以及作者和讀者用戶之間的關系。另外,在閱讀的過程中,用戶會通過關注作者、評論文本或者標記他們喜歡的文本來生成大量的交互式數據。傳統的嵌入方法很難從關系數據中提取到較多的有用信息。受知識圖譜的啟發,本文使用TransR方法對關系網絡中的實體和關系進行向量化。對于關系嵌入,一般方法是通過將關系視為從頭實體到尾實體的轉換來構建實體和關系嵌入,即這些模型簡單地將實體和關系放在同一語義空間中,然而在現實生活中,由于各個實體所處關系的不同,這種方法顯然并不合理。TransR將實體和關系映射到多個不同實體空間和關系空間,并在相應的關系空間中進行轉換,如圖4所示。

圖4 TransR方法示意圖Fig.4 Schematic diagram of TransR method

實體的投影向量為:
hr=hMr,tr=tMr
(7)
得分函數為:
(8)
通過最小化上面的得分函數,可以得到網絡中實體和關系的向量表示,為提高嵌入的泛化能力,需要對嵌入實體、嵌入關系和映射矩陣大小進行限制,其中,‖h‖2≤1,‖r‖2≤1,‖t‖2≤1,‖hMr‖2≤1,‖tMr‖2≤1。
在知識問答系統中,有許多文本描述數據,如問題描述文本、答案內容文本和用戶信息文本等,這些數據對實體建模有著重要的影響。類似于word2vec,PV-DM通過對句向量和詞向量的平均或連接來預測上下文中下一個單詞的概率,在本文實驗中,使用串聯的方法來組合這兩個向量。如圖5所示,每個段落都映射到一個唯一的向量,由矩陣D中的一列表示,每個單詞也映射到一個唯一的向量,由矩陣W中的一列表示。具體來說,假設語料庫中共有N個句子和M個詞,每一段映射到p維度,每個單詞映射到q維度,那么模型總共有M×p+N×q個參數(不含Softmax參數)。用數學語言描述,即給出了一系列訓練單詞w1,w2,…,wt和一個段落di,詞向量模型的目標是使平均對數概率最大化:

圖5 句向量模型示意圖Fig.5 Schematic diagram of sentence vector model
(9)
預測任務通常由一個多分類器執行,如Softmax,因此,有:
(10)
每一個yi是每個輸出詞i的非標準化對數概率,計算公式為:
y=b+Uh(wt-k,…,wt+k,di;W,D)
(11)
其中,U和b是Softmax參數,h由W中提取的詞向量與D中提取的段落向量串聯或平均構成。與詞向量模型相比,PV-DM通過將段落信息映射到附加的矩陣D中作為段落信息的標記,來表示當前段落在上下文中的主要信息。
在短期文本推薦任務中,使用雙向GRU作為RNN的基本單元來獲取序列中的信息,并引入編碼器-解碼器框架。如圖6所示,在編碼階段,將用戶在短期內的行為引入推薦模型中。使用上一節提到的方法分別將用戶在短期內查看的話題信息、答案文本信息、文本的作者信息和關系網絡嵌入到高維向量中,然后通過首尾相連的方法拼接成同一個向量,作為編碼器的輸入(input1)。在編碼器和解碼器之間引入注意力機制,使解碼器能動態地選擇并線性組合編碼器輸入序列的不同部分,來建模用戶在短期內的偏好。注意力計算公式如下:

圖6 短期文本推薦模型架構Fig.6 Architecture of short-term text recommendation model
αtj=s(ht,hj)=vTσ(Aht+Bhj)
(12)
(13)
其中,ht表示最終時刻的隱藏層狀態,hj表示ht前一項隱藏層狀態,A和B分別是ht和hj的傳遞矩陣,σ表示激活函數,這里選擇Sigmoid函數,用來計算最終隱藏層狀態ht和前一層hj之間的相似性,也即注意力權重αtj的值,表示任意時刻的輸入序列較當前輸入序列的相對重要性,用來確定在提出建議時當前輸入序列應強調或忽略,ct表示短期序列的注意力得分。
通過帶有注意力機制的編碼器為不同時刻的輸入分配自適應權值,來表示用戶在當前會話的主要目的。在解碼器階段,將編碼器的注意力輸出ct、候選項和當前用戶的表示作為輸入(圖6中的input2表示候選項和當前用戶的表示)。候選項是當前用戶長期已讀文本、已讀文本的作者信息和關系數據的拼接向量。然后通過雙向GRU層和前饋網絡層,計算每個候選項的得分。最后通過Softmax層將得分標準化。模型損失函數采用交叉熵損失函數,公式如下:
(14)
其中,q是預測候選項位置分布,p是實際分布。
模型在雙向GRU層正向和反向各設置128個隱藏單元。在每個隱藏層后加入50%的dropout層,提高了模型的魯棒性和泛化能力。在解碼階段,將用戶短期內閱讀的100個候選文本序列作為輸入,然后通過雙向GRU層和分別含有512個和256個隱藏單元的前饋層處理,模型使用Adam[29]進行優化。
本文數據集來源于知乎,知乎是中國最大的知識問答系統之一,在這個平臺上可以獲得大量的完整數據。本文使用的數據來自于CCIR2018 競賽,數據包括部分用戶信息、用戶讀一個文本/答案之前的已讀序列、未讀序列以及所有的文本信息。在實驗中,使用100 000個記錄作為訓練集,20 000個記錄作為測試集。在本文數據集中共使用5種實體和14種關系類型,如表1和圖7所示。

表1 數據集中的實體和關系類型Table 1 Entities and relationships types in the dataset

圖7 實體和關系類型示意圖Fig.7 Schematic diagram of entities and relationships types
將本文提出的模型分別與2種傳統的推薦方法和1種神經網絡模型進行比較。
TF-IDF:TF-IDF是一種統計方法,用來評估某個字詞對于一個語料庫或一個文件集中的其中一份文件的重要程度。詞的重要性隨著字詞在文件中出現的次數成正比。本文將每個文本表示成TF-IDF向量的形式,通過計算目標向量與序列的得分進行推薦,計算方式如下:
(15)

ItemKNN:ItemKNN[29]是一種常用的協同過濾算法。文本間的相似性通過用戶查看文本序列的頻率來衡量。
MEM:文獻[17]提出的模型。首先通過使用用戶查看文本記錄和相應的元數據(包括用戶信息、答案信息等)來學習文本的嵌入,然后根據嵌入的結果推斷并模擬用戶對文本內容的全局和上下文偏好;最后根據目標用戶的偏好推薦合適的文本內容,滿足用戶的短期要求。
在本文實驗中,為了評價模型的推薦效果,使用召回率(Recall)和均值平均精度 (mean Average Precision,mAP)作為推薦結果的評估指標。
Recall:在評價推薦算法時,召回率是常用的評價指標,其表示推薦列表中用戶喜歡的文本與用戶真正喜歡的文本之間的比率。
mAP:召回率只是衡量用戶喜歡的項目有沒有被推薦,而與推薦的順序并無關系,在Top-N推薦中,推薦列表的順序也是極其重要的。在文本推薦任務中,使用mAP作為實驗的指標之一,計算公式如下:
(16)
(17)
其中,Ωu表示推薦列表中用戶喜歡的文本是否在用戶真正喜歡的文本中,若是,則取1,否則取0;再累計相加,pui表示i文本在推薦列表中的位置,puj 本文提出的基于異質注意力卷積神經網絡模型分別將文本數據和關系網絡嵌入到100維的向量中,然后通過拼接的方法得到共200維的輸入向量。模型訓練時初始學習速率設置為0.001,最小批處理大小為256。該模型是在Keras的GeForce GTX 1080Ti GPU上定義和訓練的。 4.5.1 模型結果對比 將本文所提模型與選擇的其他模型的結果進行比較,實驗結果如圖8所示。 圖8 各模型在數據集上的結果Fig.8 Results of each model on the dataset 無論從召回率或是MAP來排序,本文提出的基于異質注意力的循環神經網絡模型都優于其他模型。如表2所示,在Top-15推薦中,與TF-IDF和ItemKNN相比,在召回率方面,本文模型比TF-IDF提高了30.03%,比ItemKNN提高了18.31%;在更加注重推薦排序的mAP方面,本文模型比TF-IDF提高了37.78%,比ItemKNN提高了27.66%。這表明僅僅計算文本的相似度對用戶長期偏好的建模是不足的,還應考慮用戶的短期興趣。相比于傳統模型,神經網絡模型MEM取得了一定的效果,而本文模型在召回率和mAP各方面都優于MEM,尤其是在更加注重推薦排序的mAP方面,在Top-15推薦方面,本文模型比MEM提高了13.95%,說明了本文模型優異的性能。由此證明,本文使用多源異質數據作為推薦模型的輸入和通過注意力機制將用戶的短期興趣引入推薦模型來滿足用戶的短期需求,大幅提高了推薦的準確性。 表2 在Top-15中各模型的實驗結果Table 2 Experimental results of each model in Top-15 4.5.2 模型設計分析 為驗證本文模型推薦準確性的提升,將模型輸入數據的多樣性和通過注意力機制把用戶的短期興趣引入推薦模型的設計,同時做了以下實驗:1)在模型的基礎上只使用文本信息作為模型的輸入;2)在模型的基礎上只使用關系網絡作為模型的輸入;3)在輸入數據不變的前提下,推薦模型只使用解碼器部分,即將用戶的短期興趣不單獨引入模型中。實驗結果如圖9所示。 圖9 模型設計分析結果Fig.9 Results of model design analysis 從圖 9可以得出,使用基于異質注意力的循環神經網絡的設計可以有效提升實驗效果,這也說明將文本信息和關系網絡嵌入到高維向量,并使用注意力機制將用戶的短期興趣引入到推薦模型,設計更有效的建模用戶的偏好,能夠得到更準確的用戶個性化推薦效果。 4.5.3 嵌入維數對推薦結果的影響 本文研究特征嵌入維數對模型性能的影響。在本文模型中,使用文本數據和關系網絡這2種異質數據,本文實驗將一種數據嵌入0~300的維度,另一種數據保持100維不變,實驗結果如圖10所示。 圖10 嵌入維數對推薦結果的影響Fig.10 Influence of embedding dimension numbers on recommendation results 隨著特征嵌入維數增加,模型的性能慢慢提高并逐漸趨于穩定,當嵌入維數小于100時,嵌入維度對模型性能有較大影響;當嵌入維度大于100時,模型性能趨于穩定;當設置嵌入維度為0時,也即刪除這種輸入數據,模型性能大幅降低,表明這2種數據對模型性能都是極其重要的。 本文提出基于異質注意力循環神經網絡的短期文本推薦模型,將融合多源異質數據作為模型的輸入,增強模型對用戶興趣的理解能力,運用編碼器-解碼器框架,在編碼器階段,將用戶的短期興趣引入到推薦模型中,并使用注意力機制與解碼器相連接,通過雙向GRU神經網絡對用戶的短期興趣進行建模。實驗結果表明,與通用模型和神經網絡模型相比,本文模型性能取得了較大的提升,證明了模型的有效性。下一步考慮將深度學習與文本推薦相結合,以取得更好的推薦效果。4.4 參數設置
4.5 實驗結果




5 結束語