當前位置:
首頁 > 科技 > 多輪對話機器人打造:著手設計

多輪對話機器人打造:著手設計

| 導語多輪對話聊天機器人,作為人工智慧的典型應用場景,也是一項極具挑戰的任務,不僅涉及多方面異構知識的表示、抽取、推理和應用,還涉及包括自然語言理解在內的其他人工智慧核心技術的綜合利用。

簡介與相關技術調研

目前,多輪對話聊天機器人已經產生了很多應用,有萌妹子小冰,有佛法大師賢二,也有應用在各行各業的智能客服。多輪對話聊天機器人,作為人工智慧的典型應用場景,也是一項極具挑戰的任務,不僅涉及多方面異構知識的表示、抽取、推理和應用(如語言知識、領域知識、常識知識等),還涉及包括自然語言理解在內的其他人工智慧核心技術(如用戶畫像、對話管理等)的綜合利用。

實現對話機器人常見的方法,可以從最簡單的「關鍵字匹配」,到最前沿的深度學習「端到端生成」應答。分別應用到不同的場景:閑聊、任務(垂直領域)、問答(QA)。

設計一個聊天機器人

要想機器能與人產生對話,那麼第一步,就必須先「理解」人說話的內容,對於機器來說,「理解」就是把自然語言轉成具有結構化的表達。機器解析結構化表達的內容,根據知識庫(可能是QA對、可能是if-then規則、可能是業務流程等)獲取相應的回答。

如下圖,一次對話,就是一個會話的接入,語義理解就是理解人說話的內容,應答引擎就是根據理解的內容做出的應答。

語義理解

1. 建立語言模型

因為人類語言的本質是為了傳遞人與人之間的信息(意思)。那麼,我們可以定義出N種意思分類(意思的種類越多,機器人的理解能力越強)。所以,一個語言模型就是一個多標籤的數學模型,把自然語言轉成具有結構化的表達。有以下三個步驟:

1)文本預處理:切詞、詞向量、詞義消解等(這裡內容很大,不詳細介紹)。

2)樣本準備:抽取一些經典的發言,在我們的myModel平台進行標註。

3)序列模型:多標籤模型,如下圖就是一種CNN與LSTM組合的神經網路方法。

儘管已經在一個垂直的領域,而且看似簡單的三步,但是要做一個好的語義理解模型,是非常難的,例如一個小改動導致預測結果差異,可分兩種:

1)一種是句中的詞語位置變了、輔助詞變了,如:「這就是給我的回復?」與「你們就這麼回復我?」。

2)一種是增加一些無關核心內容的詞,如:「但是我後面沒開掛都被制裁」與「但是我後面沒開掛都被制裁我就想不通了」。

備註:增加更多有標註的樣本量、基於大規模數據訓練的模型(如BERT等)二次訓練、神經網路增加attention、結合知識庫等,都是一些優化的手段。

2. 語言模型在系統中的應用

理解用戶說話的意思,我們分為了三層:第一層,是理解當前聊天處於哪一個話題,有沒有切換話題;第二層,是理解具體的內容,含有意圖與實體;第三層,是理解當前發言的情感,跟蹤用戶的情緒變化。

1) 話題模型(Topic模型)

在我們系統中,它是一個分類模型,與後面的應答引擎是有對應的關係,根據不同的話題,進入不同的業務流程,所以模型的標籤的業務的分類。

2) 意圖理解(Act-Slot模型、Value模型)

Act-Slot模型

在我們系統中,它是一個多標籤模型,相同一句話,不同的角度,有不同的理解。所以,模型的標籤是意圖與實體類型,如下圖的「inform,QQ」。

例如,在具體的項目中,我們定義了:

Value模型

在我們系統中,獲取到用戶發言的Act-Slot之後,根據Act-Slot的意圖,得到其相對應的實體值。總共設計了三種方法以獲取不同類型的Value,方法如下:

正則表達式:如抽取時間、等級等有一定格式的實體。

詞庫對比:如安圖恩等遊戲專有辭彙。

LSTM模型:當句式中不明顯表達實體時,將通過模型分到6類中:

ENV:涉及到電腦環境相關信息。

MAPID:涉及到地圖相關信息。

ROLE:涉及到角色相關信息。

TEAM:涉及到組隊相關信息。

LOGIN:涉及到登錄相關信息。

EQUIP:涉及到裝備相關信息。

備註:並非所有聊天機器人都這麼設計,有些系統會把意圖作為一個模型,實體與value作為一個模型。

3) 情感模型

在我們系統中,它是一個分類模型,把用戶的發言分為了以下幾種不同級別的情緒(標籤):髒話、生氣、平和、讚揚。

應答引擎

1. 定義業務描述語言

為了能快速接入各種服務,基於XML描述語言,定義了一套業務流程的描述語言。總共分為三層,最底層是基礎流程式控制制單元,如分支if、循環while、順序sequence、並行parallel;第二層,是每個話題都需要的通用組件,如詢問QQ號、遊戲名、情緒安撫等;最頂層是具體的業務應用服務,如裝備找迴流程、被盜處理流程等。

例子:獲取QQ號與大區號流程。

2. 業務流程式控制制引擎

如下圖所示,有Task1到Task5,共5個業務流程(業務應用),這些業務流程可以使用上述描述語言刻畫出來。而下圖中涉及到的為上述語言的解析過程。

話題切換監聽器:作為旁路分類模型,用於跟蹤聊天話題的切換。以用戶發言為輸入,輸出1、2、3、4、5,分別代表Task1,Task2 …. Task5。(用戶每次輸入,都會有一次判斷,反映話題是否有變化與切換到哪一個Task)

會話信息:表示在對話當抽取出來的上下文信息,局部信息表示在本Task可見,全局信息表示所有Task可見。

狀態:表示Task運行狀態。而流程中斷的位置,並非所有位置都可以中斷,如下圖標記紅點的是可被中斷(當運行到有標記紅的地方,就會請求「話題切換監聽器」,當前是否有話題變化)。

掛起:表示當前流程暫停(如下圖,P2表示Task1中的第二個點掛起)

未激活:「-」表示該Task沒有啟動過。

激活:Running表示正處於該Task的流程中。

結束:Close表示該Task已結束。

備註:每一個紅點的地方,都可能由於用戶發言導致切換到另一個Task流程中。會話開始時,會根據「起始問題識別」,得到需要走哪一個Task,作為起始Task。在起始Task流程中,如果遇到紅點的地方,並且話題切換監聽到需要轉到另外的Task,剛切換到新的Task流程,新流程走完後再回到切換話題的斷點處,繼續原流程一直走完。

3. 一個業務流程例子

例子:假設有四個業務流程Task,每個流程都根據流程式控制制單元畫出相應的流程圖。

Task1為「處罰查詢」流程。

Task2為「處罰申訴」流程。

Task3為「修改密碼」流程。

Task4為「實名驗證」流程。

備註:每個Task都可以單獨由「起始問題識別」觸發,也可以如下例子嵌套對話。

TP小天

對話是一種比網頁或APP更自由的表達形式,用戶有了主動表達訴求的空間,可以實現有別於網頁或APP的一些特殊功能:用戶安全教育、輿論監控、信息收集。

根據上述的機器人設計方法,我們設計了TP小天,用戶可以通過遊戲安全中心公眾號,諮詢遊戲安全相關的信息。如下圖所示,已經接入了處罰查詢、申訴、舉報、帳號凍結等遊戲安全功能與話題。

在實戰中,一個可運營的聊天機器人,還會涉及到很多其它的內容,如何提升語義理解的豐富性、大樣本推薦標註、FAQ應答、快速可配置修正、對話生成多樣性、閑聊等等。

---------END----------

關注云加社區,回復3加讀者群

在看,讓更多人看到!

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

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


請您繼續閱讀更多來自 雲加社區 的精彩文章:

Serverless 2.0 重磅發布,無伺服器時代來臨

TAG:雲加社區 |