編者按:鄧力博士原為加拿大滑鐵盧大學教授,1999 年加入微軟,2016 年起擔任微軟首席人工智慧科學家,負責微軟深度學習技術中心應用趨向的深度學習研究。
在上周的 AI Frontiers 會議上,鄧力博士為參會嘉賓做了口語對話系統的專題演講。雷鋒網與會記者將現場演講記錄下來,結合 PPT 為大家整理出這份演講實錄。此次鄧老師介紹了口語對話系統的分類,三代演變史,以及三大研究前沿領域,可謂乾貨滿滿。NLP 領域的童鞋們不可錯過。
鄧力:
今天,我想講一講口語對話系統(Spoken Dialogue System)。 「Spoken Dialogue System」 成為一個術語已經有 30 年了,現在我們也稱其為對話式交互界面(conversational UI),或者稱為「bots」。所以它有好幾個術語,但基本指的是同一件事。開發這類系統,需要能夠與人對話,要麼通過語音,要麼通過文字。這次我專門講語音,以及這兩類 bots 之間的根本性區別。
語音識別技術在最近五年中飛速進步,這兩類對話系統之間的差距在縮小,這是一個很重要的信號。但在另一方面,許多情況下我們仍然有許多語音識別錯誤。在某種程度上,我們可以把對話系統看作:
對話系統=語音識別+基於文字(text-based,或翻譯為「語義理解」)的系統
語音識別向基於文字的對話系統,提供了一些低延遲的文字輸入。因此你可以把它們放在一起(認為它們對等),這是較傳統的觀點。
如今,你可以超出傳統觀點,來思考怎麼做出整合的系統設計。相比把這兩類系統一起放進管道(pipeline),你可以事實上做得更好。這就是整合學習(integrated learning)的概念。我會聚焦在這個方向。
語音提供了語言之外的信息(Para-linguistic cues),比如語氣、情緒。這在基於文字的對話系統裡是沒有的——後者沒有提供這些信息,或者說線索。從這個方面來說,兩個系統不是對等的。取決不同的用戶,語音輸入可能會比文字輸入更簡單——但也可能更複雜。對我個人而言,由於對語音比較了解,我傾向於使用語音來表述複雜事實,它的錯誤率未必會那麼高。語音使得我能更快地提供更多信息。但對於大多數人而言,當使用基於文字的對話,他們傾向於使用複雜句式。原因要麼是這樣做更快,要麼更可能的是,他們會擔心對方的語音識別能力,然後不想重複、或者說太多,尤其在噪聲大的環境下。取決於用戶的個人特質,這兩種情況都可能發生。我認為,隨著時間流逝,語音識別系統越來越成熟,語音和文字對話在這方面的差距會越來越小。
另一個很重要的方面是窄領域 vs 寬領域(narrow domain vs wide domain)。基於語音的對話傾向於聚焦在窄領域。但現在正變得不一樣,因為語音識別技術的進步。
幾個月前,Venturebeat 發表了一篇很不錯的文章「Introducing the Bots Landscape」,對口語對話系統作了概括(再次提醒,有些人稱其為 Bots,有時稱之為對話式交互界面),以及它們的業界現狀。
Bots 領域的景觀一覽
上欄:有吸引力的 Bots;左欄(由上至下):連接器/分享服務,發現 Bot ,分析;右欄(由上至下):AI 工具:NLP、ML、語音識別;Bot 開發者框架和工具,短訊
對話系統可被看作是一個連接器,來把你的技術與第三方相連。然後你有一系列開發框架和工具來實現這點。微軟在這方面有大動作:11 個月前,微軟 Build 開發者大會上有一個重大的宣布,即 Microsoft Bot Framework(微軟 Bot 框架),它讓大家、第三方都能使用。
由於時間限制,今天我只會聚焦於 AI 工具,在自然語言處理(NLP)、語音識別這方面。從這個角度,我會回顧自 1990 年代初以來,相關技術經歷的三代發展。
幾個月前,我寫了這篇文章「How deep reinforcement learning can help chatbots」,討論 bots的價值。今天的話題以該文章為基礎。文章中,我首先談到了app 和網絡模型(web models)遇到的問題;其次,對話作為一個新生的、正不斷壯大的移動交互界面(mobile UI),以及在這之中,bots 扮演的人機之間智能代理的角色。我會對技術細節作更深入的討論。
我把 bots 歸納為三個類別:
社交機器人(social chatbot)。這方面,微軟在中國開發的「小冰」相當成功,是個很好的例子。在美國,幾個月前我們發布了聊天機器人 Tay(雷鋒網(公眾號:雷鋒網)注,這就是學會了罵人、在推特上發布不到一天就被緊急撤下的那個,入選年度十大 AI 事件)。
信息機器人 (infobot)。它們其實是搜尋引擎部分功能的替代——它們允許用戶不再需要點擊網頁連結,而能夠直接獲得想要搜索的答案。這減少了一部分麻煩。如果問題比較複雜,你也許只需要兩三輪解釋來是回答更明確。
任務完成機器人(task completion bot),它們能為你做事情。相比只能交談、對話的社交機器人,它們能處理實際問題,所以一般需要第三方的幫助。
現在,我開始講過去一些年技術的進步。近幾年,我們經歷了不少次公眾對於 AI 技術的興奮高潮(hype)。但現實是,相關技術的基礎在 1980 年代末、1990 年代初就已經開發出來了。我會對這些技術如何從第一代發展到最新一代作個概括。
首先,第一代技術從 1980 年代末開啟,在流行度上面,幾年前這一波技術就可以說是結束了,雖然你能夠發現一些商用系統和 bot 初創企業還在使用它們。這代技術依賴於專家人工制定的語法規則和本體設計(ontological design)。這些規則很容易解釋、理解,比較透明,這就是這代技術為什麼能催生出一系列的成功商業應用的原因。修補漏洞很容易,系統更新也很容易。
它的局限性:
早期有相當多的高校、政府機關、商業公司研發這類系統。它們可分為語音識別和語言理解系統。它們全都由符號規則組成,需要付出極大的努力來開發。
由於這些局限,第一代技術只能應用於極狹窄的領域,而這也許是一件好事。有一個非常好的、關於這類技術的論文,它的研究對象是伯克利的餐廳。雷鋒網獲知,普通餐廳反而是不行的,因為需要寫的規則太多。
第二代技術是數據驅動型的。
從業者不願意把這代技術稱之為淺層學習(shallow learning),但事實如此,它們是傳統的淺層學習方法。對了,用於對話規則(dialogue policy)的強化學習就是這時候研究出來的(1990 年代)。今天我們看到的強化學習高潮,在那時就打下了基礎。如今深度學習的進步進一步起到了幫助。
這種基於淺層學習的數據驅動方式,不容易理解和修補漏洞,但確實有學習能力。
這篇論文(「POMDP-based statistical spoken dialogue systems:a review」)對第二代技術做了整體歸納,它發表的時間是 4 年前(2013),恰恰在深度學習登場之前。這篇論文是劍橋大學的成果,他們做了很多努力來把該系統商業化。
第三代技術用深度學習取代了淺層學習的部分。和第二代技術一樣,數據被用來學習對話系統中的所有東西。第三代的神經模型和表示遠遠比前兩代要強大,端到端的學習也變得可行。從兩年前開始,它吸引了全世界範圍內巨大的研究興趣。但它也有許多局限性:
這三代技術有各自的強項,如何把這些優點整合起來,是一項主要的挑戰。很多研究聚焦於此。
如何用強化學習來明確地表達這類系統?
如果你仔細考慮「什麼是 state (狀態)?什麼是action(行動)?什麼是reward(獎勵)?」你就可以把上文提到這三種類型的 Bots (社交機器人、信息機器人、任務完成機器人)用強化學習表示出來。
這裡我列出了三項前沿研究領域:
基於語音 vs 基於文字
針對對話的深度強化學習
符號-神經之間的整合
語音識別已經取得巨大進展。這裡我的觀點是,語音問題不僅僅是一個信號識別問題,而是信息處理問題。
相關文章:
阿里雲AI專家陳一寧:別被語音識別率的數字所「騙」、語音交互產品大多很雞肋
語音交互的痛點,為什麼扎克伯格精心打造的AI「賈維斯」還會出糗?
NLP工程師技術解讀:智能語音助理類產品的未來在哪裡?
人工智慧 2016 十大裡程碑盤點!革命還是泡沫?
雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。