張宜飛 張 迎 王中卿 王紅玲
(蘇州大學計算機科學與技術學院 江蘇 蘇州 215006)
隨著互聯網的快速發展,產品評論摘要任務已經成為自然語言處理應用的一個重要的研究方向[1]。產品評論摘要一方面可以為潛在用戶提供大眾對某些產品的總體評價情況,使用戶擺脫枯燥、繁瑣的信息檢索和瀏覽工作,從而為用戶的決策提供可靠的依據。另一方面,產品評論摘要可以對產品的評價進行整合,提供一個整體傾向性綜述,從而幫助企業了解自己的優勢和不足,做出合理的調整[2-3]。
產品評論摘要任務的一個關鍵步驟是判斷產品評論內哪些詞語或者句子更具有代表性,更能代表用戶的廣泛意見。傳統的產品評論摘要方法的過程:根據評論句子的文本信息對評論句子的重要性進行評分,然后按照評分大小抽取出產品評論中重要的句子作為摘要[4]。產品評論內的每條評論是某一用戶針對某一商品進行的主觀性評價。這類文本具有文體自由、書寫隨意、錯誤較多等特點[1],這使得在產品評論摘要任務中,僅僅根據評論句子信息很難準確地判斷句子的重要程度。
如圖1所示,目標句子“這里的食物真的很棒,非常新鮮可口。”是Yelp2013數據集中一個餐館對象的評論中的一個句子。如果只考慮目標句子的文本信息,很難判斷該句能否作為摘要句子。但是,如果結合該句所在的上文信息“說實話我沒有在這里遇到我不喜歡的食物……”和下文信息“這里提供非常新鮮的食材,值得一試……”,就能夠很容易地將該句判斷為摘要句。由此可見,產品評論中句子的重要程度與其所在的同一評論內的其他句子內容(上下文信息)密切相關。合理地運用上下文信息能夠極大地提升產品評論摘要任務的效果。

圖1 上下文信息對產品評論摘要的影響示例
為了充分發揮上下文信息對產品評論摘要任務的影響,本文提出一種基于上下文信息的產品評論摘要方法。該方法的特色在于層次化地使用Bi-LSTM[5]神經網絡捕捉產品評論內的句子信息以及同一評論內不同句子之間的上下文信息。具體而言,首先,將同一評論中的每個句子信息分別使用Bi-LSTM神經網絡進行編碼,捕捉單個句子的獨立信息;其次,將同一評論內各個句子的獨立信息進行融合后輸入到一個Bi-LSTM神經網絡中進行編碼,獲取多個句子之間的上下文融合信息;最后,將上下文融合信息輸入到一個全連接層進行訓練,得到各個句子是否為摘要句的概率分布。本文最終選擇概率最大的句子組合作為產品評論摘要。
產品評論摘要任務的主要目標在于對產品評論中的觀點和意見進行挖掘,從而總結出用戶對該產品對象各方面性能的褒貶評價。傳統的評論文摘方法按照實現方式可以分為兩大類:抽取式文摘與生成式文摘。
抽取式評論文摘直接從原始評論中抽取有代表性的詞語、短語和句子構成文摘[6]。Nishikawa等[4]為每個句子分配可讀性和信息性兩種得分,然后運用動態規劃算法根據得分大小選擇得分最高的句子作為產品評論摘要。Ganesan等[7]為輸入的評論信息生成一個文本詞匯圖,并基于圖結構的三種特性(冗余捕獲、間隔子序列捕獲和結構可折疊),將圖中重要的子路徑作為候選文摘,然后對這些子路徑進行評分并選擇其中排序靠前的子路徑文摘片段生成最終的評論摘要。Yu等[8]根據產品的不同方面抽取出評論內對應的短語,然后利用整數線性規劃方法根據短語的屬性選擇最佳短語的子集生成最終的摘要。
生成式評論文摘是利用自然語言理解技術對評論文本進行語法、語義分析,對信息進行融合,并利用自然語言生成技術生成新的摘要句子[9]。Wang等[10]針對對話語料研究了觀點抽取式文摘。他們采用傳統的句子排序和基于圖的方法,同時也考慮了如主題相關性、情感和對話結構等特征來生成文摘。Gerani等[11]提出了基于篇章結構信息的評論摘要方法,該方法將評論信息按照其篇章結構表示成篇章結構圖,然后采用基于模板的自然語言生成框架生成評論摘要。Yang等[12]提出了一種相互關注機制,在編碼端以交互方式學習上下文詞、情感詞和方面詞的表示。在解碼端,將學習到的情緒和方面信息結合到解碼器中并通過注意力融合網絡生成評論摘要。
與生成式文摘相比,抽取式文摘可以避免復雜的自然語言生成問題,是一種領域無關的文摘技術,因而受到自動文摘領域研究者的關注[1]。然而,目前傳統的抽取式評論文摘方法只考慮評論句子本身的信息,忽略了同一條評論中不同句子之間的上下文信息對評論摘要任務的影響。這就導致了文摘存在內容不連貫、冗余信息較多和不能較好地反映總體觀點等問題。
為了解決上述問題,本文采用層次化的Bi-LSTM神經網絡模型將上下文信息加入到評論摘要任務中,以便提高該任務的性能。本文方法具有以下貢獻:(1) 針對產品評論中同一條評論內不同句子之間的相關性,提出一種基于上下文信息的產品評論摘要模型,以便提高評論摘要的準確度。(2) 采用句子到評論的雙層Bi-LSTM神經網絡對產品評論信息進行編碼,聯合學習句子信息和上下文信息,從而提高評論摘要的質量。(3) 采用Attention機制[13-14]更加準確地捕捉評論句子的深層語義信息,進一步提高產品評論摘要任務的性能。
產品評論摘要從定義上說,是從一個產品的所有評論中抽取出一系列有序的能夠代表評論廣泛意見的句子作為該產品的綜合評論[15]。該任務的關鍵是判斷產品評論內各個句子的重要程度,以便抽取出其中的重要內容。由于句子的重要程度不僅與句子本身的語義信息有關,還與句子所在的上下文信息之間存在著緊密聯系[16]。因此,本文提出一種基于上下文信息的產品評論摘要模型,將上下文信息應用到產品評論摘要任務中,從而提高該任務的性能。如圖2 所示,該模型主要分為以下4個部分。

圖2 基于上下文信息的產品評論摘要模型
(1) 句子信息表示模塊:采用Bi-LSTM神經網絡對產品評論中的句子信息進行表示,將句子的文本信息映射為固定維度的向量作為其初始表示。
(2) 注意力機制模塊:采用詞級別的注意力機制學習評論句子中各個詞對句子深層語義表示的貢獻權重,以便得到更加準確的句子深層語義表示。
(3) 上下文信息融合模塊:根據同一評論中不同句子之間信息相關性,將上一步得到的各個句子信息以評論為單位進行深層融合,從而得到上下文融合信息。
(4) 摘要生成模塊:運用得到的上下文融合信息進行摘要句分類,得到各個句子是否為摘要句的概率得分,并選擇得分高的句子生成評論摘要。
對于產品評論內的任意一條評論r,按照其包含的句子信息可分為句子集r={s1,s2,…,sk,…,sr}。對于評論r中的第k個句子sk,對其進行如下處理。
句子嵌入表示:將句子sk視為基于單詞的文本序列進行處理。
sk=[wk1,wk2,…,wkt,…,wkn]
(1)
式中:wkt∈R|V|為句子sk中第t個單詞在字典V中的one-hot表示;n表示文本序列的長度;V表示訓練語料包含的所有單詞中頻度最高的前10 000個高頻詞集合;|V|表示詞典的大小。
本文使用Word2vec模型[17]訓練基于詞的產品評論文本序列得到詞向量矩陣We,然后得到評論句子中各個單詞的嵌入表示:
xkt=We·wkt
(2)
式中:We∈Rd×|V|表示詞向量矩陣,d表示詞向量的維度。最終,句子sk經過嵌入表示為向量:
Esk=[xk1,xk2,…,xkt,…,xkn]
(3)
基于Bi-LSTM的句子信息編碼:本文采用雙向長短記憶網絡(Bi-LSTM)[5]對句子的嵌入表示進行編碼,得到相應的隱含向量表示Hsk,具體過程如下:
(4)
(5)
(6)
Hsk=[hk1,hk2,…,hkt,…,hkn]
(7)

注意力機制是在視覺圖像領域被提出來的一種結構,隨后被應用到各種自然語言處理任務中,并取得了很好的效果[13-14]。注意力機制借鑒了人類視覺系統中的“注意力”原理,將注意力集中在目標對象中最相關的部分,而不是所有內容。利用注意力機制能夠學習到隱層向量之間的權重分布。評論句子中不同單詞包含的語義信息不同,對句子語義信息的貢獻程度是不一樣的。因此,本文使用注意力機制學習句子中不同單詞對句子深層語義信息的貢獻權重,并對句子內各單詞向量進行加權求和得到這個句子的深層語義表示。具體過程如下:
(8)
(9)
ukt=tanh(Ww·hkt+bw)
(10)
式中:Vsk為句子sk的深層語義表示;hkt表示句子sk中第t個單詞的向量表示;akt表示單詞向量hkt對句子sk的注意力權重;ukt表示單詞向量hkt在注意力機制內的隱藏層狀態;tanh是一種非線性激活函數;參數矩陣uw表示語境向量;ukt表示單調向量hkt在注意力機制內的隱藏層狀態;Ww表示中間矩陣;bw表示偏移量,它們都在訓練過程中被隨機初始化并更新。
2.2節給出了商品評論中每個句子經過Bi-LSTM神經網絡和Attention機制后的深層語義表示,這一部分的主要任務是對同一條評論內的各個句子信息進行深層融合,挖掘出同一評論內不同句子之間的聯系。
首先,對同一評論內的句子表示進行簡單拼接。如式(11)所示,得到向量Vr,但是該向量并不能很好地反映同一評論內不同句子之間的聯系。因此,本文進一步采用Bi-LSTM神經網絡對拼接后的向量進行編碼,生成上下文融合信息Hr。如式(12)所示,Bi-LSTM神經網絡能夠捕捉同一評論內不同句子之間的聯系,從而充分考慮上下文信息對句子重要程度的影響。
Vr=Vs1⊕Vs2⊕…⊕Vsm
(11)
式中:⊕表示向量之間的拼接。
Hr=Bi-LSTM(Vr)
(12)

在網絡的訓練過程中,本文采用RMSProp優化算法[19]對網絡的參數進行更新,并使用交叉熵誤差作為損失函數,計算式為:
(13)

最后,將同一評論內不同句子的損失函數的加權和作為基于上下文信息的產品評論摘要模型的損失函數,如下:
(14)
式中:Lossk表示評論中第k條句子的損失;Wk表示評論中第k條句子的損失權重。
本文使用Yelp2013數據集對本文模型的有效性進行驗證。該數據集共包含商戶(Business)、評論(Review)和用戶(User)三種對象。其中:商戶對象表示一些餐館或商店等,主要包含商戶類別、商戶地址、商戶聯系方式、商戶評分和商戶評價等信息;評論對象則表示某一用戶對某一商戶的評價信息,主要包括評論所屬的用戶ID、評論的商戶對象ID、評論的文本信息、評論的評分信息,以及評論所收到的投票數等,其中投票數包含 funny、useful 和 cool 三種投票數,代表其他用戶對該評論內容的認可程度。具體統計數據如表1所列。

表1 Yelp2013數據集統計數據
本文采用ROUGE評價準則[20]對實驗抽取出的摘要進行評價。ROUGE是由ISI的Lin等提出的一種自動摘要評價方法,現被廣泛應用于DUC(Document Understanding Conference)的摘要評測任務中。
ROUGE評測準則基于摘要中N元詞(N-Gram)的共現信息來評價摘要,是一種面向N元詞召回率的評價方法。該評測準則由一系列的評價方法組成,包括ROUGE-1、ROUGE-2、ROUGE-3、ROUGE-4,以及ROUGE-Skipped-N-Gram等,其中1、2、3和4分別代表基于1元詞到4元詞跳躍的N-Gram模型。本文選擇ROUGE-1、ROUGE-2、ROUGE-L和ROUGE-SU4的F值來對實驗抽取出的摘要進行評價。
(1) TextRank:基于圖排序的抽取式摘要算法。該方法把一個商戶評論中的所有句子視作一個圖結構,將評論中的單個句子視為圖中的節點,任意兩句子之間的余弦相似度表示這兩個節點之間邊的權重[21]。然后在圖上使用全局的信息不斷迭代計算商戶評論中各個句子的重要度。最后,按照句子重要度從大到小的順序抽取句子組合作為摘要,直至達到文摘指定的長度。
(2) Bi-LSTM:使用Bi-LSTM神經網絡[5]抽取商戶評論摘要的方法。對于一個商戶評論中的每一條句子sk,首先,用該句子包含的單詞信息構成該句子的嵌入表示Esk;然后,采用雙向LSTM神經網絡對句子的嵌入表示進行編碼,得到相應的隱含向量表示Hsk;最后,將向量Hsk輸入到全連接層,預測出句子是否為摘要的概率分布[P0,P1]。其中:P0表示該句子不是摘要的概率;P1表示該句子是摘要的概率。本文按照P1大小從大到小地選擇句子組合作為摘要,直至達到文摘指定的長度。
(3) Bi-LSTM+Attention:在上述Bi-LSTM方法的基礎上加入Attention機制[13-14],對句子中重要的內容給予更大的關注度,從而更加準確地捕捉評論句子的深層語義信息,提高模型抽取摘要的準確度。
(4) Bi-LSTM+Context:根據同一評論內句子的信息相關性,將同一評論內的所有句子信息組合起來訓練評論摘要模型,同時預測同一評論內各個句子的重要程度。首先,采用Bi-LSTM神經網絡對產品評論中的句子信息進行表示,生成每個句子的獨立信息;然后,將同一評論內的句子信息進行拼接,生成向量Vr;最后,將拼接后的向量Vr輸入到全連接層中,預測出該評論內各個句子是否為摘要句的概率得分,并選擇得分高的句子組合作為評論摘要,直到達到文摘的指定長度。
(5) Bi-LSTM+Context+Attention:在上述Bi-LSTM+Context方法的基礎上加入Attention機制,以便更加準確地捕捉評論句子的深層語義信息,從而進一步提升產品評論摘要任務的性能。
(6) Bi-LSTM+Context+Hierarchical:在上述Bi-LSTM+Context方法的基礎上,進一步采用Bi-LSTM神經網絡對向量Vr進行編碼,以便更加準確地捕捉同一評論內不同句子之間的聯系,充分發揮上下文信息對產品評論摘要任務的影響。
3.4.1數據預處理
本文以Yelp2013數據集中的商戶對象為單位,按照商戶類別和商戶所包含的評論數量選擇了629個評論個數大于100的餐館商戶對象進行實驗。在實驗中,將商戶評論中funny、useful和cool 投票總數最高的那條評論作為該商戶對象的理想評論。對于每個商戶對象本文只保留該商戶的理想評論和10條普通評論進行實驗。最終選擇了其中529個商戶、共5 290條評論、26 450條句子作為訓練集,剩余的100個商戶、共1 000條評論、5 000條句子作為測試集。
本文對于每個商戶做如下處理:首先,對該商戶的每一條評論按照句號、問號和感嘆號等分隔符進行分句。在此,本文限定每條句子包含的單詞數在4~50之間,從而過濾掉過長或過短的句子。其次,通過統計發現訓練集中每個商戶的評論平均包含5 條句子。因此,對于每條評論只保留其前5條句子的信息作為該評論的內容,從而保證每條評論都包含相同的句子數。最后,對于訓練集中的每一個商戶對象,將該商戶的普通評論中與該商戶理想評論相似度最高的10%的句子標記為1,即該句為摘要句子,剩余90%的句子標記為0,即該句為非摘要句子。本文將句子向量之間的余弦值作為句子之間的相似度。
3.4.2實驗參數設置
通過統計發現,訓練集中每個商戶的理想評論平均包含287個英文單詞。因此,本文將最終抽取的評論摘要的最大長度設置為287。本文實驗的所有代碼都是基于Keras深度學習框架進行編寫,運行環境為Linux操作系統。實驗的詳細參數設置如表2所示。

表2 神經網絡中的主要參數設置
本文共進行了3組實驗進行產品評論摘要抽取。實驗1主要與一些經典的抽取式評論摘要方法進行比較,衡量本文提出的基于上下文信息的產品評論摘要模型(CHA)的有效性。實驗2主要是為了分析上下文信息對產品評論摘要任務的影響。實驗3主要是為了分析Attention機制對實驗結果的影響。本文采用ROUGE評價指標對實驗生成的評論摘要與該商戶的理想評論進行結果評測。
3.5.1與基準模型的比較
為了衡量CHA的有效性,本文選取了目前兩種主流的抽取式評論摘要方法,即TextRank和Bi-LSTM方法,與本文模型進行對比分析。實驗結果如表3所示。

表3 對比實驗結果
可以看出:CHA的結果均優于其他方法的結果。與目前主流的TextRank和Bi-LSTM方法相比,在ROUGE-1指標上分別提升了0.009 7和0.013。這說明CHA在產品評論摘要任務上是有效的。
3.5.2上下文信息的影響
為了驗證上下文信息對產品評論摘要任務的影響,本文選取了Bi-LSTM、Bi-LSTM+Context和Bi-LSTM+Context+Hierarchical三個模型進行對比分析。實驗結果如表4所示。

表4 增加上下文信息的實驗結果
可以看出:首先,Bi-LSTM+Context模型將同一評論內的句子信息拼接起來聯合訓練,同時預測同一評論內不同句子的重要性。該方法能夠捕捉到句子信息和其所在的上下文信息之間的相關性,實驗結果在ROUGE評價準則上與Bi-LSTM方法相比,ROUGE-1值提升了0.008。這說明上下文信息對預測句子的重要性有很大的影響。其次,Bi-LSTM+Context+Hierarchical模型采用層級Bi-LSTM神經網絡對產品評論信息進行編碼。與Bi-LSTM+Context模型相比,該方法能夠更加準確地捕捉到同一評論內不同句子之間的上下文信息,實驗結果在ROUGE評價準則上與Bi-LSTM+Context方法相比有了進一步提升。這說明合理地運用上下文信息能夠有效地提升產品評論摘要任務的效果。
3.5.3注意力機制的影響
為了分析注意力機制對實驗結果的影響,本文分別為Bi-LSTM、Bi-LSTM+Context和Bi-LSTM+Context+Hierarchical三個模型添加注意力機制進行對比試驗。其中CHA是本文提出的基于上下文信息的產品評論摘要模型,也是在模型Bi-LSTM+Context+Hierarchical的基礎上添加注意力機制后的結果。實驗結果如表5所示。

表5 增加注意力機制的實驗結果
可以看出:在Bi-LSTM、Bi-LSTM+Context和Bi-LSTM+Context+Hierarchical三個模型的基礎上分別添加Attention機制后,實驗結果在ROUGE評價準則上均有一定的提升,這說明注意力機制能夠對句子中重要的內容給予更大的關注度,從而提高評論摘要任務的效果。
針對產品評論摘要任務面臨的各項挑戰,本文提出一種基于上下文信息的產品評論摘要方法。該方法采用層級Bi-LSTM神經網絡對產品評論信息進行編碼,聯合學習產品評論中的句子信息和上下文信息,充分發揮了上下文信息對產品評論摘要任務的影響。實驗結果表明,本文方法與目前主流的評論摘要方法相比,取得了顯著的性能提升。這也驗證了該方法能夠高效地利用上下文信息來提升產品評論摘要任務的效果。
今后的研究中,將會不斷地完善現有的方法,以便進一步提高產品評論摘要任務的性能。同時,還將對本文方法進行進一步的拓展與探索,嘗試引入產品屬性[22]等信息,從而提高產品評論摘要的質量。