SmartReply是Google發(fā)布的面向youtue自媒體網(wǎng)友的自動智能回復(fù)神經(jīng)網(wǎng)絡(luò),隨著Gmail的推出和Android Messages的推出,SmartReply已經(jīng)擴(kuò)展到了更多的用戶,并通過Android Wear擴(kuò)展到了更多的設(shè)備?,F(xiàn)在,開發(fā)者可以使用SmartReply在Play開發(fā)者控制臺內(nèi)回復(fù)評論,并可以使用MLKit和TFLite內(nèi)提供的API設(shè)置自己的版本。每一次發(fā)布都有一個獨(dú)特的挑戰(zhàn),在建模和服務(wù)方面,需要根據(jù)任務(wù)要求定制SmartReply。
Google現(xiàn)在很高興與大家分享為YouTube打造的更新版SmartReply,并在YouTube Studio中實(shí)現(xiàn),幫助創(chuàng)作者更輕松地與觀眾互動。這個模型通過一個計算效率高的擴(kuò)張型自注意力網(wǎng)絡(luò)來學(xué)習(xí)評論和回復(fù)表示,并代表了第一個基于跨語言和字符字節(jié)的SmartReply模型。SmartReply for YouTube目前適用于英語和西班牙語創(chuàng)作者,這種方法簡化了未來將SmartReply功能擴(kuò)展到更多語言的過程。
YouTube創(chuàng)作者會收到大量的視頻回復(fù)。此外,YouTube上的創(chuàng)作者和觀眾社區(qū)是多樣化的,這一點(diǎn)從他們的評論、討論和視頻的創(chuàng)意中就能體現(xiàn)出來。與電子郵件相比,YouTube上的評論往往篇幅較長,且以正式語言為主,但與之相比,YouTube上的評論顯示出復(fù)雜的語言轉(zhuǎn)換模式、縮略詞、俚語、標(biāo)點(diǎn)符號的不一致使用以及大量使用表情符號。以下是說明這一挑戰(zhàn)的評論樣本。
深度檢索
最初發(fā)布的SmartReply for Inbox用一個循環(huán)神經(jīng)網(wǎng)絡(luò)對輸入郵件逐字編碼,然后用另一個字級循環(huán)神經(jīng)網(wǎng)絡(luò)對潛在的回復(fù)進(jìn)行解碼。盡管這種方法的表現(xiàn)力很強(qiáng),但它的計算成本很高。相反,Google發(fā)現(xiàn),可以通過設(shè)計一個系統(tǒng),在預(yù)定義的建議列表中搜索最合適的回復(fù)來達(dá)到同樣的目的。
這個檢索系統(tǒng)將消息及其建議獨(dú)立編碼。首先,對文本進(jìn)行預(yù)處理以提取單詞和短語。這種預(yù)處理包括但不限于語言識別、標(biāo)記化和標(biāo)準(zhǔn)化。然后,兩個神經(jīng)網(wǎng)絡(luò)同時并獨(dú)立地對信息和建議進(jìn)行編碼。這種因子化允許人們預(yù)先計算建議編碼,然后使用高效的最大內(nèi)積搜索數(shù)據(jù)結(jié)構(gòu)對建議集進(jìn)行搜索。這種深度檢索方法使Google能夠?qū)martReply擴(kuò)展到Gmail,此后,它成為多個SmartReply系統(tǒng)的基礎(chǔ),包括目前的YouTube系統(tǒng)。
上文中介紹的以前的SmartReply系統(tǒng)依賴于字級預(yù)處理,它針對有限的語言和狹窄的寫作類型進(jìn)行了很好的調(diào)整。這樣的系統(tǒng)在YouTube案例中面臨著巨大的挑戰(zhàn),因?yàn)橐粋€典型的評論可能包括以下內(nèi)容,如表情符號、ASCII藝術(shù)、語言切換等。有鑒于此,并從Google最近在字節(jié)和字符語言建模方面的工作中獲得靈感,Google決定在不進(jìn)行任何預(yù)處理的情況下對文本進(jìn)行編碼。這種方法得到了研究的支持,研究表明,深度Transformer網(wǎng)絡(luò)只需將文本作為字符或字節(jié)序列輸入給它,就能從頭開始對單詞和短語進(jìn)行建模,其質(zhì)量與基于單詞的模型相當(dāng)。
雖然初步結(jié)果很有希望,特別是對于處理帶有表情符號或錯別字的評論,但由于字符序列比單詞等價物長,而且自注意力層的計算復(fù)雜度隨著序列長度的函數(shù)呈二次方增長,因此推理速度對于生產(chǎn)來說太慢。Google發(fā)現(xiàn),通過在網(wǎng)絡(luò)的每一層應(yīng)用時間縮減層來縮小序列長度,類似于WaveNet中應(yīng)用的擴(kuò)容技術(shù),可以在計算和質(zhì)量之間進(jìn)行良好的權(quán)衡。
下圖展示了一個雙編碼器網(wǎng)絡(luò),它同時對評論和回復(fù)進(jìn)行編碼,通過以對比性目標(biāo)訓(xùn)練網(wǎng)絡(luò)來最大化其潛伏表征之間的相互信息。編碼開始時,先給變換器輸入一個字節(jié)嵌入后的序列。每一個后續(xù)層的輸入將通過在相等的偏移量下丟棄一定比例的字符來減少。在應(yīng)用多個變換層后,序列長度被大大截斷,大大降低了計算復(fù)雜度。這種序列壓縮方案可以用其他運(yùn)算符來代替,比如平均池化,不過Google并沒有注意到更復(fù)雜的方法帶來的收益,因此,為了簡單起見,Google選擇了使用擴(kuò)張。
一個雙編碼器網(wǎng)絡(luò),通過一個對比性目標(biāo)來最大化評論和其回復(fù)之間的相互信息。每個編碼器都會被送入一個字節(jié)序列,并被實(shí)現(xiàn)為一個計算效率很高的擴(kuò)張變壓器網(wǎng)絡(luò)。
一個可以學(xué)習(xí)所有評論的模型
Google沒有為每種語言訓(xùn)練一個單獨(dú)的模型,而是選擇為所有支持的語言訓(xùn)練一個單一的跨語言模型。這允許在評論中支持混合語言的使用,并使模型能夠利用學(xué)習(xí)一種語言中的共同元素來理解另一種語言,如表情符號和數(shù)字。此外,擁有一個模型可以簡化維護(hù)和更新的后勤工作。雖然該模型已經(jīng)推出了英語和西班牙語,但這種方法固有的靈活性將使其在未來擴(kuò)展到其他語言。
檢查該模型產(chǎn)生的多語言建議集的編碼,可以發(fā)現(xiàn)該模型會將適當(dāng)?shù)幕貜?fù)進(jìn)行聚類,無論它們屬于哪種語言。這種跨語言的能力在訓(xùn)練過程中沒有將模型暴露在任何平行語料庫中就出現(xiàn)了。Google在下圖中為三種語言展示了當(dāng)模型被探查到輸入評論時,回復(fù)是如何根據(jù)其含義進(jìn)行聚類的。例如,英文評論"This is a great video",周圍有適當(dāng)?shù)幕貜?fù),如"Thanks!"。此外,檢查其他語言中最近的回復(fù),發(fā)現(xiàn)它們也是適當(dāng)?shù)?,并且與英語回復(fù)的含義相似。二維投影還顯示了其他幾個由意義相似的回復(fù)組成的跨語言聚類。這種聚類展示了該模型如何在支持的語言中支持豐富的跨語言用戶體驗(yàn)。
當(dāng)呈現(xiàn)一個假設(shè)的評論和一個小的潛在回復(fù)列表時,模型編碼的2D投影。請注意,該網(wǎng)絡(luò)學(xué)會了將英語回復(fù)與其翻譯對齊,而無需訪問任何平行語料庫。
Google的目標(biāo)是幫助創(chuàng)作者,所以Google必須確保SmartReply只在非??赡苡杏玫臅r候提出建議。理想情況下,只有當(dāng)創(chuàng)作者很有可能回復(fù)評論,并且模型很有可能提供合理而具體的回復(fù)時,才會顯示建議。為了達(dá)到這個目的,Google訓(xùn)練了輔助模型來識別哪些評論應(yīng)該觸發(fā)SmartReply功能。