谷歌 Smart Compose:神經(jīng)網(wǎng)絡(luò)可以幫你寫(xiě) Gmail 郵件了
掃描二維碼
隨時(shí)隨地手機(jī)看文章
在 Google I/O 2018 上,除了 Google 助手給餐館打電話的場(chǎng)景贏得現(xiàn)場(chǎng)觀眾的喝彩外,在用戶寫(xiě)郵件時(shí)可預(yù)測(cè)下一句的 Smart Compose 技術(shù)同樣也引得眾人歡呼。近期,谷歌大腦團(tuán)隊(duì)首席軟件工程師 Yonghui Wu 在 Google AI Po 出了這篇詳細(xì)介紹 Smart Compose 原理的博文。
Google I/O 2018 上,谷歌介紹了 Gmail 中的一項(xiàng)新特性,智能預(yù)測(cè)拼寫(xiě)功能:Smart Compose,該新特性利用機(jī)器學(xué)習(xí),交互式地為正在寫(xiě)郵件的用戶提供補(bǔ)全句子的預(yù)測(cè)建議,從而讓用戶更快地撰寫(xiě)郵件。Smart Compose 基于此前智能回復(fù)(Smart Reply)技術(shù)開(kāi)發(fā)而來(lái),Smart Compose 提供了全新的方式來(lái)幫助用戶撰寫(xiě)郵件,無(wú)論用戶是在回一封來(lái)件還是從草稿箱起草一封新郵件。
谷歌在開(kāi)發(fā) Smart Compose 的過(guò)程中,遭遇到了以下這些關(guān)鍵挑戰(zhàn):
延遲:因?yàn)?Smart Compose 需基于用戶的每一次輸入來(lái)提供預(yù)測(cè),所以它必須提供 100 毫秒以內(nèi)的理想預(yù)測(cè),這樣用戶才察覺(jué)不到任何延遲。這時(shí)候,平衡模型復(fù)雜性和推理速度就成了一個(gè)需要解決的關(guān)鍵難題。
用戶規(guī)模:Gmail 擁有超過(guò) 14 億的各種用戶。為了面向所有用戶提供自動(dòng)組句預(yù)測(cè),模型必須擁有足夠強(qiáng)的建模能力,這樣它才能精細(xì)地在不同上下文中提供定制建議。
公平性和用戶隱私:在 Smart Compose 的開(kāi)發(fā)過(guò)程中,谷歌需要在訓(xùn)練過(guò)程中處理潛在偏倚的來(lái)源,并遵守像 Smart Reply 功能一樣嚴(yán)格的用戶隱私標(biāo)準(zhǔn),以確保模型不會(huì)暴露用戶的隱私信息。另外,谷歌的研究人員也不具備查看用戶郵件的權(quán)限,這意味著他們不得不在一個(gè)自己都無(wú)法查看的數(shù)據(jù)集上開(kāi)發(fā)和訓(xùn)練一個(gè)機(jī)器學(xué)習(xí)系統(tǒng)。
找到對(duì)的模型
比如 ngram,neural bag-of-words(BoW)和 RNN language 這種典型的語(yǔ)言生成模型,它們是基于前綴詞序列來(lái)預(yù)測(cè)下一個(gè)詞的。然而,在一封郵件中,用戶在當(dāng)前郵件撰寫(xiě)會(huì)話中打下的單詞會(huì)給模型一個(gè)信號(hào),模型會(huì)利用該信號(hào)來(lái)預(yù)測(cè)下一個(gè)單詞。為了結(jié)合更多用戶想表達(dá)的上下文,谷歌的模型還會(huì)利用郵件主題和此前的郵件正文(假設(shè)用戶正在回復(fù)一封剛剛收到的郵件)。
谷歌的方法是包含利用額外語(yǔ)境的一個(gè)方法,該方法是將問(wèn)題轉(zhuǎn)換成一個(gè)序列到序列(seq2seq)的機(jī)器翻譯任務(wù),其中源序列是郵件主題和上封郵件正文(假設(shè)存在上封郵件)的串聯(lián),用戶正在寫(xiě)的郵件是目標(biāo)序列。盡管該方法在預(yù)測(cè)質(zhì)量上表現(xiàn)良好,但它的延遲要比谷歌嚴(yán)苛的延遲標(biāo)準(zhǔn)超出了好幾個(gè)量級(jí)
為了提高預(yù)測(cè)質(zhì)量,谷歌將一個(gè) RNN-LM 神經(jīng)網(wǎng)絡(luò)與一個(gè) BoW 模型結(jié)合起來(lái),結(jié)合后的模型在速度上比 seq2seq 模型要快,且只輕微犧牲了預(yù)測(cè)質(zhì)量。在該混合算法中,谷歌通過(guò)把詞嵌套們平均分配在每個(gè)區(qū)域內(nèi),來(lái)對(duì)郵件主題和此前的郵件內(nèi)容進(jìn)行編碼。隨后谷歌將這些平均分配后的嵌套連接在一起,并在每次執(zhí)行解碼步驟時(shí)將它們提供給目標(biāo)序列 RNN-LM,過(guò)程如下面的模型圖解。
Smart Compose RNN-LM 模型架構(gòu)。將郵件主題和此前郵件信息進(jìn)行編碼,采用的方法是將它們的詞嵌套平均分配在每一個(gè)區(qū)域內(nèi)。隨后,平均后的嵌套會(huì)在每次執(zhí)行解碼步驟時(shí)提供給目標(biāo)序列 RNN-LM。加速模型訓(xùn)練和服務(wù)
當(dāng)然,一旦選定了這種建模方法,谷歌就必須調(diào)整各種模型超參數(shù)和使用超過(guò)數(shù)十億的樣本來(lái)訓(xùn)練這些模型,所有的這些操作都相當(dāng)費(fèi)時(shí)。為了實(shí)現(xiàn)加速,谷歌使用了一個(gè)完整 TPUv2 Pod 來(lái)執(zhí)行實(shí)驗(yàn)。在這情況下,谷歌能夠在一天之內(nèi)將一個(gè)模型訓(xùn)練至收斂狀態(tài)。
在谷歌訓(xùn)練出速度上更快的混合模型之后,初始版本的 Smart Compose 在一個(gè)標(biāo)準(zhǔn) CPU 上運(yùn)行時(shí),依舊存在幾百毫秒的平均服務(wù)延遲,這與 Smart Compose 努力預(yù)測(cè)語(yǔ)句來(lái)幫用戶節(jié)省時(shí)間的特點(diǎn)是不相符的。幸運(yùn)的是,谷歌可在推斷期間使用 TPU 來(lái)大大地加速用戶體驗(yàn),通過(guò)分流 TPU 之上的大部分計(jì)算,谷歌可以將平均延遲改良至幾十毫秒,同時(shí)也能大大增加單一機(jī)器可處理的服務(wù)請(qǐng)求數(shù)量。
公平性和隱私
由于語(yǔ)言理解模型會(huì)反映人類的認(rèn)知偏倚,這樣會(huì)導(dǎo)致得到多余的詞匯聯(lián)想和句子完成建議,所以在機(jī)器學(xué)習(xí)內(nèi)實(shí)現(xiàn)公平至關(guān)重要。Caliskan et al. 在他們近期的「Semantics derived automatically from language corpora contain human-like biases」論文中指出,模型的詞聯(lián)想深陷于自然語(yǔ)言數(shù)據(jù)的偏倚數(shù)據(jù)中,這為打造任何一個(gè)語(yǔ)言模型都帶來(lái)了相當(dāng)?shù)奶魬?zhàn)。在模型訓(xùn)練過(guò)程中,谷歌積極地尋找方法來(lái)持續(xù)降低潛在的偏倚。另外,由于 Smart Compose 是基于數(shù)十億的短語(yǔ)和句子進(jìn)行訓(xùn)練,這與垃圾郵件機(jī)器學(xué)習(xí)模型的訓(xùn)練方法一致,谷歌已經(jīng)進(jìn)行了廣泛的測(cè)試來(lái)確保,模型只記憶多種用戶都使用的常識(shí)語(yǔ)句,關(guān)于常識(shí)語(yǔ)句的調(diào)查結(jié)果源自這篇論文 The Secret Sharer: Measuring Unintended Neural Network Memorization & Extracting Secrets(https://arxiv.org/abs/1802.08232)。
未來(lái)研究
谷歌將持續(xù)地研究改良語(yǔ)言生成模型的預(yù)測(cè)質(zhì)量,為此谷歌會(huì)通過(guò)使用最先進(jìn)的構(gòu)架(如 Transformer,RNMT+等)和試用最新、最先進(jìn)的訓(xùn)練技術(shù)來(lái)實(shí)現(xiàn)這一目標(biāo)。一旦模型的實(shí)驗(yàn)結(jié)果滿足了谷歌的嚴(yán)格延遲約束條件,谷歌就會(huì)把這些更加的先進(jìn)模型部署到自家產(chǎn)品上去。另外,谷歌還在進(jìn)行結(jié)合個(gè)人語(yǔ)言模型的研究,該模型的目的是給系統(tǒng)增加一個(gè)新特性,讓它能夠更加準(zhǔn)確地模擬每個(gè)用戶自己的寫(xiě)作風(fēng)格。