1
本文作者: NLP日月星辰 | 2016-10-14 19:46 |
雷鋒網(wǎng)按:本文作者NLP日月星辰,北京航空航天大學(xué)在讀博士生,研究方向?yàn)?自然語言處理,深度學(xué)習(xí)。
深度學(xué)習(xí)已經(jīng)在許多工業(yè)產(chǎn)品中取得應(yīng)用。例如Jeff Dean(谷歌大腦負(fù)責(zé)人)在去年的WSDM會(huì)議上指出,谷歌的搜索相關(guān)性計(jì)算模塊,深度學(xué)習(xí)的三個(gè)特征是權(quán)重最大的。
并且深度學(xué)習(xí)算法也大量的應(yīng)用到了谷歌和百度的機(jī)器翻譯系統(tǒng)之中,使機(jī)器翻譯質(zhì)量提升。本文將介紹另一個(gè)深度學(xué)習(xí)的應(yīng)用,郵件自動(dòng)回復(fù)。
自動(dòng)回復(fù)是否可以在工業(yè)中進(jìn)行實(shí)際應(yīng)用,一直是人們喋喋不休爭論的一個(gè)問題,很多人認(rèn)為對(duì)話系統(tǒng),所利用的自動(dòng)回復(fù)技術(shù)只是一個(gè)玩物,無法解決用戶的剛需。而谷歌,在去年十一月將自動(dòng)回復(fù)技術(shù)應(yīng)用到了Inbox中。
Inbox是谷歌在手機(jī)上的郵件客戶端,類似于手機(jī)上的Outlook。Inbox利用深度學(xué)習(xí)技術(shù),增添了為一些語義簡單的郵件進(jìn)行自動(dòng)回復(fù)的功能,擬解決“由于屏幕較小,手機(jī)郵件回復(fù)很不方便”的用戶痛點(diǎn)。其中主要解決如下幾個(gè)問題:
如何選擇可回復(fù)郵件:當(dāng)今商務(wù)人士郵件眾多,很多郵件并不長,據(jù)谷歌統(tǒng)計(jì)有百分之25%的郵件少于20個(gè)詞。那么對(duì)這些簡短且語義好理解的郵件是否可以通過分類進(jìn)行篩選,交給郵件生成系統(tǒng)是一個(gè)有趣的分類問題。
回復(fù)的郵件是否可分類:很多郵件的回復(fù)類型可枚舉,例如問“下午三點(diǎn)是否可以參加XXX會(huì)議”,答案無非是“可以參加”,“有事情不能參加”,“我在想想”這三個(gè)情況,所以如何通過算法將三種類型的回復(fù)進(jìn)行聚類是一個(gè)有現(xiàn)實(shí)意義的聚類問題。
如何針對(duì)每個(gè)類選出最合適的郵件:針對(duì)每個(gè)類,如何通過自動(dòng)回復(fù)算法生成特定的回復(fù),是一個(gè)自然語言處理上的回復(fù)生成問題。
谷歌于今年KDD會(huì)議上,發(fā)布了SmartReply的論文。我們首先看SmartReply的架構(gòu)
從圖中可以看到,系統(tǒng)分為四個(gè)部分,分別是可回復(fù)郵件篩選,回復(fù)郵件聚類,回復(fù)郵件選擇,和多樣性回復(fù)生成,之后將一一介紹。
模塊功能
在谷歌的郵件回復(fù)系統(tǒng)中,并不是每一封郵件都會(huì)給出自動(dòng)回復(fù)的建議。因?yàn)橛行┼]件意思簡單明了,機(jī)器可以快速的理解,并給出一些回復(fù)候選。
例如:今天晚上七點(diǎn)我們開個(gè)會(huì)討論一下項(xiàng)目修改方案吧。
這個(gè)郵件機(jī)器可以快速理解,并通過之后的步驟給出對(duì)應(yīng)的候選方案。然而,還存在著一些郵件結(jié)構(gòu)復(fù)雜,機(jī)器并不能很好的理解其中含義。
例如:我已經(jīng)看完你的論文,在你的論文中,公式2的推導(dǎo)出現(xiàn)了錯(cuò)誤,我覺得倒數(shù)應(yīng)該用鏈?zhǔn)椒▌t求解。
總之,在回復(fù)之前,需要一個(gè)模塊判定機(jī)器是否可以理解郵件語義,避免在不理解的時(shí)候仍然給出郵件回復(fù)候選,使用戶感到被騷擾。
模塊實(shí)現(xiàn)方法
可回復(fù)郵件的篩選機(jī)制歸根結(jié)底是一個(gè)分類問題,即給定訓(xùn)練集合 D ={X,Y},X代表文檔的特征集合,Y代表文檔的標(biāo)簽,學(xué)習(xí)函數(shù)f(x),使得y與f(x)的誤差最小。在此任務(wù)中谷歌選擇了多層感知機(jī)作為分類器,多層感知機(jī)如下圖所示
在此分類任務(wù)中,這篇論文使用了一元詞匯(Unigram)和二元詞匯(Bigram)來對(duì)抽取特征,并將同一類的特征進(jìn)行相加,得到MLP的輸入。
這個(gè)MLP模型有三個(gè)隱層層,每層的激活函數(shù)使用了ReLU,且利用DropOut防止過擬合。最終經(jīng)過試驗(yàn)證明,這個(gè)分類模型的AUC為0.854。針對(duì)此模塊,筆者觀點(diǎn)如下:
MLP模型算是文本分類的最簡單模型之一,然而簡單模型在這個(gè)任務(wù)上仍能取得不錯(cuò)的效果,這和一些其他的論文得到的結(jié)論一致(例如Facebook的FastText,利用簡單的結(jié)構(gòu)就可以在分類任務(wù)和復(fù)雜結(jié)構(gòu)的網(wǎng)絡(luò)得到近似的效果)。大部分現(xiàn)實(shí)分類任務(wù)簡單,很多簡單的模型便可以達(dá)到還不錯(cuò)的效果,刻意追求模型的復(fù)雜性在簡單任務(wù)上往往得不償失。
AI(人工智能)+HI(人類智能)仍然是現(xiàn)在的AI產(chǎn)品不可或缺的一環(huán),即使分類器表現(xiàn)良好達(dá)到85%,但在工業(yè)級(jí)的系統(tǒng)中,仍然會(huì)有15%出錯(cuò),所以SmartReply系統(tǒng)是讓用戶選擇他生成的回復(fù),而不是直接幫助用戶進(jìn)行郵件回復(fù)或者郵件書寫。
模塊功能
此模塊為該應(yīng)用核心,功能如圖所示,當(dāng)用戶收到一封郵件,Inbox會(huì)自動(dòng)生成3個(gè)供挑選回復(fù)(三個(gè)回復(fù)在屏幕下側(cè))。例如,第一封郵件的三個(gè)回復(fù)分別為:
1. Count us in!
2. We will be there
3. Sorry we won't be able to make it
這樣可以加速用戶在手機(jī)端輸入不便,回復(fù)郵件較慢的體驗(yàn)。
模塊實(shí)現(xiàn)方法
此篇文章中,最核心的東西便是回復(fù)的生成以及聚類了。和面向開放領(lǐng)域的聊天機(jī)器人不同,郵件回復(fù)需要對(duì)回復(fù)進(jìn)行聚類,之后從每個(gè)類別中選一個(gè)代表句。
回復(fù)聚類的算法如下:
構(gòu)建圖G={V,E},V是圖中的點(diǎn),E是圖的邊。V由來信,回信,以及回信的特征構(gòu)成。
首先抽樣N個(gè)郵件作為頂點(diǎn),構(gòu)建頂點(diǎn)集合VR。為每個(gè)類別人工選擇種子郵件(例如 Thank you , Thanks是感謝類的郵件),并將這些郵件VL也放到圖G中。此時(shí)由于人工的干預(yù),我們知道在特定的類別Ci有{r1,r2...rn}個(gè)回復(fù)屬于此類。
通過詞匯特征的抽取,構(gòu)建G中代表特征的頂點(diǎn)集合VF,如果郵件有該特征則郵件和該頂點(diǎn)進(jìn)行連接。
之后使用了半監(jiān)督的聚類方法將郵件進(jìn)行聚類,并且每隔特定輪次,進(jìn)行新類別發(fā)現(xiàn),最終得到376類。類別例如(will do, Thanks, I got it 等)
回復(fù)選擇部分并沒有什么創(chuàng)新點(diǎn),是一個(gè)基于LSTM模型的排序問題,候選集合是由most frequent的回復(fù)郵件構(gòu)成,值得注意的是此篇所用的LSTM并不是利用一個(gè)Dual-LSTM講發(fā)來的郵件和回復(fù)郵件分別進(jìn)行encoding之后計(jì)算相似度。而是類似LSTM的生成模型,計(jì)算給定所發(fā)來郵件O的時(shí)候,回復(fù)中每個(gè)詞被生成的概率P(wi|O)
在具體的實(shí)際應(yīng)用中,可以根據(jù)場(chǎng)景的不同選擇基于深度學(xué)習(xí)的回復(fù)算法。我們可以看到針對(duì)回復(fù)選擇這部分,由于候選回復(fù)均為高頻回復(fù)郵件,所以回復(fù)會(huì)十分的沒有營養(yǎng),大多基于簡單的英文表達(dá)(Sure,No,Thanks)等,想必如何讓郵件回復(fù)和郵件內(nèi)容正確的呼應(yīng)起來也是非常值得研究的一個(gè)課題,這樣可以避免千篇一律的回復(fù),讓被回復(fù)者有不受尊重的感覺。
在多樣性選擇方面,按照文章的敘述做了兩個(gè)后處理。
第一個(gè)后處理是重復(fù)回復(fù)刪除,操作具體方法十分簡單,首先根據(jù)上面所說的郵件排序系統(tǒng)對(duì)所有候選郵件進(jìn)行降序排列,之后從top1開始加入系統(tǒng)要輸出的集合OUTPUT中。
之后每個(gè)候選回復(fù)郵件r在加入OUTPUT時(shí),檢測(cè)r是否與OUTPUT中的任意郵件屬于上面聚類算法所給出的同一個(gè)類別,如果不是才可以加入OUTPUT之中。OUTPUT達(dá)到3個(gè)回復(fù)即停止迭代。
第二個(gè)后處理是強(qiáng)行生成拒絕傾向的回復(fù)。如果OUTPUT集合中的回復(fù)中沒有拒絕傾向的回復(fù),且top2中有同意傾向的回復(fù),則自動(dòng)將第三個(gè)回復(fù)替換為拒絕傾向。以此給出更加多樣的回復(fù),讓使用者的選擇面更大。
SmartReply是谷歌將回復(fù)選擇技術(shù)利用到移動(dòng)版郵件系統(tǒng)的一個(gè)嘗試,希望解決手機(jī)打字不便的問題。論文敘述了一個(gè)系統(tǒng),并為我們實(shí)現(xiàn)一個(gè)郵件回復(fù)系統(tǒng)指明了方向。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。