封閉領(lǐng)域和開放領(lǐng)域
聊天機器人分封閉領(lǐng)域和開放領(lǐng)域,這兩個主要從話題層面進行區(qū)分藻治,在開放語境下碘勉,用戶可以和聊天機器人聊任何話題,在封閉語境下桩卵, 只能聊機器人設(shè)定的話題验靡。
典型方法
- 基于檢索式的模型
檢索模型所使用的回復(fù)通常是預(yù)先存儲且知道的數(shù)據(jù),輸入一段上下文內(nèi)容雏节,和一個可能作為回復(fù)的候選答案胜嗓;模型的輸出是對這個候選答案打分。尋找最合適的回復(fù)內(nèi)容的過程:先對一堆候選答案進行打分及排序钩乍,最后選出分值最高的那個作為回復(fù)辞州。基于生成式的模型
生成模型不依賴于任何預(yù)選定義好的響應(yīng)。經(jīng)典的生成模型是基于機器翻譯技術(shù)的寥粹, 只不過不是將一種語言翻譯成另一種語言变过, 而是將問句“翻譯”成回答(response) 。生成模型可以創(chuàng)新出嶄新的未知的的回復(fù)內(nèi)容涝涤,不需要預(yù)先存儲和定義的數(shù)據(jù)媚狰,比檢索模型更加靈活多變,更加智能阔拳。
Seq2Seq模型是一個翻譯模型崭孤,把一個sequence翻譯成另一個sequence。 其基本思想是兩個RNN糊肠, 一個作為encoder, 另一個作為decoder辨宠。 作為encoder的RNN,用來把一個sequence壓縮表示成一個固定大小的向量(fixed-length vector representation)(可以理解為把一段文本進行語義表示)作為decoder的RNN罪针, 根據(jù)encoder的vector生成一個token序列,這個token序列就是另一個sequence黄伊。優(yōu)化時泪酱, 采用極大似然估計, 讓sequenceA被encoder后進行decoder得到的B的概率最大(A和B的長度可以不一樣長)
兩種模型優(yōu)缺點
基于檢索的模型,“回答集”是人工編寫的答案墓阀,幾乎不會有語法錯誤毡惜,但是無法處理沒有見過的問題,即數(shù)據(jù)庫中沒有的問題斯撮, 同時無法追溯上文中的實體信息经伙,例如上文中提到的人名、地名勿锅。
基于生成式模型的約束條件少帕膜,過于多變的模型會導(dǎo)致回復(fù)中出現(xiàn)一些語法錯誤和語義無關(guān)的內(nèi)容。生成模型需要海量的訓(xùn)練數(shù)據(jù)溢十,且難以優(yōu)化垮刹。
目前工業(yè)用的較多的還是基于檢索模型或者以生成模型作為補充的兩者結(jié)合。谷歌的Smart Reply 就是一個例子张弛。阿里小蜜結(jié)合檢索模型和生成模型各自的優(yōu)勢提出了一種新的融合模型荒典, 首先采用檢索模型從QA知識庫中找出候選答案集合,然后利用帶注意力的Seq2Seq模型對候選答案進行排序吞鸭,如果第一候選的得分超過某個閾值寺董,則作為最終答案輸出,否則利用生成模型生成答案刻剥。