阿里文娛搜索算法實踐與思考
掃描二維碼
隨時隨地手機看文章
作者:若仁,來自:DataFunTalk
導(dǎo)讀:視頻搜索是涉及信息檢索,自然語言處理 ( NLP ),機器學(xué)習(xí)以及計算機視覺 ( CV ) 等多領(lǐng)域的綜合應(yīng)用場景,隨著深度學(xué)習(xí)在這些領(lǐng)域的長足進展以及用戶對視頻生產(chǎn)和消費的廣泛需求,視頻搜索技術(shù)的發(fā)展在學(xué)術(shù)和工業(yè)界都取得了飛速的發(fā)展,本文將以優(yōu)酷為例,分享視頻搜索的算法實踐,首先介紹優(yōu)酷搜索的相關(guān)業(yè)務(wù)和搜索算法體系,從搜索相關(guān)性和排序算法的特點和挑戰(zhàn)到技術(shù)實踐方案的落地,最后會深入介紹優(yōu)酷在多模態(tài)視頻搜索上的探索和實踐。
本次分享主要包括:
-
視頻搜索簡介
-
基礎(chǔ)相關(guān)性和排序模型
-
多模態(tài)視頻搜索實踐
▌視頻搜索簡介
1. 業(yè)務(wù)背景
優(yōu)酷搜索為整個阿里大文娛提供了一站式搜索服務(wù),范圍包括優(yōu)酷所有搜索入口,如 APP 和 OTT 等,還包括大麥和淘票票。搜索的內(nèi)容包括有版權(quán)的影、劇、綜、漫影視庫,用戶上傳的 UPGC 視頻內(nèi)容,影人庫,演出,小說資訊等,這些都是文娛搜索業(yè)務(wù)需求,優(yōu)酷搜索為其提供統(tǒng)一的搜索服務(wù)。
2. 評估指標(biāo)
搜索排序業(yè)務(wù)多目標(biāo)的評估指標(biāo),可以拆分成4個大類。搜索的用戶價值主要體現(xiàn)在2個維度:
第一個維度為工具屬性,指的是用戶將搜索服務(wù)作為一個搜索工具,目標(biāo)是找準(zhǔn)找全。這是用戶價值的基礎(chǔ),也是搜索的基礎(chǔ)屬性。從這個維度去評估搜索效果的好壞,主要從體驗指標(biāo)去衡量:跳出率、相關(guān)性、時效性、多樣性等通用指標(biāo)。視頻搜索可播性是指由于受版權(quán)影響,有些視頻在平臺是不能播放的,能給用戶提供更大價值的是那些可播的視頻。此外,會用人工評測的方式對搜索的效果做橫向縱向的對比,來衡量搜索的滿意度。
第二個維度為分發(fā)屬性,能讓用戶消費更多的內(nèi)容,主要是視頻觀看的 VV 和消費時長,這些指標(biāo)對搜索是非常重要的,是用戶滿意度的直接體現(xiàn)。搜索能夠支持平臺的宣發(fā)價值和廣告會員的商業(yè)化價值,前提是服務(wù)好用戶,用戶體驗好。
3. 搜索系統(tǒng)框架
在2017年初步完成了搜索引擎相關(guān)中間件服務(wù)的升級,實現(xiàn)和集團搜索技術(shù)的戰(zhàn)略拉通。從一個 query 搜索過程來理解各個模塊的功能,比如說用戶搜"大明風(fēng)華",用戶在手機上發(fā)起這一次請求,接入搜索網(wǎng)關(guān)之后,search planer 把這個請求發(fā)送到 QP 服務(wù),即 query 理解的一個服務(wù),對 query 做意圖判定,成分分析,把這些信息傳遞到中間的引擎模塊去做相應(yīng)的檢索,如粗排和精排的邏輯,將結(jié)果返回回來,再到一個 RankService 排序服務(wù)。
整個框架中間層是引擎,下面是離線的索引服務(wù),左邊是機器學(xué)習(xí)平臺,包括特征的流式計算,模型的在線學(xué)習(xí),后面主要介紹排序服務(wù)模塊。
4. 搜索算法框架
在引擎端,相關(guān)性主要是在 searcher 的精排下實現(xiàn)的,排序模型的介紹主要是預(yù)測模型這一層。整個排序服務(wù)包括預(yù)測模型、模型融合、業(yè)務(wù)策略,整體上保證了搜索體驗和效率。
通過這里的介紹希望大家對視頻搜索技術(shù)有一個全貌的理解,方便大家對后面內(nèi)容的理解。
-
QP 服務(wù)在排序中的作用:首先在意圖層面,會把用戶意圖細(xì)粒度的切分出來,對 query 的各個意圖做成分分析,比如說 query 是"鄉(xiāng)村愛情趙四跳舞",經(jīng)過 QP 服務(wù)的成分分析后,判斷鄉(xiāng)村愛情屬于一個節(jié)目名,趙四屬于角色,跳舞是一個動作。
-
意圖識別后是排序和多媒體相關(guān)性,這兩個內(nèi)容后面再詳細(xì)介紹。
-
內(nèi)容召回:主要是多媒體內(nèi)容的理解,為什么要做多媒體內(nèi)容理解,因為視頻內(nèi)容傳遞的信息非常豐富,不可能用文本標(biāo)題全面表述,用戶在搜索時表達(dá)需求差異非常大,存在語義鴻溝,各個業(yè)務(wù)的搜索都存在語義鴻溝,視頻搜索中的鴻溝更大,所以不能把視頻當(dāng)成黑盒直接用標(biāo)題概述。我們的問題是從什么維度去理解視頻?得益于深度學(xué)習(xí)在各個領(lǐng)域的全面發(fā)展,現(xiàn)在有能力做相關(guān)技術(shù),包括 OCR/ASR,對話的理解,通過 CV 的技術(shù)對人物、動作、物體的元素級的結(jié)構(gòu)識別,視頻的指紋,實體關(guān)聯(lián),比如某個視頻是屬于哪個 ip ( 電視劇/電影等 )?;谶@些相關(guān)技術(shù),不僅僅只是做標(biāo)題的文本匹配,與相關(guān)性匹配密切的關(guān)聯(lián)起來,能更好的幫助理解視頻和視頻間的關(guān)聯(lián)關(guān)系。
-
數(shù)據(jù)層:有實體的關(guān)系數(shù)據(jù),能夠通過技術(shù)挖掘這種關(guān)系;內(nèi)容組織,通過圖譜聚合、時效聚合、內(nèi)容聚合,把內(nèi)容聚合成更方便用戶瀏覽的聚合形態(tài)。
▌相關(guān)性和排序內(nèi)容
1. 搜索相關(guān)性
這部分定義到一些具體的 query 和 doc 上,理解能夠更全面一些。
-
第一類 query,"佟麗婭主演的電視劇遠(yuǎn)大前程"和 doc 在文本上沒有直接關(guān)系。只有通過內(nèi)容理解的方式才能把這個 query 和 doc 關(guān)聯(lián)上。
-
第二類 query,"法不容情國語"和對應(yīng)的 doc 沒有關(guān)系,要結(jié)合 NER 和內(nèi)容理解的方式才能更準(zhǔn)確,對 doc 的意圖理解更好。
-
第三類是語義層面的匹配,相關(guān)性這一塊是需要多個層次的匹配的。
下面分為4個層次詳細(xì)分析:
-
基礎(chǔ)特征。比較通用的是 term weight 和匹配矩陣,通過基礎(chǔ)特征能夠把文本匹配做的比較好。
-
知識特征。對于知識特征的匹配需要其他輔助信息的補充才能做好的,首先通過內(nèi)容理解的方式把 UPGC 視頻中的一些元數(shù)據(jù)補充上去,利用 NER 等技術(shù)把視頻的標(biāo)題等成分識別準(zhǔn)確。在這些基礎(chǔ)之上,我們做 query 和 doc 之間的結(jié)構(gòu)化的知識匹配,這塊體驗?zāi)軌蜃龅母谩?/span>
-
后驗特征。包括基于 query 點擊的應(yīng)用判斷,知識結(jié)合做意圖判斷,意圖和 doc 的匹配,Query_Anchor 是從 doc 維度統(tǒng)計的,哪些 query 是和 doc 是有關(guān)系的,能做一些文本的補充和意圖補充,這種補充不是純粹的統(tǒng)計,而是基于瀏覽模型,比如 UBM 和 DBN 等一些點擊瀏覽的模型,去消除文本、吸引度的偏差,提高滿意度,后面在相關(guān)性特征還會詳細(xì)的去講一下。
-
語義。主要解決語義匹配,視頻搜索存在很大的語義鴻溝,DSSM 表征形的 sentence 級別的語義向量去做匹配,這塊是會在相關(guān)性層面去做。BERT 這一塊是做知識蒸餾的方式,這塊計算太復(fù)雜了,在排序?qū)幼龅?。SMT 不是在相關(guān)性和排序?qū)用嫒ナ褂玫?,是語義的擴展和 query 的改寫,能豐富語義內(nèi)容的召回。點擊行為也是做一些語義層面的改寫擴展。
結(jié)合這4個層次的匹配,是能夠把搜索基礎(chǔ)相關(guān)性的匹配做到一個比較好的狀態(tài)。
2. 相關(guān)性數(shù)據(jù)集構(gòu)建和特征體系
相關(guān)數(shù)據(jù)集的構(gòu)建流程,為了衡量相關(guān)性的效果,需要標(biāo)注數(shù)據(jù)集。首先要有一個標(biāo)注規(guī)范,主要結(jié)合實際業(yè)務(wù)和用戶需求來設(shè)定,并沒有通用的標(biāo)準(zhǔn)。數(shù)據(jù)集我們標(biāo)注了2、3年,有幾十萬的數(shù)據(jù),通過外包同學(xué)去標(biāo)注,不僅標(biāo)注相關(guān)性的等級,還會對同等級的樣本做偏序級的標(biāo)注。我們對標(biāo)注的質(zhì)量和效率比較關(guān)注,左邊的方式是采用 active learning 的思想去提升標(biāo)注效率和質(zhì)量,降低標(biāo)注的成本。數(shù)據(jù)集也分為驗證集和訓(xùn)練集,驗證集主要針對特定問題去構(gòu)建,具有一定的針對性,對不同驗證集解決完問題之后,不一定對線上體驗有正向的效果,因為它會帶來對其他維度變差的情況,所以我們需要訓(xùn)練集和回歸集的驗證。
3. 語義匹配
我們在2017年上線了一個 sentence 級別的語義匹配模型,模型結(jié)構(gòu)比較通用簡單,我們嘗試迭代的過程比較多,具體參數(shù)是和語料相關(guān)的,不同業(yè)務(wù)參數(shù)差別比較大。需要特別指出,語料樣本的選擇,對語義模型特別關(guān)鍵。在日志處理過程中,沒有點擊的日志不能當(dāng)作語義的負(fù)樣本,垂直搜索引擎語義類 query 相對還是比較少的,需要借助外部的預(yù)料做訓(xùn)練,這和我們集團的一些搜索比如神馬搜索,搜索日志對語義搜索效果的提升是非常大的。
表征形的語義模型,有一個好處是,doc 端的特征是可以離線計算的,可以在相關(guān)性層面快速高效的去做語義上的計算,確?;镜恼Z義內(nèi)容能夠被召回,能夠排到前面去,能夠送到上層的重排序服務(wù)上,ranking service 上還有比較多的語義內(nèi)容,能夠做一些精細(xì)化的語義計算。
4. 排序特征體系
排序特征體系,包括各個業(yè)務(wù)領(lǐng)域類的,基礎(chǔ)匹配類的,query 統(tǒng)計類的。有一些是視頻平臺特有的,比如說實時的動態(tài)的處于宣發(fā)周期的一些特征,對控制節(jié)目的排序,可播性,宣發(fā)的效果是特別有幫助的;另外,內(nèi)容質(zhì)量的評估對視頻平臺是非常重要的,優(yōu)酷的人工智能部有一個非常給力的 CV 團隊,提供基于視頻這種無參考質(zhì)量的評價框架,能夠?qū)Φ蛯哟蔚囊恍┨卣?,比如對比度,亮度,中等的模糊塊效應(yīng)的失真,并綜合各種畫面質(zhì)量去解決 UPGC 視頻失真,模糊質(zhì)量評價的難點,能夠從視覺層面去理解視頻,還有封面圖/標(biāo)題的質(zhì)量去評判,可以很好的區(qū)分好視頻和差視頻。
在用戶層面,用戶行為的表征在很多寬泛搜索里都會應(yīng)用,比如用戶在頻道頁的搜索排序,OGC 節(jié)目寬泛意圖的檢索場面,用的會比較多。因為在很多通用的搜索中,這種寬泛意圖的比率比較大。
5. 表征學(xué)習(xí)
再介紹一個我們17、18年和達(dá)摩院一起把表征學(xué)習(xí)在視頻搜索落地的方案。
表征學(xué)習(xí)的模型,第一層是特征預(yù)編碼的編碼層,用視頻元素、搜索意圖、用戶,這3類特征去分析。在用戶維度,又劃分了用戶 id 和用戶觀看視頻的序列;在搜索意圖維度,有搜索的 id,搜索詞的視頻表達(dá)和文本編碼的表達(dá)。在視頻層,包括視頻統(tǒng)計特征、視頻播放點擊量、視頻文本編碼、視頻在整個 session 期間和其他視頻的關(guān)系數(shù)據(jù),來構(gòu)建這些不同的特征域。
在第2層和第3層,這2個不同特征域之間的網(wǎng)絡(luò)結(jié)構(gòu)是相互獨立的,通過稀疏的編碼優(yōu)化能夠全鏈接到第1層。可以對高維特征進行降維,把高維特征信息投影到低維的向量空間中。第4層把不同域的表征信息,內(nèi)部的編碼,綜合到一起,形成一個綜合的多模態(tài)的向量融合,再經(jīng)過上面的2層的全鏈接實現(xiàn)搜索用戶意圖和搜索視頻維度的排序。
整個模型在性能優(yōu)化后再計算層面是沒有什么性能問題的,上線后分發(fā)效率提高明顯,分發(fā) ts 觀看時長增加。
我們在上線后同樣看到了一些問題:這種單一目標(biāo)的排序模型,它的優(yōu)化目標(biāo)是 ts,就會忽略一些基本體驗。比如,相關(guān)性約束對整個體驗來說不一定在提高用戶體驗,可能在頭部的一些效果上,我們行為比較多的一些搜索 query 上體驗是提升了,但是中長尾的一些效果上其實是比較難以保證的,所以后面我們也是做了不同的嘗試,把表征學(xué)習(xí)和其它的一些維度的排序效果相融合。
6. 多目標(biāo) Deep LTR
19年在排序方面的一些實踐,多目標(biāo)的深度排序?qū)W習(xí)。這里的多目標(biāo)包括:相關(guān)性目標(biāo),rank 的 loss,entity loss。為什么有這些目標(biāo)呢?我們其實是做一個整體的目標(biāo)學(xué)習(xí),我們要確保涵蓋相關(guān)性技術(shù)體驗的 loss,分發(fā)效率的排序 loss,實體匹配上的 loss。相對于表征學(xué)習(xí)的單一目標(biāo),我們這里要實現(xiàn)一個端對端的多目標(biāo)的。
樣本標(biāo)注方面要綜合時長和播放完成比,如果我們按照存點擊數(shù)據(jù),很多情況是和 ts 目標(biāo)不一致的。如果只考慮視頻時長,那么長視頻就會被放在前面,如果只考慮播放完成比,那么短視頻就會被放在前面,因為短視頻就幾十秒,很快就能播放完,長視頻幾十分鐘,有的幾個小時,不容易看完。所以我們會綜合時長和播放完成比,對時長做分段的處理,在相同時長下作橫向比較,形成一個不同時長視頻的 label 分級,引導(dǎo)目標(biāo)去學(xué)習(xí)。
這里正負(fù)樣本采樣比例1:8,是通過我們不斷迭代調(diào)整的結(jié)果,并沒有一個通用的方法。
▌多模態(tài)視頻搜索
1. 多模態(tài)視頻搜索
多模態(tài)搜索就是將語音,文字,圖像等各種模態(tài)集中起來一起搜索。學(xué)術(shù)上也有很多和多模態(tài)搜索關(guān)聯(lián)的,比如實例搜索,給定一個實例圖像,搜索相關(guān)的視頻片斷,將視頻轉(zhuǎn)成文本,VTT 任務(wù);AVS 視頻搜索,輸入一個文本,在視頻中搜索相關(guān)的視頻。這和我們今天的主題多模態(tài)視頻搜索是非常契合的,學(xué)術(shù)界的方法也是比較多的,如把 query 和視頻都映射到中間的一個維度,一個概念空間里面,再做相似度的匹配排序;最近也有一種思想是 video bert,采用 transformer 的思想把 video 通過端對端的解決方法,基于多模態(tài)視頻搜索技術(shù)可以有很多新的搜索體驗,下面講一些優(yōu)酷的實踐。
剛剛講的學(xué)術(shù)界方法對短小視頻搜索效果是比較好的,但對長視頻很難做到準(zhǔn)確,視頻很長,覆蓋的范圍很廣,用這種表征的方式不容易覆蓋那么多豐富的內(nèi)容的,所以對工業(yè)界的視頻搜索,不是端對端的解決方案,現(xiàn)在的做法是將視頻模態(tài)信息通過降維的方式,都轉(zhuǎn)換成文本的模態(tài),對視頻內(nèi)容做細(xì)粒度的內(nèi)容拆解,將圖像,動作,人物,聲音這些背景信息,通過 CV 檢測方法識別出來,去做標(biāo)簽化,去完成降維。另外一種降維的方式是通過 OCR 和 ASR,光學(xué)文本的識別和語音識別的技術(shù)將視頻中的對話信息轉(zhuǎn)化成文字,關(guān)鍵字和主題的抽取,再去形成事件的分析和概念主題的理解。
一個完整的視頻可以分出不同的片段,然后形成 shot,關(guān)鍵幀,關(guān)鍵元素,通過對關(guān)鍵元素的分析,可以把動作場景人物做一些識別。舉個例子,通過人臉識別可以識別出這個片段中出現(xiàn)了哪些人,"周六夜現(xiàn)場"能檢測出岳云鵬,陳赫;"曉說"能檢測出高曉松,通過 OCR/ASR 可以把視頻中的對話結(jié)構(gòu)化出來,然后做一些關(guān)鍵詞的抽取。
接下來將作更深次的討論,如果不做內(nèi)容結(jié)構(gòu)的分析,根本不知道里面在說什么。所以要對文本進行分析理解,在分析理解時,會有一個難點:這么多文字,需要一個完整的實體知識庫,視頻內(nèi)容涉及的領(lǐng)域非常廣,包含全行業(yè)的豐富的實體。輔助我們抽取核心內(nèi)容的元素,比如"伯特格爾"是誰,是個人物,"塞夫勒","麥森"這些地名需要理解,以及實體鏈接和實體之間的關(guān)系的推理。這個視頻是介紹歐洲陶瓷發(fā)展歷史的,歐洲陶瓷是從哪里開始的,是從"塞夫勒"開始,是由"伯特格爾"這個煉金師發(fā)現(xiàn)出來的,很多對話內(nèi)容是通過主體引用,要理解指代的實體,上下文引用的主體是需要識別出來的;另外一個就是實體之間的關(guān)系,比如"塞夫勒"、"麥森"是歐洲的城市,和中國,日本是什么關(guān)系,這種實體之間的關(guān)系是需要有的,否則對講的什么事情是很難理解的,需要知識圖譜輔助。在實體知識庫的支撐下,候選的關(guān)鍵字通過分類模型得到關(guān)鍵字分級,分成核心關(guān)鍵詞,相關(guān)關(guān)鍵詞,提及的關(guān)鍵詞,分完級之后,在相關(guān)性匹配上做的更有針對性。
2. 視頻元素級知識圖譜
前面是視頻理解的方式,如李健 -《風(fēng)吹麥浪》( 春晚歌曲 ),但是他是和孫儷一起唱的,標(biāo)題里沒有孫儷,用戶經(jīng)常搜索的內(nèi)容是"孫儷李健合唱的風(fēng)吹麥浪", 我們需要通過人物識別的方式把視頻中的關(guān)鍵人物識別出來。在視頻搜索中,需要多模態(tài)信息的輔助的,才能提高搜索準(zhǔn)確率。左邊是"甄繯傳",通過視頻元素級識別,可以把關(guān)鍵人物識別出來,并且可以把人物和角色,人物和 ip 之間的關(guān)系獲取出來,檢索時可以將具體人物出現(xiàn)的關(guān)鍵位置檢索出來,以及臺詞,歌詞,內(nèi)容關(guān)鍵的一個場景的起止時間,如果用戶在搜索"甄子丹的打斗視頻",我們有相應(yīng)的內(nèi)容視頻的聚合數(shù)據(jù),用戶可以搜到開始打斗的起始時間的。
3. 效果案例
再舉幾個內(nèi)容關(guān)鍵詞在多模態(tài)視頻搜索中的應(yīng)用,搜索"軍情解碼張召忠",搜索結(jié)果中標(biāo)藍(lán)的這些是通過內(nèi)容理解,人臉識別,多模態(tài)搜索召回的。搜索"軍武次位面虎式坦克",通過對話理解提取出來的關(guān)鍵詞,搜索"曉說以色列"也是類似的。這部分在搜索所占的比率不是很大,但是觸發(fā)的效果還是非常明顯的,效果提升100%。
多模態(tài)視頻搜索的應(yīng)用場景是非常廣泛,目前還沒有做到故事級別的理解,這塊是需要繼續(xù)努力的方向。
優(yōu)酷人工智能平臺部搜索相關(guān)性和排序算法負(fù)責(zé)人,負(fù)責(zé)搜索相關(guān)性等基礎(chǔ)體驗優(yōu)化和排序分發(fā)效率的提升。
特別推薦一個分享架構(gòu)+算法的優(yōu)質(zhì)內(nèi)容,還沒關(guān)注的小伙伴,可以長按關(guān)注一下:
![]()
長按訂閱更多精彩▼
![]()
如有收獲,點個在看,誠摯感謝
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!