AI对话机器人实现原理
文主要參考2019年3月出版的《自然語言處理實(shí)踐-聊天機(jī)器人技術(shù)原理與應(yīng)用》一書,結(jié)合個人理解對原理進(jìn)行闡述,若有不當(dāng)之處,請聯(lián)系本文作者。另在此感謝此書作者王昊奮、邵浩、李方圓、張凱、宋亞楠(排名不分先后)。
目錄
一、聊天機(jī)器人分類
1.1基于應(yīng)用場景分類
1.2基于實(shí)現(xiàn)方式分類
1.3基于功能分類
二、對話機(jī)器人技術(shù)原理
2.1? AI對話機(jī)器人實(shí)現(xiàn)流程
2.2 語音識別&語音合成
2.3 自然語言理解(NLP)
2.4 自然語言生成
2.5 對話管理
一、聊天機(jī)器人分類
以下這段描述出自CSDN人工智能專欄:
對話系統(tǒng)(對話機(jī)器人)本質(zhì)上是通過機(jī)器學(xué)習(xí)和人工智能等技術(shù)讓機(jī)器理解人的語言。它包含了諸多學(xué)科方法的融合使用,是人工智能領(lǐng)域的一個技術(shù)集中演練營。
?在這段話中,以最簡要的詞語總結(jié)了市面上大部分AI聊天機(jī)器人的主要功能,那就是“讓機(jī)器理解人的語言”,此后機(jī)器人會根據(jù)自身功能定位,以不同的行為模式對人類做出回復(fù),例如生活中常見的個人助理型對話機(jī)器人(如:siri,小度等),就能夠在任何語境下對用戶的提問做出相對合理的反應(yīng),而一些任務(wù)問答型的對話機(jī)器人則只能對固定的提問模式和領(lǐng)域中解答用戶提問(如:淘寶客服機(jī)器人等),根據(jù)機(jī)器人服務(wù)場景以及實(shí)現(xiàn)技術(shù)的不同,我們首先對此類AI對話機(jī)器人進(jìn)行大致的分類。
1.1基于應(yīng)用場景分類
| 類別 | 主要功能 | 常見產(chǎn)品 |
| 在線客服聊天機(jī)器人系統(tǒng) | 自動回復(fù)產(chǎn)品、服務(wù)的相關(guān)問題,降低企業(yè)客服運(yùn)營成本,縮短用戶等待時間,提升用戶體驗(yàn) | 京東JIMI, 阿里小米 |
| 基于娛樂的聊天機(jī)器人系統(tǒng) | 不限主題的閑聊、用于陪伴與慰藉,對機(jī)器人行為模式有極高要求;也提供特定主體服務(wù),如查天氣等 | 微軟小冰、微信“小微”、北京龍泉寺“賢二機(jī)器僧” |
| 教育場景下的聊天機(jī)器人系統(tǒng) | 幫助用戶學(xué)習(xí)某種操作;指導(dǎo)用戶深入熟悉某項(xiàng)技能;幫助輔助學(xué)習(xí) | UC、兒童教育機(jī)器人 |
| 個人助理聊天機(jī)器人系統(tǒng) | 實(shí)現(xiàn)用戶個人事務(wù)的查詢代辦 | siri、小米音箱、echo |
| 智能問答聊天機(jī)器人系統(tǒng) | 回答用戶以自然語言形式提出的事實(shí)型及復(fù)雜推理的問題,幫助用戶獲得信息于輔助決策 | IBM watson |
1.2基于實(shí)現(xiàn)方式分類
| 實(shí)現(xiàn)方式 | 具體詳解 |
| 檢索式 | 此類機(jī)器人多是為解決某類特定問題而被提出,所有回答是提前設(shè)定好的,通過規(guī)則引擎、知識圖譜、模式匹配、機(jī)器學(xué)習(xí)模型等數(shù)據(jù)媒介,在知識庫中挑選一個最佳的回復(fù)給用戶,優(yōu)點(diǎn)是回答自然,缺點(diǎn)是回答問題的范圍領(lǐng)域是封閉的,性能的優(yōu)秀與否在很大程度上取決于知識庫的數(shù)據(jù)儲備 |
| 生成式 | 不依賴于提前定義的回答,利用大量的語料訓(xùn)練監(jiān)督模型,使得該模型能輸入用戶問題,自動生成一個回復(fù),優(yōu)點(diǎn)是能覆蓋任意領(lǐng)域,缺點(diǎn)是生成式的效果容易存在問題,比如句法錯誤,語句不通順等 |
1.3基于功能分類
| 功能分類 | 具體功能 | 使用場景 | 當(dāng)前產(chǎn)品 |
| 問答系統(tǒng) | 對用戶某個封閉領(lǐng)域內(nèi)的問題做出解答 | 操作助手,客服答疑,知識檢索 | 教育機(jī)器人,淘寶客服 |
| 對話系統(tǒng)(任務(wù)型) | 完成用戶給出的某個具體任務(wù)操作 | 設(shè)置鬧鐘,購買指定物品,編輯提醒事項(xiàng)等 | 大多手機(jī)或電腦系統(tǒng)內(nèi)置對話機(jī)器人具備此功能 |
| 閑聊系統(tǒng) | 模仿人類交談模式與用戶進(jìn)行日常對話 | 閑聊,增加用戶使用樂趣 | Siri,Windows小娜,微軟小冰等 |
| 推薦系統(tǒng)(主動型) | 根據(jù)用戶特點(diǎn)向用戶進(jìn)行某一類消息的推送 | 增加用戶瀏覽量 | 今日頭條等 |
前三者為當(dāng)下聊天機(jī)器人的主要的3個方向,問答系統(tǒng)主要應(yīng)用的是語言理解、匹配與檢索技術(shù);任務(wù)型對話系統(tǒng)主要技術(shù)是意圖識別、對話管理;閑聊主要是自然語言檢索與生成,最后一種在這里不做論述。
二、對話機(jī)器人技術(shù)原理
2.1? AI對話機(jī)器人實(shí)現(xiàn)流程
語音識別:語音轉(zhuǎn)換成文本
自然語言理解:將自然語言轉(zhuǎn)換成計算機(jī)能理解的表征
對話管理:根據(jù)當(dāng)前對話管理狀態(tài)判斷系統(tǒng)應(yīng)采取的策略
自然語言生成:將系統(tǒng)策略轉(zhuǎn)換為自然語言回復(fù)給用戶
語音合成:將文本轉(zhuǎn)換為語音?
2.2 語音識別&語音合成
在以對話而非文本作為交流方式的對話機(jī)器人中,需要使用的語音技術(shù)主要分兩塊:一塊是語音轉(zhuǎn)文字,即語音識別;另一塊是文字轉(zhuǎn)語音,即語音合成。
語音識別技術(shù)(ASR):將人說話的語音信號轉(zhuǎn)換為可被計算機(jī)識別的文字信息,從而識別說話人的語音指令以及文字內(nèi)容的技術(shù)。
?其大致過程由上圖所示,在用戶通過語音激活(按鍵確認(rèn)后發(fā)聲)/語音喚醒(特定聲波捕獲)向搭載了對話機(jī)器人的設(shè)備進(jìn)行語音輸入后,由系統(tǒng)對聲音波段進(jìn)行處理以提取語音特征,之后由訓(xùn)練完成的一套體系(譬如一個訓(xùn)練完成的神經(jīng)網(wǎng)絡(luò))判斷不同特征最有可能對應(yīng)哪一個字的發(fā)音,將得到的單字進(jìn)行排列后,輸出一句完整的文本作為對話機(jī)器人之后階段的輸入。
當(dāng)然在這個過程中可能還包括將詞組或常見短句作為依據(jù)對文本進(jìn)行修正的情況,在這里不詳細(xì)描述。
語音合成技術(shù)(TTS):將文字信息轉(zhuǎn)變?yōu)檎Z音數(shù)據(jù),以語音的方式播放出來的技術(shù)。
理解為ASR的反向操作就可以。
2.3 自然語言理解(NLP)
對話機(jī)器人的自然語言理解一般包含以下幾個方面:?
| NPL | 解釋 |
| 實(shí)體識別 | 識別文本中出現(xiàn)的專有名詞,如國家,地名等 |
| 意圖識別 | 分辨文本中包含的顯式意圖與隱式意圖,如詢問外貌評價時渴望得到贊美回應(yīng)的行為 |
| 情感識別 | 分辨用戶的顯式情感與隱式情感,如反話、氣話等場合 |
| 指代消解 | 明確用戶使用的代詞的指代對象 |
| 省略恢復(fù) | 恢復(fù)被用戶省略掉的句子成分 |
| 回復(fù)確認(rèn) | 當(dāng)用戶意圖模糊時,將由對話機(jī)器人主動詢問,確認(rèn)用戶意圖 |
| 拒絕判斷 | 主動拒絕識別及恢復(fù)超出范圍的或者設(shè)計敏感話題的用戶輸入,盡可能終止當(dāng)前話題 |
?為了完成上述表格所示的用于自然語言理解種種功能,詞法分析、句法分析及語義分析這三種基礎(chǔ)的技術(shù)常常在NPL過程中被使用。其中語法分析主要用于將漢語分詞并進(jìn)行詞性標(biāo)注;句法分析在此基礎(chǔ)上解析短語的結(jié)構(gòu)及深層文法;語義分析則是在獲得了這些自然語言的表征后將它轉(zhuǎn)化為機(jī)器能夠理解的向量表示形式。
2.3.1基于知識圖譜的自然語言理解
知識圖譜可以被看成是結(jié)構(gòu)化的語義知識庫,其中包含實(shí)體-關(guān)系-實(shí)體這樣的三元組以及實(shí)體-屬性這樣的對,其目的旨在以符號的形式描述真實(shí)世界中存在的各種實(shí)體或概念及其互相關(guān)系。
?構(gòu)建:
從傳統(tǒng)數(shù)據(jù)庫的結(jié)構(gòu)化數(shù)據(jù)中映射到知識圖譜;
從HRML等半結(jié)構(gòu)數(shù)據(jù)中利用AI與規(guī)則抽取模式信息到知識圖譜中;
在非結(jié)構(gòu)化的文本與圖像中利用文本挖掘技術(shù)進(jìn)行信息抽取,利用圖像技術(shù)進(jìn)行圖像處理。
融合:
將多個數(shù)據(jù)源抽取的指數(shù)進(jìn)行融合
價值:
個性化的知識圖譜可以支撐對話機(jī)器人應(yīng)對用戶的多樣化需求,能夠?qū)柎稹υ挕㈤e聊等多個功能集中在同一個對話機(jī)器人身上,使得其應(yīng)用場景的限制逐漸減少?
2.4 自然語言生成
自然語言生成系統(tǒng)的兩大主要架構(gòu):
1. 流線型pipline自然語言生成系統(tǒng)
系統(tǒng)由幾個不同的模塊組成,模塊之前相互獨(dú)立,一般包括文本規(guī)劃(決定說什么),句子規(guī)劃(決定怎么說),句子實(shí)現(xiàn)(讓句子更連貫)?
2. 一體型integrated自然語言生成系統(tǒng)
模塊之間相互左右,后續(xù)模塊可以參與前面模塊的決策。更符合人腦思維,但實(shí)現(xiàn)較為困難。因此較常用的未流線型自然語言生成系統(tǒng)?
自然語言生成系統(tǒng)的目前的兩大主要技術(shù):檢索、生成
2.4.1 檢索技術(shù)
需前期準(zhǔn)備大量的qa對語料庫,通過排序與深度匹配技術(shù),在已有語料庫中找到適合當(dāng)前輸入的最佳回復(fù)。
缺點(diǎn):
(1)強(qiáng)烈依賴對話庫 (2)回復(fù)不夠靈活 (3)缺乏多樣性
優(yōu)點(diǎn):
(1)實(shí)現(xiàn)相對簡單 (2)容易部署
2.4.2 生成技術(shù)
基于深度學(xué)習(xí),通過編碼-解碼的過程,逐字或逐詞地生成回復(fù)。
通過對抗圣城網(wǎng)絡(luò)GAN生成自然語言。
缺點(diǎn):
(1)實(shí)現(xiàn)困難 (2)訓(xùn)練數(shù)據(jù)難以整理?
優(yōu)點(diǎn):
(1)回復(fù)靈活 (2)答案具有多樣性
2.5 對話管理
對話管理的主要任務(wù):維護(hù)更新對話狀態(tài),動作選擇。
對話狀態(tài)是指當(dāng)前用戶與機(jī)器對話數(shù)據(jù)的表征;
動作選擇是指基于當(dāng)前的對話狀態(tài),選擇接下來合適的動作
為了實(shí)現(xiàn)對話管理的功能,常用的有四種實(shí)現(xiàn)技術(shù):
對話行為識別:相當(dāng)于是意圖識別,封閉式的行為識別是講用戶意圖映射到預(yù)先設(shè)定好的意圖類別中,如在任務(wù)型對話中有訂機(jī)票、點(diǎn)外賣、搜美食等。開放式行為識別是沒有預(yù)先設(shè)定的行為類別的,一般用于閑聊系統(tǒng)。
對話狀態(tài)識別:對法狀態(tài)識別需要考慮進(jìn)對話的上下文與對話行為的相關(guān)信息,在某時刻的對話行為序列即為某時刻的對話狀態(tài)。?
對話策略學(xué)習(xí):通過離線的方式,預(yù)先讓機(jī)器進(jìn)行對話策略學(xué)習(xí),從人-人的真實(shí)對話中學(xué)習(xí)對話行為、狀態(tài)等,然后再人-機(jī)對話過程中進(jìn)行策略選擇。
對話獎勵:評價對話系統(tǒng)的評價機(jī)制,比如槽位填充效率、回復(fù)的流行度,以及日漸火爆的強(qiáng)化學(xué)習(xí)中的長期獎勵機(jī)制。
2.5 1?對話管理的4種方法
1.基于有限狀態(tài)自動機(jī) finit state machine, FSM
人工顯式地定義出對話系統(tǒng)可能出現(xiàn)的所有狀態(tài),對話狀態(tài)會根據(jù)當(dāng)前輸入在預(yù)定的狀態(tài)間進(jìn)行跳轉(zhuǎn),從而根據(jù)新的狀態(tài)去選擇合適的動作。
優(yōu)點(diǎn):簡單易用。
缺點(diǎn):人工設(shè)計狀態(tài),與狀態(tài)對應(yīng)的動作,難以應(yīng)用于復(fù)雜場景。
2.基于統(tǒng)計的對話管理
將對話過程表示成一個部分可見的馬爾科夫決策過程。設(shè)定系統(tǒng)在每個特定的狀態(tài)下執(zhí)行某一特定動作都會獲得對應(yīng)的回報,因此選擇動作時會選擇期望回報最大的那個動作。????????????????????????????????
優(yōu)點(diǎn):(1)只需定義馬爾科夫決策過程中的狀態(tài)與動作,機(jī)器可以通過學(xué)習(xí)得到不同狀態(tài)下的轉(zhuǎn)移冠關(guān)系;(2)可以使用強(qiáng)化學(xué)習(xí)的方法學(xué)習(xí)出最有的動作選擇策略 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
缺點(diǎn):仍然需要人工定義對話系統(tǒng)的狀態(tài),在不同的領(lǐng)域中通用性不強(qiáng)。????????
3.基于神經(jīng)網(wǎng)絡(luò)對話管理方法
將自然語言理解的輸出以及其他各類特征作為神經(jīng)網(wǎng)絡(luò)的輸入,將選擇的動作作為神經(jīng)網(wǎng)絡(luò)的輸出。對話狀態(tài)由神經(jīng)網(wǎng)絡(luò)的隱狀態(tài)表示。
優(yōu)點(diǎn):不需要人工定義對話狀態(tài)
缺點(diǎn):需要大量的訓(xùn)練數(shù)據(jù)???????
4.基于框架的對話管理
框架即槽值對,明確規(guī)定特征槽狀態(tài)下的用戶動作對應(yīng)的系統(tǒng)動作。
優(yōu)點(diǎn):用于特定領(lǐng)域的對話系統(tǒng)
缺點(diǎn):難以衍生到其他領(lǐng)域 ? ? ? ? ? ? ?
三、總結(jié)綜述
由上述介紹我們最終可以認(rèn)為一個基礎(chǔ)的AI對話機(jī)器人的實(shí)現(xiàn)原理大致為:
通過語音識別技術(shù)獲取用戶輸入后,使用自然語言理解技術(shù)將得到的輸入文本轉(zhuǎn)換為計算機(jī)能夠理解的向量形式,之后借由一個訓(xùn)練完好的對話管理系統(tǒng)(如一個基于深度學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò))判斷用戶意圖并根據(jù)學(xué)習(xí)到的人類行為模式做出策略選擇,之后通過自然語言生成技術(shù)規(guī)劃出符合人類思維的回答并通過語音合成技術(shù)轉(zhuǎn)化為語音播放,從而與用戶進(jìn)行互動。
總結(jié)
以上是生活随笔為你收集整理的AI对话机器人实现原理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 常用的几种卷积神经网络介绍
- 下一篇: SQL入门学习