1. 引言
社群問答平臺是社會媒體的重要組成部分,其中蘊含大量與人們生活息息相關的提問及回答文字。從這些社群問答QA對中提取人們對問題的觀點立場傾向性是一個有意思的問題,用自動化方法挖掘某一問題下所有回答針對該問題的立場傾向性,能為人們提供合理、整體的參考資訊。
在現有的研究立場分析的大部分工作中,立場表達針對的物件(target)要麼是實體(entity),要麼是宣告(claim)。不同於以往的立場分析任務,在我們研究的答案立場分析任務中,立場針對的物件是整個問題,需要先理解問題中提問者關心的內容的語義。相比之前的研究問題,更難去建模依賴問題的(target-dependent)回答句表示。
為此,我們提出一種迴圈條件注意力結構(Recurrent Conditional Attention, RCA)。它包含:
問題句、回答句的建模網路,我們使用基於GRU結構的迴圈神經網路分別建模問題句和回答句的語義資訊;
依賴於問題句資訊的回答句表示網路,我們利用注意力機制(Attention)從回答句中提純與問題句有關的表示,降低不相關詞的權重;
通過迴圈閱讀問答對迭代更新真實立場傾向性表示的推敲網路。在迴圈閱讀問題對的過程中,RCA模型交錯提煉問題句、回答句語義表示,挖掘問題句-回答句之間的相互依賴關係,逐步推理獲得回答對於問題真實的觀點傾向情況。
我們人工收集標註了一個13000多條的社群問答立場傾向性資料集。在該資料集上,我們將RCA與多個效能優異的現有立場分析模型進行對比。相比四個強基線模型,我們的RCA模型在macro-f1值平均提高2.90%,在micro-f1值上平均提高2.66%,在Accuracy指標上也顯著優於所有基線模型,證明了我們的模型迴圈閱讀和交錯更新結構的有效性。
2. 問題定義
這裡,我們給出AnswerStance classification(回答立場分類)的任務定義,我們把它當做一個target-dependent任務來處理。
給定含N個詞的問題句和含M個詞的回答句,AnswerStance任務旨在判別回答句對於問題句的立場標籤。例如,在圖1的第2個例子中,回答句通過肯定“iPad 2018的定價”來表達favor立場。
在之前的立場分類工作中,一般將形如Donald Trump的實體或者整個tweet文字定義為target,判別評論對於target的立場傾向性。在AnswerStance任務上,我們並未給定這種形式的target,取而代之的是整個問題句。事實上,我們也可以類比之前工作,把問題句中涉及的實體或者觀點申明作為target。由於把整個問題句作為target不會帶來語義的歧義,也省去了人工標註問題句實體、觀點片段的環節,因而在下文中,我們把整個問題句作為target。
3. 模型
模型主要包含3個模組,與模型圖對應關係如下:
問題句和回答建模網路
依賴於問題句資訊的回答句表示網路
立場傾向性表示迭代更新網路
3.1 問題句和回答句建模
給定一個問題句和一個回答句,我們首先將其中每一個詞轉為低維稠密的詞嵌入表示,具體地我們使用了一個在百科語料上使用word2vec訓練得到的100維詞向量。然後我們使用GRU(Gated Recurrent Unit)迴圈神經網路分別建模問題句和回答句,得到問題句和回答句中每個詞在上下文中的特徵表示。對於給定的一句話 ,在時刻t,GRU按如下公式更新其狀態:
我們使用雙向GRU兼顧上下文,對於句子中的第 i 個詞,我們將雙向GRU的隱層輸出進行拼接,用表示問題句中的詞的雙向隱層表示,用表示回答句中的詞的雙向隱層表示。
3.2 條件注意力網路
顯而易見,判別最終的立場應該同時考慮回答句和問題句的內容,需要利用二者的互相關係,發掘文字中與立場傾向相關的語義內容。下面介紹如何從問題句和回答句的表示中,構建立場傾向性的特徵表示。
我們假定,模型在閱讀問答對前不持有立場,即初始立場特徵表示為0。
3.2.1 問題句注意力網路
首先,CA模組閱讀問題句內容。由於問題句中不同詞對於理解問題句的語義重要性不同,像“了”、“的”、“呢”、“怎樣”就不如“德國隊”、“牛奶”這些詞在本任務中來得重要,所以CA模組利用注意機制來篩選問題句對於立場分析比較重要的詞,得到立場相關的問題句表示向量。具體地,我們使用已經累積的立場特徵向量去attend問題句,得到問題句:
其中是本次閱讀問題句得到的第 i 個詞的權重歸一化結果。問題句的表示是問題句所有詞隱層向量的加權平均。
3.2.2 回答句注意力網路
同樣地,回答句中不同詞對於判斷其立場傾向的貢獻也存在差異。我們用類似的方法有側重地學習回答句的表示。這裡,CA模組先使用新的問題句資訊更新立場狀態向量,得到臨時的立場表示:
因為中融合了最新獲取的問題句語義,接著CA模組通過Attention機制來構建考慮問題句資訊的回答句表示。
其中是本次閱讀回答句得到的第 i 個詞的權重歸一化結果。回答句的表示是回答句所有詞隱層向量的加權平均。
3.3 立場表示迭代更新網路
顯然,最終的立場類別直接依賴於最新的回答句內容,我們需要將融入我們的立場狀態。為此,我們應用另一步GRU更新:
到此為止,我們完成了RCA模型對問答對的一次閱讀過程。注意,這裡的一次閱讀過程對應兩個GRU時刻更新。
但對於語義較為複雜的問題對,只對問答對進行一次閱讀往往難以正確推斷其立場傾向性。借鑑前人的工作,我們重複上述閱讀過程k次。這裡,我們根據實驗結果將k設為3。
在多步閱讀過程中,立場狀態向量 作為橋樑,構建了間接依賴於回答句的問題句表示和間接依賴問題句的回答句表示,挖掘了立場分類時問答對之間的依賴關係,這樣的互動模式使得RCA模型能從問答對中逐步推理出真實立場傾向情況。
4. 實驗設定
4.1 資料集
我們從百度知道、搜狗問問、明醫等網站爬取、清洗並標註資料,最終得到的13591條問答對語料,語料主要涉及懷孕、食品、安全、疾病等話題。語料的統計資訊如下表:
表1 社群問答中帶標註的回答立場資料統計
4.2 評價方法
參考SemEval2016上的立場分析任務,我們不考慮neutral類別的結果。我們採用favor和against兩類的巨集平均和微平均F1值作為評價指標。另外我們也提供了所有標籤的accuracy作為各模型對比的參考指標。
4.3 對比模型
實驗中,我們對比了基礎的詞袋模型、雙向LSTM模型、CNN模型,以及近年來在立場分類和QA等任務上取得較好成績的TAN(IJCAI2017)、BiCond(EMNLP2016)、AoA(ACL2017)和RAM(EMNLP2017)模型。
5. 實驗結果
從實驗結果來看,我們的RCA模型在巨集平均、微平均以及Accuracy等指標上,取得了優於所有基線模型的效果,證明了RCA模型的有效性。
表2 測試集上不同立場檢測模型的效能比較
另外通過對Attention權重的視覺化,我們可以看到不同模型在提取問題句和回答句語義的差別。這個例子中,只有RCA模型在判斷立場類別時,能同時給問題句和回答句詞合適的權重。
圖3 四個模型的注意力權重的視覺化圖。注意,只有RCA和AoA會在問題上產生注意力,而且我們只會在RAM和RCA模型的最後讀取步驟中表示注意力。更深的顏色意味著更大的概率。
為了分析RCA模型各部分結構對於模型效能的影響,我們做了結構抹除測試。從表格中我們可以看出,問題句的表示對於模型效能影響很大;使用問題句資訊從回答句中尋找重要的語義資訊比用回答句從問題句提取資訊來得更重要。
表3 RCA模型在測試集上的消融測試。呈現巨集觀和微觀平均F1分數。
在下面的兩個例子中,我們發現RCA模型的確能在多次閱讀過程中,逐步調整問題句和回答句中詞的權重,改變其對應的特徵表示,並最終做出正確的立場傾向性判斷。
圖4 通過softmax分類器和針對示例的每個問題和答案詞的注意權重在每個讀取步驟中的立場狀態的視覺化。更深的顏色意味著更大的概率。具有3個讀取步驟的RCA模型用於說明。
6. 結論
在本文中,我們針對社群問答中的立場分析任務(AnswerStance),開發了RCA模型,它通過建模問題句和回答句之間的相互表示,在多次閱讀過程中不斷提煉問答對的語義表示,逐步更新立場狀態,並最終做出更準確的立場判斷。
在未來的工作中,RCA模型既可以應用到句對作為輸入的任務上,如文字蘊含、句子匹配等任務;也可以結合強化學習方法,根據句對輸入的語義複雜程度,動態決定閱讀次數。