趙 赟,吳 璠,王中卿,李壽山,周國棟
(蘇州大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,江蘇 蘇州 215006)
社交媒體早已成為互聯(lián)網(wǎng)一大趨勢,以微博和推特為代表的眾多實時交互的網(wǎng)絡(luò)社交應(yīng)用每日都要產(chǎn)生并傳播大量文本信息。其本身構(gòu)成了一個錯綜復(fù)雜的社交網(wǎng)絡(luò),用戶之間形成了各種復(fù)雜的關(guān)系,比如用戶之間的關(guān)注關(guān)系,用戶之間的興趣愛好甚至是偏愛的商家產(chǎn)品等,這些均可從這些信息中得到反映。用戶之間能夠輕松地進行各種實時互動,其影響力的傳播非常迅速。因此其信息的傳播難以得到實時的控制,其真實性和隱私權(quán)難以得到保障。如果能有效地挖掘出這些用戶關(guān)系,就能極大地遏制住有害信息的傳播,對于輿情監(jiān)控、應(yīng)對社會突發(fā)事件、引導(dǎo)群體行為有著積極的意義。同時還能節(jié)約企業(yè)的網(wǎng)絡(luò)營銷成本,對用戶的個性化推薦也具有一定的參考價值。
通常情況下,用戶可以視作社交網(wǎng)絡(luò)拓撲結(jié)構(gòu)中的節(jié)點,我們可以通過分析節(jié)點之間的連接關(guān)系以推斷用戶之間的關(guān)系,也可以直接通過用戶標(biāo)簽或行為,比如購買過類似的商品、轉(zhuǎn)發(fā)過類似的鏈接等來預(yù)測可能的關(guān)系。但是能夠反映用戶關(guān)系的信息如標(biāo)簽、用戶之間的連接等結(jié)構(gòu)化信息往往是有限的,而用戶發(fā)表的評論則是相當(dāng)容易獲得的。因此,本文所描述的好友關(guān)系抽取任務(wù)就是從用戶的文本信息中挖掘出用戶之間的潛在好友關(guān)系,這不僅對產(chǎn)品推薦或是相似好友推薦有相當(dāng)大的借鑒意義,同時也為通過文本進行人物關(guān)系分析有一定借鑒意義。然而,單靠文本特征判斷有一定的困難,這不同于直接從用戶的某些顯著特征或是人物關(guān)系鏈進行判斷,而且用戶之間的文本數(shù)量可能比較巨大,單靠人工判斷幾乎不可能,但是深度學(xué)習(xí)卻可以充分發(fā)揮數(shù)據(jù)的優(yōu)勢。
一種直接利用文本信息做用戶關(guān)系抽取的方法是支持向量機(support vector machine,SVM)。但SVM無法保留原始文本的順序信息,這也是詞袋模型的一大缺點,而LSTM模型能夠保留輸入的序列特征,因此在本文中主要采用了LSTM來構(gòu)建模型。同時,模型的輸入應(yīng)該要包含好友雙方的信息,因此有必要將雙方的文本信息進行合理的拼接。此外,注意力機制(Attention Mechanism)能夠使模型關(guān)注于好友彼此之間相關(guān)的信息。因此,本文比較了兩種LSTM的拼接方式對于實驗結(jié)果的影響,并在最終的模型中加入了注意力機制。實驗結(jié)果表明,在輸入模型時,直接將好友信息進行拼接的效果最好,加入注意力機制能夠明顯提升實驗準(zhǔn)確率。模型最終的實驗效果明顯超過了傳統(tǒng)SVM。
本文的具體結(jié)構(gòu)如下: 第1節(jié)介紹了傳統(tǒng)的關(guān)系預(yù)測和推薦方法以及最近的研究進展,第2節(jié)介紹了數(shù)據(jù)的收集過程以及數(shù)據(jù)集相關(guān)信息,第3節(jié)詳細介紹了我們提出的模型,并簡要介紹了特征的處理以及模型理論方面的內(nèi)容,第4節(jié)介紹了具體的實驗設(shè)置并比較了多種模型的實驗效果,最后是對本文工作的一些總結(jié)和展望。
目前關(guān)于好友關(guān)系預(yù)測的研究主要集中在算法方面,常見的有基于鏈路預(yù)測的算法和協(xié)同過濾算法等。Sarukkai[1]最早提出并評估了馬爾可夫鏈進行預(yù)測和路徑分析。Liben-Nowell 和Kleinberg[2]提出了一種基于社交網(wǎng)絡(luò)的鏈路預(yù)測模型,其主要思想是,通過分析網(wǎng)絡(luò)中近鄰節(jié)點的情況分析其成員可能發(fā)生哪些新的互動。由于在現(xiàn)實中很多領(lǐng)域中的對象都是相互關(guān)聯(lián)的,Taskar[3]等利用馬爾科夫網(wǎng)絡(luò)框架在關(guān)系型數(shù)據(jù)集上提高了準(zhǔn)確率。Hasan[4]等則將監(jiān)督學(xué)習(xí)的方法應(yīng)用到鏈路預(yù)測中,并且比較了不同類別的監(jiān)督學(xué)習(xí)算法的各種性能指標(biāo),結(jié)果表明大部分常用的分類算法(決策樹、KNN、多層感知機、SVM等)都有較好的性能,其中SVM的效果較為突出。Menon[5]等提出了使用矩陣分解的方法來解決圖中的鏈路預(yù)測問題,直接從圖的拓撲結(jié)構(gòu)中學(xué)習(xí)潛在特征能夠比無監(jiān)督的方式獲得更好的性能。在個性化推薦系統(tǒng)中,協(xié)同過濾技術(shù)的應(yīng)用十分廣泛,其思想是,根據(jù)評分相似鄰居的興趣和偏好產(chǎn)生推薦。但是,其缺點也是顯而易見的,其推薦質(zhì)量受到數(shù)據(jù)稀疏性的限制,其精確度和可拓展性不能得到保障。比較流行的是基于項(item)的協(xié)同過濾,Sarwar[6]等通過計算項之間的相似性而非用戶之間的相似性大大提高了協(xié)同過濾方法的拓展性和效率。Linden[7]等比較了基于用戶的協(xié)同過濾算法以及基于聚類和搜索的推薦算法,表明還是item-to-item的協(xié)同過濾算法效果比較好。還有些工作利用諸如標(biāo)簽[8]、地理位置[9]等信息來研究用戶興趣的相似度,Tu[10]等利用新浪微博用戶的標(biāo)簽來挖掘用戶興趣,提出了一種基于主題的標(biāo)簽傳播模型。Qian[11]等將個人興趣、人際興趣和人際影響力三個因素結(jié)合,提出了一種基于概率矩陣分解的個性化推薦系統(tǒng)。
對于直接從文本中抽取用戶關(guān)系的研究工作相對較少,Elson[12]等根據(jù)小說中人物的對話來分析人物關(guān)系。Qiu[13]等利用論壇文本進行情感分析來發(fā)現(xiàn)其中隱含的用戶關(guān)系。Shen[14]等根據(jù)微博文章的內(nèi)容比較了基于余弦相似度和主題來判斷潛在好友的準(zhǔn)確度。Liu[15]等通過對微博文章的關(guān)鍵字提取以挖掘用戶的興趣。Xu[16]等提出了一種無監(jiān)督的開放關(guān)系抽取方法用以微博中提取關(guān)鍵詞,閆[17]等通過在新聞標(biāo)題中抽取人物實體從而建立人物關(guān)系圖。趙[18]等根據(jù)用戶評論采用矩陣分解的方法探索隱式社交關(guān)系,從而改進了推薦系統(tǒng)的性能。王[19]等利用文本信息透露的隱含社交信息結(jié)合顯示社交信息,提出了一種隱含因子圖模型進而有效地進行用戶群組識別。還有一些其他研究則是將用戶的文本信息與其他信息結(jié)合進而分析用戶興趣和用戶關(guān)系,比如利用文本信息和用戶信息分析用戶興趣從而進行用戶關(guān)系預(yù)測[20],利用用戶社交數(shù)據(jù)、地理位置數(shù)據(jù)、以及文本評論這三者結(jié)合進行興趣推薦[21],利用微博短文本進行聚類來對用戶興趣建模[22]等。
本文著重討論了僅基于用戶文本進行分析的情況下,利用深度學(xué)習(xí)的方法只根據(jù)文本特征進行好友關(guān)系預(yù)測的效果,本文不僅比較了與SVM的實驗效果,同時分析了模型各個組件以及注意力機制對于預(yù)測準(zhǔn)確率的影響。
本文使用了yelp[注]https: //www.yelp.com/dataset/商戶點評網(wǎng)站的開放數(shù)據(jù)集,該數(shù)據(jù)集包含大量真實用戶的評論等信息。我們抽取了評論數(shù)大于50條,好友數(shù)最多的前5 000個活躍用戶以及用戶評論作為研究對象。在這5 000個用戶中,我們隨機抽取10 000對的好友以及10 000對非好友。出于性能的考慮,對于每對好友,我們只選取他們最近發(fā)表的5條評論文本,合并成1條用戶評論。我們在好友對和非好友對中各取9 000對的評論作為訓(xùn)練集,其他用戶對作為測試對象,即訓(xùn)練集18 000條,測試集2 000條。表1是數(shù)據(jù)集相關(guān)的信息。由表可見,每對評論的總長度是非常長的,下文的實驗中,如不做特別說明,每對評論的長度限定在500詞,即雙方評論各占250詞。模型所用的總詞數(shù)限定為訓(xùn)練集中出現(xiàn)頻率最高的10 000詞。
表1 數(shù)據(jù)集相關(guān)信息
圖1 模型結(jié)構(gòu)
為了構(gòu)建基于神經(jīng)網(wǎng)絡(luò)的每個用戶的表示,我們從訓(xùn)練集中選取出現(xiàn)頻率最高的10 000個詞作為特征并建立詞典,選取兩人最近的5條評論,選取詞典中的詞作為兩人的特征。比如所建文本詞典為vocab={′Cappuccino′: 0,′Triamisu′: 1,′Pudding′: 2},詞匯表大小就是3。表2給出了用戶A和用戶B的文本特征。對于SVM來說,向量長度為詞匯表大小,詞的存在與否作為特征。LSTM的輸入則為兩段評論的拼接。
表2 文本特征選取
從表2中的簡單示例中,可以看出用戶A和用戶B都喜歡吃西式甜點,因此我們選取字典中存在的這些甜點的名稱作為他們各自的特征以及共同的特征。直覺上來說,如果兩者評論中多多少少出現(xiàn)了相同的事物,則我們有理由認為該兩人可能是潛在的好友或是擁有共同的興趣。本文中將人們最經(jīng)常討論的各個方面的關(guān)鍵詞作為詞特征并建立詞典,所訓(xùn)練和測試的評論選取了該用戶最近發(fā)表的5條長評論。
我們首先將好友雙方拼接后輸入詞嵌入層,然后再對詞嵌入層的輸出進行卷積,卷積后的結(jié)果進行了最大池化,如式(1~3)所示。
基本的RNN模型的隱藏層只有一個狀態(tài)h,而LSTM模型又增加了一個狀態(tài)c,使其保存更長遠的信息。LSTM模型的輸入有三個: 當(dāng)前時刻的輸入值xt、上一時刻LSTM的輸出值ht-1、以及上一時刻的單元狀態(tài)ct-1,LSTM的輸出有兩個: 當(dāng)前t時刻的輸出值ht和當(dāng)前時刻的單元狀態(tài)ct。該模型的內(nèi)部有三個控制開關(guān),一個稱為遺忘門ft,它決定保留多少上一時刻的信息到當(dāng)前時刻;一個稱為輸入門it,它決定保留多少當(dāng)前輸入xt到ct;最后一個稱為輸出門ot,它決定保留多少單元狀態(tài)ct到輸出ht。其內(nèi)部運算關(guān)系可用數(shù)學(xué)符號表示為:
經(jīng)過LSTM層后,此時模型的輸出為LSTM每個時間步隱藏狀態(tài),我們此時將注意力機制應(yīng)用于LSTM輸出的每一個時間步,注意力機制可以捕獲序列之間的依賴關(guān)系,加權(quán)求和后我們得到輸出序列i對應(yīng)的上下文向量表示ci,具體公式描述如式(10~11)所示。
其中,hi為LSTM第i個時間步的輸出,aij表示第i個時間步與第j個時間步的輸出進行softmax后的權(quán)重,這里的相似度計算函數(shù)采用的是矩陣變換,用W表示。最后我們還要經(jīng)過一層全連接層得到最終的輸出概率。
實驗訓(xùn)練的數(shù)據(jù)為好友與非好友雙方的評論各9 000對,剩余1 000對作為測試數(shù)據(jù)。每個人的評論限定為最近發(fā)表的5條評論,評論長度限定為250詞。但對于SVM模型,我們在下文額外地列出了使用全部詞匯作為特征的效果。
本文特征選擇評論里出現(xiàn)頻率最高的10 000個詞,SVM采用詞袋模型,對于LSTM模型,我們考慮了兩種拼接方式,一種是在模型的輸入時將雙方的評論進行拼接,即上文所描述的框架,一種是將雙方的評論分別構(gòu)建兩個LSTM層,最后將這兩個LSTM層的輸出進行拼接。注意力機制都是應(yīng)用于拼接后的結(jié)果。此外,詞嵌入層我們使用了預(yù)訓(xùn)練的詞向量來進行初始化。
我們采用對數(shù)損失函數(shù),梯度優(yōu)化采用Adam[24]優(yōu)化器。隱含變量(hidden_size)和詞嵌入(embedding_size)設(shè)置的大小相同,卷積層和全連接層使用的是relu和tanh激活函數(shù),最后的輸出層使用的是sigmoid激活函數(shù)。LSTM層和全連接層都使用了dropout。超參數(shù)的值如表3所示。
表3 模型的超參數(shù)設(shè)定
為了比較我們提出的基于注意力機制LSTM模型的有效性,我們與如下基準(zhǔn)系統(tǒng)進行了比較:
?SVM: 使用好友雙方全部詞的TF-IDF(term frequency-inverse document frequency)構(gòu)建特征,并使用SVM模型進行用戶關(guān)系預(yù)測。
?Conv-LSTM: 表示對詞嵌入層的輸出進行卷積再后輸入LSTM層,并使用該LSTM模型進行預(yù)測。
?LSTM-Concat-Att: 是我們提出的基于注意力機制的用戶關(guān)系預(yù)測模型。即在模型的輸入時將雙方的評論進行拼接,并將注意力機制應(yīng)用于LSTM的輸出。
對于SVM模型,因為輸入序列的長度對于SVM沒有影響,所以這里SVM使用了所有的詞作為特征,而其他模型都是只取雙方前250詞拼接后作為輸入。實驗結(jié)果如表4所示。從表4中可以看出,使用所有詞的TF-IDF特征的SVM的效果要比進行卷積后單獨使用LSTM的效果要好不少,但我們提出的模型要比單獨使用LSTM的效果高了近7個百分點,同時也超過了SVM的效果。這從側(cè)面反映了我們模型中起到關(guān)鍵性作用的是加入的注意力機制。
表4 不同模型準(zhǔn)確率比較
為了充分比較模型的差異性,我們還需要分析不同的因素對于實驗結(jié)果的影響,具體結(jié)果如表5所示。
表5 不同因素實驗結(jié)果匯總
?LSTM-Multi: 是將雙方的評論分別構(gòu)建兩個LSTM層,最后將這兩個LSTM層的輸出進行拼接,將拼接后的結(jié)果輸入全連接層進行預(yù)測。
?LSTM-Concat: 表示輸入時將雙方的評論進行拼接,然后輸入LSTM層進行預(yù)測。
?LSTM-Multi-Att: 表示依舊將雙方評論構(gòu)建兩個LSTM,不同的是,我們會將注意力機制作用于拼接后的LSTM輸出。
?Att: 表示對詞嵌入層的輸出直接使用注意力機制并進行預(yù)測。
?LSTM-Att: 是指去除卷積操作,對LSTM的輸出運用注意力機制并進行預(yù)測。
從表5中可以看出,不管是在輸入時將雙方信息進行拼接還是將雙方評論構(gòu)建兩個LSTM再進行拼接,最終的效果差別不大,但是加入注意力機制后明顯是輸入時拼接效果要好。雖然,直接將注意力機制加到詞嵌入層的輸出的方式簡單有效,效果要比單獨用LSTM要好不少,但是我們的模型效果超過直接使用注意力機制的效果。最終,我們的模型準(zhǔn)確率達到了0.770 5,相對于SVM的0.75,還是取得了一定的改善。值得說明的是,我們模型的輸入取的是前250詞,而我們模型的效果卻比SVM使用所有詞作為特征的效果要好,這更能說明模型的優(yōu)越性,其可改進的空間也是巨大的。
通過兩種模型的比較基本可以說明,單用文本特征來判斷是否是好友是可以取得一定的效果的,SVM在分類任務(wù)上仍然可以取得不錯的成績。對于數(shù)據(jù)量大的情況,我們的模型仍然能夠充分利用有限的好友雙方的文本信息,達到明顯超過SVM的效果。當(dāng)然,本文討論的重點放在了文本特征上,而其它外部特征對于判斷好友關(guān)系甚至更直接,比如兩個人的共同好友數(shù)就是一個很強的特征,擁有共同好友數(shù)較多的兩人極其可能是好友,我們甚至可以將用戶的其他特征和文本特征相結(jié)合來極大地提高預(yù)測準(zhǔn)確率。
雖然兩人當(dāng)前是否是好友甚至可能在數(shù)據(jù)庫中已經(jīng)是已知的了,而且以上的實驗是基于數(shù)據(jù)庫中兩人是否有確定性的好友關(guān)系的前提下完成的,但在現(xiàn)實中,兩人是否擁有好友關(guān)系,并不是確定不變的,甚至是比較主觀隨意的。但是,在實際的任務(wù)中我們也并不一定需要十分確定的關(guān)系,這種關(guān)系同時也是說不清的,模型最終的輸出可以轉(zhuǎn)化為概率值,即我們可以分析任意兩對用戶的文本得到兩人的某些相似性。本文的實驗結(jié)果依舊能夠說明,僅僅通過文本本身,以及通過上文介紹的模型來判定兩人是否擁有潛在的好友關(guān)系是有一定效果的,并且是有意義的。因為當(dāng)原始信息不能斷定是好友,而且其他外部特征缺乏的情況下,我們僅僅通過文本特征就可以計算相似度以判斷兩人是否是潛在的好友或有共同的興趣愛好,這為一些推薦系統(tǒng)提供了一定的參考。
為了能夠充分捕捉好友評論之間更深層次的信息,本文將好友以及非好友分開進行處理,將LSTM模型和注意力機制相結(jié)合,僅僅通過分析兩者的文本特征來進行好友關(guān)系預(yù)測。實驗表明,好友之間的評論確實能反映兩者之間的用戶關(guān)系,注意力機制在本文任務(wù)中起到了不可替代的作用,本文提出的好友預(yù)測模型較之于傳統(tǒng)的SVM模型在準(zhǔn)確率上有了明顯的提升。
本文的主要目的是通過分析文本發(fā)現(xiàn)可能蘊含的好友關(guān)系,在未來的工作中,我們還會結(jié)合更復(fù)雜的注意力機制來提升準(zhǔn)確率,同時我們還會在語義和語篇分析角度探索優(yōu)化的方案,并且我們還會繼續(xù)研究如何通過文本信息分析更為復(fù)雜的人物關(guān)系。