论文浅尝 | 主题感知的问答生成
Citation: XingC, Wu W, Wu Y, et al. Topic aware neural response generation[C]//Thirty-FirstAAAI Conference on Artificial Intelligence. 2017.
動機
人機對話在 AI 和 NLP 領域是一項具有挑戰性的工作。現存的對話系統包括任務導向的對話系統和非任務導向的聊天機器人。在聊天機器人里面構建對話引擎的方法就是利用大規模的社會對話數據,在機器翻譯框架里學習一個回答生成模型。最近,基于方法的神經網絡成為主流趨勢,因為它們可以抓住輸入文本和回答之間的語義和語法關系。但是,聊天機器人的回答生成算法不僅要生成自然流利的回答,還要生成具有信息量的,有趣的回答。但是現存的機器翻譯模型比如帶注意力機制的 Seq2Seq 傾向于生成一些無意義的回答,比如“Me too”“I see”等。這種回答十分無聊也不含有任何有用的信息,很容易結束人機對話。
因此,為了生成有趣的富含信息量的回答,使人們不覺得與機器對話無聊。作者提出了一個 topic aware sequence-to-sequence? (TA-Seq2Seq) 模型,利用話題信息作為作為先驗知識,生成回答。給定一個輸入信息,作者預測了可能會在回答中談論到的話題,然后生成針對該話題的回應。這個想法是作者觀察人們之間的交流而想到的。在人與人之間的交談中,人們經常會將輸入的信息與心中的話題相關概念聯系起來。基于這些概念,人們組織內容并選取作為回答的單詞。TA-Seq2Seq 是基于 sequence-to-sequence 框架構建的。在編碼時,通過信息編碼器將輸入信息表示成隱向量,從預訓練好的 Twitter LDA 模型得到輸入信息的主題單詞。使用對話數據之外的大規模社會數據集預先訓練 Twitter LDA 模型。在解碼階段,通過聯合注意機制,根據輸入信息和話題,生成每個單詞。聯合注意機制,就是將輸入信息的隱藏向量通過現有的 attention 機制表示成語境向量,然后將話題單詞的 embeddings 通過話題注意機制合成為話題向量。與現存的注意不同,為了加強話題和輸入信息的聯系,話題注意會額外輸入輸入信息的最終狀態,計算話題單詞的權重。
貢獻
文章的貢獻有:
(1)?????提出使用主題信息作為先驗知識,輔助生成回答。
(2)?????提出了TA-Seq2Seq模型,該模型將主題信息融入編碼器—解碼器結構中。
(3)?????驗證了TA-Seq2Seq模型的有效性。
方法
(1)sequence-to-sequence 注意力模型
這是作者的baseline模型。在Seq2Seq 中,給定原文本(message)X=(x_1,x_2,…,x_T),和一個目標文本(response)Y=(y_1,y_2,…,y_T'),該模型最大化以X為條件的生成概率Y:。特別的,Seq2Seq 是一個 encoder-decoder 框架。encoder 一個單詞一個單詞的讀入X,通過循環神經網絡將它表示成一個語境向量c,然后decoder 以 c 作為輸入,計算 Y 的生成概率。如下所示:
編碼器的循環神經網絡通過以下公式計算文本向量c:
其中,h_t 是 t 時間步的隱含狀態。f 是一個非線性變化,要么是LSTM 單元,要么是GRU 單元。本篇文章中,作者使用了GRU 單元表示f,如下所示:
decoder 是一個標準的 RNN 語言模型。每個時間步 t 時,對候選單詞的概率分布 P_t 的計算公式如下:
其中,s_t 是decoder RNN 在時間步t 的隱向量,?y_(t-1) 是時間步 t-1 時生成的單詞。
(2)Attention 機制
標準的Seq2Seq 模型假定每個單詞都是由同一個語境向量生成的。但是,實際上,Y 中不同的單詞在語義上與X 中的不同部分相關。為了解決這個問題,人們就在 Seq2Seq 中加入了 attention 機制。在基于注意力的Seq2Seq 中,每個 y_i 都與一個語境向量 c_i 相關,?c_i 是編碼器所有隱藏向量的加權平均值。c_i 的常規定義如下:
其中,\eta 是激活函數,通常使用 tanh 表示。
(3)TopicAware Seq2Seq 模型
這是作者提出基于上述模型改進得到的新模型,引入了輸入信息X 的話題單詞集K。作者的目標就是該模型能夠根據輸入信息X 和它的話題單詞K,生成回答Y。
獲得話題單詞
作者使用了Twitter LDA 模型從文本中得到話題單詞。該模型就是假設每個message 只與一個話題相關,message 中的單詞要么是背景單詞,要么是話題單詞。作者使用折疊的 Gibbs 采樣算法估算了 Twitter LDA 的參數。之后,作者使用模型將主題 z 分配給 message X,在 z 下選擇具有最高概率的前 n 個單詞,并刪除諸如“thank”和“you”之類的通用單詞,得到message X 的主題詞 K。在學習過程中,作者需要得到每個主題詞的矢量表示。為此,我們首先通過等式計算主題詞 w 的分布,其中 C_{wz} 是在訓練中將 w 分配給主題 z 的次數。然后,我們將該分布作為主題詞的向量表示。
作者在實驗時,使用從新浪微博得到的大規模數據訓練Twitter LDA 模型。除了用于訓練回答生成模型的message-response對中的數據之外,該數據還提供了話題知識。這個過程類似于人們學會在對話中做出回應的過程:他們開始意識到可以從互聯網上談論什么,特別是從社交媒體,然后使用他們學到的東西作為話題,在對話中形成他們的回答。
模型
下圖是作者的 TA-Seq2Seq 模型架構圖。
圖1:Topic aware sequence-to-sequence 模型架構圖
基于上述 attention 機制和 sequence-to-sequence 模型的基礎上,在編碼階段,作者額外加入了message X 的話題單詞K。使用topic encoder 編碼K 中單詞的embedding。在解碼階段,在時間步i,message 向量被轉換成一個語境向量 c_i,話題單詞?的 embedding 通過 topic attention 被線性結合成話題向量。公式如下:
其中,s_{i-1} 是解碼器中第 i-1 步的隱狀態,h_T 是輸入信息的最終隱狀態,是多層感知機。與傳統的 attention 相比,topic attention 利用了輸入信息的最終狀態來弱化與信息無關的話題對生成回答的影響,并強調了與信息相關的話題的重要性。message attention 和 topic attention 形成了聯合注意力機制,使得 c_i 和 o_i 共同影響生成概率。共同注意力優點在于它不僅可以使生成的回答中的單詞與輸入 message 相關,還可以與 message 的話題相關。
作者定義生成概率,其中,?和?定義如下:
其中,V是回答的詞匯表,f是GRU單元。和?定義如下:
其中,是tanh,w 是單詞 ω 的 one-hot 指示向量,都是參數。用來歸一化。
TA-Seq2Seq 的另一個優點就是在生成回答時,生成的第一個單詞更正確。第一個單詞很重要,因為它是整個句子的開頭。以往的Seq2Seq 的第一個單詞生成,僅僅依靠 c_0,因為當 i = 0 時,沒有 s_{i-1},但是在TA-Seq2Seq中,不僅 c_0 決定了第一個單詞的生成,而且 o_0(與話題信息相關)也貢獻了一部分。這種方法提高了生成的第一個單詞的正確性。
總結
這篇文章提出了一個Topic awaresequence-to-sequence(TA-Seq2Seq)模型,將話題信息融合到回答生成中。該模型通過聯合注意機制和偏向生成概率來利用主題信息。實驗證明,該模型能夠生成含有有效信息的、風格多樣的回答。
OpenKG
開放知識圖譜(簡稱 OpenKG)旨在促進中文知識圖譜數據的開放與互聯,促進知識圖譜和語義技術的普及和廣泛應用。
點擊閱讀原文,進入 OpenKG 博客。
總結
以上是生活随笔為你收集整理的论文浅尝 | 主题感知的问答生成的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 领域应用 | 知识图谱在小米的应用与探索
- 下一篇: 研究综述 | 知识图谱划分算法研究综述