人機(jī)對話(3)-聊天機(jī)器人(檢索、生成)

當(dāng)前閑聊機(jī)器人有兩種實現(xiàn)方式:基于檢索基于生成

基于檢索的chatbot

檢索這種方式舰讹,在搜索與推薦系統(tǒng)中通常會用的到。具體來說是衡量一種相似度闪朱;

在人機(jī)對話的開放域月匣,我們雖然想要實現(xiàn)非常自然的人機(jī)對話,但是基于當(dāng)前技術(shù)限制奋姿,如果把機(jī)器人真的當(dāng)做一個獨立對象去對話锄开,它必須有推理與知識能力,目前AI水平是無法達(dá)到的称诗;如果換一個角度來看問題萍悴,如果僅僅是給用戶一個可以接受的回答,并推動對話不斷進(jìn)行下去這樣的目標(biāo)實現(xiàn)起來就比較容易寓免。(個人感覺更像是為突破圖靈測試的一種方法)

檢索系統(tǒng)

我們首先對語料進(jìn)行檢索匹配癣诱,篩選出最合適的回答

再對待選回答進(jìn)行rank,基于一些更宏觀的考慮比如上下文袜香,最后將的得分最高的給用戶

對語料檢索匹配

基于檢索的方法本質(zhì)上是計算相似度撕予,如果用戶給一個query,我們將其與語料庫中的對話進(jìn)行匹配蜈首,相似分?jǐn)?shù)最高的是不是就是最優(yōu)解实抡?

檢索回復(fù)機(jī)理

然后問題就落在如何定義所謂的相似度?什么是語句的相似疾就?聽起來就像我們在推薦系統(tǒng)中定義什么是用戶可能喜歡澜术。那么我們就需要再進(jìn)行兩步:

1、定義影響相似性的特征

一些重要的詞猬腰、詞頻鸟废、詞性、RNN姑荷、詞嵌入等

2盒延、定義特征輸入-分?jǐn)?shù)的匹配函數(shù)

cos相似度、CNN深度學(xué)習(xí)等算法

這樣的檢索功能其實應(yīng)用到客服問答領(lǐng)域非常合適鼠冕,只要命中知識庫哪個問題添寺,就返回該問題下的回答

考慮上下文進(jìn)行response 評分

經(jīng)過上一輪檢索匹配接下來我們就有了幾個候選response,我們需要進(jìn)行其他維度的考慮使得回復(fù)更合理懈费;比如很有可能出現(xiàn)前文提到的信息bot又重新出現(xiàn)计露。所以我們需要將上下文考慮進(jìn)去,從而使得對話看起來比較智能

考慮上下文

1.我們將待選回復(fù)r 與歷史對話u都經(jīng)過詞嵌入以及GRU序列神經(jīng)網(wǎng)絡(luò)預(yù)處理

2、將每一個預(yù)處理后的r向量分別與u向量進(jìn)行match相似計算

3票罐、將結(jié)果進(jìn)行CNN處理 (提取特征并縮小矩陣)

4叉趣、再通過一個GRU網(wǎng)絡(luò)處理,這層GRU是上下相連的该押,即考慮了上下文處理

5疗杉、經(jīng)過最后的輸出層給出一個分?jǐn)?shù)

分?jǐn)?shù)最高的是我們r是我們返回給用戶的答復(fù)

總結(jié)

基于檢索的bot核心思想是從語料庫中尋找最適合的匹配回答,那么bot的效果就會被相似計算的特征設(shè)計以及語料庫的豐富度影響

基于生成的chatbot

生成模型在深度學(xué)習(xí)領(lǐng)域應(yīng)用廣泛蚕礼,在自然語言方面應(yīng)用最為成功的就是機(jī)器翻譯烟具;像之前介紹序列模型時還有一些詩歌與音樂的創(chuàng)作也屬于這類模型的應(yīng)用。

對于閑聊bot來講奠蹬,模型更像是類似機(jī)器翻譯的 編碼-解碼 的生成模式朝聋,輸入一個語句,最后模型返回另一個語句

encoder-decoder

模型左側(cè)是編碼器、右側(cè)是解碼器;

理解的話学辱,可以認(rèn)為是編碼器將語句特征提煉出來給解碼器买喧,然后解碼器以該特征作為條件限制去按照訓(xùn)練過的參數(shù)去生成另一個語句。比如機(jī)器翻譯就可以理解為某個語義從一個語言到另一個語言的映射。

考慮上下文

對于聊天機(jī)器人來講,不僅需要單次對話看起來不錯,還需要在多輪對話中也有好的表現(xiàn)(不要前面提過的后面又忘了)猜极,畢竟這個場景用戶一定是進(jìn)行多輪對話

image.png

圖中可以看到模型通過一條綠色線context-RNN將encoder-decoder模型串了起來
也就是說每一次模型編碼都會考慮前序編碼結(jié)果。這樣每次解碼生成的語句就已經(jīng)考慮了上下文的信息

考慮情感化

聊天場景除了對話流通順消玄,還需要給用戶提供驚喜跟伏,來自于情感的驚喜。有了情感化的chatbot才更像一個聊天的人而不是bot翩瓜。這是提高用戶感受的重要因素

情感化因素

綠框中的Z節(jié)點就是模型對情感化的考慮

通過將contextRNN的h作為輸入受扳,進(jìn)行情感分類處理,輸出結(jié)果同h一同作為輸入進(jìn)入解碼器兔跌。相當(dāng)于解碼器是在標(biāo)記條件Z下進(jìn)行生成勘高,從而使得生成語句附帶情感屬性

情感因素影響生成

這是一篇論文中加入情感因素后的實例,可以看到機(jī)器人在不同情感下的回復(fù)坟桅,有點意思但是距離人類還有距離华望。這里的情感分類有6種,準(zhǔn)確率確實會低仅乓,大概60%多一點赖舟。如果是三元情感分類(積極-消極-中性)準(zhǔn)確率可能就90%左右(之前的數(shù)據(jù),現(xiàn)在應(yīng)該會高)夸楣。越豐富復(fù)雜的情感宾抓,機(jī)器就越難以捕捉子漩,但足夠有趣,做好情感化是chatbot一個發(fā)展方向石洗。

情感分析應(yīng)用

情感映射表情

上文中加入情感因素的語句生成雖然效果不那么好痛单,但是如果只是情感分類,感知還是很明顯的劲腿。比如已經(jīng)落地的Emoji,在社交網(wǎng)絡(luò)中用戶打字后系統(tǒng)給予表情推薦用以代替語言鸟妙。印象中微信與搜狗很早已經(jīng)有做這個了焦人,不過感覺應(yīng)該是簡單的單詞匹配,沒有涉及情感重父,但是使用體驗不錯花椭。還有我大天朝的表情包就是個大場景

表情包

考慮知識/主題

基于生成的chatbot效果不佳有一個很重要的原因是,人類語言很多信息都是隱藏在語言背后的房午,就拿人來講矿辽,4歲孩子和成年人對話中,成年人也會覺著聊來聊去就那些郭厌,小孩子懂太少袋倔,說太多聽不懂;所以通過知識/主題(先驗知識)對bot的response生成進(jìn)行信息增添可能會有效果折柠。

加入知識

聊天過程涉及的范圍很廣宾娜,用戶可能會詢問那部電影、哪個地方扇售、天氣等具有一定目的性的問題前塔,我們完全可以像任務(wù)型對話一樣,通過查詢數(shù)據(jù)庫承冰、通過槽位追問得到信息來作為條件限制解碼器的輸出

主題限制

通過主題限制語句生成達(dá)到較好的效果华弓,下面是小冰的一個應(yīng)用

主題因素

仍然是在encoder-decoder 基礎(chǔ)上,應(yīng)用了topic model困乒,即對用戶的消息進(jìn)行了主題分類寂屏,

每個主題下本身就是一個詞頻的概率分布,知道是哪個主題后顶燕,將前面的高頻詞匯抓出來轉(zhuǎn)化為向量凑保。再將其引入注意力模型中,結(jié)和傳統(tǒng)的注意力模型相加起來作為輸入進(jìn)入解碼器涌攻,使得解碼器的內(nèi)容在主題范圍內(nèi)欧引。

相似的方式還有好幾個,但是本質(zhì)上都是通過加入先驗知識(主題恳谎、知識庫芝此、上下文憋肖、情感)對解碼器進(jìn)行輸出優(yōu)化』槠唬基礎(chǔ)的架構(gòu)都是編碼-解碼模型

通過先驗知識影響生成

加入強(qiáng)化學(xué)習(xí)DM

上述基于生成的語句通常加了很多先驗知識岸更,但是還是可能呈現(xiàn)飄忽不定的現(xiàn)象。因為對話缺乏靈魂膊升,chat場景與task一樣需要策略管理系統(tǒng)怎炊。

不同之處在于task的策略學(xué)習(xí)比較容易定義,任務(wù)對話填寫槽位時給予reward廓译,每次actor都會有相對明確的reward评肆。

而在chat場景,對話沒有明確的目標(biāo)非区,定義reward比較麻煩瓜挽,reward是滯后的≌鞒瘢可能需要在用戶獲得滿意結(jié)果時給予一個很大的reward久橙,不滿意的時候各一個很大的懲罰。距離用戶滿意所耗費的輪數(shù)會給一個小的懲罰等等管怠。

強(qiáng)化學(xué)習(xí)東西挺多淆衷,挖坑放著

結(jié)語

感覺chatbot機(jī)器人確實落地問題挺大的,但這也是預(yù)期肯定會存在的排惨,畢竟如果聊天都跟真人似的吭敢,就距離強(qiáng)人工智能不遠(yuǎn)了~~

比較靠譜的還是檢索類的chatbot,完全可以應(yīng)用在客服場景暮芭。另外感覺在一些垂直細(xì)分場景(情感咨詢鹿驼、教育)做是否會更好,畢竟領(lǐng)域窄了辕宏,語料可以構(gòu)建得更好畜晰,提高穩(wěn)定性;前一陣子看到國外有一個chatbot機(jī)器人用來和用戶聊深度學(xué)習(xí)的知識瑞筐,所以說窄領(lǐng)域可能會有一定的驚喜凄鼻。https://www.lilabot.com/

(筆者正尋求NLP、人機(jī)對話方向產(chǎn)品職位 微信:cheng390552021)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末聚假,一起剝皮案震驚了整個濱河市块蚌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌膘格,老刑警劉巖峭范,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異瘪贱,居然都是意外死亡纱控,警方通過查閱死者的電腦和手機(jī)辆毡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來甜害,“玉大人舶掖,你說我怎么就攤上這事《辏” “怎么了眨攘?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵,是天一觀的道長嚣州。 經(jīng)常有香客問我期犬,道長,這世上最難降的妖魔是什么避诽? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮璃谨,結(jié)果婚禮上沙庐,老公的妹妹穿的比我還像新娘。我一直安慰自己佳吞,他們只是感情好拱雏,可當(dāng)我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著底扳,像睡著了一般铸抑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上衷模,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天鹊汛,我揣著相機(jī)與錄音,去河邊找鬼阱冶。 笑死刁憋,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的木蹬。 我是一名探鬼主播至耻,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼镊叁!你這毒婦竟也來了尘颓?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤晦譬,失蹤者是張志新(化名)和其女友劉穎疤苹,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蛔添,經(jīng)...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡痰催,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年兜辞,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片夸溶。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡逸吵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出缝裁,到底是詐尸還是另有隱情扫皱,我是刑警寧澤,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布捷绑,位于F島的核電站韩脑,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏粹污。R本人自食惡果不足惜段多,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望壮吩。 院中可真熱鬧进苍,春花似錦、人聲如沸鸭叙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽沈贝。三九已至杠人,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間宋下,已是汗流浹背嗡善。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留学歧,地道東北人滤奈。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像撩满,于是被迫代替她去往敵國和親蜒程。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,922評論 2 361

推薦閱讀更多精彩內(nèi)容