曲昭偉,吳春葉,王曉茹
(1. 北京郵電大學 網絡技術研究院,北京 100876; 2. 北京郵電大學 計算機學院,北京 100876)
隨著互聯網的發展,用戶逐漸借助網絡平臺來發表自己對于產品和服務的意見。這些評論往往由句子組成的短文本的形式出現,涉及產品的一個或者多個方面意見。因此句子級別的觀點挖掘[1]任務一直是研究的熱點。觀點由4個元素組成:方面、持有者、觀點內容及情感。這四者之間所存在的聯系為:觀點的持有者針對某一方面發表了具有情感的觀點內容。方面提取[2]是觀點挖掘任務的子任務之一。簡短專注于觀點句子中的實體部分提取,例如:“口味很好,服務周到,值得推薦”。這里的“口味”和“服務”就是方面術語,在方面提取中又涉及兩個子任務:1)提取評論句子的黃金方面也叫做主體方面,是評論中各個方面表示的總稱,例如美食評論包括黃金方面“食物”“服務”等,黃金方面“食物”包含多種多個方面表示詞如“味道、口味”等;2)從評論語料庫中學習所涉及的方面表示詞。
近年來,潛在狄利克雷分布(LDA)[3]及其變種[1,4-5]已成為用于方面提取的主導無監督方法。LDA將語料庫建模為主題(方面)的混合,并將主題作為詞類的分布。盡管基于LDA的模型發現的各個方面可能會很好地描述一個語料庫,但發現提取出的各個方面質量差,通常由無關或松散相關的概念組成。因為基于LDA的模型需要估計每個文檔的主題分布,但是評論語句通常是由句子組成的短文本,對于主體分布的評估造成困難,所以效果不好。
監督學習的方法是近年來流行的研究方法,深度學習中卷積神經網絡(convolutional neural network, CNN)[6-7]被應用于方面提取任務,并展現出卓越的效果。文獻[8]提出一種基于7層深度卷積網絡的模型來對句子進行標記訓練,從而對評論進行方面提取,而且效果比較理想。然而,監督學習需要大量的標注文本作為訓練數據,人工標簽成本太高,而且主觀性太強。
本文利用提出了一種新的半監督自訓練的方法確定黃金方面[9]后利用少量標注的方面種子詞,在未標簽數據集上提取方面表示相似詞,建立多個方面表示詞集合,解決方面表示詞集問題,利用豐富的方面詞集合來識別文本的,能夠避免大量的人工標注,并且本文方法在實際中文數據集和英文數據集上都產生了理想的效果。對實際的數據集進行了如下3個方面的研究:
1)根據研究評論數據,發現評論的針對性很強,基本是針對某項產品或者服務給出自己的體驗和建議。而且數據結構具有鮮明的產品特色,句子語言簡短觀點明確,會經常使用到明顯的方面表示詞來發表意見。
2)評論往往涉及一個或者多個方面,以下一個簡單的例子來自美團網(http://bj.meituan.com/meishi/)美食評論數據來說明研究的意義。例如:“口味清淡,服務員態度很好,就是價格有點貴”。這句評論涉及了對餐廳食物的“口味”“服務”以及“價格”3個方面的評價,而且對于不同的方面給出了不同的意見。采用方面表示向量來對涉及的方面進行向量表示。方面提取作為觀點挖掘的第一步,來確定評論涉及的多個方面。
3)考慮到評論中涉及的含蓄表達,例如:“還挺好吃的,排隊等了半小時,不過還是很好吃”。句子中并沒有明確的方面表示詞,但是根據關鍵詞“好吃”可以確定是針對食物的方面意見。針對這種沒有明確方面表示名詞的提取方面形容詞來識別方面。
基于以上的研究,本文提出的半監督自訓練方法能夠確定方面表示詞并且自動對評論進行方面識別。首先通過計算數據集中每個詞的TFIDF值,確定數據集的黃金方面,進一步從部分標簽數據中獲取方面表示種子詞,利用詞向量模型在實際未標簽的數據集中尋找相似詞,獲得的與種子詞相似的方面表示詞,補充到對應的黃金方面詞典里,擴充方面詞典。并對目標文本進行方面識別,得到文本的方面表示向量。
方面提取[10]是觀點挖掘任務的基礎性工作,在過去的十幾年間,許多學者已經在方面提取上做了很多研究工作。主要專注于兩個方向的研究,無監督和有監督方法方面提取過程可看作一個文本序列標注問題,因此可利用帶監督的統計模型對序列標注過程進行訓練從而提取句子的方面表示。適用此問題的典型帶監督學習的方法有隱馬爾可夫模型(hidden Markov model, HMM)[10]、條件隨機場模型(conditional random rield,CRF)[11]等,文獻[10, 12-14]采用一種編入詞匯的HMM模型來提取顯式方面。 最近,提出了不同的神經模型[15-16],以自動學習基于CRF的方面提取的特征。但是監督學習需要大量的標簽數據作為訓練集,數據標注需要耗費大量的人力成本。
無監督的學習方法可以避免標簽依賴問題。潛在狄利克雷分布(LDA)[3]已成為方面提取的主導無監督方法。LDA將語料庫建模為主題(方面)的混合,并將主題作為詞類的分布。雖然基于LDA的模型挖掘到的各個方面得到一個很好的描述,但提取出的各個方面質量不好,通常由無關或松散相關的概念組成。因為基于LDA的模型需要估計每個文檔的主題分布,但是評論語句通常是由句子組成的短文本,對于主體分布的評估造成困難。文獻[17]以Apriori算法為基礎采用關聯規則挖掘方法找出頻繁出現的名詞并名詞短語作為候選方面,然后,將錯誤的詞語通過剪枝算法進行過濾,最終形成方面集合。大多數方法是基于LDA,文獻[18]提出了一個生成共現詞對的主題模型(BTM)。
半監督模型在方面提取中既避免了大量的文本標注,也可以利用數據的內部大量的信息來進行方面提取。文獻[19]提出了兩個半監督模型:SAS(seeded aspect and sentiment model)和MESAS(maximum entropy-SAS model)。SAS 是個混合主題模型在提取方面后提取觀點內容,后者將方面與內容聯合提取。同時,模型中加入相應種子詞匯,但是可移植性較差。
本文提出的基于半監督自訓練的方法進行方面提取,不僅避免監督學習中的大量的標簽數據依賴問題;而且,解決了無監督主題模型中存在的短文本的方面提取結果不穩定的問題,并且在中文和英文數據集上都產生很好的性能。
自訓練的過程中從未標簽的訓練數據集上學習到貼近數據集合的方面表示詞。首先計算數據集單詞的TF-IDF,并對結果進行排序以便確定黃金方面。對于確定的黃金方面結果,隨機選擇少量的數據進行人工方面標注,從標注結果中選取黃金方面表示詞作為方面表示種子詞。基于方面種子詞,利用詞向量模型進行方面表示詞學習,擴充方面表示詞集合。利用新生成的集合對部分標簽數據進行方面識別驗證,并生成對應的方面向量。直到交叉驗證的結果的正確率不再上升,則得到了最終的方面表示詞集合。自訓練模型架構如圖1所示。

圖 1 自訓練模型架構Fig. 1 Self-training model architectural overview
為了獲得數據集上的黃金方面,計算了數據集中單詞的TF-IDF值。用以評估一個單詞對于一個語料庫中的其中一份文檔的重要程度。單詞的重要性隨著它在該文檔中出現的次數增加,但同時會隨著它在語料庫中出現的頻率下降。其中詞頻(term frequency, TF)指的是某一個給定的詞語在該文件中出現的次數,逆向文件頻率(inverse document frequency, IDF)是一個詞語普遍重要性的度量。某一特定詞語的IDF,可以由總文件數目除以包含該詞語之文件的數目,再將得到的商取對數得到。對于在某一特定文件里的詞語ti來說,它的重要性可表示為

式中:ni,j是該詞ti在文件dj中出現的次數,而分母是在文件dj中所有單詞出現次數之和。逆向文件頻率是一個詞語普遍重要性的度量。某一特定詞語的IDF,可以由總文件數目除以包含該詞語之文件的數目,再將得到的商取對數得到:


為了獲得方面表示詞集合,引入詞向量模型,利用模型學習到與數據集相關的豐富準確的方面表示詞集。在每次方面詞的學習過程中計算與已經確定的詞集合的相似性,保留每個方面不重復的前10個詞,擴充方面詞典,學習的過程在交叉驗證結果的正確率下降前停止。這是一個自訓練的過程,來確定方面表示詞集。因此,構建詞向量[20]模型是非常重要的。

模型參數可以通過最小化交叉熵規則化損失函數來擬合:

模型參數θ包括嵌入層矩陣C的元素和反向傳播神經網絡模型g中的權重。這是一個巨大的參數空間。

圖 2 詞向量生成模型Fig. 2 Word embedding generation model
為了從上下文中預測目標詞的過程中學習詞向量。Skip-gram[21-22]模型的正向計算在數學上構造為

考慮到上下文,目標單詞屬于一個子集的概率服從以下邏輯回歸函數分布:

劃分子集并重復上面的過程,使用二叉樹可以獲得logV的深度。葉節點逐一對應原始字典詞,非葉節點對應于類似類集的詞。從根節點到任何一個葉節點只有一條路。同時,從根節點到葉節點的方式是隨機游走過程。因此,可以基于這個二叉樹來計算葉節點出現的概率。例如,如果樣本及其二叉樹中的目標詞編碼為則似然函數為

每個項目是方程中的邏輯回歸函數,并且可以通過最大化似然函數來獲得非葉節點向量。一個詞條件概率的變化會影響其路徑中所有非葉節點的概率變化,間接影響其他詞匯出現在不同程度的條件概率。因此,為了準確地獲得方面詞的向量,n(黃金方面數)個skim-gram模型構建并輸入已經由模型上一次迭代產生的數據。該模型的n個部分分別基于n個語料庫構建詞向量,避免了詞向量的交互。單詞嵌入可以很容易地獲得類似的單詞。
本節描述實驗的建立過程,以及本文實驗在實際的中文和英文數據集的效果,并且與已有的經典方法進行對比,最后對實驗結果進行了分析評估。
數據集:采用一個中文數據集和一個英文數據集來評估本文方法。對于中文數據集,爬蟲從美團網獲取的71萬條美食評論。英文的公共數據集Citysearch corpus是一個餐館評論語料庫,以前的研究文獻[5, 23-24]也廣泛使用,其中包含超過5萬個來自Citysearch New York的餐廳評論。文獻[23]還提供了一個從語料庫中手工標記的3 400個句子的子集。這些有標簽的句子用于評估方面識別。有6個手動定義的方面標簽:Food、Staff、Ambience、Price、Anecdotes、Miscellaneous,數據集分布見表1。

表 1 數據集描述Table 1 Data set description
數據預處理:為了獲得中文方面表示詞的集合,將隨機選擇的1 500份美食評論平均分成5組,5位評估者被要求按照涉及的方面進行手動標注評論。所有的中文評論都被分詞工具jieba分割。并且去除標點符號和停用詞。英文數據集只選取了Food、Staff、Ambience三個方面黃金方面的數據,去除停用詞和標點符號,并且把單詞的變形轉換成最原始的形態。2個數據集的單詞分布結果見表2,黃金方面和部分方面表示詞的示例見表3。
基準方法:為了評估本文模型,選擇了兩個基準方法。

表 2 數據單詞集描述Table 2 Data word set description
LocLDA[23]:該方法使用了LDA的標準實現。為了防止全局主題的提取并將模型引向可評價方面,將每條評論作為一個單獨的文檔處理。模型的輸出是對數據中每條評論的方面分布。
SAS[19]:該方法是一個混合主題模型,在用戶感興趣的類別上給定一些種子詞,自動地提取類別方面術語。這個模型在已知的主題模型上,對于方面提取具有很強的競爭性。

表 3 黃金方面和部分方面表示詞Table 3 Gold aspects and representative words
評估方法:把每個方面識別的過程看作一個二分類的過程,因此方面提取的效果通過precision、recall率和F13個指標來衡量,precision=對于每個二分類過程,存在4種可能的情況,正類被預測成正類(TP),負類被預測成正類(FP),負類被預測成負類(TN),正類被預測成負類(FN)。
對于英文餐廳的數據集,評估“Food”“Staff ”和“Ambience”3個主要方面,因為其他方面的數據在詞語使用或寫作風格上都沒有表現出明確的模式,這使得這些方面甚至很難被人類識別。中文數據集評估了“食物”“價格”“服務”和“環境”4個方面,根據計算數據集的各單詞的TF-IDF來確定數據集的黃金方面。本文模型在英文數據集和中文數據集上的結果如表4、表5和圖3、圖4所示。
通過圖表的對比可以觀察到:1)在英文數據集上,本文方法(AESS)在3個方面的召回率都高于其他方法,本文方法在員工和環境方面識別的F1分數高于其他2種方法。AESS食物的F1比SAS差,但其召回率非常高。分析了原因,發現大多數句子沒有提及到味道或者食物的名詞。例如,“挺好吃的”這個句子的真實標簽就是食物。
2)在中文數據集上,本文方法(AESS)在食物、價格和環境方面識別的F1分數高于其他方法,4個方面的召回率都高于其他方法。本文方法在中文數據集上明顯優于其他2種方法,可能的原因有中文數據集是具有特色的美食評論數據,中文在語法表達上和英文不同,語句簡短甚至沒有固定的語法,對于主題提取比較困難,基于數據集創建詞典,避免這類問題,因此效果比較好。

表 4 3種方法在相同的英文數據集上的3個黃金方面確定的結果對比Table 4 Comparison of results determined by the three methods on the three gold aspects of the same English data set

表 5 3種方法在相同的中文數據集上的4個黃金方面確定的結果對比Table 5 Comparison of results determined by the three methods on the four gold aspects of the same Chinese data set

圖 3 3種方法在相同的英文數據集上的3個黃金方面確定F1結果對比Fig. 3 The F1 results that three methods determine the three gold aspects on same English data set

圖 4 3種方法在相同的中文數據集上的4個黃金方面確定結果對比Fig. 4 The F1 results that three methods determine the four gold aspects on same Chinese data set
本文提出一種基于半監督自訓練的方面提取方法,避免了監督學習的標簽數據依賴問題,并且在方面提取的結果中解決了以往無監督模型的方面聚類效果不一致的問題。本文有3個方面的貢獻:1)人工標注少量的方面,作為方面表示的種子詞,利用詞向量獲得與語料相關的豐富的方面表示詞典集合,確定方面表示單詞集合,解決方面表示單詞確定的困難;2)通過計算數據集單詞的TF-IDF值來確定數據集黃金方面,對每個句子進行多個方面的識別,并采用方面向量表示文本的包含的方面;3)本文方法同時應用到中文美食評論和英文公開評論數據集,并對比了兩種經典的方面提取方法。但是本模型對單詞種子詞比較敏感,未來可以進一步在方面提取的基礎上基于方面對內容進行挖掘,將具有更重要的意義。