趙文普 趙逢禹 劉 亞(上海理工大學光電信息與計算機工程學院 上海 200093)
隨著互聯(lián)網技術的飛速發(fā)展與進步,網絡用戶之間的互動溝通成為人們獲取知識的重要方式之一。問答服務系統(tǒng)因其開放性靈活性等特點,能夠滿足人們解決問題和獲得并分享知識的需求,從而迅速成為人們共享知識的平臺。目前,國內外最流行的問答系統(tǒng)包括知乎、百度知道、新浪愛問知識人、Yahoo Answers、Stack Overflow等。
在問答服務系統(tǒng)中,用戶提出問題首先在系統(tǒng)搜索相似問題。當用戶不能找到相似問題或者不能夠從相似問題中找到滿意的答案,用戶將問題提交給系統(tǒng),等待其他用戶回答。當其他用戶提供答案以后,用戶對所提供答案進行分析、篩選,最終確定問題的答案。問答服務系統(tǒng)在給用戶提供便利的同時,存在著一些問題。其中,最嚴重的問題是當用戶提出新問題不能夠快速得到滿意的答案。已有調查數(shù)據顯示在問答服務系統(tǒng)中存在大量的問題在24小時內得不到有效的答復[1]。與此同時,提問者希望自己提出的問題能夠得到問答服務系統(tǒng)高質量用戶的快速回答,從而增加獲得正確答案的可能性。然而,問答服務系統(tǒng)存在大量的問題信息,回答者常常需要消耗許多的時間與精力去尋找自己喜歡并且擅長的問題,從而導致提問者得不到及時有效的回復,最終影響問答服務系統(tǒng)的性能。因此,研究在問答服務系統(tǒng)中如何為用戶提出的新問題推薦最適合的專家尤為重要。
對于問答服務系統(tǒng)中專家的推薦,研究人員提出了各種不同的方法。主要分為兩大類:鏈接分析法[2-5]和用戶建模法[6-7]。
鏈接分析法主要利用HIFS與PageRank算法發(fā)現(xiàn)專家用戶。針對HITS算法,宣慧明[2]首先找出與問題文本相似的問題集合,增加相似問題回答者與提問者之間邊的權重,基于HITS算法確定問答服務系統(tǒng)的專家。PageRank算法將用戶看作網頁,用戶問答形成鏈接關系,并反復迭代計算用戶的權威值,然后通過權威值大小對專家用戶進行排序。Hong等[3]在潛在語義分析PLSA的基礎上提出了基于內容主題的PageRank算法,把它應用于專家發(fā)現(xiàn)。戴秋敏[4]依據用戶對答案的反饋信息對PageRank算法中的問答關系進行加權處理,考慮了答案的質量,發(fā)現(xiàn)問答服務系統(tǒng)的專家。
用戶建模法主要使用了信息檢索方面的技術。Liu等[5]把曾經回答過這類問題的用戶定義為問題的專家,分析用戶回答過的問題形成專家概況,利用相似度模型和關聯(lián)模型探尋新問題和專家概況之間的關系并應用到專家發(fā)現(xiàn)中。Riahi等[6]對比TF-IDF、LDA和STM模型,分析了不同模型在專家推薦中的效率。
最近幾年,一些研究人員通過分析問答服務系統(tǒng)的問題類別,來建模以求更好的發(fā)現(xiàn)專家用戶。林鴻飛等[7]采用PageRank算法計算用戶在每一個類別的權威度,采用LDA主題模型計算類別之間的相似度,綜合考慮權威度和類別之間的相似度來發(fā)現(xiàn)專家用戶。王甜等[8]提出了基于類別的加權動態(tài)權威度和興趣度相結合專家推薦方法。但如果問答服務系統(tǒng)不存在類別或者類別十分復雜,專家推薦的準確率不是很高。
在專家推薦方面已經有許多研究成果。這些成果一定程度上實現(xiàn)了專家推薦,但是這些研究的重點都集中于被推薦專家對問題的權威度與興趣度方面,忽略了被推薦專家最近行為習慣即最近活躍度和被推薦專家的興趣度隨著時間的變化,從而導致問答服務系統(tǒng)專家推薦的準確率降低。針對上面的問題,提出了一種基于興趣度、權威度、信譽度和最近活躍度的專家推薦混合模型IARA(Interest- Authority-Reputation-Activity)。
IARA模型主要為新問題推薦對問題興趣度高、能夠及時提供正確答案的專家用戶,達到減少提問用戶的等待時間并得到有效的問題答案。為此,本文提出了專家用戶推薦混合模型,包括專家用戶對新問題的興趣度、專家用戶權威度、專家用戶信譽度、專家用戶最近活躍度和個性化推薦 5 個部分。本文推薦的專家來源于問答系統(tǒng)中高質量的用戶。圖 1為 IARA專家推薦混合模型的處理過程。
圖1 IARA 模型流程圖
第1步采用加權LDA主題模型對用戶回答過的問題答案及問題建模,獲得用戶文檔集合的主題概率分布,即用戶的興趣主題分布。根據用戶興趣主題分布和新問題主題分布的相似度,獲得用戶對新問題的興趣度。
第2步采用基于主題的PageRank算法,計算用戶在各個主題下的權威度,近一步求得用戶對新問題的權威度。
第3步挖掘用戶歷史回答和提問信息,根據回答問題數(shù)量和被選擇為最佳答案的比率,求得用戶的信譽度。
第4步根據用戶歷史答題時間與新問題的時間間隔獲得用戶最近活躍度。
第5步根據用戶的興趣度、權威度、信譽度和最近活躍度四個方面,計算獲得用戶在新問題上的最終得分。按最終得分大小對專家用戶排序,將新問題推薦給相應的專家用戶。
用戶興趣度是指用戶對各個主題關注程度。不同用戶對同一個主題關注程度不同。只有把新問題推薦給用戶興趣度高的專家用戶,才能夠提高推薦的準確率。
因為用戶的興趣隨著時間變化而變化,首先使用加權的LDA主題模型獲得用戶興趣主題分布,然后根據用戶興趣主題分布和新問題的主題分布的相似性,計算用戶對新問題的興趣度。
2.1.1 用戶興趣主題提取
LDA 模型由Blei等[9]于2003年提出,是一種包含詞、主題和文檔三層結構的產生式概率模型。它首先解決文檔中一詞多意的問題,分析文檔之間的語義關系。其次可以分析文檔所包含的內在主題,獲取用戶未知的興趣主題。最后LDA 模型刻畫的用戶文檔信息是多個主題的,與現(xiàn)實中用戶擁有多個興趣主題相符合。已知LDA模型的以上優(yōu)點,結合問答服務系統(tǒng)的特點,對每個用戶活動所產生的文檔進行建模,分析每個用戶的興趣主題分布。
問答服務系統(tǒng)用戶興趣建模流程如下:
第①步對于問答服務系統(tǒng)中的每個用戶u∈U,從以α為參數(shù)的Dirichlet分布中抽取該用戶的興趣主題分布θu~Dirichlet(α);
第②步對于用戶文檔主題集中的每個t∈T,從以β為參數(shù)的Dirichlet分布中抽取主題t下的詞分布,即φt~Dirichlet(β);
認知心理學認為人類興趣和記憶一樣會隨著時間推移而衰減[10]。所以,在分析用戶興趣主題分布時候,采用動態(tài)加權的方式,使用戶的興趣主題分布向用戶回答的最近的問答對進行傾斜。特征詞的權值如下:
(1)
(2)
我們采用簡單易懂的吉布斯采樣進行推導和參數(shù)估計[11]。對于用戶文檔集中的特征詞,主題分布從式(3)中獲得:
(3)
(4)
(5)
新問題的主題概率分布從文檔的主題-詞分布中取得,計算方法如下:
(6)
式中:φ(t,wq)從上述訓練模型中推斷獲得。
2.1.2 用戶對新問題興趣度計算
專家用戶對新問題的興趣度通過其興趣主題和新問題主題的相關性進行度量,兩者之間的相似度越大,則用戶對新問題的興趣度越大。計算用戶主題和新問題主題相似度即用戶ui對新問題q的興趣度,采用Jensen-Shannon[12]距離計算,計算方法如下:
NQI(ui,,q)=Sim(q,u)=JSD(θq,θui)
(7)
式中:θq表示新問題q的主題分布,可從式(6)獲得,θui表示用戶ui的興趣主題分布,可從式(4)獲得。
用戶權威度是指用戶在各個主題下的相對重要程度。在問答服務系統(tǒng)中,不同的用戶之間形成提問-回答的關系。在圖2(a)中,用戶3回答了用戶1的問題,則表示為用戶1指向用戶3的有向邊。對圖2(a)進行簡化,形成用戶與用戶之間的關系圖如圖2(b)。這種關系和網頁之間的關系相似,網頁代表用戶,采用對網頁質量排序的PageRank算法計算用戶的權威度。傳統(tǒng)的PageRank算法存在主題偏移的不足,結合用戶的興趣主題分布,對PageRank算法進行優(yōu)化獲得用戶在各個主題下的權威度。然后根據新問題的主題分布,獲得用戶對新問題的權威度。
圖2 用戶問答形成的關系圖
依據用戶之間問答形成的關系,我們可以得到用戶在某一個主題下的權威度計算規(guī)則:用戶在某一個興趣主題下,回答的用戶問題個數(shù)越多,回答了高權威用戶的問題,則用戶的權威度越高。
構建用戶關系有向圖G=(U,E),U代表問答服務系統(tǒng)用戶的集合,E代表不同用戶之間關系的集合,箭頭方向由提問者指向回答者。在主題z下,提問者ui向回答者uj的權威值轉移概率計算方法如下:
(8)
式中:li,j表示回答者uj已經回答提問者ui的問題個數(shù),Simz(ui,uj)表示在主題z下,提問者ui和回答者uj之間興趣主題相似度。相似度使用Jensen-Shannon距離求得,計算方法如下:
simz(ui,uj)=JSD(θiz,θjz)
(9)
式中:θiz表示用戶ui屬于主題z的概率,θiz、θjz可由式(4)求得。
在主題z下,用戶ui的權威度計算方法如下:
(10)
式中:ρ表示阻尼系數(shù),行歸一化矩陣Mi,j=Pz(ui,uj)。通過式(10)可以計算用戶ui在各個主題下的權威度AU(ui),因此用戶ui對新問題q的權威度計算方法如下:
(11)
式中:θqt表示新問題q分配到主題t上的概率,可以由式(6)獲得。
用戶信譽度指用戶歷史回答問題的質量。一般,用戶回答的問題正確率越高,即用戶提供的答案被確定是最佳答案的概率越高,則用戶的信譽度越高。例如,存在用戶u回答的準確率為100%,但僅僅只回答了一個問題。如果在計算用戶信譽度僅僅考慮回答的正確率,很顯然是不正確的。因此,為了提高計算用戶信譽度的有效性,在計算用戶信譽度的時候,不但要考慮用戶回答問題的正確率,還要考慮用戶回答問題最佳答案的數(shù)量。
用戶u信譽度計算方法如下:
(12)
式中:BAR(u)表示用戶u回答問題的準確率,maxBAR(u′)表示準確率最高用戶u′的準確率,ω∈[0,1]。通過調節(jié)準確率和用戶提供最佳答案的相對重要程度,BAN(u)表示用戶u提供最佳答案的數(shù)量,maxBAN(u″)表示提供最佳答案最多的用戶u″的最佳答案個數(shù)。BAR(u)用式(13)求得:
(13)
式中:AN(u)表示用戶u回答問題的個數(shù)。
用戶在最近一段時間在問答服務系統(tǒng)中越活躍,回答其他用戶提問的新問題的可能性越大。如果用戶在一年前回答問題獲得較高的權威度和信譽度,然而最近的一段時間很少回答問題,則該用戶的活躍度在降低。在計算用戶的興趣度、權威度和信譽度之后,把新問題推薦給用戶時,還應考慮用戶的最近活躍度。
用戶在最近一段時間回答的問題越多,歷史回答問題的時間與新問題發(fā)布的時間間隔越小(以天為單位),則用戶的最近活躍度越高。用戶最近活躍度隨著時間的變化而變化。用戶u最近活躍度計算方法如下:
(14)
式中:T表示用戶u歷史回答問題時間的集合,tq表示當前需要推薦專家的問題的提出時間,t表示用戶u回答歷史具體某個問題的時間。為了防止分母為0,我們在新問題與歷史問題的時間間隔上加1。為了使用戶的最近活躍度跳躍性不是太大,介于0到1之間,采用與最活躍用戶最近活躍度比值的形式獲得用戶最終最近活躍度。用戶u的最終最近活躍度計算方法如下:
(15)
式中:maxAC(u′)表示最活躍用戶最近活躍度。
對于提出的新問題q,根據用戶對新問題的興趣度、權威度、信譽度、最近活躍度,綜合計算專家用戶的得分。當不考慮用戶最近活躍度的時候,得到專家用戶ui的得分NacScore(ui,q),計算如下:
NacScore(ui,,q)=NQI(ui,q)×(w1NQAU(uj,q)+
(1-w1)R(ui)
(16)
式中:NQI(ui,q),NQAU(ui,q),R(ui)分別由式(7)、式(11)、式(12)計算得到。
當考慮用戶的最近活躍度的時候,綜合得到專家用戶ui的最終得分Score(ui,q),計算方法如下:
Score(ui,q)=NacScore(ui,q)×ZAC(ui)
(17)
式中:ZAC(ui)可以由式(15)計算得到。
Stack OverFlow 開源問答服務系統(tǒng)是一個計算機愛好者知識交流的問答網站。我們通過網絡爬蟲爬取Stack OverFlow 2015年1月到2016年2月的問題、答案等相關信息。去除未解決和無效的問題,共包含25 231個問題和102 585個答案以及7 012個用戶。
在已經解決的問題中,其中21 016個答案包含最佳答案,4 008個用戶提供了最佳答案,1 256個用戶提供了至少5個最佳答案。我們把這1 256個用戶稱為“潛在的專家”,我們把新問題推薦給這樣的用戶。實驗前,對用戶的問答文本進行分詞、除去停用詞、詞根還原。將2016年1月以后的提供最佳答案的用戶問題作為測試用例集,其中包括2 108個問題。
本文選擇S@N(success of N)作為實驗的評測指標來驗證本模型的有效性。當測試問題的最佳答案提供者在本模型推薦的用戶中,證明這次推薦是合適的。
對于需要測試的用戶問題q,如果推薦的N個用戶中存在最佳答案提供者,S@N(q)的值取1,否則取0。針對所有的用戶測試問題,S@N的取值越大,說明本模型的推薦越成功。S@N的取值計算方法如下:
(18)
式中:n表示用戶測試問題的總個數(shù),qi表示當前測試的問題,S@N(qi)表示問題qi的S@N的值,為0或1。
正如第三部分所描述的模型,一些參數(shù)需要設置。例如LDA主題模型中主題的個數(shù)T,Dirichlet先驗分布α、β,迭代次數(shù)N;計算用戶在各個主題下的權威度的式 (10)中的ρ;計算用戶信譽度的式(12)中的ω;式(16)中控制聲望度和權威度的權值w1。對于這些參數(shù)我們通過經驗[12]或者控制變量法獲得。具體取值如表1。
表1 IARA模型參數(shù)取值
3.4.1 實驗1用戶最近活躍度驗證
在過去的研究中,新問題專家推薦常常忽略專家的最近活躍度。在我們模型的基礎上,通過是否考慮最近活躍度進行對比,分析S@N的變化,驗證最近活躍度對專家推薦的影響。實驗結果見圖3。
圖3 是否考慮最近活躍度專家推薦結果對比
圖3中橫坐標表示新問題推薦專家個數(shù),縱坐標表示專家推薦的準確率。IARA表示本文的推薦模型,IARNA表示不考慮用戶最近活躍度的推薦模型。
通過圖3實驗結果分析,我們可以得出:在進行新問題專家推薦的時候,考慮專家用戶最近的答題行為即專家用戶的最近活躍度,能夠有效提高新問題專家推薦的準確度。
3.4.2 實驗2IARA模型驗證
為了驗證IARA模型對新問題推薦專家的有效性,采用2種不同的專家推薦方法與本文提出的IARA模型方法進行對比,具體對比方法如下:
1) InDegree(ID)[13]模型。依據用戶提供最佳答案的數(shù)量從大到小來推薦專家。
2) TEM[14]模型。通過用戶的問答記錄以及答案的得票情況獲取用戶的興趣以及專業(yè)程度,結合兩方面推薦專家。
根據上面的方法以及我們的方法進行實驗,實驗結果見圖4。
圖4 各種方法推薦結果對比
通過分析圖4可知,3種方法的推薦準確率是IARA>TEM>ID。ID方法僅僅根據用戶提供問題最佳答案的個數(shù)推薦專家,具有一定的片面性。TEM方法考慮了用戶的興趣度和用戶的專業(yè)程度,但是忽略了用戶的最近活躍度以及用戶的興趣度隨時間發(fā)生變化。我們的模型綜合考慮興趣度、權威度、信譽度的同時,還考慮了用戶的最近行為習慣和興趣變化規(guī)律,推薦準確度明顯高于其他模型。這說明本文的方法是可行的。
本文提出了一個開源問答服務系統(tǒng)專家推薦混合模型。該模型從用戶的興趣度、權威度、信譽度、最近活躍度四個方面,分析專家用戶的行為習慣和興趣變化規(guī)律,為新問題推薦專家。實驗結果表明,該模型能夠有效地為新問題推薦最適宜的專家,達到用戶問題快速、準確解決的目的。在今后的工作中,第一,將IARA的模型應用到其他的問答服務系統(tǒng),例如知乎、百度知道、新浪愛問知識人等,進一步驗證模型的有效性。第二,用戶非正式的自然語言形成的問答對用戶興趣主題的挖掘帶來巨大的挑戰(zhàn)。名稱的同義詞或簡稱形式對于用戶興趣主題挖掘也是有問題的,因為它們被認為是不同的“術語”。為了解決上面的問題,計劃在維基百科中利用語義知識來解決名稱的同義詞或簡寫形式。
[1] Furlan B,Nikolic B,Milutinovic V.A survey of intelligent question routing system[C]// Proceedings of the 6th IEEE International Conference on Intelligent Systems,Sofia,Bulgaria,2012: 1- 20.
[2] 宣慧明.基于交流平臺QA系統(tǒng)的專家發(fā)現(xiàn)[D].南京:南京師范大學,2013.
[3] Hong L, Yang Z, Davison B D. Incorporating participant reputation in community-driven question answering systems[C]// International Conference on Computational Science and Engineering. IEEE Computer Society, 2009:475- 480.
[4] 戴秋敏.互動問答平臺專家發(fā)現(xiàn)及問題推薦機制的研究[D].上海:華東師范大學, 2014.
[5] Liu X, Croft W B, Koll M. Finding experts in community-based question-answering services[C]// ACM international conference on information and knowledge management. New York: ACM, 2005: 315- 316.
[6] Riahi F, Zolaktaf Z, Shafiei M, et al. Finding expert users in community question answering[C]// International conference companion on World Wide Wed. New York: ACM,2012:791- 798.
[7] 林鴻飛, 王健, 熊大平,等. 基于類別參與度的社區(qū)問答專家發(fā)現(xiàn)方法[J]. 計算機工程與設計, 2014, 35(1):333- 338.
[8] 王甜, 曾承. 融合加權動態(tài)權威度和興趣度的專家推薦方法[J]. 小型微型計算機系統(tǒng), 2016, 37(10):2150- 2154.
[9] Blei D M, Ng A Y, Jordan M I. Latent dirichlet allocation[J]. J Machine Learning Research Archive, 2003, 3:993- 1022.
[10] 黃希庭.認知心理學[M]. 北京:中國輕工業(yè)出版社,2000:70- 80.
[11] Griffiths T L, Steyvers M. Finding scientific topics[J]. Proceedings of the National Academy of Sciences, 2004, 101(S1): 5228- 5235.
[12] 肖寶, 李璞, 蔣運承.混合詞匯特征和LDA的語義相關度計算方法[J]. 計算機工程與應用, 2017, 53(12):152- 157.
[13] Bouguessa M, Dumoulin B, Wang S. Identifying authoritative actors in question-answering forums: the case of Yahoo! answers[C]// ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. ACM, 2008:866- 874.
[14] Yang L, Qiu M, Gottipati S, et al.CQArank: jointly model topics and expertise in community question answering[C]// Paris: Proceedings of the 22nd ACM International Conference on Information & Knowledge Management,ACM,2013:99- 108.