高瑋軍,朱 婧,趙華洋,李 磊
蘭州理工大學 計算機與通信學院,蘭州730050
隨著電子商務的不斷發(fā)展,網(wǎng)購商品的范圍從圖書、服飾、電子產(chǎn)品等實物,擴展到美食、電影票和酒店住宿等生活服務類,網(wǎng)上預訂酒店成為了人們的普遍行為。為了給用戶提供更好的參考價值,大量的在線酒店預訂平臺開放了評價功能,允許用戶發(fā)表個人體驗觀點。隨之而來的是網(wǎng)絡上酒店評論信息迅速增長,海量的評論信息造成了信息過載問題。因此,利用文本摘要技術快速準確地從大量酒店評論信息中篩選出適合個人需求的重點內容,不僅能夠提高信息利用率,而且能夠節(jié)省消費者的時間。
酒店評論摘要生成是對網(wǎng)絡上的酒店評論信息理解并概括出評論的主要內容。主要的研究方法通常分為兩類:抽取式摘要和生成式摘要。抽取式方法是直接從評論中抽取重要的句子和短語拼接成摘要[1-2],這種方法生成的摘要存在語句冗余、語義不連貫等問題;生成式方法則是通過理解評論內容生成原文中未出現(xiàn)的新詞語組成摘要[3-4],生成式摘要更接近人類摘要的習慣。
隨著深度學習的不斷發(fā)展,基于神經(jīng)網(wǎng)絡的生成式摘要[5]已經(jīng)成為當前研究的熱門領域。目前酒店評論摘要常用的生成式摘要方法主要是基于Seq2Seq的神經(jīng)網(wǎng)絡模型[6],該模型主要是將不定長的源文本序列壓縮為一個向量,然后通過解碼生成摘要,但對于長文本內容,在壓縮過程中會造成信息丟失的情況。2017年Google團隊提出了Transformer網(wǎng)絡結構[7],該結構不僅改善了RNN不能夠進行并行計算和長文本信息丟失的缺陷,而且解決了CNN不能夠處理非定長序列的問題。
為了獲得更高質量的酒店評論摘要,本文提出了一個基于TRF-IM模型的個性化酒店評論摘要生成方法。該方法基于Transformer譯碼器構建的生成式摘要模型,在考慮評論內容的基礎上引入了用戶角色的個性化特征來生成酒店評論摘要。該方法主要包含以下幾個步驟:首先對酒店數(shù)據(jù)集進行加入先驗知識等預處理操作,并統(tǒng)計獲取不同角色類型的個性化詞;然后對酒店評論數(shù)據(jù)集中的源評論和摘要進行詞嵌入編碼,同時對個性化詞也進行編碼,通過自注意力機制融入個性化詞和該詞所在的句子獲得個性化特征的文本語義表征;其次,將源評論序列、個性化詞特征和摘要序列進行拼接,并學習到序列的向量編碼、位置編碼和段編碼,輸入到Transformer模型中進行建模計算;最后將Transformer得到的輸出經(jīng)過全連接層映射后選取概率分布最大的句子組合作為酒店評論摘要。
綜上所述,本文的研究工作主要包括以兩個方面:
(1)該方法在Transformer譯碼器的基礎上結合了個性化特征,從用戶類型的角度有針對性地關注酒店評論內容的不同方面。
(2)對Transformer結構中的掩碼方式做了改進,將源評論和個性化詞里的基本字符單位都設置為可見的,使其能夠學習到更好的上下文語義信息,提高摘要的生成效果。
早期的摘要技術主要是利用句子位置和通過統(tǒng)計詞頻選出句子組成摘要,2004年Erkan等人[8]提出了一種基于隨機圖的方法來計算文本單元的相對重要性,采用基于句內余弦相似度的連通性矩陣作為句子圖表示的鄰接矩陣,在文本摘要提取上取得了良好的效果。隨著深度學習的發(fā)展,Rush等人[9]在2015年首次將序列到序列的生成式模型應用于文本摘要生成,生成式摘要被應用于文本摘要的各個方面,其中就包括評論摘要的生成。Costa等人[10]設計了一個字符級遞歸神經(jīng)網(wǎng)絡(RNN)模型,根據(jù)用戶對不同商品功能的評級預測評論風格,最終生成文本評論。Tang等人[11]提出了一種基于Encoder-Decoder框架的循環(huán)神經(jīng)網(wǎng)絡模型,首先將上下文編碼為向量,然后將編碼后的向量通過門控機制進行處理,通過解碼最終生成評論摘要。Dong等人[12]提出了一種基于神經(jīng)網(wǎng)絡的屬性到序列模型,針對給定的屬性信息生成評論摘要。蘇放等人[13]提出了一種改進局部注意力機制的序列到序列模型,使其更好地關注源評論內容的特殊位置,從而獲得高質量的評論摘要。周健等人[14]提出了一種改進Sequence-to-Sequence模型的文本摘要生成方法,該方法通過改善輸入文本的語言特征信息,并引入復制機制解決摘要生成中未登錄詞的問題。Akhtar等人[15]從網(wǎng)上爬取酒店評論數(shù)據(jù)并根據(jù)相同的特征將其分類,然后利用主題建模技術(LDA)識別隱含信息,對分類句進行情感分析并生成摘要。Wang等人[16]提出了一個用戶偏好感知的評論生成模型來考慮用戶偏好,在編碼時采用了用戶的選擇機制來選擇重要的評論信息,解碼時根據(jù)用戶偏好預測單詞生成不同的評論摘要。Jiang等人[17]提出了一個綜合的評論摘要生成框架來處理有監(jiān)督和無監(jiān)督場景,設計了重新排序模型和選擇模型兩種預處理模型,使用Encoder-Decoder模型為監(jiān)督場景生成評論摘要,并消除所選評論集句子冗余以生成無監(jiān)督場景摘要。
研究表明,現(xiàn)有的評論摘要模型主要是基于RNN的Seq2Seq模型為基礎進行優(yōu)化改進的,盡管先前的研究已經(jīng)取得不錯的成果,但是由于RNN存在長距離依賴和無法并行計算的缺點,會造成生成的摘要關鍵信息丟失的情況,同時沒有考慮不同角色類型的用戶對評論摘要的影響,導致生成的摘要存在評論內容提取不精準、摘要內容不充分、不貼近用戶體驗的情況。酒店評論摘要是評論摘要中的一個分支,對其研究也存在相同的問題,對此本文從TripAdvisor網(wǎng)站收集了酒店評論數(shù)據(jù)集,并提出了一種基于TRF-IM模型的個性化酒店評論摘要生成方法,使用Transformer譯碼器結構作為基線模型,通過改進模型網(wǎng)絡中的掩碼操作,解決了語境不足問題;并引入了用戶角色的個性化詞特征信息,使其生成高質量的個性化酒店評論摘要。
2.1.1 引入先驗知識的文本預處理
為了更好地提取評論內容的個性化特性,本文對評論文本進行預處理,過濾停用詞,處理拼寫錯誤,并且通過使用自然語言處理工具對源評論內容中的每個單詞進行詞性標注,對源評論內容中的人名、地名和組織機構名進行了命名實體識別,將這些詞特征作為先驗知識加入到模型訓練中。在語言層加入先驗知識進行更深層次的特征提取,能夠加快模型的收斂速度,提高模型性能。
2.1.2 個性化詞統(tǒng)計
不同角色類型關注酒店的不同方面,同一種角色的評論中可能會存在客戶之間共同關注的個性化詞,因而在生成摘要的過程中引入個性化詞是很有必要的。通過TF-IDF(term frequency/inverse document frequency)算法獲取評論的個性化詞,其公式如下:
通過在同組用戶所發(fā)表的評論摘要中計算每個單詞的TF-IDF分數(shù),選擇出不同客戶類型的前N個個性化詞。
表1展示了不同角色類型的旅行者對于酒店評論的前4個個性化詞,從中發(fā)現(xiàn)這些詞可以很好地反映不同的用戶角色類型。例如,單人旅行者對于酒店的評論內容中常出現(xiàn)“hostel”“cheap”“budget”和“safe”等個性化詞,說明單人旅行者在選擇酒店時常關注酒店的價格以及安全性;而商務人士則經(jīng)常考慮酒店是否適合開會。
表1 個性化詞分布Table 1 Personalized word distribution
2.1.3 個性化詞特征向量
本文在個性化詞的基礎上查找到與本詞對應的句子,通過自注意力機制計算源評論中該句對摘要結果的重要性權重,將個性化詞向量與對應句子的重要性權重結果相加,得到最終輸入評論內容的個性化詞特征向量矩陣。圖1展示了計算模型結構圖。
圖1 個性化詞特征向量計算結構圖Fig.1 Calculation structure of personalized word feature vector
本文選擇Transformer譯碼器部分作為網(wǎng)絡的基線模型,去除了譯碼器中與編碼器交互的注意力機制子層。核心思想是把酒店評論摘要問題作為一個語言建模任務,首先將源評論文本,個性化詞特征和評論摘要進行拼接形成輸入序列,然后輸入到改進掩碼方式的Transformer網(wǎng)絡層中,最終經(jīng)過全連接層映射輸出得到摘要句。具體的網(wǎng)絡模型分為3個模塊,分別是輸入表示模塊、Transformer模塊,以及摘要輸出模塊。圖2展示了具體模型架構圖。
圖2 TRF-IM模型Fig.2 TRF-IM model
2.2.1 輸入模塊
輸入的源評論序列表示為X=[x1,x2,…,xm],發(fā)表評論用戶角色類型對應的個性化詞特征序列表示為U=[u1,u2,…,uk],對應的參考摘要序列表示為Y=[y1,y2,…,yn],然后使用特殊標記將這些表示組合拼接,并對其進行詞嵌入(word embedding)編碼,得到串聯(lián)序列T表示為:
其中,<SOS>表示開始符號,<SEP>表示分割符號,<EOS>表示摘要的結束符號。
由于Transformer中的Self-Attention本身沒有位置信息,所以需要對輸入序列引入位置編碼P,其表示為:
同時,為了區(qū)分源評論序列,個性化詞特征序列和目標序列,引入段編碼S。其初始化表示形式為:
其中,α表示源評論序列部分,β表示個性化詞特征序列部分,γ表示摘要序列部分。
最后,結合以上3個編碼向量作為最終的輸入向量。
2.2.2 Transformer模塊
模型中的Transformer層是由N個Decoder層疊加而成的,這里的Decoder層去除了與編碼器交互的注意力子層。每個Transformer層包括兩個子層:分別是多頭自注意力機制子層和前饋神經(jīng)網(wǎng)絡子層。多頭自注意力機制子層的掩碼操作是為了控制在預測過程中關注多少上下文信息;前饋神經(jīng)網(wǎng)絡子層是為了提取到向量更強的表征能力,并映射到激活函數(shù)進行激活。
Transformer模型結構所用到的原始掩碼方式為casual掩碼,對于源文本序列只能學習到從左到右的單向語義信息,忽略了上下文語境,不能很好地學習到上下文語義信息。
不同的掩碼方式在預測詞時所關注的語義信息不同。為了更好地理解源評論內容,提升評論摘要生成的效果,如圖3所示,對mask方式進行了修改,白色方框部分表示需要的語境信息,保證源評論序列S1和個性化詞特征序列S2都能夠學習到上下文語義信息;灰色方框部分表示為需要隱藏的數(shù)據(jù),對這些數(shù)據(jù)進行掩碼操作,使摘要預測生成時只考慮自身之前的語義信息。掩碼操作的步驟是:(1)對源評論序列S1和個性化詞特征序列S2中的mask矩陣設置為全0,表示在計算時可注意到包括自身在內的所有原文內容。(2)對于摘要S3中的右上角的mask矩陣設置為無窮大,往下的右上角也設置為無窮大,其他值為0,表示生成摘要時只能注意到自身及其之前的信息。公式如下:
圖3 改進的掩碼方式描述圖Fig.3 Improved mask description diagram
Transformer層的輸入是由三部分編碼向量組成,具體描述公式如下:
其中,T表示詞向量,P表示位置向量,S表示段向量,Wt、Wp、Ws為可訓練權重。
將輸入向量H0輸入到Transformer層,經(jīng)過N層Transformer子模塊,計算公式如下:
在Transformer層中,Mask Multi-Head Self-Atttention中的每一個自注意力頭的運算過程如公式如下:
其中Q、K、V為queries、keys和values線性映射,為進行線性映射的權重。
2.2.3 輸出模塊
輸入向量通過Transformer層得到一個隱藏向量HN,將其通過全連接層映射后經(jīng)過softmax層,得到輸出詞匯的概率分布P(y),公式如下:
將輸入序列表示為T=[X;V;Y]=[O;Y],模型訓練時通過建模條件概率分布來對目標序列的單詞進行逐詞預測,直到遇到<EOS>標記。公式如下:
其中,θ表示需要學習的參數(shù)。在模型的訓練階段,使用交叉熵損失函數(shù)作為模型訓練的損失函數(shù):
在預測生成階段,使用集束搜索(beam search)[18]算法進行最終摘要的生成。集束搜索每一步會根據(jù)集束寬度K選擇概率最大的前K個單詞,直到產(chǎn)生終止符<EOS>,它通過每一步的多個最優(yōu)解最后選擇出一個全局最優(yōu)解作為摘要序列輸出。此階段,通過對數(shù)似然函數(shù)對候選摘要進行評分,公式如下:
其中,D表示訓練集集合。
本文以Tripadvisor旅行評論網(wǎng)站上收集相關的酒店評論內容,構建了個性化酒店評論摘要數(shù)據(jù)集,其中包含客戶的評論、標題和客戶類型,將標題作為評論的參考摘要。
表2展示了數(shù)據(jù)集的相關信息。數(shù)據(jù)集中源評論的平均長度為173個單詞,其中句子數(shù)量平均為10句,摘要都為1句,平均長度為7個單詞。
表2 數(shù)據(jù)集相關信息Table 2 Dataset related information
實驗平臺是開源的PyTorch深度學習框架,使用編譯語言Python3.6版本。由于個性化評論摘要生成模型對資源要求較高,因此本文模型使用GPU進行訓練,具體實驗環(huán)境配置如表3。
表3 實驗環(huán)境設置Table 3 Experimental environment settings
在實驗中使用Adam優(yōu)化器對模型進行優(yōu)化,Masked Self-Attention子層的頭數(shù)設置為8,訓練10個epoch。在模型測試時,設置Beam Search的束寬為3。具體實驗參數(shù)如表4。
表4 實驗參數(shù)設置Table 4 Experimental parameter settings
本文選用自動文本摘要通用的評價工具ROUGE(recall-oriented understudy for gisting evaluation)中的ROUGE-1、ROUGE-2以及ROUGE-L這3個指標對模型進行評估,ROUGE的值越高說明生成的摘要效果更接近目標摘要。其中ROUGE-N評價方式是通過比較生成摘要和目標摘要的n-gram重疊數(shù)目;ROUGE-L是基于最長公共子序列的評價標準,要求n-gram是連續(xù)的,考慮了摘要中詞語出現(xiàn)的順序,能夠從句子層面對摘要的質量進行評價。
3.4.1 基準實驗對比分析
為了驗證本文提出的方法在個性化酒店評論摘要上的效果,選取了4種基準模型進行對比實驗,具體模型介紹如下:
(1)LEAD-1:是一種提取式摘要方法,選擇評論中的第一個句子作為摘要。
(2)Seq2Seq+Att[19]:帶有Attention機制的序列到序列模型。
(3)PGN[20]:指針生成網(wǎng)絡模型,通過指向從源文本中復制單詞解決了未登錄詞問題,并且保留了生成器生成新穎單詞的能力。
(4)CopyCat[21]:該模型是一種端到端的無監(jiān)督抽象摘要模型,它使用連續(xù)的隱狀態(tài)表示來建模評論組和個人評論語義,在生成摘要是通過控制新評論的“新穎性”,生成反映共識意見的文本。
(5)TRF-IM*:本文構建的模型,利用Transformer譯碼器結構對評論摘要任務進行建模,通過改進其結構中的掩碼方式,并引入個性化詞特征,使其生成高質量的個性化酒店評論摘要。
從表5可以看出,本文方法與傳統(tǒng)的提取式方法LEAD-1相比,在ROUGE評價指標上獲得了較大的提高,說明基于深度學習的生成式方法與傳統(tǒng)的提取式方法相比具有明顯優(yōu)勢。與生成式方法Seq2Seq+Att、PGN和CopyCat方法相比,TRF-IM的ROUGE得分較高。說明利用Transformer譯碼器結構對評論摘要任務進行建模,通過改進結構中的掩碼方式使評論內容能夠學習到上下文表示,解決了語境不足問題;同時引入個性化詞特征使其生成更符合客戶類型的個性化酒店評論摘要,有效地提升模型效果。
表5 基準模型對比實驗結果Table 5 Benchmark model comparison experiment results 單位:%
3.4.2 消融實驗對比分析
為了驗證本文模型改進掩碼方式和結合個性化詞特征生成評論摘要是有效的,通過以下3種方式進行對比實驗,具體模型介紹如下:
(1)TRF-Casual:本文的基線模型,基于Transformer譯碼器端的生成式摘要模型,使用掩碼方式為Transformer的原始掩碼Casual。
(2)TRF-IM:在本文基線模型上TRF-Casual改進了掩碼方式。
(3)TRF-IM*:在TRF-IM的基礎上引入了個性化詞特征。
從表6中可以看出改進模型的掩碼方式和融入個性化詞特征均能夠提升模型效果,TRF-IM模型相比于基線模型TRF-Casual在ROUGE評分上分別提升了0.46、0.12和0.42,說明了通過改進掩碼方式能夠更好地學習到評論內容的上下文表示,對評論句中的語義信息有更加深刻的理解;TRF-IM*模型相比于TRF-IM模型分別提升了0.99、0.30和0.92,說明融入用戶角色類型的個性化詞特征信息能夠指導生成更符合用戶需求的評論摘要。
表6 消融模型對比實驗結果Table 6 Comparison of ablation model experimental results 單位:%
3.4.3 引入先驗知識實驗對比分析
為了探究加入詞性標注和實體命名識別的先驗知識對于網(wǎng)絡模型的影響,對此進行了對比實驗,實驗結果如圖4和圖5所示。
圖4 TRF-IM模型訓練準確率曲線圖Fig.4 TRF-IM model training accuracy curve
圖5 TRF-IM模型訓練損失率曲線圖Fig.5 TRF-IM model training loss rate curve
根據(jù)實驗結果表明,在基于TRF-IM模型的個性化酒店評論摘要生成模型中加入詞性標注和實體命名的先驗知識,加快了模型收斂的速度并且提高了模型的準確率;對于加入單一詞性標注或實體命名識別的先驗知識相比未加入先驗知識在收斂速度和準確率上稍有提高,說明在模型訓練期間加入詞性標注和命名實體識別構成的額外特征能夠增強模型的個性化詞特征提取能力,提升模型性能。
3.4.4 個性化詞匯量對摘要的影響分析
圖6顯示了個性化詞匯量大小對酒店評論摘要的影響得分,實驗發(fā)現(xiàn)當加入個性化詞特征時,TRF-IM模型得分逐漸提高,說明個性化詞特征可以較好地反映不同的客戶角色類型,能夠更有針對性地選擇與客戶類型相關的詞來構成摘要,提高模型的摘要效果。隨著圖中的曲線逐漸上升,詞匯量數(shù)目到達120個時,ROUGE分數(shù)達到最高值,然后隨著詞匯量的增加ROUGE分數(shù)逐漸減小,說明融入較大的詞匯量會引入大量噪聲使得模型生成摘要的質量下降。因此將客戶類型的個性化詞匯量大小設置為120個。
圖6 個性化詞匯量對模型的影響得分Fig.6 Personalized vocabulary impact score on model
3.4.5泛化性實驗結果分析
為了驗證模型的泛化能力,本文模型在Amazon和Yelp的客戶評論中選擇了酒店評論類數(shù)據(jù)集進行泛化性實驗測試,實驗結果如表7、8所示。
表7 Amazon數(shù)據(jù)集上的ROUGE分數(shù)Table 7 ROUGE score on Amazon datasets 單位:%
由表7和表8可知,本文的TRF-IM模型在Amazon和Yelp的酒店評論數(shù)據(jù)集上均優(yōu)于其他模型,說明本文提出的TRF-IM模型在個性化酒店評論摘要生成上具有較好的應用價值,通過本文模型生成的個性化酒店評論摘要,一方面客戶能夠從大量評論中迅速找到適合自身的有價值的信息;另一方面,商家能夠從不同類型角色的評論中改進酒店的不同方面,從而改善酒店的客戶體驗;同時,基于TRF-IM模型的個性化酒店評論摘要生成模型也可以運用于個性化推薦系統(tǒng)領域。
表8 Yelp數(shù)據(jù)集上的ROUGE分數(shù)Table 8 ROUGE score on Yelp datasets 單位:%
3.4.6 摘要實例對比分析
根據(jù)表9生成的案例可以看出,傳統(tǒng)的提取式方法Lead-3模型與生成式模型效果差距很大,主要是由于酒店評論數(shù)據(jù)集中,第一句很少涉及到中心主題,導致提取的摘要效果不佳。表中用下劃線標出了客戶類型為商人所關注的個性化詞,案例中的參考摘要是“a proper business hotel”,說明這家酒店適合商務人士預定,而其他模型都無法關注到“business”這一點,本文的TRF-IM模型引入了客戶類型的個性化詞特征來引導摘要生成,使模型生成高質量的、滿足用戶需求的個性化酒店評論摘要。
表9 摘要結果實例Table 9 Example of summary results
本文建立了一種基于TRF-IM模型的個性化酒店評論摘要生成模型,該模型在Transformer譯碼器的基礎上,將多頭注意力中的掩碼方式進行了改進,能夠更好地提取源評論的上下文語義信息,改善了傳統(tǒng)模型并行能力不足和長距離依賴缺陷的問題;同時引入了客戶角色類型的個性化詞特征,有效地提高了評論摘要的生成質量。實驗結果表明,TRF-IM模型在個性化酒店評論摘要任務中,生成的摘要包含更多源評論的關鍵信息,更接近目標摘要。
在未來的工作中,將進一步擴展研究數(shù)據(jù),將本文模型擴展到更多的評論摘要場景,提高模型的泛化能力;其次,將嘗試挖掘更多用戶關注的評論要素,多角度提取用戶的個性化詞特征,生成更符合用戶需求的評論摘要。