導讀概要:本文是在QCon和AI前線的編輯對我在QCon2019上的分享演講內容整理稿的基礎上,我自己重新整理了下內容,算是自留地的第二篇文章. 以下在可分享的尺度上,整理度祕演算法團隊的某幾個方面的對話式AI技術實踐。

產品背景

什麼是Conversational UI&AI

在介紹對話式 AI 之前,我們有必要先了解一下 Conversational UI(對話式 UI)的概念。很簡單,就像我們今天的分享一樣,我們用對話來實現自然交互,這其中所用到的技術就是對話式 AI。我不用對話系統來定義,原因在於,要實現自然交互要用到很多技術,可能不僅限於大家傳統理解上的自然語言技術,還包括搜索、推薦、知識圖譜

等,所以說,對話式 AI 基本上是一個 AI 的集大成者。所謂的對話式交互也是一種人機交互的方式,我們換一個視角,從人機交互的演變來看。人機交互的演進視角看Conversational UI

從抽象的角度來看,事實上整個人機交互方式的演變都是朝著更高效、更自然的方向發展,而其一個比較核心的是從人適配機器,逐步的轉變成機器適配人

Conversational UI的市場現狀

如果從整體智能音箱的出貨量來看,預計全年能到大幾Kw(某統計機構的預估),這已經一下子成為繼手機之後的一大智能設備

Conversational AI技術詳解問題建模

在深入討論對話式AI之前,需要對一些問題進行明確和建模,實際上對話機器人,或者對話系統在很多人談到的時候都有著自己心中的期望和理解,比如 有一些人覺得對話機器人指的是能聊天的機器人,有一些人覺得是能實現打電話預定餐館等等。這背後我們稍微抽象的話可以按照兩個維度來劃分:1. 用戶需求維度 1) 信息或者內容消費述求:常見的包括瞭解天氣、匯率,聽首歌、找電影,放個廣播等 2) 工具或者服務型述求: 比如 希望能夠充個花費、算下算術(計算器)、設個鬧鐘等

3) 情感述求:聊天傾述和消磨時間

2. 技術類型維度1) 任務型BOT(Task oriented),比較多對應到上面的1和2中。目前對話系統領域比較大的一塊技術研究是這部分,也基本是當前主流音箱上serve用戶最多需求背後對應的技術問題 2) Q&A型: 類似Deep Q&A,比如 魚是哺乳動物嗎? 3) chi-chat型:類似小冰這種專註聊天的

以泛Task Oriented 的BOT技術入手,以上是一個比較經典的建模框架,用戶輸入語音,首先經過ASR模塊識別為文本,基於文本進行自然語言語義理解,生成文本理解結果,而後進行對話狀態跟蹤理解上下文多輪的狀態。對話管理模塊基於這個多輪理解的狀態選擇最佳的回應action,下游不同的BOT的action可能涉及到檢索、推薦以及查詢和訪問API等。對話action的結果經過NLG模塊生成適合人理解的回復文本,最後基於TTS模塊轉為語音播報。以一個經典的提醒設置任務為例:

對話理解框架

下面展開介紹下NLU模塊,NLU模塊最核心有兩部分:1. 找到一個合適的語義表示 2. 從文本到這個語義表示的理解演算法

從語義表示出發來看,以下是我總結的一些表示方式,包括:
  1. 基於熱門Query來表示:是一個經典的用熱門Q表示同語義的長尾冷門Q。在這個建模下,問題可以轉化為一個Q改寫問題,技術的流派包括檢索式、E2E翻譯式
  2. Term空間表示: Term空間是通用檢索中語義表示,在此之上對應的包括基礎的NLP任務,切詞/NER/POSTAG/Term weighting等
  3. 結構化的意圖和槽位表示。這是對話系統中最常用和最經典的方式,用意圖(eg:聽音樂)、槽位(歌名/歌手...)來實現更為結構化、知識化的語義理解
  4. 語義依存推理樹表示。3中的結構化表示對於一些知識之間存在推理關係的時候就顯得比較無力,eg:劉德華的老婆是誰?。可以用語義依存和推理關係樹來表示

以上的幾種方法語義的表示越來越精細化,對應的理解演算法的難度也相應越複雜。實際在一個好的工業系統中根據不同階段和不同領域的需求差異,是一個綜合存在的系統。

下面展開介紹下最經典的意圖槽位體系下的技術,主要的技術任務是兩個:意圖理解和槽位解析。

意圖理解是一個典型的分類任務,而槽位解析則是一個經典的序列標註任務。隨著近期BERT和最近的XLNet等pre-trained model刷爆各類任務榜,我們也開始在pre-trained model上開始探索,pre-trained model的核心思想是Transfer Learning。我們在這個方面的探索包括:1)與我們的NLP部門合作,將知識圖譜based的pretrained模型應用過來 2)Joint Task Learning探索. 展開來說:

1. ERNIE. 回顧下BERT成功的主要幾個要素:1)雙向Transformer的使用 2)Masked LM + Next Sentence Prediction的任務設計,支持1 3) 一個通用的pre-train + fine tune的框架. ERNIE(Enhanced Representation through knowledge integration) 則是在BERT的大框架下,將Masked的Unit由char換成一個NE,使得在學習中能夠學習到Knowledge的額外信息. 在中文的幾大任務評測下均超過BERT.

2. Joint Learning. 意圖理解和槽位解析實際上是一個相輔相成的任務,其中如上圖所示,意圖能夠大大的減少槽位解析時面對的語義空間,減少歧義性;反過來槽位作為很重要的意圖信號,能夠大大的提升意圖理解的效果。因此可以在BERT的大框架上再結合Joint Learning的任務實現一個Pre-trained Joint Model

對話管理對話管理(Dialogue management),這個模塊不同的系統以及學術paper中的模塊任務邊界定義都稍微有一些差異,有些包括了DST,而有些則沒有包括。但是基本上如果連著DST來一起考慮,相當於核心解決兩個事情:1) 理解用戶和系統的狀態 2)根據這個對話狀態選擇最好的動作

在這個問題建模框架下,除了盡量用當前所有的信息來理解用戶的需求得到一個多輪狀態下的意圖和槽位表示外,我們又做了一些更深入的思考,即不單單理解「知」的狀態,還能夠盡量去理解"不知"的狀態,做到所謂的「知之為知之,不知為不知」的「真知」狀態。這個也很符合人的智能,人在對話中能夠明顯體現出的智慧不是所謂的全知全能,而是能夠知道自己不知道。

而為了實現「不知為不知」的狀態,需要構建一個滿意度的預測模型,這個任務最大的挑戰是如何建立在對話交互場景下的反饋信號。目前我們的實踐是充分結合離在線的行為信號,結合小模型和在線的Transformer based的Deep Model來實現. 以下是一個場景的示例:

對話推薦對話場景下的推薦,我們做了不少的實踐,鑒於篇幅和一些可分享的尺度,暫時先放下,下次有機會展開分享總結

以下是廣告:

&& 目前還有非常少量的HC,面向於資深演算法工程師,歡迎私信我自薦和推薦合適的人選~

推薦閱讀:

相關文章