當前位置:
首頁 > 最新 > 阿里巴巴:AliMe聊天:基於序列到序列和重排的聊天機器人引擎

阿里巴巴:AliMe聊天:基於序列到序列和重排的聊天機器人引擎

你和「懂AI」之間,只差了一篇論文

很多讀者給芯君後台留言,說看多了相對簡單的AI科普和AI方法論,想看點有深度、有厚度、有眼界……以及重口味的專業論文。

為此,在多位AI領域的專家學者的幫助下,我們解讀翻譯了一組頂會論文。每一篇論文翻譯校對完成,芯君和編輯部的老師們都會一起笑到崩潰,當然有的論文我們看得抱頭痛哭。

同學們現在看不看得懂沒關係,但芯君敢保證,你終有一天會因此愛上一個AI的新世界。

這是讀芯術解讀的第32篇論文

ACL 2017 Short Papers

AliMe聊天:基於序列到序列和重排的聊天機器人引擎

AliMe Chat: A Sequence to Sequence and Rerank based Chatbot Engine

阿里巴巴集團

Alibaba Group

【摘要】我們推出了AliMe聊天,一個開放域聊天機器人引擎,它將信息檢索(IR)的聯合結果和序列到序列模型(Seq2Seq)的生成模型相結合。AliMe聊天使用基於序列到序列的重排模型來優化聯合結果。大量的實驗證明我們的引擎比IR和生成模型都要出色。我們推出了AliMe聊天,以實現真實的工業應用,並獲得比其他公共聊天機器人更好的結果。

1 引言

在過去的幾年裡,聊天機器人蓬勃發展,例如微軟的小冰、蘋果的Siri、谷歌的谷歌助手。與傳統的應用程序不同,用戶通過簡單和結構化的語言與他們進行交互(例如,「提交」,「取消」,「預定」等。),聊天機器人允許用戶使用自然語言、文本或語音(甚至圖像)與他們進行交流。

我們正在努力使機器人能夠在電子商務領域回答客戶的問題。目前,我們的機器人每天服務數百的客戶問題(主要是中文,也有一些英文)。其中大多數是與商業有關的,但也有大約5%是以聊天為方向的(數千個)。為了提供更好的用戶體驗,建立一個開放域的聊天機器人引擎是必要的。

用於構建開放域的聊天機器人的常用技術包括IR模型(Ji et al., 2014; Yan et al., 2016b)和生成模型((Bahdanau et al., 2015; Sutskever et al., 2014; Vinyals and Le, 2015)。給定一個問題,前者在問答(QA)知識庫中檢索最接近的問題,並接受成對的答案,後者根據預先訓練的序列到序列模型生成答案。通常,IR模型無法處理在QA庫中不相近的長尾問題,並且生成模型可能產生不一樣的或沒有意義的答案(Li et al., 2016; Serban et al., 2016)。

為了解決這些問題,我們提出了一種集成IR和生成模型的混合方法。在我們的方法中,我們使用序列到序列的重排模型來優化聯合結果。具體地說,對於一個問題,我們首先使用一個IR模型來檢索一組QA對,並使用它們作為候選答案,然後使用序列到序列模型對候選答案進行重排:如果最高的候選所得分高於一個確定的閾值,它將被選為答案。否則答案將由生成模型提供(詳細過程見圖1)。

圖1:我們的混合方法的概述。

我們的論文做出如下貢獻:

? 我們提出了一種新穎的混合方法,利用一個序列到序列模型來優化IR和生成模型的聯合結果。

? 我們進行了一系列的實驗來評估這種方法。結果表明,我們方法在IR和生成兩方面表現都很出色。

? 我們將我們的聊天機器人引擎和一個公共的聊天機器人進行了比較。證據表明我們的引擎性能更好。

? 我們啟用了AliMe聊天,用於真實的工業應用。

論文的其餘部分結構如下:第2節介紹我們的混合方法,接著在第3節中的實驗,相關的工作在第4節,第5節總結我們的工作。

2基於序列到序列的重排模型

我們在圖1中概述了我們的方法。首先,我們從在線客服中的聊天記錄中構建了一個QA知識庫。基於這個QA知識庫,我們開發了三種模型:IR模型、生成模型和重排模型。有兩點值得注意:(1)這三種模式都是基於單詞的(即需要分詞):IR模型的輸入特徵是單詞,而生成模型和重排模型的輸入特徵是單詞向量表示,這些都是使用fasttext(Bojanowski et al., 2016)預先訓練和在兩個模型中進行進一步調整的。(2)我們的生成模型和重排模型是建立於同一序列到序列結構,前者生成輸出,後者則是歲輸入問題的候選答案進行評分。給定一個輸入問題q和一個閾值T,我們的方法的過程如下:

? 首先,我們使用IR模型檢索一組k候選QA對。

? 第二,我們將每個問題q與其候選答案ri配對 ,並為每一個問答對使用重排模型中的計分公式Eqn. 2計算置信度得分o(ri) = s(q, ri)。

? 第三,我們考慮答案r使用最大分數o(r) = max o(ri):如果o(r) ≥T,採取答案r;否則輸出一個基於生成模型的回復r』。

在這裡,閾值T是通過實證研究得到的,在第3.2節中討論。

2.1 QA知識庫

我們在2016 -01- 01和2016 -06-01之間使用我們在線客服中心的聊天記錄作為我們原始的數據源(客戶和員工之間的對話)。我們通過將每個問題與一個相鄰近的答案配對來構建QA對。在需要的時候,我們把連續的問題(或答案)連接在一起。之後,我們過濾出包含業務相關關鍵字的QA對。最後,我們獲得了9164,834個QA對。

2.2 IR模型

我們的檢索模型採用搜索技術為每個輸入找到最相似的問題,然後獲得相匹配的答案。通過分詞,我們為全部9,164,834個問題構建了一個反向索引,將每個單詞映射到包含該單詞的一系列問題中。給定一個問題,我們將其劃分為一組單詞,刪除停用詞,將設置擴展為它們的同義詞,並使用細化的集合來調用一組QA候選對。然後我們使用BM25 (Robertson et al., 2009) 來計算輸入問題和檢索到的問題之間的相似度,並採用最相似的匹配的答案作為答案。

2.3 生成模型

我們的生成模型建立在序列到序列結構上 (Bahdanau et al., 2015)。Let θi = ,通過積分公式Eqn.1在位置i上生成一個單詞yi的概率,f是一個計算概率的非線性函數,si-1是位置i-1的輸出的隱藏狀態,ci是上下文向量,取決於(h1, h2, · · · , hm),輸入序列的隱藏狀態:,αij =a(si?1, hj )由一個對準模型給出,該模型計算j位置的輸入與i-1的輸出的匹配程度 (Bahdanau et al., 2015)。如圖2所示,其中i=3,m=4。

圖2:序列到序列模型,我們的模型主要針對中文。

我們選擇門循環單元(GRU)作為循環神經網路(RNN)。下面討論一些重要的實現。

Bucketing and padding.為了處理不同長度的問題和答案,我們採用了在Tensorflow中提出的存儲桶機制。我們使用五個存儲桶 (5, 5), (5, 10), (10, 15), (20, 30),(45, 60)來容納不同長度的QA對,例如,長度為4的問題和一個長度為8的答案將被放在存儲桶(5, 10),並在需要時使用特殊符號「PAD」填充問題和答案。

Softmax over sampled words.為了加快訓練過程,我們將softmax應用於一組抽樣辭彙(目標單詞和512隨機單詞),而不是整個集合。這個想法與(Jean et al., 2014)的重要性抽樣策略相似。

Beam search decoder.在解碼相位,我們使用定向搜索,在每個時刻t維持top-k (k = 10) 輸出序列,而不是貪婪搜索,每個時刻t只保留一個,以使我們的生成更加合理。

2.4 序列到序列重排模型

我們的重排模型使用同樣的序列到序列模型來為輸入問題的候選答案進行評分。具體地說,我們選擇的是平均概率,在積分公式Eqn.2中表示為sMean-Prob,作為我們的積分函數(一個候選答案被視為一個單詞序列w1, w2, … , wn)。我們還嘗試過平均互熵和調和平均值,但它們的性能較差。

3實驗

在我們的實驗中,我們首先使用評分標準平均概率考察了序列到序列模型的有效性;然後我們評估了IR, Generation, IR + Rerank,IR + Rerank + Generation(我們的方法)的有效性;我們還對我們的方法和和一個基準聊天機器人引擎進行了在線A/B測試;最後,我們將我們的引擎與一個公共聊天機器人進行了比較。

為了評估,我們讓業務分析人員回答每個測試問題的答案(兩個實驗的分析師與其他公共聊天機器人進行比較,一個用於其他實驗),並標記為三個等級標籤:「0」是不合適的,「1」表示這個答案只適用於某些情況,「2」表示答案是合適的。為了確定一個答案是否合適,我們定義了五個評價規則,即「語法正確」,「語義相關」、「口語流利」、「語境獨立」和「不過度推廣」。

一個答案只有當它滿足所有的規則將會被標記為合適的,中立的如果它滿足前三,並打破後兩者中的任何一個,否則不合適。

我們使用top-1精度(Ptop1)作為標準,因為某些方法的輸出可以不止一個(例如,IR)。該指標衡量的是 top-1候選是否適合或中立,並按一下方法計算Ptop1 = (Nsuitable+Nneutral)/Ntotal,Nsuitable表示被標記為合適的問題的數量(其他符號的定義相似)。

3.1 評估重排模型

我們首先比較了兩個序列到序列模型((Cho et al., 2014)提出的基礎模型,在第2.4節中提出的一個),在3個平均標準(平均概率,平均互熵和調和平均數)使用一組隨機抽取的的500個問題。表1顯示了Ptop1的結果,這表明帶有sMean-Prob 的序列到序列模型具有最好的性能。我們在重排模型中使用。

表1:不同的重排模型的比較。

3.2 評估候選方法

我們使用600個問題集合對以下四種方法的有效性進行了評估:IR, Generation, IR + Rerank, IR + Rerank + Generation。結果如圖3所示。顯然,建議的方法(IR + Rerank + Generation)具有最佳的 top-1精度:自信度得分閾值T=0.19,Ptop1 =60.01%。在這裡,得分高於0.19(虛線的左邊,600個中的535個)的問題,使用重排來回答,剩下的通過生成來處理。其他三種選擇的Ptop1分別為47.11%、52.02%和56.23%。請注意,如果使用更高的閾值(例如0.48),或者以不同的方式進行重排和生成更多數據,那麼可以實現更高的Ptop1。我們使用較低的閾值,因為序列到序列生成的不可空性和可變性:隨著Ptop1的下降,我們獲得了給更多的可控性和可解釋性。

圖3: 候選方法的Top-1精度。

3.3 線上 A/B測試

我們在AliMe聊天,我們的在線聊天機器人引擎中實現了建議的方法,並對新的和現有的IR方法進行了A/B測試(問題同樣分布在兩種方法中)。我們隨機抽取了2136個QA對,其中1089個問題由IR回答和1047有混合方法處理,並比較了它們的 top-1精度。如表2所示,新方法的Ptop1為60.36%,遠遠高於IR基線(40.86%)。

表2:在A/B測試與IR模型的比較。

3.4 與公共聊天機器人的比較

為了進一步評估我們的方法,我們將其與一個公共可用的聊天機器人進行了比較。我們從1047個測試問題中選擇了878個(用於A/B測試),通過刪除與我們聊天機器人相關的問題,並使用它來測試公共的。為了將他們的答案與我們的答案進行比較,兩名業務分析人員被要求對每個測試問題選擇一個更好的回答。表3顯示了兩位分析師的平均結果,很明顯,我們的聊天機器人性能更好(878個問題中有37.64%的表現更好,18.84%的情況更糟)。分析師之間的Kappa指數為0.71,顯示出實質性的一致。

表3:與另一個聊天機器人比較。

3.5 在線服務

我們在聊天機器人引擎中部署了我們的方法。對於在線服務,重排對運行時性能非常重要:如果K候選QA對是非同步排序,那麼迎親必須等待最後的排名,當QPS(每秒的問題)很高時,它會變得更糟。我們的解決方案是每個K QA對捆綁在一起,把它變成一個k×n矩陣(窗體頂端n是k個QA對的級聯的最大長度,在需要時使用填充),然後利用並行矩陣乘法重排模型加速計算。在我們的實驗中,與非同步方式相比,批處理方法有助於節省41%的處理時間。具體地說,超過75%的問題花了不到150ms的時間進行了重排,不到200ms的時間生成。此外,我們的引擎能夠在5個服務實例的集群上支持42個峰值QPS,每個服務實例在Intel Xeon e5 - 2430的伺服器上保留2個核心和4G內存。這是我們的方法適用於工業機器人。

我們推出AliMe聊天作為在線服務,並將其集成到AliMe幫助中,這是我們在電子商務領域的智能助手,它不僅支持聊天,還支持客戶服務(如退貨),購物指南和生活幫助(如預定航班)。我們在圖4中顯示了聊天服務生成的示例聊天對話框。

圖4:AliMe聊天的一個示例聊天對話框。

4 相關工作

封閉域對話系統通常使用基於規則模板的方法(Williams and Zweig, 2016; Wen et al., 2016),和對話狀態跟蹤(Henderson, 2015; Wang and Lemon, 2013; Mrksic et al., 2015)。不同的是,開放域的聊天機器人通常採用數據驅動技術。常用的包括IR和序列到序列生成。基於IR的技術主要集中於從QA只是據中尋找接近的問題,例如,(Isbell et al., 2000),(Ji et al., 2014),(Yan et al., 2016b)。最近的一項研究(Yan et al., 2016a)嘗試了一種基於神經網路的匹配方法。通常,基於IR模型很難處理長尾問題。基於序列到序列的生成模型通常在QA知識庫或會話語料庫上進行培訓,並用於為每個輸入生成一個答案。在這個方向上,基於RNN的序列到序列模型被證明是有效的(Cho et al., 2014;Sutskever et al., 2014; Ritter et al., 2011; Shang et al., 2015; Sordoni et al., 2015; Serban et al., 2016)。在(Sutskever et al., 2014)中提出了一個基礎的序列到序列模型,並得到了(Bahdanau et al .,2015)的關注。此外Sordoni et al. (2015) 考慮了上下文信息, Li et al. (2016)試圖讓序列到序列模型通過附加一個多樣性促進目標函數來產生多樣化的答案。儘管有許多優點,序列到序列生成模型仍然可能產生不一致或毫無意義的答案。

我們的工作結合了基於IR和基於生成的模型,我們的工作不同於另一種最近的組合方法(Song et al., 2016),他們使用IR模型來重排檢索和生成答案的聯合。此外,我們發現,序列到序列重排方法有助於大幅度提高IR結果。

5 結論

在本文中,我提出了一種結合IR和生成模型的基於序列到序列的重排方法。我們已經進行了一系列評估,以評估我們提出的方法的有效性。結果表明,我們的混合方法優於兩種模型。

我們在一個工業聊天機器人中實現了這個新方法,並發布了一個在線服務。

有許多有趣的問題有待進一步探討。其中一個是上下文,這對於會話系統中的多循環交互至關重要。目前,我們使用一個簡單的策略來整合上下文:給定一個問題,如果IR模型檢索不到3個候選項,我們就將其與之前的問題進行增強,並在此將連接發送到IR引擎。我們已經嘗試了其他與上下文先關的技術,例如上下文敏感模型(Sordoni et al., 2015),神經對話模型(Sutskever et al., 2014),但它們在我們的方案中並沒有很好地擴展。我們仍然在探索可擴展的上下文感知方法。此外,我們還在擬人化,即讓我們的聊天機器人充滿角色和情感。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 讀芯術 的精彩文章:

這些AI學院都怎麼上課?了解真相後我驚呆了
搞AI?先了解AI流派如何「抬杠」再說!

TAG:讀芯術 |