2
本文作者: AI科技評論 | 2016-05-19 15:37 |
圖片來源:PCM
編者按:谷歌在今年的I/O大會推出了一個大驚喜:由機(jī)器學(xué)習(xí)支持的Allo智能聊天應(yīng)用。為何Allo能夠如此討用戶的歡心?谷歌研究的Pranav Khaitan在谷歌博客上為我們解讀了Allo背后的人工智能算法。Khaitan具有斯坦福大學(xué)計算機(jī)科學(xué)碩士學(xué)位,曾在斯坦福大學(xué)擔(dān)任研究助理工作,并在微軟、Facebook等公司實(shí)習(xí)。他2011年加入谷歌,目前帶領(lǐng)團(tuán)隊進(jìn)行機(jī)器學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)和個人化科技的工作,并幫助打造谷歌搜索等產(chǎn)品所需的知識圖表,在谷歌搜索的幾乎每個領(lǐng)域——排名、指數(shù)和基礎(chǔ)建設(shè)——都能看到由他打造、發(fā)布的功能。
谷歌一直在打造由機(jī)器學(xué)習(xí)支持的產(chǎn)品,讓用戶的生活更加簡單、美好。今天,本文將介紹一個全新智能聊天應(yīng)用Allo背后的技術(shù),該應(yīng)用使用神經(jīng)網(wǎng)絡(luò)和谷歌搜索,讓文字聊天更加簡單、高效。
正如Inbox的智能回復(fù)一樣,Allo能夠理解對話記錄,提供用戶會想采用的回復(fù)建議。除了理解對話的語境之外,Allo還能理解你的個人聊天風(fēng)格,因此可以實(shí)現(xiàn)個人定制的聊天回復(fù)。
圖片來源:Google Research Blog
一年多以前,團(tuán)隊開始研究如何讓對話可以更加簡便、更加好玩。Allo智能回復(fù)的想法來源于團(tuán)隊中的Sushant Prakash和Ori Gershony,他們帶領(lǐng)團(tuán)隊打造了這項(xiàng)技術(shù)。我們最初使用了一個神經(jīng)網(wǎng)絡(luò)進(jìn)行試驗(yàn),其模型架構(gòu)之前已經(jīng)成功應(yīng)用在序列預(yù)測中,包括Inbox智能回復(fù)中使用的編碼-解碼模型。
我們面臨的挑戰(zhàn)之一,是在線聊天在回復(fù)時間上有很嚴(yán)格的要求。為了解決這個問題,Pavel Sountsov和Sushant想出了一個非常創(chuàng)新的兩階段模型。首先,一個遞歸神經(jīng)網(wǎng)絡(luò)一個字一個字地查看聊天語境,然后用長短時記憶(LSTM)的隱藏狀態(tài)將其編碼。下圖展示的就是一個例子,語境是“你在哪?”語境有三個標(biāo)記,每一個標(biāo)記都嵌入到一個連續(xù)空間中,然后輸入到LSTM里。然后,LSTM狀態(tài)將語境編碼為一個連續(xù)矢量。這個矢量用來生成作為離散語義類別的回復(fù)。
上圖的例子中,最下方是輸入的語境(“你在哪?“),黃色層為”文字嵌入“,藍(lán)色層為”LSTM“,綠色層為”softmax函數(shù)“,最后輸出”地點(diǎn)短語“,作為預(yù)測的回復(fù)語義。圖片來源:Google Research Blog。
每一個語義類別都與它可能的回復(fù)庫關(guān)聯(lián)起來。我們使用了第二個遞歸神經(jīng)網(wǎng)絡(luò)來從這個回復(fù)庫中,生成一個具體的回復(fù)信息。這個神經(jīng)網(wǎng)絡(luò)還將語境轉(zhuǎn)換為一個隱藏的LSTM狀態(tài),但是這一次,這個隱藏狀態(tài)是用來生成回復(fù)的完整信息,一次生成一個標(biāo)記。我們回到上面的例子,LSTM看到了“你在哪?”的語境后,生成了回復(fù):“我在上班?!?/p>
上圖中,最下方是語境輸入("你在哪?"),最上層softmax函數(shù)生成"我在上班。"來源:Google Research Blog。
從LSTM生成的大量可能回復(fù)庫中,beam搜索能有效選擇出頂層得分最高的回復(fù)。下圖展示的是一個搜索空間的小片段,我們可以從中一窺beam搜索技術(shù)。
圖片來源:Google Research Blog
正如任何大規(guī)模產(chǎn)品一樣,我們面臨了多個工程方面的挑戰(zhàn),高效生成高質(zhì)量的回復(fù)庫并非易事。舉一個例子,雖然我們使用了這個兩階段的架構(gòu),我們最初的幾個神經(jīng)網(wǎng)絡(luò)運(yùn)行都非常慢,生成一個回復(fù)需要大約半秒鐘。半秒鐘聽起來很短,但是針對實(shí)時聊天應(yīng)用來說,這完全是沒法接受的。因此,我們必須讓我們的神經(jīng)網(wǎng)絡(luò)架構(gòu)進(jìn)一步進(jìn)化,將回復(fù)時間再減少至少200毫秒。我們改變了softmax層,轉(zhuǎn)而使用一個層級性的softmax層,可以遍歷一個詞匯樹,比之前遍歷一個詞匯列表更加高效。
在生成預(yù)測時我們遇到的另一個挑戰(zhàn)比較有趣,那就是控制信息的長度。有時候,所有可能的回復(fù)長度都不合適——如果模型預(yù)測的信息太短,可能對于讀者來說就沒有用;而如果我們預(yù)測的信息太長,可能就不適合手機(jī)屏幕的顯示大小。我們的辦法是,讓beam搜索更偏向于跟進(jìn)能夠通向更高反應(yīng)用途的路徑,而不是傾向于選擇最有可能的回復(fù)。這樣,我們可以高效生成長度適合的回復(fù)預(yù)測,對用戶來說會非常有用。
這項(xiàng)智能聊天建議最棒的地方在于,隨著時間,軟件會為用戶進(jìn)行個人定制,這樣你的個人風(fēng)格會在聊天對話中體現(xiàn)出來。例如,假設(shè)當(dāng)別人和你說“你好嗎?”(“How are you?”)的時候,你通常的回復(fù)方式是“蠻好?!倍皇恰安诲e。”(英文中某個用戶可能更習(xí)慣回復(fù)“Fine.”而不是“I am good.”),軟件就會了解到你的偏好,在未來的回復(fù)建議中就會考慮到這一點(diǎn)。要實(shí)現(xiàn)這一點(diǎn),就要在神經(jīng)網(wǎng)絡(luò)中加入用戶的個人”風(fēng)格“,將這個神經(jīng)網(wǎng)絡(luò)用于預(yù)測回復(fù)中下一個詞語是什么,這樣回復(fù)建議就會根據(jù)你的個性和偏好進(jìn)行定制化。用戶的風(fēng)格是在一系列數(shù)字中獲取的,我們稱之為用戶嵌入。這些嵌入可以作為常規(guī)模型訓(xùn)練的一部分,但是這種方法需要等上很多天訓(xùn)練才能結(jié)束,而且如果用戶超過了幾百萬人,這種方法就有可能搞不定。為了解決這個問題,Alon Shafrir打造了一項(xiàng)基于L-BFGS的技術(shù),讓Allo能夠快速、大量地生成用戶嵌入。現(xiàn)在,Allo的用戶只需要很短的一段時間,就能獲得個人定制化的回復(fù)建議。
我們之前說到的這個神經(jīng)網(wǎng)絡(luò)模型是不針對某種語言的,因此我們可以對每一種語言分別建立預(yù)測模型。Sujith Ravi為了確保每一種語言的回復(fù)可以從我們對其他語言的語音理解中獲益,他提出了一種基于圖表的機(jī)器學(xué)習(xí)技術(shù),可以將不同語言的可能回復(fù)聯(lián)系起來。Dana Movshovits-Attias和Peter Young將這項(xiàng)技術(shù)應(yīng)用在一個圖表中,對收到信息的回復(fù),可以與其他有相似詞匯嵌入和語法關(guān)系的回復(fù)聯(lián)系起來?;诠雀璺g團(tuán)隊開發(fā)的機(jī)器翻譯模型,這個圖表還能將不同語言中具有相似語義的回復(fù)聯(lián)系起來。
利用這個圖表,我們使用了半監(jiān)督學(xué)習(xí)(點(diǎn)擊鏈接,可以通過這篇Sujith Ravi發(fā)表在第19屆人工智能與數(shù)據(jù)國際大會(AISTATS)的論文中了解更多關(guān)于半監(jiān)督學(xué)習(xí)的信息)來了解回復(fù)的語義含義,判斷哪一個可能的回復(fù)組群是最有用的。每一個可能的回復(fù)語義中都有多個可能的變種,現(xiàn)在我們可以讓LSTM對每個變種進(jìn)行打分,讓個人化常規(guī)來為用戶在聊天情景中選擇最好的回復(fù)。這還能幫助實(shí)現(xiàn)多元化,因?yàn)槲覀儸F(xiàn)在可以從不同的語義組群中選擇最終的回復(fù)庫。
一個打招呼的信息圖表可能會是這個樣子的。左:法語,中:英語,右:中文。圖片來源:Google Research Blog。
我非常期待Allo中的谷歌個人助理,你可以與它聊天,獲得谷歌搜索上可以了解到的任何信息。它可以直接通過對話理解你的句子,幫助你完成日常任務(wù)。舉個例子,你和朋友聊天的時候,谷歌助理可以在Allow應(yīng)用內(nèi)幫你發(fā)現(xiàn)有什么好吃的餐廳并預(yù)定座位。正是因?yàn)槲覀冊诠雀柽M(jìn)行了最尖端的自然語言理解研究,我們才能實(shí)現(xiàn)這項(xiàng)功能。更多細(xì)節(jié)信息將在未來發(fā)布。這些智能功能將于今年夏天晚些時候出現(xiàn)在Allo的安卓和IOS應(yīng)用中。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。