如何生成主題相關的對話 | 每周一起讀 #11

「每周一起讀」是由 PaperWeekly 發起的協同閱讀小組。我們每周精選一篇優質好文,利用在線協同工具進行精讀並發起討論,在碎片化時代堅持深度閱讀。目前已成立的專題小組有:Chatbot、機器翻譯、知識圖譜、GAN、推薦系統、QA、增強學習、多模態和自動文摘。Topic Aware Neural Response Generation

對話生成是一個非常熱門的研究方向,通過 Seq2Seq 來生成與某個主題相關的對話,讓整個對話內容的信息量更大、相關性更強,是一個非常有意思的研究思路。本文的工作給出了一些不錯的想法。以下是Chatbot 專題閱讀小組中的各位同學對本文的解讀和討論。

此外,PaperWeekly 將於今天正式成立自動文摘統計學習專題閱讀小組,在組內發起「每周一起讀」活動。我們將每周選定一篇優質文章,邀請國內外行業大咖和高校大牛入駐討論,並為大家提供可撰寫讀書筆記和在線協同討論的閱讀工具。

1. 閱讀筆記精選

slvher:

本文模型實現思路:

1. 獲取 topic word 的 embedding vector 用新浪微博語料訓練 TwitterLDA 模型,演算法是 collapsed Gibbs sampling。消息輸入後,模型給出所屬 topic,取該 topic 下的 top100 作為消息的 topic words,刪除通用詞後,將這些 topic words 轉為各自的向量表示。其中,每個 topic word 的向量是通過計算 topic word 在所有 topic 下的歸一化頻率得到的(文中 Eq. 4),每個 topic word 對應的 vector 維度取決與 LDA 模型設置的 topic 數量;

2. 通過 BiGRU 網路對輸入消息做 encode;

3. 根據第 1 步得到 input message 的 topic vector,結合第 2 步得到的 last hidden state,通過 MLP 網路和 softmax 層得到 topic attention,即得到了各 topic word 的權重;

4. 構造由 message attention 和 topic attention 聯合影響的解碼概率(文中 Eq. 6),該概率可突出 topic words 的作用。基於這個概率進行 token 解碼;

5. 與標準的 seq2seq+attention 模型相比,TA-Seq2Seq 模型的解碼過程由 ci 和 oi 共同參與,特別地,在解碼第 1 個輸出 token 時,c0 插入了先驗 topic 信息,因此本文模型可以提高首次解碼的質量,從而對整個解碼結果的質量產生正向影響。 百度貼吧數據集上的實驗結果表明,本文提出的 TA-Seq2Seq 模型達到了 state-of-the-art 的效果,優於 Li Jiwei 提出的 Seq2Seq-MMI 模型。

Miaosen:

本文為了讓回復符合 topic 特徵,所以在 decode 過程中加入了 topic attention。而論文「A Persona-Based Neural Conversation Model」里,為了讓回復符合某類人的性格特性,加入了 speaker model 的 vector。而這個 vector encode 的信息是年齡性別等信息,並沒有 speaker words 直接去幫助 decode。雖然略有不同,但是從本質上講,都是用其它途徑獲得的 vector 來影響 decode 的結果符合某種需求。

還有一點類似的是,本文用的是 Twitter LDA (雖然數據來自於微博),而「A Persona-Based Neural Conversation Model」里,用的是 Twitter 數據,把發言的用戶 cluster。

在結果的生成中,Persona 論文是生成數個回復,然後 rank。不知道和本文用到 c0+Ο0 的方法結合後,效果會不會更好。

weijinfeng:

文中描述的 TA-Seq2Seq 模型的核心思想是通過引入 LDA 模型結合 Seq2Seq 模型來產生更有信息含量、更為多樣性及更話題相關的對話回答。其採用的思路是在現有的帶 Attention 的 Encoder-Decoder 模型架構上,通過 joint 輸入信息的 attention 和 topic attention 來共同影響對話的回答的生成。主要思路是意圖通過引入先驗知識到 Seq2Seq 模型來產生更高質量的回答。整體思路相對比較簡單直接,但是在實現過程中,個人覺得有幾點值得注意或借鑒的:

1. 抓住了人們在實際對話過程中,在一定程度上,是基於某個話題來產生對話的特點,自然的引入了 topic 模型及 topic words,有其一定的合理性;

2. LDA 模型訓練用的數據不是用的訓練對話的數據,這樣做是為了引入了其他數據源的先驗知識,籍此提高對話的多樣性和信息量,並且可以引入不同的數據源來實現不同的效果;

3. 與傳統的 attention 機制不同,topic attention 除了利用 topic words 的狀態信息,還利用了 input message 的最終狀態作為額外的輸入來弱化不相關主題詞並加強相關主題詞的概率;

4. 在對話生成的過程中,採取了有偏於 topic words 的生成概率來增大 topic words 的出現幾率;

5. 有別於 Mou et al. 2016,此模型通過取多個話題詞來產生更為有信息量的回答;

6. 不同於傳統的 seq2seq 模型,對話的第一個詞產生自 c0 和 o0 的組合,而不是只有 c0,這樣的好處是可以產生更為準確的第一個詞,來給後續的詞及整個句子的產生帶來了更好的效果,因為後續詞的產生會依賴於前面生成的詞。

2. Q&A 精選

wumark:

Topic Aware Neural Response Generation

我是這篇 paper 的作者之一,我建議大家在讀完這篇 paper 時候,還可以讀一讀:

1. Sequence to backward and forward sequences: A content-introducing approach to generative short-text conversation [Lili Mou, Yiping Song, Rui Yan, Ge Li, Lu Zhang, Zhi Jin.]

2. Incorporating Copying Mechanism in Sequence-to-Sequence Learning [Jiatao Gu, Zhengdong Lu, Hang Li, Victor O.K. Li]

3. Pointer Networks [Oriol Vinyals, Meire Fortunato, Navdeep Jaitly]

1 和本文解決的是同一件事,本文是 2 和 3 的一個特殊的應用。

mike

We estimate the parameters of Twitter LDA using the col-lapsed Gibbs sampling algorithm (Zhao et al. 2011). Afterthat, we use the model to assign a topiczto a messageX, pick the topnwords (n= 100in our experiments) with thehighest probabilities underz, and remove universal wordslike 「thank」 and 「you」 to get the topic wordsKforX.

1. 怎麼產生 topic word? 200 個話題,每個話題 100 個 topic words?

2. 訓練時和測試時,是使用所有的 topic words 還是只是用對應主題的 topic?

Miao: 1. topic 和 topic word 是使用文中說的 Twitter LDA 在微博數據集上訓練得到的,訓練完之後每個 topic 實際上就是由詞分布表示的,這裡選擇了詞分布中概率最高的 100 個詞作為這個 topic 的 topic words;2. 訓練好之後,對於一個輸入 X,可以根據這個模型判斷 X 屬於哪個 topic,然後選擇對應的 topic words 送到後續的模型中產生 response。

xixi_meng: 是不是類似於我把一句話中的關鍵詞提取出來後(這裡你們提取關鍵詞的方法是使用的 Twitter LDA 在微博數據上訓練得到的所有的關鍵詞,然後句子中看是否有這個詞?),導入 jieba 分詞模型中,找到前 100 個概率最大的詞?將關鍵詞和關鍵詞匹配最高的詞送到後續模型中?

BetterEmma:

i et al. 2015)

除此之外,Deep Reinforcement Learning for Dialogue Generation 這篇文章將增強學習引入到生成對話中,使用 policy gradient methods 來對具有信息性,一致性,易於回答等特性生成結果進行獎勵,從而來避免 general reply 的問題。

wumark:

從效果來看,Deep Reinforcement Learning for Dialogue Generation 這篇 paper 會導致 chatbot 非常熱愛問問題。因為他的 loss 是個能聊多少有意義的東西,最後就一直問問題。從我實驗來看,GAN 是目前對 general reply 解決的最好的一種方法。

想和我們一起研讀優質paper?

點擊提交內測申請,我們將在 48 小時內完成審核並和您取得聯繫。

關於PaperWeekly

PaperWeekly是一個推薦、解讀、討論、報道人工智慧前沿論文成果的學術平台。如果你研究或從事AI領域,歡迎在公眾號後台點擊「交流群」,小助手將把你帶入PaperWeekly的交流群里。

微信公眾號:PaperWeekly

新浪微博:@PaperWeekly

推薦閱讀:

深度學習小實驗3:AI作曲家(待更新)
人工嗅覺的圖靈測試已誕生,如何精準再現氣味
谷歌人工智慧把全世界都變成了眼睛和狗
Build 2017 首日匯總:一系列全新工具、智能雲、應用程序更加人性化
目前國內的語音識別技術是什麼水準?

TAG:聊天机器人 | 自然语言处理 | 人工智能 |