电竞比分网-中国电竞赛事及体育赛事平台

分享

你的Siri真的會說話嗎?

 我是樂活樂貨 2019-04-03

『冬天,能穿多少穿多少。

夏天,能穿多少穿多少。』

『單身的原因,原來是喜歡一個(gè)人,現(xiàn)在是喜歡一個(gè)人?!?/p>

作為“智能”助理,你的Siri會賣萌、講(冷)笑話,甚至Bbox、Freestyle都毫無壓力。但是上面這兩句話,她會懂嗎?(Siri:???)

當(dāng)我們在和以Siri為代表的智能語音助理進(jìn)行交流(如果算是)時(shí),他們需要同時(shí)理解句子中的單詞特性和句子結(jié)構(gòu)。盡管在日常交流中,我們可以憑借常識和推理能力理解對方想表達(dá)的意圖,但既沒有上下文情境、又不擁有對等知識儲備資源的智能助理們則面臨著諸多問題,更包括可能的詞法歧義、句法歧義以及回指歧義(之前提到的短語或者單詞在后面句子中有不同的含義)等。在中國待了數(shù)十年的歪果仁尚且不一定能夠get到上面句子的內(nèi)涵,何況是代碼搭建出來的虛擬實(shí)體,畢竟他們利用意圖識別和實(shí)體提取的技術(shù)才剛剛找到主謂賓。

這就又提到了另一個(gè)問題,不同的文化歷史背景產(chǎn)生了不同的思維邏輯習(xí)慣,表現(xiàn)在語言上則出現(xiàn)了更加異彩紛呈的表達(dá)方式。比如我們說“您吃了嗎”和“吃了嗎您”,表達(dá)的是相同的意義內(nèi)涵,然而你卻很難用外語將這句簡單的話通過兩種語序或者句子結(jié)構(gòu)表達(dá)出來。不同的語言有著不同的語法規(guī)則和語意邏輯,在智能語音助理的學(xué)習(xí)和訓(xùn)練過程中這種語種上的差異是否會產(chǎn)生影響?

在自然語言理解(NLU)的下一步自然語言生成(NLG)中存在的技術(shù)難點(diǎn)就更多了,目前我們只能采用主流的“對話管理”的“填槽”技術(shù),簡單來說就是我問你答。至于在電影鋼鐵俠中看到的超人工智能管家Jarvis和鋼鐵俠之間的基情互動(dòng),未來一段時(shí)間內(nèi)大概都只能停留在想象中了??催^今天小線菌分享的這篇文章(節(jié)選),你就能夠?qū)δ壳皩υ捴悄馨l(fā)展?fàn)顩r有了大概的了解。

Anyway,盡管目前我們的對話智能技術(shù)同我們的“夢中人工智能”尚有一段非常大的距離,但正因如此我們才有更大的想象空間,期待真正黑科技的到來~

本期文章節(jié)選自《人工智障2:你看到的AI與智能無關(guān)》。

授權(quán)轉(zhuǎn)載自微信公眾號S先生(ID: TheMisterS)、作者M(jìn)ingke

AI如何聽懂人話 ?

對話系統(tǒng)這個(gè)事情在2015年開始突然火起來了,主要是因?yàn)橐粋€(gè)技術(shù)的普及:機(jī)器學(xué)習(xí)特別是深度學(xué)習(xí)帶來的語音識別和NLU(自然語言理解)——主要解決的是識別人講的話。

這個(gè)技術(shù)的普及讓很多團(tuán)隊(duì)都掌握了一組關(guān)鍵技能:意圖識別和實(shí)體提取。這意味著什么?我們來看一個(gè)例子。

在生活中,如果想要訂機(jī)票,人們會有很多種自然的表達(dá):

“訂機(jī)票”;

“有去上海的航班么?”;

“看看航班,下周二出發(fā)去紐約的”;

“要出差,幫我查下機(jī)票”;

等等等等

可以說“自然的表達(dá)” 有無窮多的組合(自然語言)都是在代表 “訂機(jī)票” 這個(gè)意圖的。而聽到這些表達(dá)的人,可以準(zhǔn)確理解這些表達(dá)指的是“訂機(jī)票”這件事。

而要理解這么多種不同的表達(dá),對機(jī)器是個(gè)挑戰(zhàn)。在過去,機(jī)器只能處理“結(jié)構(gòu)化的數(shù)據(jù)”(比如關(guān)鍵詞),也就是說如果要聽懂人在講什么,必須要用戶輸入精確的指令。

所以,無論你說“我要出差”還是“幫我看看去北京的航班”,只要這些字里面沒有包含提前設(shè)定好的關(guān)鍵詞“訂機(jī)票”,系統(tǒng)都無法處理。而且,只要出現(xiàn)了關(guān)鍵詞,比如“我要退訂機(jī)票”里也有這三個(gè)字,也會被處理成用戶想要訂機(jī)票。

自然語言理解這個(gè)技能出現(xiàn)后,可以讓機(jī)器從各種自然語言的表達(dá)中,區(qū)分出來,哪些話歸屬于這個(gè)意圖;而那些表達(dá)不是歸于這一類的,而不再依賴那么死板的關(guān)鍵詞。比如經(jīng)過訓(xùn)練后,機(jī)器能夠識別“幫我推薦一家附近的餐廳”,就不屬于“訂機(jī)票”這個(gè)意圖的表達(dá)。

并且,通過訓(xùn)練,機(jī)器還能夠在句子當(dāng)中自動(dòng)提取出來“上海”,這兩個(gè)字指的是目的地這個(gè)概念(即實(shí)體);“下周二”指的是出發(fā)時(shí)間。

這樣一來,看上去“機(jī)器就能聽懂人話啦!”。

這個(gè)技術(shù)為啥會普及?主要是因?yàn)闄C(jī)器學(xué)習(xí)領(lǐng)域的學(xué)術(shù)氛圍,導(dǎo)致重要的論文基本都是公開的。不同團(tuán)隊(duì)要做的是考慮具體工程實(shí)施的成本。

最后的效果,就是在識別自然語言這個(gè)領(lǐng)域里,每家的基礎(chǔ)工具都差不多。在意圖識別和實(shí)體提取的準(zhǔn)確率,都是百分點(diǎn)的差異。既然這個(gè)工具本身不是核心競爭力,甚至你可以用別家的,大把可以選,但是關(guān)鍵是你能用它來干什么?

“Due to the academic culture that ML comes from, pretty much all of the primary science is published as soon as it’s created - almost everything new is a paper that you can read and build with. But what do you build? ”

——Benedict Evans (A16Z合伙人)

在這方面,最顯而易見的價(jià)值,就是解放雙手。語音控制類的產(chǎn)品,只需要聽懂用戶的自然語言,就去執(zhí)行這個(gè)操作:在家里要開燈,可以直接說 “開燈”,而不用去按開關(guān);在車上,說要“開天窗”,天窗就打開了,而不用去找對應(yīng)的按鈕在哪里。

這類系統(tǒng)的重點(diǎn)在于,清楚聽清哪個(gè)用戶在講是什么。所以麥克風(fēng)陣列、近場遠(yuǎn)場的抗噪、聲紋識別講話的人的身份、ASR(語音轉(zhuǎn)文字),等等硬件軟件的技術(shù)就相應(yīng)出現(xiàn),向著前面這個(gè)目標(biāo)不斷優(yōu)化。

“講人話”在這類應(yīng)用當(dāng)中,并不那么重要。通常任務(wù)的執(zhí)行,以結(jié)果進(jìn)行反饋,比如燈應(yīng)聲就亮了。而語言上的反饋,只是一個(gè)輔助作用,可有可無。

但是任務(wù)類的對話智能,往往不止是語音控制這樣一輪交互。如果一個(gè)用戶說,“看看明天的機(jī)票”——這表達(dá)正常,但無法直接去執(zhí)行。因?yàn)槿鄙賵?zhí)行的必要信息:1)從哪里出發(fā)?和 2)去哪里?

如果我們希望AI Agent來執(zhí)行這個(gè)任務(wù),一定要獲得這兩個(gè)信息。對于人來完成這個(gè)業(yè)務(wù)的話,要獲得信息,就得靠問這個(gè)用戶問題,來獲得信息。很多時(shí)候,這樣的問題,還不止一個(gè),也就意味著,要發(fā)起多輪對話。

對于AI而言,也是一樣的。

要知道 “去哪里” = Agent 問用戶“你要去哪里?”

要知道 “從哪里出發(fā)” = Agent 問用戶“你要從哪里出發(fā)呢?”

這就涉及到了對話語言的生成。

AI 如何講人話?

決定“該說什么話”,才是對話系統(tǒng)的核心——無論是硅基的還是碳基的智能。但是深度學(xué)習(xí)在這個(gè)版塊,并沒有起到什么作用。

在當(dāng)前,處理“該說什么”這個(gè)問題,主流的做法是由所謂“對話管理”系統(tǒng)決定的。

盡管每一個(gè)對話系統(tǒng)背后的“對話管理”機(jī)制都不同,每家都有各種理解、各種設(shè)計(jì),但是萬變不離其宗——目前所有任務(wù)類對話系統(tǒng),無論是前段時(shí)間的Google duplex,還是智能客服,或者智能助理,最核心的對話管理方法,有且僅有一個(gè):“填槽”,即Slot filling。

如果你并不懂技術(shù),但是又要迅速知道一家做對話AI的水平如何,到底有沒有黑科技(比如剛剛開始看AI領(lǐng)域的做投資的朋友 ),你只需要問他一個(gè)問題:“是不是填槽?”

  • 如果他們(誠實(shí)地)回答“是”,那你就可以放下心來,黑科技尚未出現(xiàn)。接下來,能討論的范圍,無非都是產(chǎn)品設(shè)計(jì)、工程實(shí)現(xiàn)、如何解決體驗(yàn)和規(guī)模化的困境,這類的問題?;旧显撝钦系?,還是會智障。

  • 要是他們回答“不是填槽”,而且產(chǎn)品的效果還很好,那么就有意思了,值得研究,或者請速速聯(lián)系我:)

那么這個(gè)“填槽”究竟是個(gè)什么鬼?嗯,不搞開發(fā)的大家可以簡單的把它理解為“填表”:好比你要去銀行辦個(gè)業(yè)務(wù),先要填一張表。

如果這張表上的空沒有填完,柜臺小姐姐就不給你辦。她會紅筆給你圈出來:“必須要填的空是這些,別的你都可以不管。” 你全部填好了,再遞給小姐姐,她就去給你辦理業(yè)務(wù)了。

還記得剛剛那個(gè)機(jī)票的例子么?用戶說“看看明天的機(jī)票”,要想執(zhí)行“查機(jī)票”,就得做以下的步奏,還要按順序來:

1. ASR:把用戶的語音,轉(zhuǎn)化成文字。

2. NLU語義識別:識別上面的文字,屬于(之前設(shè)定好的)哪一個(gè)意圖,在這里就是“訂機(jī)票”;然后,提取文字里面的實(shí)體,“明天”作為訂票日期,被提取出來啦。

3. 填表:這個(gè)意圖是訂機(jī)票,那么就選“訂機(jī)票”這張表來填;這表里有三個(gè)空,時(shí)間那個(gè)空里,就放進(jìn)“明天”。

(這個(gè)時(shí)候,表里的3個(gè)必填項(xiàng),還差兩個(gè):“出發(fā)地”和“到達(dá)地”)

4. 開始跑之前編好的程序:如果差“出發(fā)地”,就回“從哪里走啊?”;如果差“目的地”,就回“你要去哪里?”(NLG上打引號,是因?yàn)椴⒉皇钦嬲饬x上的自然語言生成,而是套用的對話模版)

5. TTS:把回復(fù)文本,合成為語音,播放出去

在上面這個(gè)過程當(dāng)中,1和2步奏都是用深度學(xué)習(xí)來做識別。如果這個(gè)環(huán)節(jié)出現(xiàn)問題,后面就會連續(xù)出錯(cuò)。

循環(huán)1-5這個(gè)過程,只要表里還有空要填,就不斷問用戶,直到所有的必填項(xiàng)都被填完。于是,表就可以提交小姐姐(后端處理)了。

后端看了要查的條件,返回滿足這些條件的機(jī)票情況。Agent再把查詢結(jié)果用之前設(shè)計(jì)好的回復(fù)模板發(fā)回給用戶。

順便說一下,我們經(jīng)常聽到有些人說“我們的多輪對話可以支持xx輪,最多的時(shí)候有用戶能說xx輪”?,F(xiàn)在大家知道,在任務(wù)類對話系統(tǒng)里,“輪數(shù)的產(chǎn)生”是由填表的次數(shù)決定的,那么這種用“輪數(shù)多少”來衡量產(chǎn)品水平的方法,在這個(gè)任務(wù)類對話里里完全無意義。

一定要有意義,也應(yīng)該是:在達(dá)到目的、且不影響體驗(yàn)的前提下,輪數(shù)越少越好。

在當(dāng)前,只要做任務(wù)類的多輪對話,基本跑不掉填表。

那Google的智能助理(后稱IPA)又怎么知道用戶的具體需求呢?跑不掉的是,用戶還得給Google Assistant填一張表,用對話來交代自己的具體需求,比如下面這樣:

圖中左邊是一個(gè)使用Google Assistant訂餐廳的真實(shí)案例,來自The Verge。

當(dāng)前對話系統(tǒng)的局限

我剛剛花了兩千來個(gè)字來說明對話系統(tǒng)的通用思路。接下來,要指出這個(gè)做法的問題

還記得之前提到的 “不要日本菜”測試么?我們把這個(gè)測試套用在“訂機(jī)票”這個(gè)場景上,試試看:“看看明天去北京的航班,東航以外的都可以”,還是按步奏來:

1. ASR語音轉(zhuǎn)文字,沒啥問題;

2. 語義識別,貌似有點(diǎn)問題

- 意圖:是訂機(jī)票,沒錯(cuò);

- 實(shí)體提取:跟著之前的訓(xùn)練來;

- 時(shí)間:明天

- 目的地:北京

- 出發(fā)地:這個(gè)用戶沒說,一會得問問他...

等等,他說的這個(gè)“東航以外的都可以”,指的是啥?之前沒有訓(xùn)練過與航空公司相關(guān)的表達(dá)啊。

沒關(guān)系,咱們可以把這個(gè)表達(dá)的訓(xùn)練加上去:東航 = 航司。多找些表達(dá),只要用戶說了各個(gè)航空公司的名字的,都訓(xùn)練成航司這個(gè)實(shí)體好啦。

另外,咱們還可以在填表的框里,添加一個(gè)航司選擇,就像這樣(黃色部分):

(嗯,好多做TO B的團(tuán)隊(duì),都是掉在這個(gè)“在后面可以加上去”的坑里。)

但是,這么理所當(dāng)然的訓(xùn)練之后,實(shí)體提取出來的航司卻是“東航”——而用戶說的是 “東航以外的”,這又指的哪個(gè)(些)航司呢?

“要不,咱們做點(diǎn)Trick把‘以外’這樣的邏輯單獨(dú)拿出來手工處理掉?”——如果這個(gè)問題可以這么容易處理掉,你覺得Siri等一干貨色還會是現(xiàn)在這個(gè)樣子?難度不在于“以外”提取不出來,而是在處理“這個(gè)以外,是指哪個(gè)實(shí)體以外?

當(dāng)前基于深度學(xué)習(xí)的NLU在“實(shí)體提取”這個(gè)技術(shù)上,就只能提取“實(shí)體”。

而人能夠理解,在這個(gè)情況下,用戶是指的“排除掉東航以外的其他選擇”,這是因?yàn)槿顺俗觥皩?shí)體提取”以外,還根據(jù)所處語境,做了一個(gè)對邏輯的識別:“xx以外”。然后,自動(dòng)執(zhí)行了這個(gè)邏輯的處理,即推理,去進(jìn)一步理解,對方真正指的是什么(即指代)。

而這個(gè)邏輯推理的過程,并不存在于之前設(shè)計(jì)好的步奏(從1到5)里。

更麻煩的是,邏輯的出現(xiàn),不僅僅影響“實(shí)體”,還影響“意圖”:

中文英文都是一樣的;Google assistant也是一樣的。

想要處理這個(gè)問題,不僅僅是要識別出“邏輯”;還要正確判斷出,這個(gè)邏輯是套用在哪個(gè)實(shí)體,或者是不是直接套用在某一個(gè)意圖上。這個(gè)判斷如何做?用什么做?都不在當(dāng)前SLU的范圍內(nèi)。

對這些問題的處理,如果是集中在一些比較封閉的場景下,還可以解決個(gè)七七八八。但是,如果想要從根本上、泛化的處理,希望一次處理就解決所有場景的問題,到目前都無解。在這方面,Siri是這樣,Google Assistant也是這樣,任意一家,都是這樣。

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多