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