神經網絡多輪對話系統

簡述

簡單來講,就是把上下文分別用RNN生成向量,計算兩個向量變換後的內積對應二分類,判斷一個回答是否是正確回答

論文全名:The Ubuntu Dialogue Corpus: A Large Dataset for Research in Unstructured Multi-Turn Dialogue Systems

背景

這篇文章的主要貢獻有兩點:

1、將Ubuntu相關的聊天內容提取出來,作爲對話問題的公共語料庫,解決了數據來源的問題

2、在多輪對話中,已知前文(Context)的時候,面臨一堆候選回答的時候,用怎樣的網絡結構能選出正確答案

文章也解釋了,爲什麼沒有像其他相關論文那樣,直接用encode-decode結構直接生成一個回答,因爲還是沒法得到好的結果

網絡結構

其實網絡結構極其簡單,把當前的問題,比如“怎麼查看進程號”,用RNN進行向量化c,即取RNN最後一個時刻的輸出;與候選的回答,比如“用ps ax來看"用同樣結構的網絡生成的向量r,這兩個向量最後轉換成一個標量,通過sigmoid函數歸到01之間。其實,就是擬合c'=Mr,使得相關回答在變換後,與問題相似。

其他細節

從最後的結果來看,LSTM相對原始RNN來說,有巨大的效果提升,而原始RNN與tfidf的餘弦度量得到的結果差不太多

模型的效果與語料的量有很大關係

原始語料中只有正例,負例是隨機構造的。

用於翻譯模型的度量BLEU不再適用於會話評估。

TODO

文中還提到,參數的初始化方式和優化方法也起到關鍵作用,RNN隱層特意用了正交向量來初始化,優化算法採用"Adom"方法,這兩點之後還要細讀一探究竟。

既然本質上也是算變換後的相似性,那微軟的相關性模型(DSSM系列非對稱型)也適用於這個問題,效果上應當基本是等價的,從經驗來看還有可能更快地收斂,如果原模型難以優化,可以嘗試下成對訓練。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章