作者|文竹 李彪 曉明 編輯|小智 ?轉(zhuǎn)自微信公眾號「美團(tuán)點評技術(shù)團(tuán)隊」
近年來卑惜,深度學(xué)習(xí)在語音、圖像驻售、自然語言處理等領(lǐng)域取得非常突出的成果露久,成了最引人注目的技術(shù)熱點之一。深度學(xué)習(xí)本身是一個非常龐大的知識體系欺栗,如果學(xué)習(xí)純理論會感覺吃力的話毫痕,美團(tuán)點評的技術(shù)實踐也許能讓你收獲更多。
寫在前面
美團(tuán)點評這兩年在深度學(xué)習(xí)方面進(jìn)行了一些探索迟几,其中在自然語言處理領(lǐng)域消请,我們將深度學(xué)習(xí)技術(shù)應(yīng)用于文本分析、語義匹配类腮、搜索引擎的排序模型等臊泰;在計算機(jī)視覺領(lǐng)域,我們將其應(yīng)用于文字識別蚜枢、目標(biāo)檢測因宇、圖像分類七婴、圖像質(zhì)量排序等。下面我們就以語義匹配察滑、圖像質(zhì)量排序及文字識別這三個應(yīng)用場景為例打厘,來詳細(xì)介紹美團(tuán)點評在深度學(xué)習(xí)技術(shù)及應(yīng)用方面的經(jīng)驗和方法論。
基于深度學(xué)習(xí)的語義匹配
語義匹配技術(shù)贺辰,在信息檢索户盯、搜索引擎中有著重要的地位,在結(jié)果召回饲化、精準(zhǔn)排序等環(huán)節(jié)發(fā)揮著重要作用莽鸭。
傳統(tǒng)意義上講的語義匹配技術(shù),更加注重文字層面的語義吻合程度吃靠,我們暫且稱之為語言層的語義匹配硫眨;而在美團(tuán)點評這樣典型的O2O應(yīng)用場景下,我們的結(jié)果呈現(xiàn)除了和用戶表達(dá)的語言層語義強(qiáng)相關(guān)之外巢块,還和用戶意圖礁阁、用戶狀態(tài)強(qiáng)相關(guān)。
用戶意圖即用戶是來干什么的族奢?比如用戶在百度上搜索“關(guān)內(nèi)關(guān)外”姥闭,他的意圖可能是想知道關(guān)內(nèi)和關(guān)外代表的地理區(qū)域范圍,“關(guān)內(nèi)”和“關(guān)外”被作為兩個詞進(jìn)行檢索越走,而在美團(tuán)上搜索“關(guān)內(nèi)關(guān)外”棚品,用戶想找的就是“關(guān)內(nèi)關(guān)外”這家飯店,“關(guān)內(nèi)關(guān)外”被作為一個詞來對待廊敌。
再說用戶狀態(tài)铜跑,一個在北京和另一個在武漢的用戶,在百度或淘寶上搜索任何一個詞條骡澈,可能得到的結(jié)果不會差太多锅纺;但是在美團(tuán)這樣與地理位置強(qiáng)相關(guān)的場景下就會完全不一樣。比如我在武漢搜“黃鶴樓”秧廉,用戶找的可能是景點門票伞广,而在北京搜索“黃鶴樓”拣帽,用戶找的很可能是一家飯店疼电。
如何結(jié)合語言層信息和用戶意圖、狀態(tài)來做語義匹配呢减拭?
我們的思路是在短文本外引入部分O2O業(yè)務(wù)場景相關(guān)特征蔽豺,融入到設(shè)計的深度學(xué)習(xí)來做語義匹配的框架中,通過點擊/下單數(shù)據(jù)來指引語義匹配模型的優(yōu)化方向拧粪,最終把訓(xùn)練出的點擊相關(guān)性模型應(yīng)用到搜索相關(guān)業(yè)務(wù)中修陡。下圖是針對美團(tuán)點評場景設(shè)計的點擊相似度框架ClickNet沧侥,是比較輕量級的模型,兼顧了效果和性能兩方面魄鸦,能很好地推廣到線上應(yīng)用宴杀。
表示層
對Query和商家名分別用語義和業(yè)務(wù)特征表示,其中語義特征是核心拾因,通過DNN/CNN/RNN/LSTM/GRU方法得到短文本的整體向量表示旺罢,另外會引入業(yè)務(wù)相關(guān)特征,比如用戶或商家的相關(guān)信息绢记,比如用戶和商家距離扁达、商家評價等,最終結(jié)合起來往上傳蠢熄。
學(xué)習(xí)層
通過多層全連接和非線性變化后跪解,預(yù)測匹配得分,根據(jù)得分和Label來調(diào)整網(wǎng)絡(luò)以學(xué)習(xí)出Query和商家名的點擊匹配關(guān)系签孔。
在該算法框架上要訓(xùn)練效果很好的語義模型叉讥,還需要根據(jù)場景做模型調(diào)優(yōu):首先,我們從訓(xùn)練語料做很多優(yōu)化骏啰,比如考慮樣本不均衡节吮、樣本重要度、位置Bias等方面問題判耕。其次透绩,在模型參數(shù)調(diào)優(yōu)時,考慮不同的優(yōu)化算法壁熄、網(wǎng)絡(luò)大小層次帚豪、超參數(shù)的調(diào)整等問題。經(jīng)過模型訓(xùn)練優(yōu)化草丧,我們的語義匹配模型已經(jīng)在美團(tuán)點評平臺搜索狸臣、廣告、酒店昌执、旅游等召回和排序系統(tǒng)中上線烛亦,有效提升了訪購率/收入/點擊率等指標(biāo)。
小結(jié)
深度學(xué)習(xí)應(yīng)用在語義匹配上懂拾,需要針對業(yè)務(wù)場景設(shè)計合適的算法框架煤禽,此外,深度學(xué)習(xí)算法雖然減少了特征工程工作岖赋,但模型調(diào)優(yōu)上難度會增加檬果,因此可以從框架設(shè)計、業(yè)務(wù)語料處理、模型參數(shù)調(diào)優(yōu)三方面綜合起來考慮选脊,實現(xiàn)一個效果和性能兼優(yōu)的模型杭抠。
基于深度學(xué)習(xí)的圖像質(zhì)量排序
國內(nèi)外各大互聯(lián)網(wǎng)公司(比如騰訊、阿里和Yelp)的線上廣告業(yè)務(wù)都在關(guān)注展示什么樣的圖像能吸引更多點擊恳啥。在美團(tuán)點評偏灿,商家的首圖是由商家或運營人工指定的,如何選擇首圖才能更好地吸引用戶呢钝的?圖像質(zhì)量排序算法目標(biāo)就是做到自動選擇更優(yōu)質(zhì)的首圖菩混,以吸引用戶點擊。
傳統(tǒng)的圖像質(zhì)量排序方法主要從美學(xué)角度進(jìn)行質(zhì)量評價扁藕,通過顏色統(tǒng)計沮峡、主體分布、構(gòu)圖等來分析圖片的美感亿柑。但在實際業(yè)務(wù)場景中邢疙,用戶對圖片質(zhì)量優(yōu)劣的判斷主觀性很強(qiáng),難以形成統(tǒng)一的評價標(biāo)準(zhǔn)望薄。比如:
有的用戶對清晰度或分辨率更敏感疟游;
有的用戶對色彩或構(gòu)圖更敏感;
有的用戶偏愛有視覺沖擊力的內(nèi)容而非平淡無奇的環(huán)境圖痕支。
因此我們使用深度學(xué)習(xí)方法颁虐,去挖掘圖片的哪些屬性會影響用戶的判斷,以及如何有效融合這些屬性對圖片進(jìn)行評價卧须。
我們使用AlexNet去提取圖片的高層語義描述另绩,學(xué)習(xí)美感、可記憶度花嘶、吸引度笋籽、品類等High Level特征,并補(bǔ)充人工設(shè)計的Low Level特征(比如色彩椭员、銳度车海、對比度、角點)隘击。在獲得這些特征后侍芝,訓(xùn)練一個淺層神經(jīng)網(wǎng)絡(luò)對圖像整體打分。該框架(如圖2所示)的一個特點是聯(lián)合了深度學(xué)習(xí)特征與傳統(tǒng)特征埋同,既引入高層語義又保留了低層通用描述州叠,既包括全局特征又有局部特征。
對于每個維度圖片屬性的學(xué)習(xí)莺禁,都需要大量的標(biāo)簽數(shù)據(jù)來支撐留量,但完全通過人工標(biāo)記代價極大窄赋,因此我們借鑒了美團(tuán)點評的圖片來源和POI標(biāo)簽體系哟冬。關(guān)于吸引度屬性的學(xué)習(xí)楼熄,我們選取了美團(tuán)Deal相冊中點擊率高的圖片(多數(shù)是攝影師通過單反相機(jī)拍攝)作為正例,而選取UGC相冊中點擊率低的圖片(多數(shù)是低端手機(jī)拍攝)作為負(fù)例浩峡。
關(guān)于品類屬性的學(xué)習(xí)可岂,我們將美團(tuán)一級品類和常見二級品類作為圖片標(biāo)簽『苍郑基于上述質(zhì)量排序模型缕粹,我們?yōu)閺V告POI挑選最合適的優(yōu)質(zhì)首圖進(jìn)行展示,起到吸引用戶點擊纸淮,提高業(yè)務(wù)指標(biāo)的目的平斩。圖3給出了基于質(zhì)量排序的首圖優(yōu)選結(jié)果。
基于深度學(xué)習(xí)的OCR
為了提升用戶體驗咽块,O2O產(chǎn)品對OCR技術(shù)的需求已滲透到上單绘面、支付、配送和用戶評價等環(huán)節(jié)侈沪。OCR在美團(tuán)點評業(yè)務(wù)中主要起著兩方面作用揭璃。一方面是輔助錄入,比如在移動支付環(huán)節(jié)通過對銀行卡卡號的拍照識別亭罪,以實現(xiàn)自動綁卡瘦馍,又如輔助BD錄入菜單中菜品信息。
另一方面是審核校驗应役,比如在商家資質(zhì)審核環(huán)節(jié)對商家上傳的身份證情组、營業(yè)執(zhí)照和餐飲許可證等證件照片進(jìn)行信息提取和核驗以確保該商家的合法性,比如機(jī)器過濾商家上單和用戶評價環(huán)節(jié)產(chǎn)生的包含違禁詞的圖片箩祥。相比于傳統(tǒng)OCR場景(印刷體呻惕、掃描文檔),美團(tuán)的OCR場景主要是針對手機(jī)拍攝的照片進(jìn)行文字信息提取和識別滥比,考慮到線下用戶的多樣性亚脆,因此主要面臨以下挑戰(zhàn):
成像復(fù)雜:噪聲、模糊盲泛、光線變化濒持、形變;
文字復(fù)雜:字體寺滚、字號柑营、色彩、磨損村视、筆畫寬度不固定官套、方向任意;
背景復(fù)雜:版面缺失,背景干擾奶赔。
對于上述挑戰(zhàn)惋嚎,傳統(tǒng)的OCR解決方案存在著以下不足:
通過版面分析(二值化,連通域分析)來生成文本行站刑,要求版面結(jié)構(gòu)有較強(qiáng)的規(guī)則性且前背景可分性強(qiáng)(例如文檔圖像另伍、車牌),無法處理前背景復(fù)雜的隨意文字(例如場景文字绞旅、菜單摆尝、廣告文字等)。
通過人工設(shè)計邊緣方向特征(例如HOG)來訓(xùn)練字符識別模型因悲,此類單一的特征在字體變化堕汞,模糊或背景干擾時泛化能力迅速下降。
過度依賴字符切分的結(jié)果晃琳,在字符扭曲臼朗、粘連、噪聲干擾的情況下蝎土,切分的錯誤傳播尤其突出视哑。
針對傳統(tǒng)OCR解決方案的不足,我們嘗試基于深度學(xué)習(xí)的OCR誊涯。
1. 基于Faster R-CNN和FCN的文字定位
首先挡毅,我們根據(jù)是否有先驗信息將版面劃分為受控場景(例如身份證、營業(yè)執(zhí)照暴构、銀行卡)和非受控場景(例如菜單跪呈、門頭圖)。
對于受控場景取逾,我們將文字定位轉(zhuǎn)換為對特定關(guān)鍵字目標(biāo)的檢測問題耗绿。主要利用Faster R-CNN進(jìn)行檢測,如下圖所示砾隅。為了保證回歸框的定位精度同時提升運算速度误阻,我們對原有框架和訓(xùn)練方式進(jìn)行了微調(diào):
考慮到關(guān)鍵字目標(biāo)的類內(nèi)變化有限,我們裁剪了ZF模型的網(wǎng)絡(luò)結(jié)構(gòu)晴埂,將5層卷積減少到3層究反。
訓(xùn)練過程中提高正樣本的重疊率閾值,并根據(jù)業(yè)務(wù)需求來適配RPN層Anchor的寬高比儒洛。
對于非受控場景精耐,由于文字方向和筆畫寬度任意變化,目標(biāo)檢測中回歸框的定位粒度不夠琅锻,我們利用語義分割中常用的全卷積網(wǎng)絡(luò)(FCN)來進(jìn)行像素級別的文字/背景標(biāo)注卦停,如下圖所示向胡。為了同時保證定位的精度和語義的清晰,我們不僅在最后一層進(jìn)行反卷積惊完,而且融合了深層Layer和淺層Layer的反卷積結(jié)果僵芹。
2. 基于序列學(xué)習(xí)框架的文字識別
為了有效控制字符切分和識別后處理的錯誤傳播效應(yīng),實現(xiàn)端到端文字識別的可訓(xùn)練性专执,我們采用如下圖所示的序列學(xué)習(xí)框架∮粲停框架整體分為三層:卷積層本股,遞歸層和翻譯層。其中卷積層提特征桐腌,遞歸層既學(xué)習(xí)特征序列中字符特征的先后關(guān)系拄显,又學(xué)習(xí)字符的先后關(guān)系,翻譯層實現(xiàn)對時間序列分類結(jié)果的解碼案站。
由于序列學(xué)習(xí)框架對訓(xùn)練樣本的數(shù)量和分布要求較高躬审,我們采用了真實樣本+合成樣本的方式。真實樣本以美團(tuán)點評業(yè)務(wù)來源(例如菜單蟆盐、身份證承边、營業(yè)執(zhí)照)為主,合成樣本則考慮了字體石挂、形變博助、模糊、噪聲痹愚、背景等因素富岳。基于上述序列學(xué)習(xí)框架和訓(xùn)練數(shù)據(jù)拯腮,在多種場景的文字識別上都有較大幅度的性能提升窖式,如下圖所示。
寫在最后
本文主要以深度學(xué)習(xí)在自然語言處理动壤、圖像處理兩個領(lǐng)域的應(yīng)用為例進(jìn)行了介紹萝喘,但深度學(xué)習(xí)在美團(tuán)點評可能發(fā)揮的價值遠(yuǎn)遠(yuǎn)不限于此。未來琼懊,我們將繼續(xù)在各個場景深入挖掘蜒灰,比如在智能交互、配送調(diào)度肩碟、智能運營等强窖,在美團(tuán)點評產(chǎn)品的智能化道路上貢獻(xiàn)一份力量。
免費參加InnoTalk沙龍-InnoTalk-從人工智能在金融領(lǐng)域的應(yīng)用創(chuàng)新看未來發(fā)展機(jī)會: