「小會話,大學問」:如何讓聊天機器人讀懂對話歷史?

做者 | 吳俁,武威,星辰,李舟軍,周明(北航&微軟研究院)

特約記者 | 曹東巖(哈爾濱工業大學)

人工智能如今的火熱程度你們有目共睹,凱文凱利在《必然》中預測將來時代的人工智能可能會從新定義人類的意義,但時下的人工智能發展水平顯然尚未你們想象得那麼美好,仍然須要咱們不斷地探索。目前衆多研究人員正深耕其中,做爲其中表明的聊天機器人(Chatbot),已然成爲科研界研究的熱點。git

一般來講聊天機器人實現方式有兩種:一種是基於生成式,即機器人「本身說話」,一個字一個字創做出回覆語句來。另一種是基於檢索式,即機器人「轉發」別人的話。從互聯網你們的話語中尋找到合適的回答予以轉發。github

現有的生成結果因爲技術所限,或多或少都存在語句不流暢的問題,但可以作到「有問必答」偶爾還能蹦出「彩蛋」。檢索的模型通常流暢性方面無須擔憂,不過隨着目前網絡資源的日益豐富,語料規模也愈來愈大,如何從衆多語句中選擇合適的句子做爲回覆是檢索式聊天機器人的核心問題。微信

雖然目前市場上的聊天機器人衆多,但咱們見到的那些貌似都不是那麼聰明。最直觀的一個體現就是先後不連貫,上下難銜接,所以在進行檢索的時候考慮歷史信息則顯得尤其重要。那麼如何讓機器人理解對話歷史信息從而聰明地進行回覆呢?微軟亞洲研究院的研究員們提出了一個模型 Sequential Matching Network(SMN)。相關論文的做者吳俁談到「SMN 模型可讓聊天機器人準確的理解當前和用戶的對話歷史,並根據歷史給出最相關的回覆,與用戶進行交流,達到人機對話的目的。」網絡

但這在實現的過程當中也遇到很多難點,「精準計算聊天曆史和候選回覆的語義類似度十分困難,主要的挑戰有兩個方面:(1)因爲聊天曆史信息繁多,如何將歷史中重要的詞語、短語以及句子選擇出來,並經過這些重要部分刻畫聊天曆史,是一個亟待解決的問題;(2)如何對聊天曆史中的各輪對話進行建模,如何判斷對話歷史中的跳轉,順承等關係,也是一個棘手的問題。」 那麼論文做者提出的 SMN 模型又是如何解決這兩個問題的呢,接下來咱們將爲您解讀。架構

「小會話,大學問」:如何讓聊天機器人讀懂對話歷史?

▲ 圖1:SMN網絡架構學習

SMN 模型一共分爲三層。第一層爲信息匹配層,對以前的歷史信息和待回覆的句子進行匹配度計算:同時進行詞語(embedding 向量)和短語級別(GRU 表示)的類似度計算。而後再把這兩個矩陣分別做爲卷積神經網絡的一個 channel,利用 CNN 的 max-pooling 進行特徵抽象,造成一個匹配向量。第二層爲匹配積累層,利用一個 GRU 神經網絡,將每一句話和回覆所計算出的匹配信息進一步融合。第三層爲匹配結果預測層,利用融合的匹配信息計算最終的匹配得分,在預測時他們使用三種策略,分別是隻利用 GRU2 最後一個隱藏層(SMN_last),靜態加權隱藏層(SMN_static),和動態加權隱藏層(SMN_dynamic)。在進行檢索的時候,他們將最後一句的信息結合上文歷史信息中的 5 個關鍵詞(歷史信息中用 tf-idf 進行篩選,選擇 Top 5 關鍵詞)在系統中進行檢索,而後用上述 SMN 網絡對候選結果打分從而選出回覆句。人工智能

做者分別在 Ubuntu 語料(大型公開計算機相關求助與解答語料)和豆瓣語料(做者從豆瓣小組的公開信息中爬取並在論文中公佈)上進行了實驗,分別以 Rn@K 和 MAP、MRR、P@1 爲評價指標,取得的結果均爲目前最好。3d

做者表示「SMN不一樣以往的模型,第一步不進行上下文的建模學習,而是讓每句話和回覆進行匹配度計算,這樣能夠儘量多的保留上下文的信息,以免重要信息在學習上下文的向量表示時丟失。並且 SMN 在對上下文句子關係建模時,考慮了當前回復的影響,使得回覆成爲一個監督信號,這樣能夠更準確的對上下文歷史進行建模。」而且吳俁向咱們透露「據咱們所知,咱們公佈的豆瓣語料是第一我的工標註的中文多輪對話語料。」blog

在談及目前的方法還有哪些不足之處時,做者表示「目前咱們的檢索方式有時找不到正確的候選句,因此第一步的檢索方法還有待改善,另外雖然咱們的模型能夠建模當前回覆和歷史信息的關係,但仍是沒法避免一些邏輯上的問題,不過這也是咱們將來工做的重點,咱們將繼續提升候選回覆在邏輯上的連貫性」,讓咱們共同期待他們的將來工做。資源

✎ 文末福利

論文中公佈的豆瓣語料和代碼連接:

github.com/MarkWuNLP/M…

歡迎點擊查看論文:

Sequential Match Network: A New Architecture for Multi-turn Response Selection in Retrieval-based Chatbots

關於PaperWeekly:

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

微信公衆號:PaperWeekly

新浪微博:@ PaperWeekly

相關文章
相關標籤/搜索