論文翻譯-阿里小蜜,基於檢索模型和生成模型相結合的聊天引擎

1、摘要

阿里小蜜是一款開放領域的聊天機器人引擎,他結合了IR(檢索)模型與帶有注意力機制的seq2seq生成模型。從效果上來講,阿里小蜜的表現明顯優於只使用某一種單一模型的情況。

2、介紹

近年來,聊天機器人技術發展非常迅速,比如微軟小冰,蘋果的siri,谷歌助手等產品層出不窮。與傳統的app的按鈕式交互不同,聊天機器人允許用戶使用自然語言與app進行交互。

阿里小蜜是一款在電商領域的一款智能客服產品。目前阿里小蜜每天的服務量達到百萬人次,而其中大多數的問題都是和業務相關的。但是仍然有大概5%的問題是閒聊的。爲了提升用戶體驗,所以需要開發一款基於開放域的聊天機器人。

一般來說,用於開發聊天機器人的技術一般有兩種:基於檢索模型或者基於生成模型。給定一個問題IR模型會從問答知識庫中檢索最相近的問題,然後找出對應的答案。而生成模型的答案是由一個帶有注意力機制的seq2seq模型來生成的。IR模型的缺點是無法處理“長尾”問題,導致答案檢索失敗。而生成模型最大的問題是生成前後不一致的答案,或者生成的答案毫無意義。

爲了解決上述問題,我們計劃將結合檢索模型和生成模型來進行阿里小蜜的開發。對於一個特定的問題,我們首先使用檢索模型檢索出候選的答案,然後使用seq2seq rerank模型對問題進行排序,如果排名第一的問題的分值高於我們設定的閾值則返回該問題。否則則使用生成模型生成問題。如下圖所示

圖1 阿里小蜜技術架構

本論文主要包含下面內容:

  • 提出給予檢索和生成混合模型的解決方案,來處理開放域聊天機器人的問題。
  • 進行了一系列的實驗對混合模型進行評估,發現模型效果都優於單一的檢索模型與單一的生成模型。
  • 與現有的一些機器人進行對比,證明阿里小蜜表現更優。
  • 阿里小蜜目前已經進入的了商用階段

3、基於rerank 機制的 seq2seq模型

正如阿里小蜜技術架構圖中展示的那樣,我們從客戶的線上聊天日誌中抽取聊天知識庫。在這個知識庫的基礎之上,開發了三個模型。

  • 檢索模型
  • 生成模型
  • 排序模型

需要注意以下兩點:

  1. 這三種模型都是基於單詞的所以,我們首先需要對聊天語料進行分詞處理。比如,單詞作爲IR模型的輸入,同時生成模型與排序模型的輸入則是詞向量。這些詞向量需要提前訓練好,生成詞向量的算法有很多,這裏我們採用fasttext。
  2. 生成模型與排序模型是同構的seq2seq模型。排序模型主要負責對候選問答對進行排序,而生成模型主要是在無法在知識庫中找到理想答案的時候生成一個答案。

給定一個問題q和一個閾值T,我們的方案可以描述如下

  1. 首先我們使用檢索(IR)模型,獲取候選的k個問答對
  2. 我們需要計算k個候選問答對的可信分數,,計算是由排序模型來實現的。
  3. 假設候選答案中最大分值表示爲,如果該分值比我們設定的閾值T要大,則直接使用該答案r輸出,否則則使用生成模型生成的答案r‘作爲最終答案

3.1 問答知識庫

採用阿里2016-1-01至2016-6-01的線上對話日誌作爲原始語料,需要對對話數據進行重構,將相鄰的兩個句子構成一組問答對。然後從中算選出哪些與業務相關或者包含業務關鍵詞的對話。經過這一系列的工作最終得到9,164,834條問答對。

3.2 檢索模型

檢索模型主要用於在問答對中搜索出與原始問題最爲相近的k個問題。爲了實現這個功能,我們首先需要對語料庫的問題進行分詞處理。然後需要創建一個單詞到問題的反向索引。當一個問題提出時,首先需要分詞,然後去除停止詞,擴展同義詞,然後用這個新的集合來檢索答案。這裏實際問題與知識庫中問題的相似度計算採用了BM25算法(Robertson et al., 2009
),然後將相似度最高的答案,作爲最終結果輸出。

3.3 生成模型

生成模型基於attentive Seq2Seq(Bahdanau et al., 2015)。假設   可以使用下面公式計算 在第i個位置出現的概率

                                             公式 1

在上面公式中

  • f是一個非線性函數,用於計算概率。
  • 是i-1位置輸出的隱藏狀態
  • 是一個上下文向量,這個向量是由輸入序列的隱藏狀態決定的,加入我們將輸入的隱藏定義爲 則 
  • 其中,是由對齊模型衡量的在輸入的j個位置對在i-1個位置輸出該單詞的影響程度。(Bahdanau et al., 2015)下圖展示了在i=3,m=4的模型狀態。

我們採用GRU作爲循環神經網絡的模型(RNN)單元。關於模型有一些比較重要的事情需要說明一下:

  1. 桶化數據與單詞填充。爲了處理不同長度的問答對,我們將數據根據長度分成5組(5,5), (5,10), (10,15), (20,30),(45,60)用以適應不同長度的問答對。比如一個問題的長度是4,而答案的長度是8,那麼他將被分到(5,10)這個組當中,然後需要使用_PAD對剩餘的長度進行填充。
  2. 在採樣數據上進行softmax,爲了加快訓練的速度,並沒有在全部數據集上執行softmax操作,而是實現設定好的一些樣本單詞,這些單詞包括(目標單詞與512個隨機單詞)(Jean et al., 2014)
  3. beam search 解碼器。在解碼階段使用beam search技術而不是貪婪匹配

3.4 排序模型

排序模型同樣採用了attentive Seq2Seq模型,用於估算答案與實際問題的匹配分值。這裏我們採用了平均可能性作爲最終的評分函數,在評估階段我們也嘗試了交叉熵(inverse of averaged cross-entropy)和調和平均值(harmonic mean
)的形式,但表現都很差。

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