縱觀傳統(tǒng)互聯(lián)網(wǎng)時(shí)代,如果用一個(gè)詞來總結(jié)和概括的話,“連接”這詞再合適不過了,傳統(tǒng)互聯(lián)網(wǎng)時(shí)代主要建立了三種連接:第一,人和信息的連接;第二,人和人的連接;第三,人與商品服務(wù)的連接。第一種連接成就了Google和百度這樣的互聯(lián)網(wǎng)巨頭;人和人的連接成就了Facebook和騰訊這樣的互聯(lián)網(wǎng)公司,人和商品服務(wù)的連接,成就了Amazon、阿里巴巴、京東這樣的巨頭。從這個(gè)意義上看,傳統(tǒng)互聯(lián)網(wǎng)最典型的特征就是連接。
過去3-4年,我們可以看到,互聯(lián)網(wǎng)其實(shí)發(fā)生很大變化,交互的設(shè)備已經(jīng)從PC和智能手機(jī)延伸到更廣泛的智能設(shè)備。智能設(shè)備的快速發(fā)展正在改變著人類和設(shè)備的交互方式。不難看出,無論是智能設(shè)備的發(fā)展和普及,還是用戶的接受度都在快速增長(zhǎng),都促使人和設(shè)備之間交互方式的巨大改變,我們已經(jīng)進(jìn)入“交互時(shí)代“。
正在發(fā)生的變化
那么,交互時(shí)代,人和設(shè)備究竟如何通過自然語言對(duì)話展開對(duì)話交互的呢?首先,對(duì)話交互的特點(diǎn),我認(rèn)為主要有以下四點(diǎn):
1、人和智能設(shè)備的交互一定是自然語言。因?yàn)閷?duì)于人來說,自然語言是最自然的方式,也是門檻最低的方式。
2、人和設(shè)備的對(duì)話交互應(yīng)該是雙向的。
3、人和設(shè)備的對(duì)話交互是多輪的。為了完成一個(gè)任務(wù),比如定機(jī)票,這里會(huì)涉及多輪交互。
4、上下文的理解。這是對(duì)話交互和傳統(tǒng)的搜索引擎最大的不同之處,傳統(tǒng)搜索是關(guān)鍵詞,前后的關(guān)鍵詞是沒有任何關(guān)系的。對(duì)話交互實(shí)際上是要考慮到上下文,在當(dāng)前的上下文理解這句話什么意思。
從連接到對(duì)話交互,一個(gè)本質(zhì)的改變是什么?舉個(gè)例子,比如淘寶網(wǎng)首頁,拋開內(nèi)容,其本質(zhì)就是鏈接和按鈕。對(duì)于用戶來說,無論是點(diǎn)擊鏈接還是按鈕,他的行為完全是由產(chǎn)品經(jīng)理定義好的和是完全確定的,所以它是一種受控、受限的行為,這種方式并不能確保好的用戶體驗(yàn)。
而對(duì)話交互,用戶可以說任何內(nèi)容,天文、地理,包羅萬象。我認(rèn)為這背后的本質(zhì)改變就是從“確定性”轉(zhuǎn)變?yōu)椤安淮_定性”。實(shí)際上,后面無論是算法還是交互設(shè)計(jì),基本上都想辦法提高語言理解的確定性或者是降低交互設(shè)計(jì)的不確定性。
阿里巴巴在智能對(duì)話交互方向上的進(jìn)展和實(shí)踐
下面介紹下阿里巴巴在智能對(duì)話交互方向的進(jìn)展和實(shí)踐。先看對(duì)話交互邏輯的概況,傳統(tǒng)的對(duì)話交互大概會(huì)分以下幾個(gè)模塊,從云識(shí)別把語言轉(zhuǎn)成文字,語言理解是把用戶說的文字轉(zhuǎn)化成一種結(jié)構(gòu)化的表示,對(duì)話管理是根據(jù)剛才那些結(jié)果來決定采取什么樣的合作。在語言設(shè)置這一塊就是根據(jù)action生成一句話,通過一種比較自然的方式把它讀出來。
我認(rèn)為現(xiàn)在人機(jī)交互和傳統(tǒng)的人機(jī)交互一個(gè)主要不同點(diǎn)就在于數(shù)據(jù)和服務(wù)。隨著互聯(lián)網(wǎng)的發(fā)展,數(shù)據(jù)和服務(wù)越來越豐富,那人機(jī)交互的目的是什么?歸根到底還是想獲取互聯(lián)網(wǎng)的信息和各種各樣的服務(wù)。
語言理解簡(jiǎn)單來說就是把用戶說的話,轉(zhuǎn)換為一種結(jié)構(gòu)化的語義表示,從方法上會(huì)分成兩個(gè)模塊:意圖的判定和屬性的抽取。
比如用戶說:“我要買一張下周去上海的飛機(jī)票,國航的“。第一個(gè)模塊就要返回理解,用戶的意圖是要買飛機(jī)票,第二,使用抽取模塊,要把這些關(guān)鍵的信息出處理出來,出發(fā)時(shí)間、目的地、航空公司,從而得到一個(gè)比較完整的結(jié)構(gòu)化的表示。
那么,人機(jī)對(duì)話中的語言理解面臨哪些挑戰(zhàn)呢?我總結(jié)為四類:
表達(dá)的多樣性。同樣一個(gè)意圖,不同的用戶有不同的表達(dá)方式。那對(duì)于機(jī)器來說,雖然表達(dá)方式不一樣,但是意圖是一樣的,機(jī)器要能夠理解這件事情。
語言的歧義性。比如說,“我要去拉薩“,它是一首歌的名字。當(dāng)用戶說:“我要去拉薩”的時(shí)候,他也可能是聽歌,也可能是買一張去拉薩的機(jī)票,也可能是買火車票,或者旅游。
語言理解的混亂性,因?yàn)橛脩粽f話過程當(dāng)中,比較自然隨意,語言理解要能夠捕獲住或者理解用戶的意圖。
?
上下文的理解。這是人機(jī)對(duì)話交互一個(gè)非常大的不同,它的理解要基于上下文。
在語言理解這一塊,我們把用戶語言的意圖理解抽象為一個(gè)分類問題,之后,就有一套相對(duì)標(biāo)準(zhǔn)的方法解決,比如CNN神經(jīng)網(wǎng)絡(luò)、SVM分類器等等。阿里巴巴現(xiàn)在就是采用CNN神經(jīng)網(wǎng)絡(luò)方法,并在詞的表示層面做了針對(duì)性的改進(jìn)。機(jī)器要理解用戶的話的意思,背后一定要依賴于大量的知識(shí)。比如說,“大王叫我來巡山”是一首歌的名字,“愛探險(xiǎn)的朵拉”是一個(gè)視頻,互聯(lián)網(wǎng)上百萬量級(jí)這樣開放領(lǐng)域的實(shí)體知識(shí),并且每天都會(huì)有新的歌曲/視頻出現(xiàn),如果沒有這樣大量的知識(shí),機(jī)器是很難真的理解用戶的意圖的。那么,在詞的語義表示這塊,除了word embedding,還引入了基于知識(shí)的語義表示向量。
剛才提到了,用戶說的話實(shí)際上是比較隨意和自然的,那怎么樣讓這個(gè)模型有比較好的魯棒性來解決口語的隨意性問題呢?我們主要針對(duì)用戶標(biāo)注的數(shù)據(jù),通過算法自動(dòng)加一些噪音,加噪之后(當(dāng)然前提是不改變語義),基于這樣的數(shù)據(jù)再training模型,這樣處理之后模型就會(huì)有比較好的魯棒性了。
第二個(gè)模塊是屬性抽取,在這一塊,我們把它抽象為一個(gè)序列標(biāo)注問題。這個(gè)問題,神經(jīng)網(wǎng)絡(luò)也有比較成型的方法,我們現(xiàn)在也是用這種雙向LSTM,在上面有一層CRF解碼器,取得了不錯(cuò)的效果,但是這背后更大的功夫來自于對(duì)數(shù)據(jù)的分析和加工。
以上所述的人機(jī)對(duì)話語言理解最大的特色就是基于上下文的理解,什么是上下文?我們看一個(gè)例子,用戶說:“北京天氣怎么樣?”,回答說,北京的天氣今天溫度34度。接著用戶說“上海呢?”,在這里用戶的潛臺(tái)詞是指上海的天氣,所以要能夠理解用戶說的話需要根據(jù)上文意思來分析。針對(duì)這樣的場(chǎng)景,我們?cè)賹?duì)問題做了一個(gè)抽象,在上下文的情況下,這句話和上文有關(guān)還是無關(guān),把它抽象為二分的分類問題,做了抽象和簡(jiǎn)化以后,這個(gè)問題就有相對(duì)成型的解決方法了。
剛才介紹的是語言理解,下面我介紹下對(duì)話引擎。
對(duì)話引擎就是根據(jù)語言理解的這種結(jié)構(gòu)化的語意表示以及對(duì)照到上下文,來決定采取什么樣的動(dòng)作。這個(gè)動(dòng)作我們把它分成幾類。
第一,用于語言生成的動(dòng)作。
第二,服務(wù)動(dòng)作。
第三,指導(dǎo)客戶端做操作的動(dòng)作。
再看一個(gè)簡(jiǎn)單的對(duì)話例子。用戶說:“我要去杭州,幫我訂一張火車票”,這個(gè)時(shí)候機(jī)器首先要理解用戶的意圖是買火車票,之后就要查知識(shí)庫,要買火車票依賴于時(shí)間和目的地,但是現(xiàn)在用戶只說目的地沒說時(shí)間,所以它就要發(fā)起一個(gè)詢問時(shí)間的動(dòng)作,機(jī)器問了時(shí)間之后,用戶回答說“明天上午”。這個(gè)時(shí)候機(jī)器要理解用戶說的明天上午正好是在回答剛才用戶問的問題,這樣匹配了之后,基本上這個(gè)機(jī)器就把這個(gè)最關(guān)鍵的信息都收集回來了:時(shí)間和目的地,之后,機(jī)器就可以發(fā)起另外一個(gè)請(qǐng)求服務(wù)指令,然后把火車票的list給出來。這個(gè)時(shí)候用戶接著說:“我要第二個(gè)”。機(jī)器還要理解用戶說的第二個(gè),就是指的要打開第二個(gè)鏈接,之后用戶說“我要購買”,這個(gè)時(shí)候機(jī)器要發(fā)起一個(gè)指令去支付。
綜上,對(duì)話交互,我會(huì)把它分成兩個(gè)階段:
第一階段,通過多輪對(duì)話交互,把用戶的需求表達(dá)完整,因?yàn)橛脩粜畔⒑芏?,不可能一次表達(dá)完整,所以要通過對(duì)話搜集完整。第一階段得到結(jié)構(gòu)化的信息,出發(fā)地、目的地、時(shí)間,有了這些信息之后,第二階段,請(qǐng)求服務(wù)。接著用還要去做選擇、確定、支付、購買等等后面的動(dòng)作。
傳統(tǒng)的人機(jī)對(duì)話,包括現(xiàn)在市面上常見的人機(jī)對(duì)話,一般都是只在做第一階段的對(duì)話,第二階段的對(duì)話做得不多。
在對(duì)話交互這塊,阿里巴巴還是做了一些有特色的東西:
對(duì)話引擎之后,我們?cè)倏聪挛覀兊?a target="_blank">問答引擎和聊天引擎:
問答引擎:其實(shí)人和機(jī)器對(duì)話過程中,不僅僅是有task的對(duì)話還有問答和聊天,我們?cè)趩柎鹨孢@塊,目前還是著力于基于知識(shí)圖譜的問答,因?yàn)榛谥R(shí)圖譜的問答能夠比較精準(zhǔn)地回答用戶的問題。
聊天引擎:我們?cè)O(shè)計(jì)了兩類聊天引擎。
對(duì)話交互平臺(tái)的開發(fā)策略
剛才語言理解引擎、對(duì)話引擎、聊天引擎再加上語音識(shí)別合成,形成了完整的一套系統(tǒng)和平臺(tái),我們稱之為自然交互平臺(tái)。在這套平臺(tái)上,一端是連接著各種各樣的設(shè)備,另外一端是連接了各種各樣的服務(wù),這樣用戶和設(shè)備的交互就能夠用比較自然的方式進(jìn)行下去了。
值得一提的是,這樣的自然交互平臺(tái)在阿里巴巴已經(jīng)有比較多的應(yīng)用了。比如說在互聯(lián)網(wǎng)汽車對(duì)話交互,我們和合作伙伴設(shè)計(jì)開發(fā)了汽車前裝和汽車后裝場(chǎng)景的對(duì)話交互。在功能上,比如說像地圖、導(dǎo)航、路況,還有圍繞著娛樂類的音樂、有聲讀物。
在汽車場(chǎng)景下的對(duì)話交互,還和其他場(chǎng)景有非常多的不同。因?yàn)楫a(chǎn)品方希望當(dāng)這個(gè)車在郊區(qū)網(wǎng)絡(luò)不好的時(shí)候,最需要導(dǎo)航的時(shí)候,你要能夠工作,所以我們的語音識(shí)別還有語言理解、對(duì)話引擎,就是在沒有網(wǎng)絡(luò)的情況下,要在端上能夠完全工作,這里面的挑戰(zhàn)也非常大。
現(xiàn)在正在把這樣的對(duì)話交互平臺(tái)開放出來,讓合作伙伴去開發(fā)自己場(chǎng)景的對(duì)話交互,所以我們正在開發(fā)面向開發(fā)者的平臺(tái),這個(gè)平臺(tái)背后有端上的解決方案和云上的解決方案,端上包括聲音的采集、VAD、端上無網(wǎng)情況下完整的對(duì)話方案,服務(wù)端的能力會(huì)更加強(qiáng)大了。
在合作伙伴這塊有兩類:一類是面向設(shè)備的,比如說汽車、電視、音箱、機(jī)器人、智能玩具。另外一類就是類似于行業(yè)應(yīng)用,比如說智能客服這樣的一個(gè)場(chǎng)景。
考察一個(gè)對(duì)話交互平臺(tái)的能力,其實(shí)第一需要看它背后沉淀和積累的技術(shù),我們?cè)谶@方面花了三年的時(shí)間去沉淀了一些公共場(chǎng)景的對(duì)話交互能力。比如像娛樂、出行、理財(cái)、美食,有了這樣的能力之后,當(dāng)一個(gè)新的業(yè)務(wù)方接入的時(shí)候,就不需要再去開發(fā)了,直接調(diào)用就好。用戶只需要開發(fā)業(yè)務(wù)場(chǎng)景中特定的一些場(chǎng)景就可以,大大加快業(yè)務(wù)方開發(fā)對(duì)話交互的速度。
第二個(gè)能力就是提供足夠強(qiáng)的定制能力,這種能力我們?cè)谡Z言理解,用戶可以定制自己的時(shí)點(diǎn)、對(duì)話邏輯、聊天引擎、問答引擎,可以把自己積累的數(shù)據(jù)上傳上來,以及對(duì)語音識(shí)別的詞語定制,包括TTS聲音的定制等等。
智能對(duì)話交互生態(tài)的范式思考
過去3-4年,在人機(jī)對(duì)話領(lǐng)域,應(yīng)該說,我們還是取得了長(zhǎng)足的進(jìn)步,這樣的進(jìn)步來自于以聲音學(xué)習(xí)為代表的算法突破。這個(gè)算法的突破帶來語音識(shí)別大的改進(jìn)。同時(shí),另一方面,我們認(rèn)為當(dāng)前的對(duì)話交互和真正的用戶期望還是有明顯距離的,對(duì)話交互能覆蓋的領(lǐng)域比較受限的,大家如果是用智能云交互的產(chǎn)品,你發(fā)現(xiàn)翻來覆去就是那幾類,音樂、地圖、導(dǎo)航、講笑話等等,其次,有的服務(wù)能力還不夠好,所以對(duì)于未來,我們是走自主研發(fā)路線還是平臺(tái)路線呢?
第一類,自主研發(fā)。很多的創(chuàng)業(yè)公司或者是團(tuán)隊(duì)基本上都是自主研發(fā)的,像蘋果公司它基本上就是自主研發(fā)的模式。
第二類,平臺(tái)模式。典型代表就是亞馬遜的Alexa,這個(gè)平臺(tái)的好處是它能夠發(fā)動(dòng)開發(fā)者的力量快速地去擴(kuò)展領(lǐng)域。
兩者各有利弊,所以如何把這兩者結(jié)合在一起,有沒有第三種模式。如果有,第三種模式應(yīng)該具有哪些特點(diǎn)呢?我總結(jié)了下,大概有以下幾個(gè)特點(diǎn):
第一,由于自然語言理解的門檻比較高的,門檻高指的是對(duì)于開發(fā)者來說,它比開發(fā)一個(gè)APP難多了,從無到有開發(fā)出來不難,但要做到效果好是非常難的。所以,語言理解引擎要自研。第二,對(duì)話邏輯要平臺(tái)化。對(duì)于對(duì)話交互,因?yàn)樗蜆I(yè)務(wù)比較緊,每個(gè)業(yè)務(wù)方有自己特殊的邏輯,通過平臺(tái)化比較合適,讓平臺(tái)上的開發(fā)者針對(duì)各自場(chǎng)景的需求和交互過程來開發(fā)對(duì)話。第三,需要建立一套評(píng)測(cè)體系,只有符合這個(gè)評(píng)測(cè)體系的,才能引入平臺(tái)當(dāng)中。第四,需要商業(yè)化的機(jī)制,能夠讓開發(fā)者有動(dòng)力去開發(fā)更多的以及體驗(yàn)更好的交互能力。
如果這幾點(diǎn)能夠做到,我們稱之為第三種范式,這個(gè)平臺(tái)能夠相對(duì)快速地,并且開發(fā)的能力體驗(yàn)是有效果保證的。這樣它開放給用戶的時(shí)候,無論是對(duì)B用戶還是C用戶,可以有更多的價(jià)值。
總結(jié)
最后,總結(jié)下我們對(duì)于研發(fā)對(duì)話交互機(jī)器人的幾點(diǎn)思考和體會(huì):
堅(jiān)持用戶體驗(yàn)為先。這個(gè)話說起來很容易,但是我也知道,很多團(tuán)隊(duì)不是以用戶為先的,是以投資者為先的。
降低產(chǎn)品和交互設(shè)計(jì)的不確定性。如上所說,對(duì)話交互最大的問題是不確定性,在產(chǎn)品的交互上,我們要想辦法把這種不確定性盡量降得低一點(diǎn)。
打造語言理解的魯棒性和領(lǐng)域擴(kuò)展性。語言的理解能力盡量做到魯棒性,才能夠比較好的可擴(kuò)展。
打造讓機(jī)器持續(xù)學(xué)習(xí)能力。對(duì)話交互我認(rèn)為非常重要的一點(diǎn)就是怎么樣能夠讓機(jī)器持續(xù)不斷地學(xué)習(xí)。
打造數(shù)據(jù)閉環(huán)。要能夠快速地達(dá)到數(shù)字閉環(huán),當(dāng)然這個(gè)閉環(huán)當(dāng)中要把數(shù)據(jù)的效能充分調(diào)動(dòng)起來,結(jié)合更多數(shù)據(jù)的服務(wù)。
作者簡(jiǎn)介:孫健,博士,阿里巴巴iDST 自然語言理解和人機(jī)對(duì)話負(fù)責(zé)人,資深專家。
評(píng)論