基於關鍵詞及問題主題的問題相似度計算

哈工大SCIR發表於2017-06-12

作者: 哈工大SCIR碩士生 齊樂


1、引言

社群問答系統(Community Question Answering,CQA)以其靈活的使用者互動特性,能夠滿足人們獲取和分享知識的需求,成為廣受使用者喜愛的只是知識共享平臺[1]。與其他社會媒體相比,CQA提供了一種特有的互動方式。首先,提問者將其資訊需求以問題的方式提交給系統,並等待其他使用者給出答案。回答者根據其個人興趣、知識水平,選擇適當的未解決問題來回答,以分享自己的知識[1]。

在社群問答中,問題相似度計算有著很重要的意義。針對使用者提出的新的查詢,我們可以透過判斷問題相似,在歷史紀錄中檢索與之相似的已解決問題,並將這些問題的答案推薦給使用者,從而避免使用者的重複提問,也方便使用者更快速地獲取問題答案[1]。

社群問答中的問題通常包括兩個部分,一是問題的主題或標題,二是問題的詳細描述。這兩部分對於判斷問題相似都有很重要的作用。然而,使用者的提問長短不一,而且由於需求和背景不同,問題描述中可能包含大量對判斷問題相似無意義的背景資訊。若將全部文字作為神經網路的輸入會引入大量噪聲,干擾對兩者相似程度的判斷。同時,問題主題是問題全部資訊的高度概括,相似問題往往擁有相似的主題,主題不同但問題相似的機率很低。因此問題主題也是判斷問題相似的重要依據。

針對上述問題,本文提出了一種基於關鍵詞和問題主題的相似度計算模型(KT-CNN)。該模型在文字間相似及相異資訊的CNN模型[2]基礎上引入了關鍵詞抽取技術並融入了問題主題間的相似度作為特徵。

2、模型

我們提出的模型包括關鍵詞抽取、基於關鍵詞相似及相異資訊的問句建模、計算主題相似度、問題相似度計算四個模組。對於輸入的問題S和T,我們先進行一系列的預處理操作,再透過關鍵詞抽取模組抽取S和T的關鍵詞序列Ks和Kt。第二步我們利用Ks和Kt間相似及相異資訊對問題S和T建模得到和的特徵向量Fs和Ft。第三步,我們對問題S和T的主題Ts和Tt計算相似度Simtopic。第四步,我們基於S和T的特徵向量Fs和Ft以及問題主題間的相似度Simtopic計算問題S和T的相似度Simq。模型的結構如圖2-1所示。下面我們將對每一個模組進行詳細介紹。

基於關鍵詞及問題主題的問題相似度計算

圖2-1 模型結構


2.1 關鍵詞抽取


我們對問題S和T的主題及描述抽取關鍵詞Ks和Kt。由於問題的主題及描述可能包含多個句子,因此我們對問題的每個子句都抽取關鍵詞。以問題S為例,我們將其子句Si的關鍵詞按照得分進行排序,得到KSi=[k0i, ,...,knii],然後再按照子句出現的順序對所有的關鍵詞進行排序,得到問題的關鍵詞序列Ks=KS0…U KSm=[k00, ,…,kn00,k01, ,…,kn11,…,k0m, ,…,knmm]。

對於每個子句,我們使用了一種無監督的基於依存排序的關鍵詞提取演算法。該演算法由王煦祥[3]等人提出,我們在該演算法的基礎上進行了一些改進。對於給定的問句,該演算法利用統計資訊、詞向量資訊以及詞語間的依存句法資訊,透過構建依存關係圖來計算詞語之間的關聯強度,利用TextRank演算法[4]迭代計算出詞語的重要度得分。

演算法流程如圖2-2所示,主要步驟包括構建無向有全圖、圖排序以及選取關鍵詞。

基於關鍵詞及問題主題的問題相似度計算

圖2-2 基於依存分析排序的問句關鍵詞提取流程圖

首先,我們根據句子的依存句法分析結果對所有非停用詞構造無向圖。依存句法分析的結果為樹結構,只要去掉根節點並忽略弧的指向便可以得到無向的依存關係圖

基於關鍵詞及問題主題的問題相似度計算

其中wi表示詞語,ej表示兩個詞語之間的無向關係。

接著,我們利用詞語之間的引力值以及依存關聯度計算求得邊的權重。

詞引力值得概念由Wang[5]等人提出。作者認為兩個詞之間的語義相似度無法準確衡量詞語的重要程度,只有當兩個詞中至少有一個在文字中出現的頻率很高,才能證明兩個詞很重要。其受到萬有引力定律的啟發,將詞頻看作質量,將兩個詞的詞向量間的歐式距離視為距離,根據萬有引力公式來計算兩個詞之間的引力。然而在社群問答的環境中,僅利用詞頻來衡量文字中某個詞的重要程度太過片面,因此我們引入了IDF值,將詞頻替換為TF-IDF值,從而考慮到更全域性性的資訊。於是我們得到了新的詞引力值公式。文字詞語wi和wj的引力f由公式(2-1)計算獲得。其中tfidf(w)是詞語w的TF-IDF值,是詞語和的詞向量之間的歐氏距離。

基於關鍵詞及問題主題的問題相似度計算

依存關聯度的概念由張偉男[6]等人提出。無向的依存關係圖保證了問句中的任意兩個詞之間都有一條依存路徑,而依存路徑的長短反映了依存關係的強弱。因此,該演算法根據依存路徑的長度,計算依存關聯度,如公式(2-2)所示。其中,len(wi, wj)表示詞語wi和wj之間的依存路徑長度,b是超引數。

基於關鍵詞及問題主題的問題相似度計算

綜上,兩個詞語之間的關聯度,即邊的權重值是兩個詞的引力與依存關聯度的乘積,如公式(2-3)所示。

基於關鍵詞及問題主題的問題相似度計算

最後,我們使用有權重TextRank演算法進行圖排序。在無向圖G=(V, E)中,V是頂點的集合,E是邊的集合,頂點vi的得分由公式(2-4)計算得出,其中w(vi, vj)由公式(2-3)計算得出,C(vi)是與頂點vi有邊連線的頂點集合,d為阻尼係數。我們選取得分最高的t個詞語作為句子的關鍵詞。

基於關鍵詞及問題主題的問題相似度計算


2.2基於關鍵詞間相似及相異特徵的CNN模型


由於文字間相似資訊和相異資訊對判斷兩段文字是否相似均有著重要的作用,因此我們使用了一種基於文字間相似及相異資訊的CNN模型對問題的關鍵詞序列進行建模[2],並在原模型的基礎上進行了改進。

以問題S的關鍵詞序列Ks為例,首先我們將Ks中的每一個關鍵詞Ksi都轉化為向量表示。接著我們用問題T的關鍵詞序列Kt計算Ksi的語義匹配向量Ksi’,即用Kt中的部分關鍵詞表示Ksi。第三步,基於Ksi’對Ksi進行分解,得到Ksi與Kt間相似向量Ki+s以及相異向量Ki-s。對Ks中每一個詞都進行上述操作,便將Ks分解成同Kt間的相似矩陣Ki+s和相異矩陣Ki-s。第四步,我們用Ki+s和Ki-s進行合併得到問題S的特徵向量F。

2.2.1詞向量表示

我們使用基於Jeffray等人提出的GloVe模型[7]預訓練的詞向量來表示關鍵詞。對於關鍵詞序列Ks和Kt,我們將其表示為矩陣

基於關鍵詞及問題主題的問題相似度計算

其中Kis和Kjt是關鍵詞的維詞向量,m和n是Ks和Kt中包含的關鍵詞數量。

2.2.2語義匹配


為了判斷關鍵詞序列Ks和Kt間的相似度,我們需要檢查一個關鍵詞序列中的關鍵詞在語義上能否被另一個關鍵詞序列中的某些關鍵詞覆蓋。在我們的模型中,我們透過組合Kt中部分詞向量來計算Ks中的每個關鍵詞Kis的語義匹配向量Ksi’。同理,我們也可以獲得Ksj'。

為了計算語義匹配向量,我們先計算Ks和Kt的相似矩陣Amxn。原論文使用餘弦相似度計算詞彙間的相似程度,我們將其替換為皮爾森相關係數,即Amxn中的每個元素aij是Kis和Kjt的皮爾森相關係數。相對於餘弦相似度,皮爾森相關係數考慮了對均值的修正操作,對向量進行了去中心化,其計算公式如公式(2-6)所示

基於關鍵詞及問題主題的問題相似度計算

基於關鍵詞及問題主題的問題相似度計算

透過Amxn我們可以找到Kt中同Kis最相關的詞彙Kjt,我們用Kjt及其上下文的詞向量的加權平均來表示Kis。其中,權值為相應向量與Kis的相似度。因此利用Amxn可以定義計算語義匹配向量的函式fmatch:

基於關鍵詞及問題主題的問題相似度計算

其中,k = argmaxj aij,w是以k為中心的視窗大小。

2.2.3矩陣分解


在語義匹配模組之後,我們得到了語義匹配向量Ki's和Kj't。以Kis為例,我們認為Ki's是Kt對於Kis的語義覆蓋。然而,Ki's和Kis在語義上一定有所不同,因此我們要將兩者相同部分以及相異部分提取出來。

為此,我們選擇了一種線性分解的方式。若Ki's和Kis語義越相似,則越大比例的Kis被分解到相似向量Ki+s。與原論文的餘弦相似度不同,我們使用Ki's和Kis的皮爾森相關係數a作為線性分解的權值。接著,我們根據a對Kis進行分解。公式(2-8)給出了相關的定義:

基於關鍵詞及問題主題的問題相似度計算

基於關鍵詞及問題主題的問題相似度計算


2.2.4矩陣合併


透過對Ks和Kt分解,我們得到相似矩陣

基於關鍵詞及問題主題的問題相似度計算

和相異矩陣

基於關鍵詞及問題主題的問題相似度計算

這一步的目標是利用這些資訊對問題S和T進行建模。由於相似矩陣和相異矩陣間有很深的聯絡,因此我們使用雙通道的CNN模型對K+s和K-s進行建模,得到問題S和T的特徵向量Fs和Ft。

CNN模型包括兩個連續的層:卷積層和最大池層。我們在卷積層設定了一組過濾器{w0, w1},分別應用在相似通道和相異通道上,來生成一組特徵。每個過濾器的規模是d x h,d是詞向量的維數,h是視窗的大小。公式(2-9)表示了這個過程:

基於關鍵詞及問題主題的問題相似度計算

其中操作A*B將B中所有元素按A中相應的權重加權求和。K+s[i:i+h]和K-s[i:i+h]表示將K+s和K-s分片,bc是偏移項,f是非線性函式(我們使用函式)。透過卷積層我們得到一組特徵

基於關鍵詞及問題主題的問題相似度計算

特徵的數量取決於過濾器的規模以及輸入關鍵詞序列的長度。為了解決特徵數量不固定的問題,我們對進行最大池化的操作。我們選取中最大的值作為輸出,即

基於關鍵詞及問題主題的問題相似度計算

因此,經過池化操作後,每組過濾器生成一個特徵。最後特徵向量的維數將取決於過濾器的數量。


2.3問題主題間的相似度計算


由於提取的關鍵詞無法保證完全正確,基於關鍵詞的CNN模型會不可避免地遺漏一些資訊。而主題資訊是判斷問題相似的重要依據,因此我們利用主題間相似度來輔助模型進行判斷。對於問題S的主題Ts,我們用詞向量Ts表示中的每個詞彙,即Ts = [Ts0, …,Tsn ]。我們將Ts中所有詞的詞向量求和作為Ts的向量表示

基於關鍵詞及問題主題的問題相似度計算

同理,我們也得到了Tt的向量表示。我們用皮爾森相關係數來表示兩者的相似度。

基於關鍵詞及問題主題的問題相似度計算


2.4問句相似度計算


我們依靠基於關鍵詞間相似及相異特徵的CNN模型生成的問題和的特徵向量和以及問題主題間的相似度計算問題和的相似度Simtopic。如公式(2-11)所示,我們使用一個線性模型將所有的特徵加權相加,其中w0, w1, w2是相應的權重向量,bsig是偏移項。最後我們用sigmod函式將計算結果限制在[0, 1]的區間內。

基於關鍵詞及問題主題的問題相似度計算


3、實驗

為了證明我們提出的模型的有效性,我們在SemEval2017[8]的評測語料上進行了實驗。SemEval2017的任務三子任務B[8]的主題是社群問答中問題相似度計算。給定一個新提出的問題和10個由搜尋引擎確定的相關問題,我們要依據問題間的相似度對相關問題進行重排序。該任務對相關問題設定了三個標籤,分別為:PerfectMatch,Relevant和Irrelevant。我們認為標記為PerfectMatch和Relevant的是正例(不區分PerfectMatch和Relevant),標記為Irrelevant的是負例。我們需要將標記為正例的問題排在標記為負例的問題的前面。最後依據MAP值對系統進行評價。

我們將我們提出的模型同SemEval2017的評測結果進行比較,實驗結果如表3-1所示:

基於關鍵詞及問題主題的問題相似度計算

從表中我們可以看出,我們的模型要優於評測中最好的模型,更遠遠優於基於IR的基礎模型。但是,我們的模型仍有一些不足。首先,由於關鍵詞提取技術的準確度不夠,我們無法保證是否有關鍵資訊遺漏。同時以關鍵詞序列作為神經網路的輸入破壞了問題的結構,我們無法利用問題結構上的資訊來判斷問題相似性。第三點,我們使用使用者提供的問題主題間的相似度作為輔助判斷的依據,但使用者提供的主題可能太過簡略,無法幫助甚至會阻礙我們判斷問題相似。

4 結論及下一步展望

我們提出了一種基於關鍵詞間相似及相異資訊的CNN模型去計算社群問答中問題相似度。同時,我們將問題主題間的相似度特徵融入到模型中,以輔助模型進行判斷。我們在SemEval2017的評測語料上進行了實驗,並超過了現有的結果。下一步我們將嘗試更多不同的關鍵詞抽取演算法以及不同的神經網路模型。同時,我們還會嘗試在模型中融入主題模型來替代問題主題相似度。


Reference

[1]. 張中峰,李秋丹. 社群問答系統研究綜述[J]. 電腦科學,2010,(11):19-23+54.

[2]. Wang Z, Mi H, Ittycheriah A. Sentence Similarity Learning by Lexical Decomposition and Compos-ition[J]. 2016.

[3]. 王煦祥. 面向問答的問句關鍵詞提取技術研究[D].哈爾濱工業大學,2016.

[4]. Mihalcea R, Tarau P. TextRank: Bringing order into texts[C]. Proceedings of EMNLP, 2004. 4(4): 275.

[5]. Wang R, Liu W, McDonald C. Corpus-independent Generic Keyphrase Extraction Using Word Embedding Vectors[C]. Software Engineering Research Conference. 2014: 39.

[6]. Zhang W, Ming Z, Zhang Y, et al. The Use of Dependency Relation Graph to Enhance the Term Weighting in Question Retrieval[C]. COLING. 2012: 3105-3120.

[7]. Pennington J, Socher R, Manning C. Glove: Global Vectors for Word Representation[C]// Conference on Empirical Methods in Natural Language Processing. 2014:1532-1543.

[8]. Preslav Nakov, Doris Hoogeveen, Llu´ ıs Marquez,`Alessandro Moschitti, Hamdy Mubarak, Timothy Baldwin, and Karin Verspoor. 2017. SemEval-2017 task 3: Community question answering. In Proceedings of the 11th International Workshop on Semantic Evaluation. Association for Computational Linguistics, Vancouver, Canada, SemEval ’17.


本文來源於哈工大SCIR

原文連結點選即可跳轉

基於關鍵詞及問題主題的問題相似度計算


相關文章