1. 程式人生 > >AliMe Chat: A Sequence to Sequence and Rerank based Chatbot Engine論文筆記

AliMe Chat: A Sequence to Sequence and Rerank based Chatbot Engine論文筆記

摘要

阿里小蜜是開放域的問答系統,是檢索式問答系統和生成式問答系統的結合體。

框架

直接上流程圖,比較清晰

使用者輸入一個問題q,先採用IR(Information Retrieval)模型檢索出一些資料庫中的QA對作為候選,然後採用attentive Seq2Seq模型對上述檢索出的候選答案進行重新排序,如果排名第一的候選答案的得分高於某個閾值,將此答案作為標準答案輸出,否則輸出基於attentive Seq2Seq模型生產的答案。

此框架包含三個模型:1)IR模型;2)生成式模型; 3)重排模型(對候選答案進行重排)

模組講解

IR模型

採用的演算法為

BM25,主要是計算使用者問題和語料庫中問題的相似度,將最相似k個(論文中k=10)QA對作為候選集。在採用BM25之前,對語料庫中的所有問題進行分詞(不做word embedding),然後通過將每個次對映到包含該詞的方式對所有問題建立倒序索引(原文:we build an inverted index for the set of all 9,164,834 questions by mapping each word to a set of questions that contain that word,PS:具體做法和這麼做得目的我還沒想清楚,希望知道的留下自己的idea);對於使用者的問題,進行分詞、去停用詞、利用近義詞擴充套件相關性,然後採用BM25演算法找回k個最相似的QA對。

生成式模型

採用的是 attentive Seq2Seq框架。假設,在位置i產生詞yi的概率為

其中f為計算概率的非線性函式,si-1為輸出位置i-1處的隱含層狀態,ci為取決於的上下文向量,為輸入序列的隱含層狀態,,下圖所示為i=3,m=4時的情況

迴圈網路單元選用的是GRU,輸入資料處理採用Bucketing和pading,定義五個(5,5)(5,10)(10,15)(20,30)(45,60)五個buckets,假如問題為4個詞,答案為8個詞,要採用(5,10),即通過新增“_PAD”符號,將問題擴充套件為5個詞,將答案擴充套件為10個詞放到Attentive Seq2Seq中處理

Attentive Seq2Seq的輸出採用Beam search,每time step包含top-k(k=10)

重排模型

還是採用Attentive Seq2Seq模型,採用平均概率作為得分如下,將每個候選答案當作詞序列

實驗

實驗就不細講了,比較簡單,無非就是以某些標準和現有的chatbot進行pk然後贏了的故事,直接上一張圖