1
本文作者: 宗仁 | 2016-09-26 20:40 | 專題:雷峰網(wǎng)公開課 |
對(duì)話機(jī)器人很多,像Siri,小冰,度秘,Allo都能在你有空的時(shí)候跟你貧貧嘴,不過隨著廠家和用戶意識(shí)到憑空做出一個(gè)高度通用的對(duì)話機(jī)器人是非常不現(xiàn)實(shí)的,對(duì)話機(jī)器人的姿態(tài)也發(fā)生細(xì)微的變化——廠家們?cè)噲D從某些垂直領(lǐng)域開始入手深根,并且從純聊天功能發(fā)展到這個(gè)對(duì)話機(jī)器人能為用戶完成什么指定的任務(wù)功能。一下子為“只說不做” 的對(duì)話機(jī)器人找到了一個(gè)新的場(chǎng)景。
不過,這個(gè)全新升級(jí)的對(duì)話機(jī)器人,重心移向代替人決策,并幫用戶完成任務(wù)。
它如何聽懂用戶想做什么事情?如何做到聊天過程中都不能達(dá)到的Human like leaering?
然后它如何知道第三方App能完成哪些任務(wù),需要點(diǎn)擊哪里,然后才能與用戶想做的事情對(duì)接?
當(dāng)它的重心變成了為用戶完成任務(wù)時(shí),它的核心技術(shù)要求是什么?
……
這些只有具備多年實(shí)戰(zhàn)經(jīng)驗(yàn)才會(huì)有的答案,我們邀請(qǐng)到了驀然認(rèn)知?jiǎng)?chuàng)始人戴帥湘,他家的小驀機(jī)器人旨在對(duì)話過程中獲取和“揣摩”意圖,最終實(shí)現(xiàn)人類決策,幫助任務(wù)執(zhí)行。戴帥湘,前百度主任架構(gòu)師,曾長(zhǎng)期擔(dān)任百度Query理解方向負(fù)責(zé)人,是自然語言理解方面的技術(shù)專家,曾榮獲第一個(gè)也是迄今為止唯一一個(gè)以NLP技術(shù)為核心的百度最高獎(jiǎng)。2010年提出“Query改寫模型”給百度搜索引擎技術(shù)帶來了跨時(shí)代的飛躍,使得搜索相關(guān)性和廣告收入均大幅提升。該模型比學(xué)術(shù)界同類模型《Query Rewriting Using Monolingual Statistical Machine Translation》的提出還要早將近1年。此模型迄今為止仍廣泛應(yīng)用于百度所有搜索產(chǎn)品線。申請(qǐng)了自然語言處理,語義搜索,自動(dòng)問題求解等領(lǐng)域內(nèi)20多項(xiàng)專利技術(shù)。
對(duì)話模型中的One-shot Learning和RL(增強(qiáng)學(xué)習(xí))。
One-shot Learning的目的是要從少量樣本中進(jìn)行訓(xùn)練,以解決對(duì)話系統(tǒng)的“冷啟動(dòng)”問題;
RL是一種無監(jiān)督的學(xué)習(xí),它通過試錯(cuò)的方式來進(jìn)行學(xué)習(xí)。針對(duì)冷啟動(dòng)后的對(duì)話模型,RL可以幫助系統(tǒng)在和用戶的實(shí)際交互中不斷增強(qiáng)對(duì)話模型中優(yōu)勢(shì)策略,削弱負(fù)面策略的影響。實(shí)際表現(xiàn)是用戶會(huì)覺得系統(tǒng)越來越人性化,或者說個(gè)性化。
上述這兩種學(xué)習(xí)方法更接近生物體,或者說人的學(xué)習(xí)方式,所以我更愿意稱之為“Human-like Learning”。在對(duì)話中,這兩者一個(gè)處于流程的最前端,一個(gè)處于流程的最后端;一個(gè)讓模型可以冷啟動(dòng),一個(gè)讓模型可以實(shí)時(shí)優(yōu)化,兩者相得益彰。當(dāng)然,在自然語言理解中,One-shot Learning還可以用在更多地方,比如語義分析這種需要“表示學(xué)習(xí)”的任務(wù);任務(wù)決策這種典型的“多任務(wù)學(xué)習(xí)”場(chǎng)景;還有就是對(duì)話場(chǎng)景可移植性問題的處理上,這個(gè)地方有點(diǎn)類似大家常聽到的“遷移學(xué)習(xí)”。
其實(shí)這里面涉及很多復(fù)雜的技術(shù),分不同的層次,也包含不同的學(xué)科,如語言學(xué),認(rèn)知科學(xué),邏輯學(xué),自然語言處理,機(jī)器學(xué)習(xí)等,是多種類關(guān)鍵技術(shù)融合交匯的過程。我們暫且可以稱之為自然語言理解。
如果把人腦看做一臺(tái)機(jī)器,那么自然語言就是一種適合這種機(jī)器識(shí)別和運(yùn)算的語義表示,自然語言通過字構(gòu)成詞,詞又構(gòu)成句子,句子進(jìn)一步構(gòu)成復(fù)雜的篇章,其體現(xiàn)的是一種由簡(jiǎn)單組合成復(fù)雜,由有限組合成無限的一個(gè)過程。
組合性提供了一種生成新東西的能力,但是其并不保證生成出來的都是好的東西,而因果性則正好提供了這一保證。
所以自然語言理解的核心是要在語言的某個(gè)層次上對(duì)組合性,以及因果性進(jìn)行建模。用更通俗的話說,前者對(duì)應(yīng)的是語義的表示,后者則是說的知識(shí)推理。
語音機(jī)器人代替人決策,實(shí)現(xiàn)了自動(dòng)化。這件事有兩個(gè)難點(diǎn):一是聽懂用戶想做什么事情,他說“科比得分最高比賽”的時(shí)候,知道他說的是籃球、是視頻、是81分,然后才能通過無形的手替人操作。
這其實(shí)就是我上面提到的語義理解,我暫時(shí)不能透露具體細(xì)節(jié),因?yàn)檫@部分是我們一個(gè)重要的創(chuàng)新之一,肯定不是業(yè)界和學(xué)術(shù)界公開的東西,所以暫時(shí)還不能說,但我可以從另外一個(gè)側(cè)面說一下基本的思路。
One-shot Learning只是一個(gè)概念,一種抽象的思想,甚至還不是一個(gè)通用的學(xué)習(xí)框架。對(duì)于語義理解來說,其肯定不是一個(gè)如圖像識(shí)別或者語音識(shí)別一樣典型的模式識(shí)別問題,或者說端到端的問題。語義理解是一個(gè)推理相關(guān)的問題,要通俗地說其更接近下棋這一類問題。這類問題,顯然無法直接通過一個(gè)端到端的框架來進(jìn)行訓(xùn)練和學(xué)習(xí),而是首先需要針對(duì)問題本身進(jìn)行建模,然后在這個(gè)基礎(chǔ)上再尋求合適的學(xué)習(xí)方法。
舉個(gè)很容易理解的例子,我們?nèi)藢W(xué)寫字,只要學(xué)習(xí)寫少量的字,然后再看到一個(gè)新的字的時(shí)候就能基本順利地寫出來,究其原因可以認(rèn)為是我們針對(duì)寫字這個(gè)過程做了某種近似的抽象和建模:就是把寫字當(dāng)成是有限的特定筆畫+特定的空間排列的一個(gè)過程。當(dāng)我們看到一個(gè)從未見過的字的時(shí)候,我們就嘗試用這種抽象的方法去“構(gòu)造”一個(gè)這樣的字,然后邊對(duì)照邊調(diào)整,最后寫出一個(gè)最像這個(gè)字的字出來。這里面也體現(xiàn)了我上面說的組合性和因果性,只是因果性可能更多地是一種統(tǒng)計(jì)關(guān)系。
所以這類問題最關(guān)鍵的地方就是要針對(duì)問題本身去建模,把問題抽象出來,逼近問題本質(zhì),不可能有一個(gè)現(xiàn)成的通用的框架來搞定。
接著上面問題:二是知道第三方app都可以完成哪些任務(wù),需要點(diǎn)擊哪里,然后才能與用戶想做的事(語義理解)進(jìn)行對(duì)接。
【這個(gè)問題看起來完全誤解了我們的工作,我們根本不關(guān)注一個(gè)app是如何操作的,實(shí)際上也無需和具體app對(duì)接。】
再回到問題本質(zhì)這個(gè)思想上來,現(xiàn)在的APP的操作是基于鼠標(biāo),鍵盤,觸摸屏的輸入方式來設(shè)計(jì)的,不管APP做得多么友好或者簡(jiǎn)潔,其都受限于這幾種機(jī)械的輸入方式,簡(jiǎn)單地說,現(xiàn)在的APP不過是這幾種輸入方式的一個(gè)組合操作。為什么要把語義理解和這種低級(jí)的操作方式對(duì)應(yīng)起來呢?完全沒有必要這么做!對(duì)話是一種全新的交互方式,也只有對(duì)話的交互方式才是最接近人與人之間的交互方式,當(dāng)然也是人與機(jī)器最自然的交互方式。
脫離技術(shù)細(xì)節(jié)層面,我們要完成某個(gè)任務(wù)或者做某個(gè)決策,這個(gè)過程本身和輸入方式無關(guān),它就是一個(gè)任務(wù)流,可能有一些關(guān)鍵節(jié)點(diǎn),不同的人都需要遵守,但更多的是其實(shí)沒什么規(guī)律,每個(gè)人都要自己不同的個(gè)性化處理過程。比如“買飛機(jī)票”的過程:有人會(huì)去網(wǎng)上買,有人會(huì)打電話買,有人會(huì)去柜臺(tái)買;有人很固執(zhí),只要滿足其所有既定條件下的機(jī)票;有人猶豫不決,不停地對(duì)比,邊詢問邊考慮;更多的人是有一個(gè)基本優(yōu)化目標(biāo),比如價(jià)格要盡量低,或者說時(shí)間要盡可能快,然后根據(jù)當(dāng)前航班情況選擇一個(gè)自認(rèn)為最好的。
我們要做就是在人完成一個(gè)任務(wù)的抽象層面,用一種最自然的方式來輔助人決策,以盡快推進(jìn)任務(wù)的執(zhí)行,這其中最合適的方式顯然就是人與人之間的對(duì)話方式。其瞄準(zhǔn)的是人完成某個(gè)具體任務(wù)的場(chǎng)景,用對(duì)話的方式來推進(jìn)整個(gè)任務(wù)的快速進(jìn)行,并在恰當(dāng)?shù)臅r(shí)候調(diào)用可能的第三方接口,比如展現(xiàn)特定信息,下單等,以使得整個(gè)任務(wù)朝著某個(gè)目標(biāo)優(yōu)化下去,比如獲得最符合當(dāng)前用戶個(gè)性化的訂單。這是典型的AI思路,所涉及的技術(shù)也是上面所說的各種復(fù)雜技術(shù)的融合。
當(dāng)一個(gè)語音機(jī)器人的重心變成了幫用戶決策,調(diào)動(dòng)第三方應(yīng)用來快速響應(yīng),它會(huì)變成一個(gè)重對(duì)接技術(shù)和資源的事情。
【這個(gè)問題是不是問我們需要對(duì)接很多服務(wù),所以在服務(wù)對(duì)接的運(yùn)營上會(huì)比較重?】
我們的確需要對(duì)接諸多服務(wù),以在具體的任務(wù)場(chǎng)景中靈活地恰當(dāng)?shù)卣{(diào)用某種服務(wù)來輔助決策。
但和問題中的理解完全相反,我們可以針對(duì)網(wǎng)絡(luò)上不同的服務(wù)接口,全自動(dòng)地構(gòu)建語義分析和服務(wù)對(duì)接程序(拋開具體商業(yè)談判不談,這里只從技術(shù)上考慮,畢竟網(wǎng)絡(luò)上使用越廣泛的服務(wù)就越是免費(fèi)的),這也正是我們另外一個(gè)優(yōu)勢(shì)所在。除了我們的語義分析方法可以快速地從一個(gè)場(chǎng)景遷移到另外一個(gè)場(chǎng)景外,我們針對(duì)不同的服務(wù),可以完全自動(dòng)地構(gòu)建起對(duì)應(yīng)的對(duì)接程序。更直白地說就是針對(duì)一個(gè)特定服務(wù)的接口,我們會(huì)讓我們的系統(tǒng)自動(dòng)“寫”一段程序來處理這個(gè)服務(wù)下人和服務(wù)之間的對(duì)接過程,也就是針對(duì)這個(gè)服務(wù)接口的對(duì)話流程。從程序編寫的角度看,就是我們?cè)O(shè)計(jì)了一個(gè)可以生成特定程序的程序,來代替本來可能需要程序員手工編寫的工作。
基于我們?cè)O(shè)計(jì)的模型的通用性,理論上,只要我們持續(xù)深入下去,我們就可以做到全場(chǎng)景對(duì)話,甚至多語言對(duì)話。但是從當(dāng)前用戶的接受程度,相關(guān)產(chǎn)品的成熟度,還有商業(yè)模式上看,我們更傾向于在車載和家居環(huán)境中突破。也就是說純語音對(duì)話的方式現(xiàn)在還只是一種非主流手段,只有當(dāng)人雙手被占用的情況下,這種方式才會(huì)變得有用和有效。但是,隨著語言理解和對(duì)話技術(shù)的快速發(fā)展,這一情況正在變得越來越普及,有望在數(shù)年后成為一種主流的人機(jī)交互方式。
讀者提問
首先要說明的是我個(gè)人覺得小冰根本沒有什么復(fù)雜的技術(shù),雖然可能用了深度學(xué)習(xí),用了句子生成方法。但其核心還是通過大量聊天語料(問答對(duì))訓(xùn)練一個(gè)新問題在當(dāng)前上下文下最“相關(guān)“的一個(gè)已有問題,從技術(shù)上其更近似于檢索的方式,只是選用不同的模型對(duì)上下文的描述能力可能不同,效果也有所差異。但總體上,這種對(duì)話和“語言理解”無關(guān),也就說和推理沒有半點(diǎn)關(guān)系,還只是一種純統(tǒng)計(jì)上的相似度計(jì)算而已。所以要問的或許應(yīng)該是:游戲中的NPC可否像真正的游戲玩家一樣和電腦前面的游戲玩家進(jìn)行自然對(duì)話。
其實(shí)特定的某個(gè)游戲是一個(gè)非常細(xì)分的場(chǎng)景,我個(gè)人覺得這這種受限場(chǎng)景下,人機(jī)對(duì)話可以做得更接近于人與人之間的對(duì)話,但是需要考慮的是游戲中角色很多,不同角色的設(shè)置也不同,需要真正比較通用且能快速實(shí)現(xiàn)個(gè)性化的對(duì)話模型,而且這種模型的冷啟動(dòng)也需要針對(duì)不同角色有所差別。
還是和問題本身相關(guān),如果把問題看做是一個(gè)模式識(shí)別問題,輸入和輸出都很明確,而且也能夠獲取到大量的訓(xùn)練樣本(包括用人工可以大量標(biāo)注的方式),此類問題一般適合用端到端的方法來解決,深度學(xué)習(xí)是一個(gè)很好的選擇。NLP中的序列標(biāo)注,統(tǒng)計(jì)機(jī)器翻譯都可用此類方法。如果問題本身就是一個(gè)目標(biāo)并不能明確地用具體標(biāo)簽描述,而是需要根據(jù)其所處的環(huán)境,做出一系列明確的動(dòng)作,比如規(guī)劃問題,任務(wù)決策問題等,這類問題暫時(shí)還不適合用深度學(xué)習(xí)來處理,需要深度學(xué)習(xí)和邏輯相結(jié)合。
關(guān)于“傳統(tǒng)NLP方法”這個(gè)說法,我個(gè)人有不同的看法。對(duì)于NLP技術(shù)來說,其研究的是逼近語言現(xiàn)象本質(zhì)的方法,或者說針對(duì)語言建模的方法,最早大家是從邏輯的角度來研究,然后加入了統(tǒng)計(jì)和機(jī)器學(xué)習(xí),語言問題是個(gè)足夠大的問題,這些不同流派揭示的只是語言問題的不同側(cè)面而已。如果從應(yīng)用的角度來看,當(dāng)然合適的方法是要考慮語言問題的各個(gè)側(cè)面,融合邏輯,知識(shí)和統(tǒng)計(jì)的力量才能獲得有效的進(jìn)步。很多所謂采用NLP技術(shù)的產(chǎn)品大都把眼光停留在文本分類,詞匯標(biāo)注,甚至分詞這樣的單點(diǎn)任務(wù)上,其實(shí)離理解NLP技術(shù)的作用還差得很遠(yuǎn)。
隨著終端的多樣化,設(shè)備的逐漸微型化,這是個(gè)必然的趨勢(shì),我無法給出一個(gè)具體的時(shí)間預(yù)測(cè),但我相信這一天肯定不會(huì)太遠(yuǎn),移動(dòng)時(shí)代的到來就已經(jīng)開始肢解搜索了。當(dāng)前的搜索引擎不久后將會(huì)蛻化成“交互式搜索”后面的一個(gè)并不那么重要的服務(wù),就像分類目錄式搜索被現(xiàn)在的搜索引擎取代一樣。
難點(diǎn)還在于自然語言理解,更具體一點(diǎn)說就是機(jī)器如何去“理解”人類語言。機(jī)器至少要理解人的意圖,并且能支持推理,推理本身必須也是一種計(jì)算,然后才能談對(duì)話,談交互,否則都是無源之水無本之木。
教育是一個(gè)很大行業(yè)呀,這方面我不專業(yè),所以只能隨便說說。
從我們交互與決策引擎的角度來看的話,機(jī)器輔助教育可能是一個(gè)很有意思的點(diǎn),讓機(jī)器人幫助完成教育過程中的一些機(jī)器更擅長(zhǎng)的環(huán)節(jié),比如改卷,不厭其煩地講解基本演算方法,理科類的答疑等。
技術(shù)上我個(gè)人比較關(guān)注自動(dòng)問題求解,自動(dòng)證明,因?yàn)檫@個(gè)和我們的技術(shù)也密切相關(guān),但是這些AI方法和教育產(chǎn)品具體如何結(jié)合,比如輔助答疑,參與考試等,這方面我們還沒有仔細(xì)考慮過,但是應(yīng)該是一個(gè)非常有趣的方向。
情感分析現(xiàn)在還是個(gè)分類問題,應(yīng)該考慮更高級(jí)的特性,比如句法,甚至語義,而不應(yīng)該停留在詞匯級(jí)這樣低級(jí)的特征上,換句話說分詞這樣和粒度相關(guān)的基礎(chǔ)特征不應(yīng)該對(duì)高層的NLP應(yīng)用有直接的影響,否則從系統(tǒng)擴(kuò)展性來說就很致命。我覺得如果想要在更高級(jí)的層面釋放NLP的威力,就不應(yīng)該在分詞這樣的環(huán)節(jié)上糾結(jié),分詞的效果應(yīng)該對(duì)模型最終的效果影響越小越好,甚至于說不依賴于分詞。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。