編輯整理:韓佳
出品平臺(tái):DataFunTalk、AI啟蒙者
阿里文娛搜索業(yè)務(wù)簡(jiǎn)介
相關(guān)性和排序
多模態(tài)視頻搜索
深度語義相關(guān)性的一些探索
首先和大家分享下文娛搜索業(yè)務(wù)簡(jiǎn)介。
1. 阿里文娛搜索業(yè)務(wù)簡(jiǎn)介
搜索為整個(gè)阿里文娛提供一站式的搜索推薦服務(wù),服務(wù)范圍不僅包括優(yōu)酷的全部的搜索入口,比如APP端、OTT大屏端、PC端還有網(wǎng)頁端等等,還會(huì)涉及到大麥、淘票票等領(lǐng)域。涉及的檢索內(nèi)容從傳統(tǒng)的影劇、動(dòng)漫這些有版權(quán)的長(zhǎng)視頻影視庫之外,還會(huì)覆蓋社會(huì)各個(gè)領(lǐng)域的UPGC的視頻內(nèi)容,此外比如影人、演出、小說也都是大文娛搜索各個(gè)業(yè)務(wù)領(lǐng)域的需求,需要提供檢索服務(wù)。
以用戶為例,平臺(tái)有億級(jí)別的視頻資源。不僅包括平臺(tái)購買的有版權(quán)的OGC視頻(如節(jié)目、電影和電視?。?,還包括用戶上傳的一些UGC視頻。
2. 用戶價(jià)值→評(píng)估指標(biāo)
視頻搜索技術(shù)是怎么做的呢?首先跟大家介紹一下視頻搜索里面的用戶價(jià)值是什么,以及它是如何影響搜索技術(shù)的。評(píng)估指標(biāo)的用戶價(jià)值在這里主要體現(xiàn)在兩個(gè)維度。
第一個(gè)是工具屬性,即用戶將搜索服務(wù)作為尋找內(nèi)容的工具,目標(biāo)就是找準(zhǔn)找全。
搜得到搜得準(zhǔn),既是用戶價(jià)值的基礎(chǔ)也是搜索的基礎(chǔ)屬性。從這個(gè)維度去評(píng)估搜索效果的好壞,就需要一系列的體驗(yàn)類的指標(biāo)(跳出率、相關(guān)性、時(shí)效性和多樣性等等)??刹バ允且曨l搜索特有屬性,是指視頻能不能在優(yōu)酷平臺(tái)上進(jìn)行播放。受內(nèi)容版權(quán)以及監(jiān)管方面的原因,有些內(nèi)容是不可播放的。此外,還會(huì)定期去通過人工評(píng)測(cè)的方式來對(duì)搜索效果滿意度做橫向以及縱向的對(duì)比。
第二個(gè)是分發(fā)屬性,即如何能讓用戶在平臺(tái)消費(fèi)更多的內(nèi)容,帶來更多的收益。
這里說的更多其實(shí)有兩個(gè)維度的,第一個(gè)是觀看的視頻數(shù)VV,第二個(gè)是消費(fèi)時(shí)長(zhǎng)PS。這兩個(gè)指標(biāo)對(duì)于視頻的垂直搜索領(lǐng)域是非常重要的,因?yàn)樗苯雍饬恐脩舻臐M意度。對(duì)于平臺(tái)來說,搜索還需要能支持平臺(tái)的宣發(fā)以及實(shí)現(xiàn)廣告和會(huì)員等商業(yè)價(jià)值。這些屬性決定了視頻搜索業(yè)務(wù)是一個(gè)多目標(biāo)優(yōu)化的任務(wù)。
3. 搜索算法框架
這里給出了搜索的算法框架,從上從下到上依次是數(shù)據(jù)層、基礎(chǔ)技術(shù)層、Query的意圖層、內(nèi)容召回層、相關(guān)性層以及排序?qū)?。這個(gè)框架是比較high level的,先大概介紹不會(huì)涉及細(xì)節(jié),希望大家能夠大概理解視頻搜索的關(guān)鍵技術(shù)全貌,將與后面內(nèi)容關(guān)聯(lián)比較緊密的內(nèi)容在這里重點(diǎn)介紹,方便對(duì)后面內(nèi)容的理解。
數(shù)據(jù)層:其最基礎(chǔ)的是視頻的內(nèi)容,從視頻內(nèi)容中會(huì)抽取出相應(yīng)的知識(shí)包括實(shí)體、關(guān)系和屬性(比如一個(gè)節(jié)目它的演員是誰?它的角色是什么?它是哪一年發(fā)行的?)通過內(nèi)容組織的方式做圖譜的聚合,例如基于事件維度做時(shí)效性的聚合。
基礎(chǔ)技術(shù)層:在數(shù)據(jù)層基礎(chǔ)之上,利用基礎(chǔ)的CV技術(shù)以及NLP能力來支撐上層對(duì)Query意圖的理解、內(nèi)容的召回以及后面的相關(guān)性和排序。意圖層需要理解用戶Query的意圖是什么。首先對(duì)Query做成分的分析(Query Tagging),Tagging就是說標(biāo)明Query中各個(gè)成分是什么意思(比如“步步驚心吳奇隆”這個(gè)query,需要識(shí)別出“步步驚心”是一個(gè)節(jié)目名,“吳奇隆”是一個(gè)人)。然后基于這些信息建立細(xì)粒度的意圖體系,對(duì)用戶表達(dá)的意圖做深層次的理解(比如需要理解用戶的query是想找節(jié)目的意圖,還是看人物的周邊信息以及通用的知識(shí)類的意圖),基于這些意圖可以去指導(dǎo)上層的召回相關(guān)性排序。
召回層:涉及到的多媒體內(nèi)容理解是視頻搜索的重點(diǎn),因?yàn)楹蛡鹘y(tǒng)搜索不一樣,視頻內(nèi)容它傳遞的信息是非常豐富的,很難用標(biāo)題的短短十幾個(gè)字精準(zhǔn)的刻畫,而且用戶在檢索的時(shí)候,因?yàn)榭谡Z化他需求的表達(dá)其實(shí)是差別非常大的,這就存在著天然的語義鴻溝或者說是知識(shí)鴻溝,所以不能把視頻當(dāng)作一個(gè)黑盒子,而需要利用NLP的能力、CV的能力以及其他的技術(shù)能力對(duì)視頻的內(nèi)容做一個(gè)全面的分析結(jié)構(gòu)。
相關(guān)性:涉及到的主要就是基礎(chǔ)的相關(guān)性以及語義匹配的一些技術(shù),還有后面重點(diǎn)介紹的深度語義相關(guān)性計(jì)算。
排序?qū)樱褐饕凑涨懊嫣岬降捏w驗(yàn)和分發(fā)這兩個(gè)維度去整體提升搜索效果。排序它主要是用到機(jī)器學(xué)習(xí)的Learning to Rank的一些模型去提升分發(fā)效果,同時(shí)還要優(yōu)化體驗(yàn)類的目標(biāo),比如說時(shí)效性多樣性等等。它是典型的多目標(biāo)優(yōu)化任務(wù)。
下面重點(diǎn)介紹一下相關(guān)性和排序,這兩大搜索的核心模塊。
1. 搜索相關(guān)性-挑戰(zhàn)
相關(guān)性的定義為給定一個(gè)用戶的Query和一個(gè)文檔Doc判斷Query和Doc是否相關(guān)。相對(duì)于通用搜索而言,視頻搜索存在了三大特殊的挑戰(zhàn),如下:
異構(gòu)內(nèi)容理解:表中的兩個(gè)帖子,用戶Query和視頻標(biāo)題Doc從字面上來看,是不相關(guān)。通過對(duì)視頻內(nèi)容進(jìn)行理解,豐富元信息,建立異構(gòu)內(nèi)容的相關(guān)性。(比如,用戶Query“變形計(jì)2017姚金冬”,Doc中只有姚金冬,實(shí)際上通過視頻內(nèi)容的理解可以知道姚京東和變形計(jì)的關(guān)系,同時(shí)知道是2017年拍攝的。)所以通過對(duì)內(nèi)容理解和IP指紋,比如把IP周邊的這種視頻和IP本身關(guān)聯(lián)起來,就能夠豐富視頻的元信息,提升異構(gòu)內(nèi)容的相關(guān)性匹配度。
實(shí)體知識(shí)匹配:視頻存在大量的領(lǐng)域知識(shí),需要利用知識(shí)對(duì)視頻內(nèi)容(如:標(biāo)題內(nèi)容)進(jìn)行結(jié)構(gòu)化理解。用NER抽取出標(biāo)題的實(shí)體、CV技術(shù)輔助提升其識(shí)別準(zhǔn)確率。(比如,用戶Query“法不容情國語”,Query端通過成分分析得到“法不容情”是一個(gè)節(jié)目名。但是,Doc端用戶上傳的是一個(gè)社會(huì)現(xiàn)象,需要對(duì)Doc端進(jìn)行結(jié)構(gòu)化的理解,可以推理出Doc端的對(duì)“法不容情”的理解并不是說的一個(gè)節(jié)目。)基于這些信息,在相關(guān)性匹配的時(shí)候,就可以利用這種先驗(yàn)知識(shí)來做更好的判斷,決定最終的相關(guān)性。
深度語義計(jì)算:這個(gè)挑戰(zhàn)其實(shí)是在通用的搜索領(lǐng)域也會(huì)遇到,但是,視頻搜索領(lǐng)域它的領(lǐng)域挑戰(zhàn)更大,因?yàn)樗嗟男枰Y(jié)合知識(shí),還有視頻內(nèi)容的理解去聯(lián)動(dòng),才能更好的解決。這個(gè)在后面會(huì)詳細(xì)介紹。
2. 搜索相關(guān)性
對(duì)于搜索相關(guān)性而言,通用解法主要從四個(gè)維度展開,具體內(nèi)容如下:
基礎(chǔ)特征:即基于文本的字面匹配,包括Term Weigh和基于Term級(jí)別匹配矩陣。
知識(shí)特征:主要是通過內(nèi)容理解以及視頻自身所帶的元信息進(jìn)行知識(shí)維度的特征抽取,例如視頻中人物所關(guān)聯(lián)的節(jié)目以及所關(guān)聯(lián)的一些元信息,用來做一些知識(shí)類的匹配。其中,Doc Tagging類似于前面介紹的Query Tagging,但它需要綜合利用內(nèi)容理解NLP技術(shù)以及關(guān)系數(shù)據(jù),識(shí)別視頻中標(biāo)題的成分。
后驗(yàn)特征:后驗(yàn)特征在某些情況下比先驗(yàn)特征(基礎(chǔ)特征和知識(shí)特征)更加重要,因?yàn)橛脩羲阉饕粋€(gè)Query之后,用戶和搜索結(jié)果之間產(chǎn)生交互,比如形成Query和Doc的交互。搜索領(lǐng)域比較常用的交互特征為Query_Anchor,它基于搜索日志中這種用戶的共點(diǎn)擊行為,從Doc維度去挖掘與Doc相關(guān)聯(lián)的Query,基于Query做后驗(yàn)匹配。
語義特征:主要指文本層面的語義匹配。以往利用DSSM雙塔模型,近期利用離線或在線Bert語義模型完成離線或者在線的語義計(jì)算。除了匹配層面之外,語義特征還可以支持實(shí)現(xiàn)召回,通過SMT和Click Behavior(點(diǎn)擊行為分析)對(duì)Query進(jìn)行語義擴(kuò)展,能夠擴(kuò)大召回的范圍,更好的進(jìn)行語義匹配。
3. 相關(guān)性數(shù)據(jù)集構(gòu)建和特征體系
具體做法,首先對(duì)相關(guān)性的數(shù)據(jù)進(jìn)行構(gòu)建,比較好的辦法是通過人工標(biāo)注來構(gòu)建相關(guān)性數(shù)據(jù)集,其中標(biāo)注的規(guī)范尤為重要。該數(shù)據(jù)集一般通過眾包的方式獲取,因?yàn)閿?shù)據(jù)集較大并且必須結(jié)合實(shí)際業(yè)務(wù)和用戶需求。本文對(duì)相關(guān)性數(shù)據(jù)的構(gòu)建,不僅是希望標(biāo)注樣本的相關(guān)性的等級(jí)(比如將文檔分成完全相關(guān)、完全不相關(guān)和部分相關(guān)三級(jí))還會(huì)針對(duì)同等級(jí)的樣本標(biāo)注它們之間偏序關(guān)系或者服務(wù)上層的排序,所以標(biāo)注質(zhì)量和成本是本文關(guān)注的重點(diǎn)。針對(duì)成本,需要高效的問題樣本自動(dòng)發(fā)現(xiàn)機(jī)制,左圖展示的基于Q-Learning的思想,它的目的是為了加快標(biāo)注效率,同時(shí)提升標(biāo)注的質(zhì)量
本文具體將數(shù)據(jù)集分成驗(yàn)證集和訓(xùn)練集。驗(yàn)證集主要指針對(duì)特定類型的線上的體驗(yàn)問題構(gòu)建的,有一定的針對(duì)性。訓(xùn)練集(回歸集)的目的是為了評(píng)估算法在針對(duì)驗(yàn)證集進(jìn)行迭代優(yōu)化的過程中,不會(huì)對(duì)線上的整體效果有負(fù)面的影響?;谟?xùn)練集去不斷的迭代線上模型,對(duì)于線上模型預(yù)測(cè)不是那么準(zhǔn)確樣本,通過反向的模型對(duì)這種問題樣本進(jìn)行挖掘,挖掘出的給外包去標(biāo)注。這里的挖掘主要是挖掘一些模型的預(yù)測(cè)結(jié)果和線上的指標(biāo)概括比較大的,這些case就能夠形成一個(gè)快速的迭代的閉環(huán),提升模型精度的模式,能夠大大的提升整個(gè)標(biāo)注的質(zhì)量和效率。
右圖展示了目前相關(guān)性的整體特征的劃分。最上層的是Query的特征,包含一些常規(guī)的字面匹配特征,還有意圖相關(guān)的一些特征,比如Query是人物意圖還是節(jié)目意圖。中間是文檔類的特征,包含一些先驗(yàn)的特征,比如說從文檔標(biāo)題中解構(gòu)的特征和一些基礎(chǔ)的文本匹配特征,除了先驗(yàn)特征更重要的是后驗(yàn)特征,它主要是用來做一些分發(fā)類的目標(biāo)。最下層的是Query和DOC的匹配的特征,分為基礎(chǔ)的文本匹配和意圖匹配,比如類目的匹配,還有這種知識(shí)層面的匹配以及語義匹配。
4. 排序特征體系
基于相關(guān)性的特征,上層排序在特征基礎(chǔ)之上做一些整合和豐富。這里主要分為四大塊的排序特征體系,那么除了Query和DOC以及它們的匹配特征之外,這些都是各業(yè)務(wù)領(lǐng)域通用的,比如除了技術(shù)匹配類、Query統(tǒng)計(jì)之外,還會(huì)增加一些視頻平臺(tái)所特有特征,比如說實(shí)時(shí)播控,它是為了解決排序除了體驗(yàn)?zāi)繕?biāo)之外,還要解決分發(fā)類的目標(biāo),因?yàn)樗跊Q策領(lǐng)域很重要。
在視頻內(nèi)容特征組里面,內(nèi)容質(zhì)量是比較重要。因?yàn)橛脩裘刻焐蟼鞯囊曨l量非常大,所以需要做好內(nèi)容質(zhì)量的評(píng)估。我們會(huì)負(fù)責(zé)提供高質(zhì)量視頻內(nèi)容特征,它主要是從封面圖、標(biāo)題、畫質(zhì)、圖像等各個(gè)模塊去評(píng)估這種質(zhì)量。
最后一個(gè)是用戶的特征,它主要包括一些用戶的行為特征,畫像特征。它主要是用在一些寬泛的搜索場(chǎng)景中來提升系統(tǒng)的個(gè)性化能力,比如說我們這邊的頻道頁的搜索排序,寬泛排序等等。
為什么要多模態(tài)?
因?yàn)榛谖谋灸K的搜索系統(tǒng),比如說基于標(biāo)題和描述的文本搜索,它在視頻搜索里面會(huì)遇到一些困難,首先就是單模態(tài)的信息缺失,用戶的上傳視頻的時(shí)候,標(biāo)題往往都比較簡(jiǎn)單,它很難將豐富的視頻內(nèi)容表達(dá)清楚,并且有些文字信息與視頻內(nèi)容是不相關(guān)的,此外,用戶搜索的意圖越來越多元化,即使是版權(quán)視頻搜索也不在于其中這種節(jié)目名字查詢,它往往會(huì)有更多的社交與互動(dòng)的需求。還有一些就是去閉塞的需求,也就是這種內(nèi)容而創(chuàng)的用戶,他需要去找各種各樣的視頻片段素材,那這部分的需求也需要用多模態(tài)的技術(shù)支撐。另一方面,多模態(tài)的好處就在于它能夠?qū)⒄Z音文字圖像和視頻等各種模態(tài)集成起來。綜合多模態(tài)的信息來深度理解視頻,幫助用戶找到真正他們想要的視頻內(nèi)容,做出很多新的搜索體。
1. 多模態(tài)視頻搜索
該框架圖是用戶搜索用到的一個(gè)多模態(tài)解決方案。目前在工業(yè)界和學(xué)術(shù)界對(duì)于多模態(tài)的研究熱點(diǎn)都非常高,但是學(xué)術(shù)界往往喜歡端到端的解決方案。比如說將Query和視頻映射到一個(gè)中間的模態(tài),然后在中間的模式做語義匹配,之后做相似性。這種端到端的解決方案,它對(duì)于短小視頻的理解肯定是不錯(cuò)的方案,但是針對(duì)長(zhǎng)視頻而言,它很難做到真正準(zhǔn)確的理解。因?yàn)殚L(zhǎng)視頻包含的內(nèi)容信息是更加多維和更加寬泛的,同時(shí)噪音也多。更重要一點(diǎn),工業(yè)界似乎已經(jīng)對(duì)整個(gè)系統(tǒng)的可解釋性和可控性要求比較高。所以說很少采用單一的端到端的解決方案。
優(yōu)酷的多模態(tài)搜索采用的是一個(gè)三階段的解決方案。第一階段利用CV技術(shù)將其它模態(tài)(如圖片、視頻)的信息降維到一個(gè)文本模態(tài),將其做結(jié)構(gòu)化的內(nèi)容理解。第二階段通過多模態(tài)的內(nèi)容檢索實(shí)現(xiàn)召回,在上層通過多模態(tài)的內(nèi)容相關(guān)性排序算法達(dá)成最終的動(dòng)態(tài)的檢索效果,比如上圖中《這就是街舞》,基于人臉識(shí)別技術(shù)能夠識(shí)別出視頻中出現(xiàn)的明星人物(易烊千璽、黃子韜等明星),然后通過OCR和AR技術(shù)來識(shí)別視頻中的對(duì)話內(nèi)容并轉(zhuǎn)化成文本,最后基于文本去做結(jié)構(gòu)化的理解。結(jié)構(gòu)化的文本需要有系統(tǒng)性的理解和組織,本文主要是利用關(guān)鍵詞的抽取進(jìn)行核心概念的理解,并形成內(nèi)容主題。同時(shí)還會(huì)利用音樂識(shí)別、動(dòng)作識(shí)別、場(chǎng)景識(shí)別等等CV技術(shù),來不斷豐富視頻的結(jié)構(gòu)內(nèi)容,從而做到在用戶做各種組合搜索的時(shí)候,系統(tǒng)都能夠召回而且排序結(jié)果比較好。
這里有一個(gè)案例,通過這個(gè)案例來介紹本文在做多模態(tài)視頻搜索時(shí),是如何提取并且組織內(nèi)容關(guān)鍵詞,在視頻內(nèi)容降維成文本模態(tài)之后怎么做好文本內(nèi)容的組織與理解。
如圖,該視頻講的是歐洲陶瓷,但是它的標(biāo)題非常簡(jiǎn)單就是陶瓷這幾個(gè)字,字幕文本是利用OCR技術(shù)識(shí)別出來的。字幕文本所承載的內(nèi)容關(guān)鍵詞詞數(shù)非常大,此外,內(nèi)容和關(guān)鍵詞屬于多得多的關(guān)系,所以通過多樣化的關(guān)鍵詞抽取技術(shù)來提取候選關(guān)鍵詞,同時(shí)能夠擴(kuò)大候選詞來源的多樣性?;贜ER的方法能夠確保抽取的關(guān)鍵詞是百科類的實(shí)體,有比較廣泛的知識(shí)內(nèi)涵。而新詞發(fā)現(xiàn)的方法,它結(jié)合N-gram以及語言模型等多種能力來擴(kuò)大對(duì)未知知識(shí)領(lǐng)域的挖掘。挖掘的候選關(guān)鍵詞的量其實(shí)是非常大的,在關(guān)鍵詞基礎(chǔ)之上,根據(jù)視頻的內(nèi)容和候選詞的匹配程度或者說相關(guān)性來進(jìn)行關(guān)鍵詞的分級(jí),通過分類模型將其分類成最核心的關(guān)鍵詞,有普通的關(guān)鍵詞以及提及關(guān)鍵詞。關(guān)鍵詞分級(jí)的核心特征除了文本特征之外,還會(huì)采用音頻、視頻等多模態(tài)的特征來共同訓(xùn)練,進(jìn)而提升分類準(zhǔn)確率,將關(guān)鍵詞和內(nèi)容表達(dá)的關(guān)聯(lián)度預(yù)測(cè)更加精準(zhǔn)。在這一過程中會(huì)面臨一些挑戰(zhàn),比如這個(gè)視頻講的是歐洲瓷器的發(fā)展史,但是視頻標(biāo)題很簡(jiǎn)單。我們雖然把內(nèi)容將變成文本之后,能夠利用前面提到的關(guān)鍵詞提取技術(shù)抽取出歐洲、麥森和塞夫勒等關(guān)鍵詞,但是如何把這些關(guān)鍵詞和歐洲聯(lián)系起來,理解這個(gè)視頻講的是歐洲的發(fā)展史,而不是中國或者日本。此外,對(duì)于瓷器領(lǐng)域(比如陶青花、瓷高嶺土)的知識(shí)實(shí)體,怎么知道該實(shí)體和瓷器講的是類似的事情,那么這里就需要有科技作為支撐了。因?yàn)榭萍嫉膶?shí)體知識(shí)庫能夠涵蓋比較廣泛的領(lǐng)域,比如說全行業(yè)的豐富的實(shí)體信息,能夠幫助提取核心內(nèi)容主題。此外,算法還需要有實(shí)體間的關(guān)系推理的能力,才能更加全面的理解視頻,然后更好地支撐上層的召回、匹配和排序。
2. 效果案例
上圖是基于多媒體實(shí)現(xiàn)的搜索案例的上線效果。最左邊這案例,當(dāng)用戶搜索“軍情解碼張召忠”時(shí),可以看出來排在前面的幾個(gè)視頻,它內(nèi)容都是張召忠主講的。但是,標(biāo)題上其實(shí)沒有張召忠這個(gè)名字,我們是通過算法將內(nèi)容進(jìn)行理解,將它從視頻模塊中抽取出來,同時(shí)以這種關(guān)鍵字的方式進(jìn)行外顯。其它的案例也是類似的,就是說視頻開頭中沒有用戶想要的東西,但是視頻內(nèi)容中有,所以這個(gè)時(shí)候就需要用多媒體視頻檢索的方式。
最后介紹一下深度語義相關(guān)性上的一些探索,之前介紹的內(nèi)容都是在來阿里文娛前阿里文娛的一些工作,來阿里文娛的三個(gè)月在深度語義相關(guān)性方面做了一些探索的工作,給大家分享一下。
1. 字面匹配 V.S. 語義匹配
為什么要做這種深度語義計(jì)算?
因?yàn)閭鹘y(tǒng)的字面匹配或者說字面相關(guān)性,其實(shí)解決不了一些語義的問題。這里有兩個(gè)案例。
第一個(gè)案例用戶搜“如何騎車”其實(shí)是想找攻略的,圖中給出了傳統(tǒng)的方法的結(jié)果。字面匹配的結(jié)果并不是一個(gè)攻略,而是一個(gè)搞笑的視頻。
第二個(gè)案例用戶想要找的是“被熱油燙傷有什么處理方法”,這是一類如何做的Query,但是結(jié)果并不太理想,都是字面匹配,并不是用戶想要的,所以說需要做深度語義計(jì)算。主要是從三個(gè)層面完成,系統(tǒng)設(shè)計(jì)層面、邏輯架構(gòu)層面和模型的算法層面。
2. 相關(guān)性系統(tǒng)設(shè)計(jì)
首先看看相關(guān)性的系統(tǒng)設(shè)計(jì),本文結(jié)合業(yè)務(wù)需求做了新的系統(tǒng)設(shè)計(jì)。
老版相關(guān)性是用來提各種特征,LTR基于這種特征做一些多目標(biāo)的優(yōu)化。該方法存在問題,即其將體驗(yàn)類問題和分發(fā)類問題耦合在一起,使得LTR學(xué)習(xí)的并不是很好。因此,新版的相關(guān)性系統(tǒng)設(shè)計(jì)就和LTR做了明顯的功能上的劃分。新版相關(guān)性主要解體驗(yàn)類問題,LTR解分發(fā)的問題,這樣將體驗(yàn)問題和分發(fā)問題進(jìn)行解耦,這里并不是說LTR就不管體驗(yàn)類問題了,而是互為兜底。這樣做有兩點(diǎn)好處,第一點(diǎn)能夠提升整個(gè)搜索結(jié)果的秩序感,給用戶提供他們最想的內(nèi)容;第二點(diǎn)在秩序感的保證基礎(chǔ)之上,通過LTR可以增加用戶的粘性來引導(dǎo)用戶看的更多。
這里舉了個(gè)例子,就是對(duì)相關(guān)性進(jìn)行了增長(zhǎng)規(guī)范,即將其分成三或四檔。相關(guān)性主要就是在做這種分檔。
一檔:用戶意圖不滿足。比如Query“步步驚心,吳奇隆”這個(gè)DOC中說的步步驚心根本就不是這個(gè)電視機(jī)劇,所以不召回。
二檔:用戶部分意圖滿足。比如說滿足用戶的主意圖,但是不滿足次意圖,這種可以作為推薦或者相關(guān)的結(jié)果展示給用戶,
三檔:用戶的意圖完全滿足。這種是比較高相關(guān)性的一個(gè)結(jié)果。
3. 相關(guān)性邏輯結(jié)構(gòu)
接下來看新版的相關(guān)性的邏輯架構(gòu)。老版的邏輯架構(gòu)主要是抽特征,同時(shí)用一些規(guī)則去擬合這種分檔。新版相關(guān)性將原來的規(guī)則模型替換為三層的結(jié)構(gòu):前置的tuner層、模型層以及后置的tuner層。
前置的tuner層:主要包含一些黃金的規(guī)則,在訓(xùn)練集上準(zhǔn)確率超過95%的這種規(guī)則策略,當(dāng)滿足這些條件時(shí),不進(jìn)行模型處理,直接通過規(guī)則處理。
模型層:當(dāng)黃金規(guī)則處理不了時(shí),利用分檔的模型做兜底。分檔的模型含有兩個(gè)子模型為Recall模型和Refine模型,兩個(gè)模型的結(jié)構(gòu)一樣,但它們使用的特征以及樣本的選擇是不一樣的。分檔模型的好處在于將整個(gè)相關(guān)性分檔的功能進(jìn)行了解耦,一個(gè)是用來發(fā)現(xiàn)高相關(guān)性的優(yōu)質(zhì)DOC,另外一個(gè)是用來降低相關(guān)性的岔道和進(jìn)行過濾。這種語義特征是作為特征放到分檔模型中,而不是直接用深度模型。為什么不直接用深度模型呢?因?yàn)楣I(yè)界需要高度的可控和可解釋性,分檔模型還是用的這種傳統(tǒng)的GBDT模型。
后置的tuner層:該層對(duì)于因?yàn)闃颖緮?shù)據(jù)不均衡、核心特征缺少等原因沒有學(xué)出來的情況,會(huì)添加一些人工的兜底規(guī)則進(jìn)行補(bǔ)充。比如說會(huì)針對(duì)視頻內(nèi)容理解特征做了一些規(guī)則。該層中還全局調(diào)檔的一個(gè)Tuner,它的作用是基于全局的DOC匹配再做一些調(diào)整,消除下層的模型。模型輸出的這種檔位、它的Score和子特征輸出給LTR,進(jìn)行最終的基于分發(fā)的排序。
4. 深度語義相關(guān)性框架
下面跟大家聊一下這邊所開發(fā)的深度語義的相關(guān)性框架,也就是說對(duì)于BERT這些預(yù)訓(xùn)練模型是怎么在優(yōu)酷場(chǎng)景進(jìn)行落地的?參考了工業(yè)界常用的方法設(shè)計(jì)的這種三階段的這種語義框架。
第一個(gè)階段transfer:它主要用到通用領(lǐng)域的預(yù)訓(xùn)練的語言模型(比如說谷歌或哈工大訓(xùn)練出來BERT),然后用優(yōu)酷搜索日志對(duì)它進(jìn)行重新的一個(gè)pre-train這樣就得到了優(yōu)酷領(lǐng)域的語義模型,那么這個(gè)模型的目的是為了提升模型指標(biāo)的下限,它往往能夠提升base BERT的2%-3%的指標(biāo)?;趖ransfer階段之后,獲得了一個(gè)優(yōu)酷領(lǐng)域的語義模型。
第二階段Adapt:它主要是基于優(yōu)酷領(lǐng)域的語義模型以及多任務(wù)的數(shù)據(jù),訓(xùn)練出一系列的這種模型,比如說這里的Query分析叫QP、召回模型、相關(guān)性排序,它其實(shí)是基于同一個(gè)base模型去訓(xùn)練出來的。Adapt階段的作用是為了提升模型指標(biāo)的天花板也是上限。那么在模型最終離線的時(shí)候是可以這樣用,但是在線因?yàn)榭紤]到性能,還需要做最后一步蒸餾。
第三階段distill:本文用到的是多階段的知識(shí)蒸餾,它的目的是為了逼近模型指標(biāo)的天花板,除了使用文本數(shù)據(jù)之外,還使用各種上下文數(shù)據(jù)以及前面提到的知識(shí)數(shù)據(jù)。
5. 深度模型選型
深度模型選型這塊,其實(shí)大家都比較清楚,左圖是傳統(tǒng)的BERT的用法,它是一個(gè)交互型的,離線可以這樣使用,而且本文也是這使用的。但是在線,因?yàn)榭紤]到性能的壓力,往往都會(huì)選擇這種雙塔的結(jié)構(gòu),那么雙塔的結(jié)構(gòu),它和交互型的這種BERT相比,它雖然效率提升,但是它的指標(biāo)是存在著比較巨大的gap。
6. 非對(duì)稱雙塔模型(在線部署)
那么怎么消除這個(gè)gap?做了兩點(diǎn)工作,第一點(diǎn)在線部署時(shí)用一個(gè)非對(duì)稱的雙塔模型,比如說Doc端可以離線算好存起來。Query端用一個(gè)三層的小BERT,因?yàn)樗紤]到并發(fā)性。同時(shí)為了降低雙塔模型的指標(biāo)衰減,對(duì)于Doc側(cè),它其實(shí)保存的并不是一個(gè)Embedding,它是M組的Embedding,M組可以理解為從M個(gè)側(cè)面刻畫Doc的特征,這樣也是為了最大限度的去保留Doc側(cè)的一些豐富的信息。然后再離線側(cè),可以通過這個(gè)比較復(fù)雜的12層的BERT去跑它的多組的這種Embedding,然后在線側(cè)用Dii對(duì)Query用一個(gè)三層的小BERT的產(chǎn)生它的這個(gè)Embedding之后,在Ha3側(cè)也就是引擎?zhèn)龋赼ttention去算Query側(cè)的Embedding 和Doc側(cè)M個(gè)Embedding 之間的這種權(quán)重,之后做一個(gè)點(diǎn)乘得到最終的Score。這樣做可以說是既讓這個(gè)指標(biāo)衰減的不是那么厲害,同時(shí)又能夠讓在線的Query側(cè)的特征抽取能夠保證線上的并發(fā)效果,只這么做其實(shí)還是不夠的。因?yàn)檫@個(gè)Query側(cè)的模型換成小模型之后,它的指標(biāo)會(huì)進(jìn)一步衰減,為了減緩這種衰減,采用了一個(gè)多階段的蒸餾方案。
7. 多階段蒸餾方案
給大家介紹一下多階段的蒸餾方案。如圖有兩份數(shù)據(jù),一份數(shù)據(jù)為transfer set,它是一個(gè)5000w的無標(biāo)簽的數(shù)據(jù)及優(yōu)酷的點(diǎn)擊日志;第二份數(shù)據(jù)為target set,它是一些人工標(biāo)注的數(shù)據(jù)集。
① 打標(biāo):用交互型的BERT(指標(biāo)最好,但只能離線使用)作為teacher。在以上兩個(gè)數(shù)據(jù)上進(jìn)行打標(biāo),得到BERT soft label。
② 蒸餾:用無標(biāo)簽的數(shù)據(jù)蒸餾。并不是用BERT直接蒸餾目標(biāo)模型,而是用它去蒸餾對(duì)稱的雙塔BERT,也就是說Query側(cè)和Doc側(cè)都是12層的BERT。
③ 用target set 進(jìn)行finetune:獲得了中間模態(tài)的對(duì)稱雙塔BERT。
④ 固定權(quán)重和蒸餾:
固定權(quán)重:將對(duì)稱雙塔BERT的權(quán)重復(fù)制到非對(duì)稱雙塔BERT(目標(biāo)student),然后權(quán)重固定之后,
蒸餾:再一次用transfer set對(duì)student進(jìn)行蒸餾,該蒸餾包含如下幾步:
① 首先會(huì)有多種loss,它既包括了這種label的hard loss,也包括了這種soft的label的這種cross entropy loss,基于這個(gè)loss,其實(shí)因?yàn)檫@個(gè)loss是對(duì)最終預(yù)測(cè)層產(chǎn)生作用。
② 為了更加充分的去學(xué)習(xí)Query側(cè)的三層小BERT的效果,還會(huì)用到Embedding MSE loss,那它是怎么做的呢?就是用這種中間模態(tài)的boss,它會(huì)在這種數(shù)據(jù)集上進(jìn)行打標(biāo),打標(biāo)完了之后它保存的不是label,而是對(duì)于每個(gè)query它會(huì)產(chǎn)生出的一些Embedding,然后用這個(gè)Embedding同時(shí)去監(jiān)督非對(duì)稱的雙塔BERT就讓它學(xué)習(xí)的更加充分。
③ 這里有實(shí)踐中的一個(gè)細(xì)節(jié),因?yàn)榫€上有存儲(chǔ)的壓力,所以不可能把BERT base的768維向量進(jìn)行存儲(chǔ),肯定是要進(jìn)行降維,一般是用一個(gè)Dance Network進(jìn)行降維,但是這個(gè)Dance Networ,因?yàn)樗贐ERT的top之上,如果使用相同大小的學(xué)習(xí)率的話,它會(huì)學(xué)習(xí)的非常不充分,導(dǎo)致最后的指標(biāo)非常差,所以這個(gè)地方用到的Layer-wise的learning rate,也就是說讓降維的Dance Network的學(xué)習(xí)率要遠(yuǎn)遠(yuǎn)大于底層的BERT的學(xué)習(xí)率,這樣的話能夠使得降維產(chǎn)生的信息損失降得非常低,然后他的指標(biāo)能夠很好地逼近于teacher model。它的目的是通過這種多階段的逐步降低學(xué)生網(wǎng)絡(luò)和老師網(wǎng)絡(luò)之間的差異,而不是一步到位,這樣就能夠減少知識(shí)因?yàn)槟P徒Y(jié)構(gòu)的巨大差異而產(chǎn)生的蒸餾的損耗。這個(gè)效果也是比較顯著的,通過這種多階段蒸餾現(xiàn)在已經(jīng)能夠達(dá)到在兩個(gè)點(diǎn)以內(nèi)的指標(biāo)損失。
8. 融合知識(shí)的深度語義匹配
接下來介紹在模型層面上的一點(diǎn)優(yōu)化工作,為什么做融合知識(shí)的深度語義匹配?因?yàn)樵谝曨l垂直領(lǐng)域,頭部Query絕大多數(shù)都是要融合知識(shí)和語義才能很好地解決,因?yàn)镈oc側(cè)如果是結(jié)構(gòu)的話,會(huì)有豐富的結(jié)構(gòu)化字段,比如說這個(gè)電影,它的演員是誰,導(dǎo)演是誰,哪個(gè)的年代。這些結(jié)構(gòu)化字段非常豐富。但是,用戶側(cè)的Query是口語化或打字,不會(huì)有完整的輸入。比如用戶搜“二龍湖浩哥”,用戶是想找二龍湖愛情故事和張浩演的這樣一個(gè)節(jié)目,單純的用語義匹配或單純的用結(jié)構(gòu)化的查詢都難以很好地解決,所以必須要融合知識(shí)以及語義去解決。但是現(xiàn)有的一些方法存在不足,比如說它會(huì)對(duì)KG的結(jié)構(gòu)化的信息用的并不是很充分,而且它不支持這種多個(gè)KG的熱插拔。因?yàn)镵G的類型比較多,有通用的KG、領(lǐng)域KG以及百科KG,所以KG的結(jié)構(gòu)化信息和文本信息之間存在異構(gòu)的鴻溝。本文做的工作是為了融合KG的結(jié)構(gòu)語義特征,也就是說實(shí)體的領(lǐng)域子圖的結(jié)構(gòu)特征做語義匹配。圖中案例是用戶搜“劉前程 演 的 獵愛”,然后通過對(duì)KG進(jìn)行一個(gè)查詢找到它的子圖,然后把它子圖的結(jié)構(gòu)化信息編碼成BERT通用的序列化的輸入,然后再在KG層和文本層之間做一些attention的監(jiān)督操作,使得最終的匹配效果能夠達(dá)到理想。
9. 效果案例
最后是案例分享,這些案例主要是基于老版和新版的對(duì)比,它起到了兩點(diǎn)的效果,第一點(diǎn)就是使得整個(gè)搜索秩序感得到了極大的提升,讓一些雜亂的內(nèi)容經(jīng)過語義過濾以及語義相關(guān)但字面不相關(guān)的內(nèi)容進(jìn)行召回,所以說第二點(diǎn)就是語義召回能力的提升。比如說用戶搜索“阿拉斯加帝王蟹”老版相關(guān)性里面會(huì)有一些不相關(guān)的內(nèi)容,但是經(jīng)過新版相關(guān)性進(jìn)行過濾,這些不相關(guān)結(jié)果都已經(jīng)被干掉了。
期待今后的工作中能夠做出更多的成果,能夠跟大家進(jìn)行分享。
今天的分享就到這里,謝謝大家。
聯(lián)系客服