萬字長文讀懂微信“看一看”內(nèi)容理解與推薦
編輯導(dǎo)讀:用戶通過微信看一看可以獲取到更豐富的資訊,有利于打破信息繭房。那么,微信看一看是怎么做到的呢?本文將從內(nèi)容理解與推薦角度出發(fā),進(jìn)行深入的分析,希望對你有幫助。
一、內(nèi)容理解與推薦
相信對于不少人而言微信已經(jīng)成為獲取資訊的主要場景。與此同時(shí),由于微信用戶群體的龐大,也吸引了大量的內(nèi)容生產(chǎn)者在微信公眾平臺創(chuàng)造內(nèi)容,以獲取用戶關(guān)注、點(diǎn)贊、收藏等。微信內(nèi)的內(nèi)容推薦產(chǎn)品:看一看應(yīng)運(yùn)而生。
結(jié)合微信用戶的內(nèi)容消費(fèi)需求,以業(yè)務(wù)目標(biāo)為導(dǎo)向,我們的推薦系統(tǒng)從基于屬性召回、到協(xié)同&社交召回、再到深度模型召回進(jìn)行了演進(jìn),深度模型涵蓋了序列模型、雙塔模型、混合模型、圖模型,最終形成了多種召回并列、多路模型共同作用的看一看內(nèi)容召回系統(tǒng)。
如果把推薦系統(tǒng)中工程服務(wù)比作骨骼,那么推薦模型可以比作肌肉,還需要內(nèi)容理解作為血液,縱向貫穿整個(gè)推薦系統(tǒng),從內(nèi)容庫、到召回、再到排序和畫像,源源不斷的提升系統(tǒng)的推薦精度,本文將著重介紹看一看內(nèi)容理解平臺及應(yīng)用。
看一看接入了非常多合作方的數(shù)據(jù)作為內(nèi)容源。由于接入數(shù)據(jù)源較多,各家數(shù)據(jù)從內(nèi)容、質(zhì)量、品類等差異性比較大??匆豢雌脚_方會對數(shù)據(jù)做“歸一化”操作,然后應(yīng)用于推薦系統(tǒng)線上部分。
內(nèi)容理解定義:對接各種外部圖文等內(nèi)容,對接入內(nèi)容做業(yè)務(wù)級內(nèi)容多維基礎(chǔ)理解,同時(shí)進(jìn)行外部標(biāo)簽與自有標(biāo)簽體系對齊,完成應(yīng)用級內(nèi)容打標(biāo)。
反饋至下游應(yīng)用方:用戶需求系統(tǒng),召回策略,召回模型,排序/混排等使用;同時(shí),在業(yè)務(wù)數(shù)據(jù)滾動(dòng)與迭代中修正數(shù)據(jù)刻畫精度與效果,逐步貼合與提升業(yè)務(wù)線效果。
我們將內(nèi)容畫像定義為兩個(gè)大維度:通過內(nèi)容本身來理解內(nèi)容,通過行為反饋來理解內(nèi)容。前者主要針對內(nèi)容抽取靜態(tài)屬性標(biāo)簽。后者,通過行為積累的后驗(yàn)數(shù)據(jù)、統(tǒng)計(jì)、或模型預(yù)估內(nèi)容的知識、傾向性、投放目標(biāo)以及抽象表達(dá)。
內(nèi)容畫像定義
內(nèi)容理解主要包括文本理解、多媒體理解、內(nèi)容傾向性、投放目標(biāo)預(yù)估,主要應(yīng)用在內(nèi)容試探效率提升,推薦分發(fā)模型的特征泛化,多場景的內(nèi)容庫構(gòu)建,推薦相關(guān)性召回和語義排序以及封面圖優(yōu)選創(chuàng)意,旨在提升精選、在看、看一看+核心業(yè)務(wù)指標(biāo)。同時(shí),我們在工程同學(xué)的大力支持下也將內(nèi)容理解技術(shù)服務(wù)化/工具化,一方面支持業(yè)務(wù)快速擴(kuò)展,另一方面對外部門提供內(nèi)容理解支持。
二、文本內(nèi)容理解
業(yè)務(wù)中有大量的文本信息,包括圖文標(biāo)題和正文,視頻標(biāo)題,ocr,評論等數(shù)據(jù),需要對這些文本信息進(jìn)行歸一化,除了抽取分類、tag、entity,針對外部標(biāo)簽,我們還會做標(biāo)簽映射,面對畫像中大量近似標(biāo)簽問題,我們也做了tag聚合/topic,同時(shí)我們還通過知識譜圖的推理能力,加強(qiáng)對內(nèi)容的理解深度和廣度。
2.1 文本分類
文本分類是自然語言處理領(lǐng)域最活躍的研究方向之一,目前文本分類在工業(yè)界的應(yīng)用場景非常普遍,文章的分類、評論信息的情感分類等均可輔助推薦系統(tǒng),文本分類在推薦中相比標(biāo)簽與Topic具有較高的準(zhǔn)召率與解釋性,對于用戶興趣具有極大的區(qū)分度,并且作為內(nèi)容畫像中極具代表性的特征,往往是產(chǎn)品策略與自然推薦模型的重要決策依賴。
目前已支持50+維一級主類目以及300+維二級子類目。
2.1.1 LSTM
在自然語言處理領(lǐng)域中,文本分類任務(wù)相較于文本抽取和摘要等任務(wù)更容易獲得大量標(biāo)注數(shù)據(jù),因此在文本分類領(lǐng)域中深度學(xué)習(xí)相較于傳統(tǒng)方法更容易獲得比較好的效果。
前期我們采用了自然語言處理中常用的LSTM算法進(jìn)行了準(zhǔn)召率的摸底試驗(yàn)。但LSTM具有訓(xùn)練、預(yù)測環(huán)節(jié)無法并行等缺點(diǎn),伴隨著推薦內(nèi)容的體量增大,限制了迭代的效率。
2.1.2 TextCNN
與LSTM相比,TextCNN使用了卷積 + 最大池化這兩個(gè)在圖像領(lǐng)域非常成功的組合,以訓(xùn)練速度快,效果好等優(yōu)點(diǎn)一段時(shí)間內(nèi)在工業(yè)界具有廣泛的應(yīng)用。
其中每個(gè)卷積核在整個(gè)句子長度上滑動(dòng),得到n個(gè)激活值,然后最大池化層在每一個(gè)卷積核輸出的特征值列向量取最大值來供后級分類器作為分類的依據(jù)。但同時(shí)池化層也丟失了結(jié)構(gòu)信息,因此很難去發(fā)現(xiàn)文本中的轉(zhuǎn)折關(guān)系等復(fù)雜模式。
2.1.3?fasttext
為解決LSTM模型優(yōu)化慢的問題,我們采用了實(shí)現(xiàn)較快且效率較高的淺層模型fasttext。它的優(yōu)點(diǎn)也非常明顯,在文本分類任務(wù)中,fastText往往能取得和深度網(wǎng)絡(luò)相媲美的精度,卻在訓(xùn)練時(shí)間上比深度網(wǎng)絡(luò)快許多數(shù)量級。
其中x1,x2,…,xN?1,xNx1,x2,…,xN?1,xN表示一個(gè)文本中的n-gram向量,每個(gè)特征是詞向量的平均值。與cbow模型相似,此處用全部的n-gram去預(yù)測指定類別。
2.1.4?BERT
BERT在多項(xiàng)NLP任務(wù)中創(chuàng)下了優(yōu)異的成績,因此我們將文本分類算法優(yōu)化至BERT finetune模型里,解決通用文本表示訓(xùn)練成本高等問題,在PreTrain Model(BERT-Base, Chinese)的基礎(chǔ)上,通過推薦的特性數(shù)據(jù)進(jìn)行finetune,得到基于BERT的finetune模型。
2.1.5?ensemble model
在已有的上述模型基礎(chǔ)之上,我們對各已有模型以及合作團(tuán)隊(duì)的模型,進(jìn)行了ensemble model優(yōu)化,并對原始內(nèi)容輸入進(jìn)行了詞擴(kuò)展補(bǔ)全等內(nèi)容擴(kuò)充特征工程,更近一步的增強(qiáng)了模型的魯棒性,并針對不同場景的特性進(jìn)行組合。
2.2 推薦文本標(biāo)簽
在推薦中,標(biāo)簽被定義為能夠代表文章語義的最重要的關(guān)鍵詞,并且適合用于用戶需求和item profile的匹配項(xiàng),相比于分類和topic,是更細(xì)粒度的語義。標(biāo)簽可以認(rèn)為是推薦系統(tǒng)的“血液”,存在于推薦系統(tǒng)各個(gè)環(huán)節(jié),內(nèi)容畫像維度、用戶需求維度、召回模型特征、排序模型特征、多樣性打散等等。跟隨業(yè)務(wù)的快速發(fā)展,我們也從早期簡單的無監(jiān)督算法過渡到有監(jiān)督,最后到深度模型。
2.2.1?TFIDF
前期為了快速支持業(yè)務(wù),我們使用無監(jiān)督投入產(chǎn)出比很高的方式,計(jì)算文檔中每個(gè)token的TFIDF值,然后取top作為文檔的tag。
其中ni,j表示tokeni在文檔j中出現(xiàn)的個(gè)數(shù),|D|表示語料中文章個(gè)數(shù),表示包含tokeni的文檔個(gè)數(shù)。某一特定文件內(nèi)的高詞語頻率,以及該詞語在整個(gè)文件集合中的低文件頻率,可以產(chǎn)生出高權(quán)重的tf-idf。因此,tf-idf傾向于過濾掉常見的詞語,保留重要的詞語。TFIDF優(yōu)點(diǎn)是基于統(tǒng)計(jì)方式,易于實(shí)現(xiàn),缺點(diǎn)是未考慮詞與詞、詞和文檔之間的關(guān)系。
2.2.2?基于doc和tag語義排序
為了解決TFIDF存在的問題,考慮文檔和token之間的關(guān)系,我們使用token與文章的LDA語義相關(guān)性排序,從而篩選出有意義的、滿足文章主題信息的Tag,提高Tag的準(zhǔn)確率。
主要做法是用已有的topicModel inference 文章的topic分布和候選token的topic分布,然后計(jì)算文章topic分布和token topic分布的cos相似度,選取top token作為tag。
后來將LDA升級到word2vec embeddding再到doc2vedc,效果上有提升。但該類方法可以考慮到文檔和token之間的相關(guān)性,但是還是未考慮token之間的相關(guān)性,仍然是無監(jiān)督方法,優(yōu)化空間小且很多badcase不可控。
2.2.3?TextRank
TextRank由PageRank演變而來。PageRank用于Google的網(wǎng)頁排名,通過互聯(lián)網(wǎng)中的超鏈接關(guān)系來確定一個(gè)網(wǎng)頁的排名,其公式是通過一種有向圖和投票的思想來設(shè)計(jì)的,如下。
直觀來理解就是說網(wǎng)頁Vi的rank值完全取決于指向它的網(wǎng)頁,這些網(wǎng)頁的數(shù)量越多,Vi的rank值越大,這些網(wǎng)頁所指向的別的網(wǎng)頁的數(shù)量越多,就代表Vi對于它們而言重要程度越低,則Vi的rank值就越小。
對于文章中的關(guān)鍵詞提取也是類似的。我們將每個(gè)詞語看成是網(wǎng)頁,然后預(yù)先設(shè)置一個(gè)大小為m的窗口,從頭遍歷這篇文章,在同一個(gè)窗口中的任意兩個(gè)詞之間都連一條邊,通常情況下,這里我們使用無向無權(quán)邊(textrank的作者通過實(shí)驗(yàn)表明無向圖的效果較好)。
畫出圖過后,我們對每個(gè)詞Vi賦予一個(gè)初值S0(Vi),然后按照公式進(jìn)行迭代計(jì)算直至收斂即可,最終我們選擇rank值的topN作為我們的Tag。
相比于TFIDF,TextRank考慮了詞與詞、詞與文章之間的相關(guān)性,但是TextRank沒有利用整個(gè)語料的信息,不適合短文本抽取,且計(jì)算復(fù)雜度比較高。
2.2.4?CRF
以上是無監(jiān)督的方法的嘗試,后來隨著訓(xùn)練數(shù)據(jù)的積累,我們切換到了有監(jiān)督模型上,tag抽取是一種典型的序列標(biāo)注任務(wù)。
我們嘗試了經(jīng)典的CRF(條件隨機(jī)場)模型,特征包括字+詞性+分詞邊界+特征詞+詞庫,詞庫包括人名,地名,機(jī)構(gòu),影視,小說,音樂,醫(yī)療,網(wǎng)絡(luò)輿情熱詞等詞庫。
特征收集好之后需要配置特征模版,特征模版需要配置同一個(gè)特征不同位置組合,同一個(gè)位置不同特征組合,不同位置不同特征組合,特征模版70+。
雖然CRF相比無監(jiān)督方式效果比較好,但是特征工程復(fù)雜,面向新的數(shù)據(jù)源需要大量工作調(diào)節(jié)特征。
特征舉例:
如果當(dāng)前詞詞性=名詞 且 是否詞庫=1 且 標(biāo)簽=1,我們讓t1=1否則t1=0,如果權(quán)重λ1越大,模型越傾向把詞庫中的詞當(dāng)成tag。
如果上一個(gè)詞性是標(biāo)點(diǎn),下一個(gè)詞性是動(dòng)詞且當(dāng)前詞是名詞,我們讓t2=1,如果權(quán)重λ2越大,模型越傾向把夾在標(biāo)點(diǎn)和動(dòng)詞之間的名詞當(dāng)作tag。
2.2.5?深度模型
為了解決特征工程復(fù)雜問題,我們將淺層模型升級為深度模型,可以有效地替代人工特征設(shè)計(jì),更全面地表示句子,同時(shí)增加序列約束。主要結(jié)構(gòu)為預(yù)訓(xùn)練詞向量+雙向LSTM + CRF,目前業(yè)界比較經(jīng)典的通用序列標(biāo)注模型 。
首先對句子分詞得到token序列,輸入序列先Lookup到embedding,embedding提前用word2vec從大規(guī)模語料中無監(jiān)督得到,然后分別走前向和后向的LSTM,得到兩個(gè)方向的基于Context的token表示,然后通過全連接層將前向和后向的語義表示Merge在一起,最后通過CRF層進(jìn)行序列標(biāo)注。
神經(jīng)網(wǎng)絡(luò)部分替代特征工程,自動(dòng)學(xué)習(xí)到高階特征組合,embedding層通過無監(jiān)督方式從大規(guī)模語料中學(xué)習(xí)到,可以降低分詞token的稀疏性,LSTM可以學(xué)習(xí)到分詞token動(dòng)態(tài)的基于Context的embeddding表示,而雙向LSTM使得表示更加全面,不但考慮前面的Context信息,也考慮了后面的Context信息,與人類一般讀完整個(gè)句子才更好的確定詞的重要度類似,之后的BERT驗(yàn)證了雙向表示的重要性。
而CRF層用來學(xué)習(xí)標(biāo)簽之間的約束關(guān)聯(lián)信息,比如不太可能后半句全是1(1表示tag)。
LSTM-CRF帶來的最大好處是:
- 利用大規(guī)模語料來學(xué)習(xí)知識,容易遷移模型到新數(shù)據(jù)源。
- 避免復(fù)雜的特征工程,但存在解釋性差的問題。
2.2.6?深度模型升級
在經(jīng)典的LSTM-CRF基礎(chǔ)上,我們進(jìn)行了模型的升級,模型整體結(jié)構(gòu)變?yōu)镈eep And Wide 結(jié)構(gòu),在原有的基礎(chǔ)上增加 Wide部分,用于保持輸入的低階表示,增強(qiáng)模型的“記憶”能力,此處驗(yàn)證了TFIDF/postion/POS特征,只有TFIDF特征有效,在深度部分增加了self-attention層,學(xué)習(xí)token之間重要程度,與最終目標(biāo)一致,self-attention的計(jì)算方法如下。
其中Value是雙向LSTM的輸出, Query和Key相同,Key是不同于value的參數(shù)矩陣,大小是#corpus_uniq_tokens * attention_key_dim。
后續(xù)將嘗試wide部分引入更多知識,比如詞庫特征。
2.3 推薦entity識別
2.3.1 基于實(shí)體庫
構(gòu)建推薦系統(tǒng)初期,為了快速實(shí)現(xiàn),我們基于實(shí)體庫+AC匹配的方式進(jìn)行實(shí)體識別,實(shí)體庫使用CRF進(jìn)行新實(shí)體發(fā)現(xiàn),頻率大于一定的實(shí)體再由人工審核進(jìn)入實(shí)體庫,這種方式往往忽略了上下文語境,容易引入badcase,對于新實(shí)體,識別并線上生效有所延遲。
2.3.2?序列標(biāo)注模型
我們將推薦實(shí)體識別算法從匹配升級到BiLSTM-CRF with Attention架構(gòu)的多類別實(shí)體聯(lián)合識別模型。
模型主要采用字、詞、詞性三種特征,在BiLSTM層與CRF層間引入multi-head self-attention層,在多個(gè)不同子空間捕獲上下文相關(guān)信息,篩選不同類別實(shí)體的重要特征,增強(qiáng)特征對實(shí)體類別分辨能力,進(jìn)而提升模型識別效果。最后使用CRF進(jìn)行標(biāo)簽序列建模,利用全局信息,將標(biāo)簽轉(zhuǎn)移矩陣作為標(biāo)簽序列的先驗(yàn)知識,避免結(jié)果中不合理的標(biāo)簽序列。
近期,我們又將實(shí)體識別算法升級到了BERT,解決訓(xùn)練數(shù)據(jù)難以獲取導(dǎo)致的精度不高的問題,目前支持的實(shí)體類型包含人名、組織、地名、車、游戲、視頻、書籍、音樂、食品、旅游景點(diǎn)、化妝品/服飾、疾病/養(yǎng)生、古董古玩、軍事共14類實(shí)體。
在PreTrain Model(BERT-Base, Chinese)的基礎(chǔ)上,通過多類型實(shí)體標(biāo)注數(shù)據(jù)進(jìn)行finetune,得到支持多實(shí)體的實(shí)體識別模型。同時(shí)我們還嘗試了BERT和LSTM-CRF的組合結(jié)構(gòu),目前來看,BERT效果最優(yōu)。
Rec-NER多模型對比
2.4 標(biāo)簽映射
外部視頻有很多人工打的標(biāo)簽,標(biāo)簽體系和看一看的標(biāo)簽體系不一致,差異率為42%,由于外部標(biāo)簽難以和看一看畫像相match,并且也不存在于召回和排序模型特征中,導(dǎo)致外部視頻分發(fā)效率較低,因此需要將外部標(biāo)簽映射到看一看的標(biāo)簽體系。
標(biāo)簽映射有兩種方式:
2.4.1Tag2Tag
首先建立外部Tag到看一看Tag的映射關(guān)系,再將文章上的外部tag逐個(gè)映射到看一看tag。
標(biāo)簽映射關(guān)系建立有4種方式:
- 編輯距離,計(jì)算外部標(biāo)簽中編輯距離最小的內(nèi)部標(biāo)簽;
- 將外部標(biāo)簽和內(nèi)部標(biāo)簽分詞,利用詞級別的word2vec embedding進(jìn)行match;
- 通過外部行為得到uin(內(nèi)部標(biāo)簽)到item(外部標(biāo)簽)之間的pair,然后通過頻繁項(xiàng)挖掘或者矩陣分解得到標(biāo)簽映射關(guān)系;
- 通過知識圖譜推理來得到內(nèi)外部標(biāo)簽的關(guān)系;
Tag2Tag示例:
- 外部視頻:印度的自制椰子釣魚裝置,還真的有幾把刷子!
- 外部標(biāo)簽:捕魚|實(shí)拍|印度
- 內(nèi)部標(biāo)簽:印度人,印度教,巴基斯坦,捕魚游戲,捕魚技巧,印度經(jīng)濟(jì),印度文化
對于“印度教”“捕魚游戲”等存在語義漂移問題,內(nèi)部tag與上下文不相關(guān),因此我們引入了Context2Tag進(jìn)行標(biāo)簽映射的方式。
2.4.2?Context2Tag
基于Tag2Tag的方式,由于沒有考慮到context信息,如標(biāo)題、類目,容易產(chǎn)生歧義,導(dǎo)致badcase出現(xiàn),所以更好的思路是利用雙塔模型來建模,將外部標(biāo)題和外部tag,統(tǒng)一編碼到左端,看一看Tag編碼到右端,利用深度語義匹配進(jìn)行Tag映射。
訓(xùn)練時(shí)使用看一看標(biāo)題和Tag構(gòu)造訓(xùn)練數(shù)據(jù),看一看標(biāo)題放在左端,將看一看Tag拆成兩部分,N-1個(gè)放在左端,剩下一個(gè)放在右端。
特征使用字、分詞特征,能從看一看數(shù)據(jù)泛化到外部數(shù)據(jù)。預(yù)測時(shí)首先將內(nèi)部tag embedding部署到knn服務(wù)中,然后對于外部文章和tag,用左端前饋生成文章表示,然后去knn服務(wù)中召回最相關(guān)的內(nèi)部tag。
其中,引入title attention net來計(jì)算外部標(biāo)簽重要度,代替對外部標(biāo)簽avg pool,上述case中,使得“捕魚”權(quán)重更大,更容易找到與核心tag相關(guān)的內(nèi)部tag。
2.5 標(biāo)簽聚合
2.5.1?topic
我們使用lightlda構(gòu)建了1千/1萬/10萬不同維度的topic模型,來解決分類和tag語義粒度跨度太大問題,同時(shí)我們還區(qū)分長期topic和時(shí)效topic,時(shí)效topic用于快速發(fā)現(xiàn)熱點(diǎn)事件以及提升其分發(fā)效率。我們構(gòu)建了面向新聞的實(shí)時(shí)topic理解模型,支持小時(shí)級全量topic和分鐘級增量topic理解,能夠快速捕捉熱點(diǎn)及進(jìn)行跟進(jìn),模型流程如下。
面向新聞的實(shí)時(shí)topic理解
2.5.2 Tag Cluster
由于單一Tag拉取文章容易漂移,我們對Tag進(jìn)行聚合形成更具象的語義內(nèi)容。
比如{王XX,馬XX,離婚},用戶感興趣的不是王XX或馬XX,而是王XX離婚事件。
具體的Tag聚合方案,首先我們對文章Tag進(jìn)行頻繁項(xiàng)挖掘,并對頻繁項(xiàng)進(jìn)行層次聚類得到相近的語義內(nèi)容,然后對類簇內(nèi)Tag進(jìn)行上位詞挖掘與排序,構(gòu)建類簇“title”。
為了保證類簇的長期穩(wěn)定標(biāo)識,我們用類簇上位詞的md5作為類簇ID。推薦方案類似Topic,分別為用戶需求和文章打標(biāo)Tag cluster ID,然后根據(jù)用戶興趣類簇ID拉取對應(yīng)類簇內(nèi)文章。
2.6 標(biāo)簽排序
有了文本標(biāo)簽、文本entity、多媒體標(biāo)簽、映射標(biāo)簽及人工標(biāo)簽后,我們構(gòu)建了標(biāo)簽排序模型。目前推薦標(biāo)簽排序中文本建模采用自研的雙向lstm變種模型,由于方法依賴大量樣本,同時(shí)自動(dòng)構(gòu)建的樣本質(zhì)量較低,所以改為基于BERT的方式。將標(biāo)題和標(biāo)簽作為sentence pair輸入給BERT模型,使用CLS作為最終的排序分。
主要優(yōu)化點(diǎn):
- 預(yù)訓(xùn)練+微調(diào):引入已有字符預(yù)訓(xùn)練模型,根據(jù)少量高質(zhì)量標(biāo)注數(shù)據(jù)進(jìn)行微調(diào);
- 擴(kuò)充高質(zhì)量樣本:針對訓(xùn)練出現(xiàn)的過擬合,通過自動(dòng)構(gòu)造擴(kuò)充高質(zhì)量樣本并相應(yīng)調(diào)參,僅補(bǔ)充訓(xùn)練集;
- 字符緊密度向量:針對識別結(jié)果的邊界不準(zhǔn)確和字符預(yù)訓(xùn)練模型的不足,引入基于圖模型和詞庫預(yù)訓(xùn)練得到字符緊密度表示;
- 全局結(jié)構(gòu)信息:模型引入全局結(jié)構(gòu)信息,比如字符緊密度,設(shè)計(jì)不同的輸入方式和結(jié)構(gòu)。
基于BERT的標(biāo)簽排序模型
2.7 關(guān)系圖譜
知識圖譜,是結(jié)構(gòu)化的語義知識庫,用于迅速描述物理世界中的概念及其相互關(guān)系,通過將數(shù)據(jù)粒度從document級別降到data級別,聚合大量知識,從而實(shí)現(xiàn)知識的快速響應(yīng)和推理。
在看一看系統(tǒng)內(nèi),內(nèi)容畫像會將原關(guān)系信息整合,并構(gòu)建業(yè)務(wù)可應(yīng)用的關(guān)系知識體系。
知識圖譜已提供服務(wù):看一看推理型推薦邏輯,看一看畫像系統(tǒng),看一看排序特征等。
除此之外,業(yè)務(wù)中積累的關(guān)系數(shù)據(jù),可用于構(gòu)建知識的關(guān)系網(wǎng),在此基礎(chǔ)上輸出知識表示,抽象后的知識圖譜可以作為語義理解的載體,應(yīng)用于任何具有文本搜索,識別,推薦的場景。
知識圖譜的基本單位,便是“實(shí)體(E) – 關(guān)系(R) – 實(shí)體(E)”構(gòu)成的三元組,這也是知識圖譜的核心。
整個(gè)知識圖譜的構(gòu)建及應(yīng)用劃分為3層:數(shù)據(jù)層、邏輯層、應(yīng)用層;每一層的具體任務(wù)如下:
2.7.1?數(shù)據(jù)層
- 獲取:通過網(wǎng)絡(luò)爬蟲爬取數(shù)據(jù)
- 類型:結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)
- 數(shù)據(jù)存儲:資源描述框架或者圖數(shù)據(jù)庫(Neo4j)
2.7.2?邏輯層
構(gòu)建知識圖譜是一個(gè)迭代更新的過程,根據(jù)知識獲取的邏輯,每一輪迭代包含四個(gè)階段:
知識抽取:從各種類型的數(shù)據(jù)源中提取出實(shí)體、屬性以及實(shí)體間的相互關(guān)系,在此基礎(chǔ)上形成本體化的知識表達(dá);關(guān)鍵技術(shù):實(shí)體抽取、關(guān)系抽取、屬性抽取和社交關(guān)系。
- 實(shí)體抽?。阂卜Q命名實(shí)體識別(named entity recognition,NER),是指從文本數(shù)據(jù)集中自動(dòng)識別出命名實(shí)體。
- 關(guān)系抽?。何谋窘?jīng)過實(shí)體抽取后,得到一系列離散的命名實(shí)體,為了得到語義信息,還需從相關(guān)語料中提取實(shí)體之間的關(guān)聯(lián)關(guān)系,通過關(guān)系將實(shí)體聯(lián)系起來,構(gòu)成網(wǎng)狀的知識結(jié)構(gòu)。
- 屬性抽取:從不同信息源中采集特定實(shí)體的屬性信息,如針對某個(gè)公眾人物,抽取出其昵稱、生日、國籍、教育背景等信息。
- 社交關(guān)系:目標(biāo)是預(yù)測不同實(shí)體之間是否存在社交關(guān)系,以便基于社交關(guān)系進(jìn)行推薦。
知識融合:在獲得新知識之后,需要對其進(jìn)行整合,以消除矛盾和歧義,比如某些實(shí)體有多種表達(dá),某個(gè)特定稱謂對應(yīng)于多個(gè)不同的實(shí)體等;
- 數(shù)據(jù)融合:將知識抽取得到的碎片信息進(jìn)行融合
- 實(shí)體對齊:消除異構(gòu)數(shù)據(jù)中實(shí)體沖突、指向不明
- 知識推理:通過各種方法獲取新的知識或者結(jié)論,這些知識和結(jié)論滿足語義。具體方法:基于邏輯的推理、基于圖的推理和基于深度學(xué)習(xí)的推理;
- 實(shí)體關(guān)系挖掘:預(yù)測兩個(gè)實(shí)體之間的可能存在的關(guān)聯(lián)關(guān)系。
知識學(xué)習(xí):對融合后的知識進(jìn)行表示學(xué)習(xí),得到三元組中實(shí)體與關(guān)系在特征空間的向量表示,方便后續(xù)的各項(xiàng)應(yīng)用
- 知識/關(guān)系表示學(xué)習(xí):通過TransE,GraphSage等方法,得到實(shí)體/關(guān)系的表示
- 本體構(gòu)建:自動(dòng)化本體構(gòu)建過程包含三個(gè)階段:實(shí)體并列關(guān)系相似度計(jì)算;實(shí)體上下位關(guān)系抽取;本體的生成
知識更新:對于獲取到的新知識,需經(jīng)過質(zhì)量評估后才能將合格的部分加入到知識庫中,以確保知識庫的質(zhì)量。知識更新主要是新增或更新實(shí)體、關(guān)系、屬性值,對數(shù)據(jù)進(jìn)行更新需要考慮數(shù)據(jù)源的可靠性、數(shù)據(jù)的一致性等可靠數(shù)據(jù)源,并選擇將各數(shù)據(jù)源中出現(xiàn)頻率高的事實(shí)和屬性加入知識庫。
質(zhì)量評估:是知識庫構(gòu)建技術(shù)的重要組成部分,可以對知識的可信度進(jìn)行量化,通過舍棄置信度較低的知識來保障知識庫的質(zhì)量。
2.7.3?應(yīng)用層
將知識圖譜引入推薦系統(tǒng),主要有如兩種不同的處理方式:
第一,基于特征的知識圖譜輔助推薦,核心是知識圖譜特征學(xué)習(xí)的引入。一般而言,知識圖譜是一個(gè)由三元組<頭節(jié)點(diǎn),關(guān)系,尾節(jié)點(diǎn)>組成的異構(gòu)網(wǎng)絡(luò)。由于知識圖譜天然的高維性和異構(gòu)性,首先使用知識圖譜特征學(xué)習(xí)對其進(jìn)行處理,從而得到實(shí)體和關(guān)系的低維稠密向量表示。這些低維的向量表示可以較為自然地與推薦系統(tǒng)進(jìn)行結(jié)合和交互。
在這種處理框架下,推薦系統(tǒng)和知識圖譜特征學(xué)習(xí)事實(shí)上就成為兩個(gè)相關(guān)的任務(wù)。而依據(jù)其訓(xùn)練次序不同,又有兩種結(jié)合形式:
知識圖譜特征與推薦系統(tǒng)依次進(jìn)行學(xué)習(xí),即先學(xué)習(xí)特征,再將所學(xué)特征用于推薦。
交替學(xué)習(xí)法,將知識圖譜特征學(xué)習(xí)和推薦系統(tǒng)視為兩個(gè)相關(guān)的任務(wù),設(shè)計(jì)一種多任務(wù)學(xué)習(xí)框架,交替優(yōu)化二者的目標(biāo)函數(shù),利用知識圖譜特征學(xué)習(xí)任務(wù)輔助推薦系統(tǒng)任務(wù)的學(xué)習(xí)。
第二,基于結(jié)構(gòu)的推薦模型,更加直接地使用知識圖譜的結(jié)構(gòu)特征。具體來說,對于知識圖譜中的每一個(gè)實(shí)體,我們都進(jìn)行寬度優(yōu)先搜索來獲取其在知識圖譜中的多跳關(guān)聯(lián)實(shí)體從中得到推薦結(jié)果。根據(jù)利用關(guān)聯(lián)實(shí)體的技術(shù)的不同,可分向外傳播法和向內(nèi)聚合法兩種方法:
向外傳播法模擬了用戶的興趣在知識圖譜上的傳播過程。如RippleNet: Propagating User Preferences on the Knowledge Graph for Recommender Systems, CIKM 2018 使用了向外傳播法,將每個(gè)用戶的歷史興趣作為知識圖譜上的種子集合,沿著知識圖譜中的鏈接迭代地向外擴(kuò)展。
向內(nèi)聚合法在學(xué)習(xí)知識圖譜實(shí)體特征的時(shí)候聚合了該實(shí)體的鄰居特征表示。通過鄰居聚合的操作,每個(gè)實(shí)體的特征的計(jì)算都結(jié)合了其鄰近結(jié)構(gòu)信息,且權(quán)值是由鏈接關(guān)系和特定的用戶決定的,這同時(shí)刻畫了知識圖譜的語義信息和用戶的個(gè)性化興趣。
三、視頻內(nèi)容理解
目前在推薦系統(tǒng)中,視頻的消費(fèi)量遠(yuǎn)大于圖文,而視頻內(nèi)容中除了文本的內(nèi)容以外,更多的信息其實(shí)來源于視頻內(nèi)容本身, 因此我們嘗試從視頻多種模態(tài)中抽取更豐富的信息。我們和優(yōu)圖實(shí)驗(yàn)室合作構(gòu)建了支持看一看推薦場景下的視頻圖像等多模態(tài)數(shù)據(jù)的處理和分析的多媒體服務(wù)。
目前服務(wù)接口主要包括:
- 視頻分類:包含140類視頻分類;
- 視頻標(biāo)簽:從視頻中提取的主要實(shí)體和內(nèi)容等,模擬人工打標(biāo)簽過程,現(xiàn)支持20W量級標(biāo)簽;
- 水印識別:判斷一個(gè)視頻是否包含其他平臺水印及水印尾幀位置判斷;
- OCR:抽取視頻中的顯著文字;
- 多封面圖:提取視頻中適合展示的候選封面圖;
- embedding:通過多模態(tài)信息學(xué)習(xí)視頻的分布式表示;
這些接口已經(jīng)在看一看+以及精選等視頻推薦場景應(yīng)用起來,并得到了顯著的效果提升。
3.1 視頻分類
3.1.1?視頻分類概念
圖像分類是對于一張靜態(tài)圖片給定它屬于什么樣的類別。
對于視頻來說,增加了時(shí)間上的維度,其包含的語義信息更加豐富。根據(jù)時(shí)長,一般會把視頻劃分成長視頻(長達(dá)幾十分鐘到數(shù)小時(shí))和短小視頻(幾秒到幾分鐘)。
由于長視頻包含的內(nèi)容信息太多,很難直接做分類。通常說的視頻分類是指對短小視頻進(jìn)行內(nèi)容層面上的分類。學(xué)術(shù)界相近的任務(wù)如動(dòng)作識別,其目標(biāo)就是把一個(gè)短視頻劃分到具體的某個(gè)行為動(dòng)作。
在微信看一看+中,視頻分類是指賦予某個(gè)視頻唯一主題類別,一般包括二級或三級,二級分類從屬于一級分類,所有短、小視頻有且只有一個(gè)分類。
例如:下面例子的分類為:搞笑,表演秀。一級分類為搞笑,二級分類為表演秀,二級分類從屬于一級分類。比如,搞笑一級分類,其二級分類包括:搞笑段子、搞笑表演秀、搞笑糗事、搞笑其他。
視頻分類示例
3.1.2?視頻分類算法
視頻分類算法在學(xué)術(shù)界經(jīng)過了長時(shí)間的發(fā)展。得益于近些年深度學(xué)習(xí)的快速發(fā)展和機(jī)器性能的大幅提升,視頻分類主流算法已經(jīng)從傳統(tǒng)手工設(shè)計(jì)特征變成端到端學(xué)習(xí)的方法。
最簡單的方法是,用2D CNN抽取視頻里面每一幀的特征,然后將所有幀的特征平均池化到一起變成視頻特征進(jìn)行分類[Karpathy et al., 2014]。
這種方法帶來的問題是,視頻包含的幀數(shù)非常多,每一幀都抽特征會有非常大的計(jì)算開銷,并且平均池化沒有捕捉到視頻的時(shí)序變化信息。
在此基礎(chǔ)上,有一系列的算法來解決這兩個(gè)問題,其中代表作有TSN[Wang et al.,2016],用基于片段采樣的方法來解決稠密抽幀計(jì)算開銷大的問題;有用NetVLAD[Miech et al., 2017]等用來聚合時(shí)序上多幀的信息。
更直接方法是使用3D CNN進(jìn)行視頻分類,比如I3D[Carreira and Zisserman, 2017]將Inception里面的2d-conv直接展開成3d-conv來處理整個(gè)視頻,Non-Local[Wang et al., 2018]將self-attention加入到3D ResNet里面學(xué)習(xí)時(shí)空的全局信息,SlowFast[Feichtenhofer et al., 2019]引入slow和fast兩個(gè)不同時(shí)間分辨率的分支來學(xué)習(xí)視頻的靜態(tài)和動(dòng)態(tài)變化。
在微信看一看+的視頻分類中,我們嘗試了多種2D模型和SlowFast-ResNet50等模型,考慮到計(jì)算代價(jià)和模型性能的平衡,我們選擇了2D的TSN-ResNet50為基礎(chǔ)模型,并且引入了自研的video shuffle模塊[Ma et al., 2019]和NetVLAD模塊,來提升性能。
視頻分類里的 Video Shuffle 操作
整個(gè)視頻分類的pipeline可以分為以下幾步:
- 數(shù)據(jù)的采樣和預(yù)處理;
- 學(xué)習(xí)視頻時(shí)空特征;
- 時(shí)序特征動(dòng)態(tài)融合。
下面詳細(xì)介紹這幾個(gè)步驟。輸入一個(gè)M幀的視頻,首先把M分成N段(M >= N,比如10s的25fps視頻,M=250),那么每一段有M/N張圖片,再在每一段中隨機(jī)采樣一幀,整個(gè)視頻的輸入就變成了N幀。
這種方法不僅能夠極大程度地減少輸入的幀數(shù),而且也能保證整個(gè)視頻的信息都覆蓋到了。對于N幀的圖像,采用scalejitter隨機(jī)進(jìn)行裁剪,接著resize到224×224大小,進(jìn)行隨機(jī)水平反轉(zhuǎn),最后再做歸一化。
經(jīng)過上面的步驟,把處理好的多幀圖像輸入到2D CNN中,首先多個(gè)2d-conv會提取它們的空間特征。
為了能夠使得多幀圖像之間有信息交流,我們引入了video shuffle操作,如圖7所示,video shuffle會把每一幀的特征圖分成若干個(gè)group,然后讓某一幀的group feature和另一幀的group feature進(jìn)行互換,互換之后的某幀特征都會包含其他幀的特征信息,接著用另外一個(gè)video shuffle來還原該幀空間特征。
video shuffle使得在2d-conv內(nèi)部,多幀信息得到了充分的交流,保證模型學(xué)習(xí)到的特征更好。
現(xiàn)在已經(jīng)得到了N幀的特征,我們采用來YouTube-8M 2017年比賽冠軍的思路,用NetVLAD+context gating來做時(shí)序特征融合。
關(guān)于NetVLAD的介紹已經(jīng)有非常多的資料了,這里不再展開描述。最后經(jīng)過時(shí)序聚合的特征,也就是整個(gè)視頻的特征,通過全鏈接fc到分類的類別,用交叉熵?fù)p失函數(shù)進(jìn)行訓(xùn)練。
3.2 視頻標(biāo)簽
3.2.1 視頻標(biāo)簽概念
上文介紹了視頻分類,是給短視頻一個(gè)確切的單一類別。而視頻標(biāo)簽是對視頻不同維度的描述,一般有多個(gè)。
以圖 8 為例,該短視頻一共打了 11 個(gè)標(biāo)簽,描述了該視頻不同維度的信息。比如加字幕是視頻的質(zhì)量維度,新型冠狀病毒是描述整個(gè)視頻內(nèi)容在講什么,新聞現(xiàn)場描述的是場景,民生新聞描述的是類型。
視頻標(biāo)簽示例
3.2.2?視頻標(biāo)簽算法
視頻標(biāo)簽?zāi)K目前包括了視頻內(nèi)容識別的多標(biāo)簽預(yù)測模塊和明星人臉識別模塊,下面分別予以介紹。
3.2.2.1 視頻多標(biāo)簽?zāi)K
視頻多標(biāo)簽預(yù)測模型由提取視頻畫面特征的骨干網(wǎng)絡(luò)、可學(xué)習(xí)的時(shí)序池化層、考慮上下文的非線性網(wǎng)絡(luò)單元門和以多標(biāo)簽分類為目標(biāo)的分類器組成,具體結(jié)構(gòu)如下圖所示。
3.2.2.2 視頻多標(biāo)簽算法結(jié)構(gòu)
骨干網(wǎng)絡(luò)采用的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)是殘差網(wǎng)絡(luò)ResNet50,這是在學(xué)術(shù)界和工業(yè)界均有廣泛應(yīng)用的網(wǎng)絡(luò)結(jié)構(gòu),其中引入的恒等近路連接結(jié)構(gòu)有效解決了深層網(wǎng)絡(luò)模型難以訓(xùn)練的問題,能在大大增加網(wǎng)絡(luò)深度的同時(shí)獲得高精準(zhǔn)度。
時(shí)序池化層通過學(xué)習(xí)得到的參數(shù)將視頻輸入得到的多幀畫面特征圖組成一個(gè)單獨(dú)表達(dá),將每幅特征圖與碼本聚類中心的差值通過attention和activation層做累加,再通過全連接層得到整個(gè)視頻的降維描述特征向量。
其后該特征向量被送入Context Gating層[Miech et al., 2017],捕捉其特征關(guān)聯(lián)信息并重新調(diào)整權(quán)重,最后再接入多標(biāo)簽分類器。
訓(xùn)練采用的視頻標(biāo)簽數(shù)據(jù)基于人工標(biāo)注的視頻標(biāo)簽對生成,選取標(biāo)注數(shù)據(jù)中的高頻標(biāo)簽,并根據(jù)標(biāo)簽維度篩除部分視覺不可識別標(biāo)簽,組成標(biāo)簽詞匯表。
訓(xùn)練過程中通過加入對低頻次標(biāo)簽數(shù)據(jù)進(jìn)行過采樣等平衡數(shù)據(jù)的方法,提升低頻標(biāo)簽的召回率。同時(shí)模型采用Partial Multilable Loss損失函數(shù)進(jìn)行訓(xùn)練,有效解決了數(shù)據(jù)標(biāo)注不完備帶來的部分標(biāo)簽缺失的問題。
模型預(yù)測標(biāo)簽時(shí),則先通過Sigmoid層獲得每個(gè)標(biāo)簽的預(yù)測分?jǐn)?shù),再結(jié)合標(biāo)簽層級依賴關(guān)系通過Hierarchical Softmax層[Mohammed et al., 2018]對標(biāo)簽預(yù)測分?jǐn)?shù)進(jìn)行修正,選取分?jǐn)?shù)超過閾值的標(biāo)簽作為最后的預(yù)測結(jié)果。
該多標(biāo)簽?zāi)P涂梢詫τ谌我庖曨l輸出與視頻內(nèi)容相關(guān)的高精度、多樣化、全面的標(biāo)簽。
3.2.2.3 明星人臉識別模塊
明星識別流程圖
明星臉識別模塊包含人臉檢測,人臉關(guān)鍵點(diǎn)檢測,人臉對齊,人臉特征,人臉聚類,人臉質(zhì)量,人臉?biāo)阉骱屯镀睅讉€(gè)模塊。
1.檢測部分使用 RetinaFace [Deng et al., 2019],RetinaFace 是 Single-stage 的人臉檢測方法,能保證檢測的速度,并且采用 FPN+Context Module 的方式,提升對小人臉的召回和整體檢測精度。
另外,加入關(guān)鍵點(diǎn)回歸分支一并訓(xùn)練,Multi-Task 的訓(xùn)練方式使得人臉定位和關(guān)鍵點(diǎn)回歸相互促進(jìn)。最后使得檢測精度達(dá)到 State-of-the-art。
RetinaFace 人臉檢測模塊
2.在獲得人臉框后,通過 Mobilenet V2 對人臉關(guān)鍵點(diǎn)進(jìn)行精細(xì)化的檢測,我們在 Mobilenet V2 中加入了 SE-layer,提升關(guān)鍵點(diǎn)的精度。通過關(guān)鍵點(diǎn)將人臉對齊到統(tǒng)一的模板,并送入 Face Embedding 模塊提取每個(gè)人臉的特征。
3.Face Embedding 模塊,我們采用的是 ResNet-50 的經(jīng)典網(wǎng)絡(luò),加上 SE-layer。我們通過對 AdaCos [Zhang et al., 2019] 算法進(jìn)行改進(jìn),針對不同場景的人臉數(shù)據(jù)和樣本難易程度,自適應(yīng)的調(diào)整 Scale 和 Margin 參數(shù),加速訓(xùn)練,同時(shí),使模型收斂到最優(yōu)點(diǎn)。
4.在獲得整個(gè)視頻人臉特征后,對所有人臉進(jìn)行聚類,并選優(yōu),通過 C-FAN [Gong et al., 2019] 算法對人臉進(jìn)行選優(yōu),C-FAN 算法本意是為了對人臉集的特征進(jìn)行融合的算法。
我們在實(shí)驗(yàn)過程中發(fā)現(xiàn),訓(xùn)練后的網(wǎng)絡(luò)對不同質(zhì)量的人臉,能給出不同指標(biāo)。通過該指標(biāo),我們能對人臉進(jìn)行選優(yōu)。通過 C-FAN 我們能選出正臉,清晰的人臉,用于后續(xù)的識別。
C-FAN 算法原理
人臉質(zhì)量效果圖
5.同前一步的聚類和選優(yōu),我們獲得視頻里每個(gè)人物的優(yōu)質(zhì)人臉,并進(jìn)入人臉識別階段。識別階段,我們創(chuàng)造性的采用 2 次搜索的方式來提高準(zhǔn)確率。
其中第 1 次搜索,使用視頻人臉檢索庫內(nèi)的種子 ID。具體來說,對于庫內(nèi)每個(gè) ID,其所有圖片的特征求平均,作為這個(gè) ID 的種子特征。
第 1 次搜索,對于某個(gè)視頻人臉,在種子人臉庫內(nèi)搜索得到 Top K 個(gè)種子 ID,Top K 取 50,從而初步確定 ID 的檢索范圍。
第 2 次搜索,使用視頻人臉,在第 1 次搜索得到的 TopK ID 的所有圖片里面進(jìn)行檢索。并通過投票確定得分最高的 ID,作為該模塊的輸出。
6.返回上一模塊的搜索結(jié)果即為人臉識別結(jié)果。
3.3 視頻 Embedding
3.3.1?視頻 Embedding 概念
視頻中包含了豐富的語義信息,比如圖像、語音、字幕等。視頻 Embedding 的目標(biāo)是將視頻映射到一個(gè)固定長度的、低維、浮點(diǎn)表示的特征向量,使得 Embedding 特征向量包含了視頻中的語義信息。相比視頻分類和標(biāo)簽,視頻 Embedding 中包含的信息更加豐富。更重要的是,Embedding 特征之間的距離可以度量視頻之間的語義相似性。
3.3.2?視頻 Embedding 算法
視頻中包括多個(gè)模態(tài)的信息,因此視頻 Embedding 需要多個(gè)模態(tài)進(jìn)行處理。
3.3.2.1 多模態(tài) Embedding
視頻模態(tài):視頻中最重要的信息是視頻畫面,即視頻模態(tài),為了得到視頻 Embedding,我們使用第 3.1.2 節(jié)介紹的視頻分類算法進(jìn)行訓(xùn)練,在此不贅述。
人臉模態(tài):短、小視頻場景的一大特點(diǎn)是以人為中心,人物是視頻內(nèi)容中非常重要的部分。因此,我們將視頻中人臉 Embeddding 部分融合進(jìn)視頻 Embedding。具體做法見 2.2.2.2 節(jié)明星人臉識別模塊對應(yīng)的介紹,在此不贅述。實(shí)踐中發(fā)現(xiàn),加入人臉 Embedding 后,可以找到同一個(gè)人的不同視頻。
OCR 模態(tài):視頻中有豐富的文本信息,我們首先用 OCR 算法識別出視頻中的 OCR 文字,之后訓(xùn)練文本模型,得到視頻中 OCR 的 Embedding。識別 OCR 見第 2.4 節(jié),在此不贅述。文本模型使用 BERT [Devlin et al, 2019] 進(jìn)行訓(xùn)練。BERT 基于雙向的 Transformer 結(jié)構(gòu),在預(yù)訓(xùn)練階段捕獲詞語和句子級別的表示。BERT 在 2018 年發(fā)表時(shí),通過預(yù)訓(xùn)練和微調(diào)在 11 項(xiàng) NLP 任務(wù)中獲得突出性能。
BERT 訓(xùn)練過程圖
音頻模態(tài):我們使用 VGGish 提取音頻的 Embedding特征 [Abu-El-Haija et al, 2016]。VGGish 是從 AudioSet 數(shù)據(jù)集訓(xùn)練得到的音頻模型,其產(chǎn)生 128 維的 Embedding 特征。VGGish 的網(wǎng)絡(luò)結(jié)構(gòu)類似于 VGGNet 的配置 A,有 11 層帶權(quán)重的層。
區(qū)別在于:
- 輸入是 96 × 64 大小的音頻中得到的對數(shù)梅爾譜。
- 去除最后一組卷積和匯合組,因此,相比于原來 VGG 模型的五組卷積,VGGish 只有四組。
- 最后的全連接層由 1000 改為 128,這個(gè)的 128 維特征輸出作為音頻 Embedding。
圖 16:音頻模態(tài)中使用的對數(shù)梅爾譜(Log Mel Spectrum)
關(guān)于特征融合部分,特征融合常用的有以下幾種方式:直接拼接(Concatenation)、乘積(包括內(nèi)積和外積)、加權(quán)平均、Bi-Interaction 等。這里我們采用最直接的拼接方法。
3.3.2.2 度量學(xué)習(xí)
度量學(xué)習(xí)有兩大類基本思路。
圖 17:度量學(xué)習(xí)訓(xùn)練流程
一種思路是基于 Contrastive Loss 或 Triplet Loss。其基本思想是:兩個(gè)具有同樣類別的視頻,它們在 Embedding 空間里距離很近。
兩個(gè)具有不同類別的視頻,他們在 Embedding 空間里距離很遠(yuǎn)。T
riplet Loss [Schroff et al., 2015] 是三元組輸入,我們希望 Anchor 與負(fù)樣本直接的距離,以一定間隔(Margin)大于與正樣本之間的距離。
使用 Triplet Loss 通常會配合 OHEM(Online Hard Example Mining)[Shrivastava et al., 2016] 等訓(xùn)練技巧。但是面對千萬級別的視頻數(shù)據(jù)量,使用 Triplet Loss 會產(chǎn)生很龐大的訓(xùn)練開銷,收斂會比較慢。
另外一種思路是基于大間隔 Softmax 進(jìn)行訓(xùn)練,這類方法在人臉識別領(lǐng)域取得了巨大成功。因此,我們使用 AdaCos [Zhang et al., 2019] 算法以達(dá)到更快和更穩(wěn)定的訓(xùn)練收斂。
3.3.3?視頻 Embedding 作用
3.3.3.1 視頻 Embedding 直接用于推薦
視頻 Embedding 作為視頻語義內(nèi)容的描述,可以作為一個(gè)重要特征,直接用于推薦的召回和排序階段。
另一方面,可以通過視頻 Embedding,尋找和平臺中優(yōu)質(zhì)視頻相似的視頻,補(bǔ)充到平臺中,提升內(nèi)容豐富度。
3.3.3.2?視頻去重
短、小視頻內(nèi)容十分熱門,每天都會產(chǎn)生大量的新增視頻。而這些新增視頻中,一部分是用戶上傳的原創(chuàng)視頻內(nèi)容,另一部分是搬運(yùn)平臺已有的內(nèi)容。
搬運(yùn)會導(dǎo)致平臺中同時(shí)存在內(nèi)容一樣的視頻,這對視頻原作者是很大的打擊。即使內(nèi)容完全一樣,但視頻幀率、分辨率仍有差異,依靠視頻文件 MD5SUM 無法進(jìn)行判斷。
通過視頻 Embeding,可以幫助平臺發(fā)現(xiàn)內(nèi)容相同的視頻,從而可以幫助平臺進(jìn)行去重,保留幀率、分辨率較高的視頻。打擊搬運(yùn),避免了對用戶重復(fù)推薦同一視頻。
視頻 Embedding 用于視頻去重
3.3.3.3?視頻標(biāo)簽
在第 3.2 節(jié)介紹了視頻標(biāo)簽預(yù)測算法。在短、小視頻場景下,該算法會面臨一些挑戰(zhàn)。比如,短、小視頻內(nèi)容更新快、流行期短,算法需要具備快速擴(kuò)展識別新標(biāo)簽的能力。另一方面,短、小視頻內(nèi)容以人為中心,內(nèi)容相對比較主觀,傳統(tǒng)計(jì)算機(jī)視覺算法(如分類、檢測等)難以突破。
利用視頻 Embedding 也可以進(jìn)行視頻標(biāo)簽預(yù)測,具體過程如下圖:
視頻 Embedding 用于視頻標(biāo)簽預(yù)測流程
- 提取待預(yù)測的視頻(Query)的 Embedding 特征。除了待預(yù)測視頻外,我們已經(jīng)有了很多的歷史有標(biāo)注視頻(DB),我們提取這些標(biāo)注視頻的特征,構(gòu)建千萬視頻量級的特征庫;
- 最近鄰檢索。對 Query 視頻的 Embedding 在 DB 的 Embedding 特征庫中進(jìn)行最近鄰檢索,找到 Query 視頻的相似視頻;
- 利用找到的相似視頻的標(biāo)注的標(biāo)簽,投票對 Query 視頻進(jìn)行預(yù)測。
視頻有搜索版標(biāo)簽、無搜索版標(biāo)簽結(jié)果對比
從上圖可以看出,利用了視頻 Embedding 進(jìn)行標(biāo)簽預(yù)測(有搜索版標(biāo)簽)后,標(biāo)簽數(shù)量和精細(xì)程度有明顯提升。
3.4 視頻主題文本提取技術(shù)(T-OCR)
T-OCR 主要分為以下幾個(gè)步驟:
- 鏡頭分割;
- 關(guān)鍵幀采樣;
- 文本檢測;
- 文本識別;
- 后處理及主題提取。
3.4.1?鏡頭分割
采用幀間二次差分法做鏡頭分割。具體做法如下:
設(shè)表示第 n 幀在點(diǎn) (i, j) 上 c 通道()的值,那么兩幀圖像和在點(diǎn) (i, j) 上的差異度定義為:
定義:
歸一化后的差異度為:
在區(qū)間 (0, 1) 內(nèi)選擇一個(gè)閾值來判定兩幀圖像在點(diǎn) (i, j) 上差別是否大,記為 C,則:
那么兩幀圖像整體上的差異度就是:
設(shè)定一個(gè)閾值 T,當(dāng)時(shí),從第 n + 1 幀切分鏡頭。
3.4.2?關(guān)鍵幀采樣
關(guān)鍵幀采樣的目的是為了估算特定文本在鏡頭中出現(xiàn)的時(shí)長,從而節(jié)省處理時(shí)間。假設(shè)一個(gè)鏡頭中有 N 幀圖像,從中均勻采樣 F 幀,并識別這 F 幀中的文本,假設(shè)某文本在 C 幀中都出現(xiàn)了,那么該文本在鏡頭中出現(xiàn)的時(shí)長就估算為,文本的時(shí)間信息將在后處理階段用到。
3.4.3?文本檢測
采用 PSENet 做文本檢測,網(wǎng)絡(luò)的整體結(jié)構(gòu)圖如下:
PSENet 網(wǎng)絡(luò)結(jié)構(gòu)
PSENet 主要有兩大優(yōu)勢:第一,對文本塊做像素級別的分割,定位更準(zhǔn);第二,可檢測任意形狀的文本塊,并不局限于矩形文本塊。
PSENet 中的一個(gè)關(guān)鍵概念是 Kernel,Kernel 即文字塊的核心部分,并不是完整的文字塊,該算法的核心思想就是從每個(gè) Kernel 出發(fā),基于廣度優(yōu)先搜索算法不斷合并周圍的像素,使得 Kernel 不斷擴(kuò)大,最終得到完整的文本塊。
如上圖所示,PSENet 采用 FPN 作為主干網(wǎng)絡(luò),圖片 I 經(jīng)過 FPN 得到四個(gè) Feature Map,即P2、P3、P4 和 P5;然后經(jīng)過函數(shù) C 得到用于預(yù)測分割圖的 Feature Map F?;?F 預(yù)測的分割圖有多個(gè),對應(yīng)著不同的覆蓋程度,其中 S1 的覆蓋度最低,Sn 的覆蓋度最高。
基于不同覆蓋程度的分割圖,通過 Scale Expansion 算法逐漸生成完整、精細(xì)的分割圖,其過程如下圖:
PSENet 生成完整、精細(xì)的分割圖過程
其中 CC 表示計(jì)算連通域,EX 表示執(zhí)行 Scale Expansion 算法,子圖 (g) 展示了擴(kuò)展的過程,如果出現(xiàn)沖突區(qū)域,按照先到先得的策略分配標(biāo)簽;算法詳情參考下圖。
Scale Expansion 算法過程
3.4.4?文本識別
采用 Seq2Seq + Multi-head Attention 做文本識別,網(wǎng)絡(luò)的整體結(jié)構(gòu)圖如下:
文本識別網(wǎng)絡(luò)結(jié)構(gòu)
整個(gè)網(wǎng)絡(luò)從下到上共分為四部分:特征提取網(wǎng)絡(luò)、Encoder、Multi-head Attention mechanism 和 Decoder。
特征提取網(wǎng)絡(luò)是基于 EfficientNet 改進(jìn)的,網(wǎng)絡(luò)的詳細(xì)結(jié)構(gòu)參考下表:
表 28:特征提取網(wǎng)絡(luò)結(jié)構(gòu)
Encoder 是一個(gè) BiRNN,輸入序列,然后計(jì)算每個(gè)時(shí)刻的隱狀態(tài)。該網(wǎng)絡(luò)其實(shí)由兩層 LSTM 構(gòu)成,每層 128 個(gè)隱狀態(tài);第一層從左向右處理輸入序列,并產(chǎn)生正向隱狀態(tài),第二層從右向左處理輸入序列,并產(chǎn)生反向隱狀態(tài),那么在時(shí)刻 j 的最終隱狀態(tài)就是。
Decoder 也是一個(gè) LSTM 模型,該模型基于 Encoder 的隱狀態(tài)生成輸出序列。
引入 Attention 機(jī)制是為了讓 Decoder 在生成一個(gè)文字的時(shí)候能夠在輸入序列中定位到最相關(guān)的信息,也就是說 Attention 機(jī)制其實(shí)是一種對齊模型(Alignment Model),它通過打分來評估 i號輸出與 j 號輸入間的匹配程度。
但傳統(tǒng)的 Attention 機(jī)制存在一個(gè)問題,當(dāng)輸入序列的長度、尺度或分辨率發(fā)生變化時(shí),這種 Attention 方法就會發(fā)生定位錯(cuò)誤,進(jìn)而引起誤識別;而 Multi-head Attention 可以很好地解決這個(gè)問題。
Multi-head Attention 的基本思想是使用多個(gè) Attention 模塊分別聚焦圖像的不同部位,然后再將這些不同模塊的結(jié)果整合起來,從而達(dá)到更加準(zhǔn)確聚焦單個(gè)文字的目的。
其結(jié)構(gòu)如下圖所示:
圖 29:Multi-head attention 網(wǎng)絡(luò)結(jié)構(gòu)
3.4.5?后處理及主題提取
該階段又分以下幾個(gè)流程:A. 關(guān)鍵詞過濾;B. 文本融合;C. 低頻文本抑制;D. 主題生成。
- 關(guān)鍵詞過濾。主要是過濾一些水印文本,比如“抖音”、“騰訊視頻”等;
- 文本融合。同樣的文本在不同幀中經(jīng) OCR 識別出來的結(jié)果可能有差異;比如在第 5 幀中 OCR 的結(jié)果是“這個(gè)美女說得太逗了”,而在第 10 幀可能識別為“這個(gè)美文說得太逗了”;因此需要將相似的文本進(jìn)行融合。融合的基本思路是先通過編輯距離找到相似的文本,然后將時(shí)長最長的文本作為正確的文本,最后刪掉其余的相似本文并將對應(yīng)的時(shí)長融合到挑選出來的正確文本中;
- 低頻文本抑制。主題文本與無關(guān)文本的一個(gè)重要區(qū)別就是主題文本的時(shí)長明顯更長,所以應(yīng)當(dāng)將找到一個(gè)時(shí)長明顯變短的位置,然后將低于這個(gè)時(shí)長的文本都過濾掉;
- 主題生成。按照從前到后、從上到下的順序拼接剩余的文本以生成主題。
3.5 視頻封面圖和 GIF
圖 30:視頻封面圖算法流程
3.5.1?K-Means 聚類
為了使得所提取的封面圖能跟視頻的主要內(nèi)容匹配,我們首先采樣后的幀提取特征,并進(jìn)行 K-Means 聚類。
特征模型以 MobileNet V2 作為 Backbone,在 ImageNet 上訓(xùn)練所得。
K-Means 聚類過程中,我們使用 Elbow Method 來選擇合適的 K 值。聚類后,每個(gè)類別包含若干幀。
我們選擇包含幀數(shù)最多的這個(gè)類作為候選集合。該類連續(xù)的幀為一個(gè) Shot,所以每個(gè)類會存在多個(gè) Shot。
3.5.2?Traditional Filter
對上一步獲得的 Shots,針對某個(gè) Shot 的所有幀,我們從清晰度,亮度,色彩豐富度三個(gè)維度過濾掉模糊,過曝,純色的低質(zhì)量幀。
3.5.3?Stillness & Face Score
上一步中,我們過濾掉一些低質(zhì)量的幀,在本模塊中,我們想要找出比較重要的能代表視頻內(nèi)容的幀。
通過計(jì)算幀的重要程度(Stillness 和距離 Shot 特征中心的距離,可以衡量該幀的重要性)和人臉的得分(人臉位置,人臉偏角等),我們可以選出當(dāng)前 Shot 的最佳幀,作為代表幀。
3.5.4 Image Aesthetics
如果說前面過濾了低質(zhì)量的幀,選出了內(nèi)容豐富能代表視頻內(nèi)容的候選幀。那么這一步,我們的目的是選出,構(gòu)圖滿足人類美學(xué)的幀。在這步中,我們使用了兩個(gè)數(shù)據(jù)集,AVA 美學(xué)數(shù)據(jù)集和 AROD 社交數(shù)據(jù)集。
因?yàn)閮蓚€(gè)數(shù)據(jù)集的標(biāo)注體系不一致,所以我們采用了加權(quán)的 EMD Loss [Esfandarani & Milanfar, 2018] 和 L2 loss [Schwarz et al., 2018] 來進(jìn)行網(wǎng)絡(luò)的學(xué)習(xí)。學(xué)習(xí)后的模型能對圖像進(jìn)行美學(xué)打分。如圖。
3.5.5?排序
經(jīng)過上面的打分,我們返回美學(xué)得分最高的 Top-K 幀。
美學(xué)打分示例
3.5.6?視頻 GIF 生成
在生成封面圖的基礎(chǔ)上,我們選出得分最高的封面圖,以該封面圖為中心,前后各取 35 幀,共 70 幀,生成視頻 GIF。
四、推薦內(nèi)容傾向性與目標(biāo)性識別
對于外部內(nèi)容,例如UGC等,需要系統(tǒng)給予內(nèi)容一定量的曝光,目的是挖掘其中的優(yōu)質(zhì)內(nèi)容,召回和排序模型學(xué)習(xí)到優(yōu)質(zhì)內(nèi)容之后會進(jìn)行正常的分發(fā),這就是內(nèi)容試探過程。
然而試探流量有限,新內(nèi)容過多,如何預(yù)估內(nèi)容試探的優(yōu)先級是一個(gè)重要的問題。
我們基于內(nèi)容投放目標(biāo)模型對新內(nèi)容打分,優(yōu)質(zhì)分高的內(nèi)容曝光優(yōu)先級越高,并且針對不同的場景使用不同的投放目標(biāo),比如小程序使用分享率、精選視頻流使用vv、精選主TL使用點(diǎn)擊率,從而提升系統(tǒng)挖掘爆款的能力。
我們以曝光充分內(nèi)容的后驗(yàn)分(點(diǎn)擊率、分享率、帶vv等)和內(nèi)容傾向性(性別傾向、年齡傾向等)為訓(xùn)練目標(biāo),預(yù)估未充分曝光內(nèi)容的投放傾向,發(fā)現(xiàn)大多數(shù)的內(nèi)容缺乏置信的后驗(yàn)信息,尤其對于外部新內(nèi)容,例如UGC,基本無曝光,而這些其中是蘊(yùn)含很多優(yōu)質(zhì)item的,需要我們發(fā)掘可能的優(yōu)質(zhì)內(nèi)容,并試探出來。
4.1 目標(biāo)
我們要解決的問題就是給定item,預(yù)估試探等級。目標(biāo)就是減少投放目標(biāo)預(yù)估的點(diǎn)擊率與實(shí)際投放點(diǎn)擊率的差距。評價(jià)使用MAE,hitrate5%,hitrate。
分類模型是從語義到語義的映射,點(diǎn)擊率模型是從user叉乘item到行為的映射,而我們要構(gòu)建的模型是從語義到行為的映射,這里如何減少映射空間的GAP是難點(diǎn)。
4.2 模型演進(jìn)
4.2.1?DNN
起初我們使用DNN快速構(gòu)建模型,特征包括:
- 文本屬性 (標(biāo)題、類目、主題、Tag等) 。
- 圖像屬性 (封面圖、OCR) 。
- 固定屬性 (發(fā)布時(shí)效、視頻時(shí)長、是否優(yōu)質(zhì))。
- 發(fā)布者屬性: 1.ID信息 (ID、媒體等級)。
- 文本屬性 (名稱、類目)。
除此之外,我們還引入cnn對標(biāo)題和ocr text做理解,使用resnet對視頻封面做理解。最終通過self attention將多路channel進(jìn)行融合,最終輸出投放目標(biāo)。
另外由于tag的稀疏性,我們初始化tag embedding使用word2vec無監(jiān)督訓(xùn)練出來的向量。
樣本構(gòu)造上,初期我們的目標(biāo)就是后驗(yàn)的分。
比如分享率,但發(fā)現(xiàn)大部分內(nèi)容的分享率都很低,導(dǎo)致我們模型過于擬合低分享內(nèi)容,對于高分享內(nèi)容的預(yù)估不準(zhǔn),我們根據(jù)目標(biāo)調(diào)整了樣本,即以高分享內(nèi)容為正例,采樣低分享內(nèi)容,這樣模型能夠更好的區(qū)分出高分享內(nèi)容。
item ctr分布
4.2.2?PNN
我們發(fā)現(xiàn),DNN模型對于交叉特征學(xué)習(xí)的不夠充分,比如小品長視頻分享率高于小品短視頻,我們的模型基本區(qū)分不出來。原因是DNN是隱性特征交叉,bit-wise特征相加,特征之間是or的關(guān)系,不能很好表達(dá)特征交叉,而且bit-wise丟失特征field邊界。
因此我們在網(wǎng)絡(luò)中引入特征and關(guān)系,即特征相乘,加入vector-wise,保留特征field信息。
基于PNN的投放目標(biāo)預(yù)估模型
網(wǎng)絡(luò)中特征filed使用PNN做特征交叉,PNN屬于wide stack deep結(jié)構(gòu),即wide網(wǎng)絡(luò)接deep網(wǎng)絡(luò),認(rèn)為embedding輸入到MLP之后學(xué)習(xí)的隱式交叉特征并不充分,提出了一種product layer的思想,即基于乘法的運(yùn)算來體現(xiàn)特征交叉的DNN網(wǎng)絡(luò)結(jié)構(gòu)。
分為IPNN和OPNN,特征向量運(yùn)算時(shí)分別對應(yīng)內(nèi)積和外積,我們使用內(nèi)積操作。
Z部分直接平移embedding層,保留先前學(xué)習(xí)隱式高階特征的網(wǎng)絡(luò)結(jié)構(gòu),p層是PNN的亮點(diǎn),特征交叉矩陣P是對稱矩陣,所以采用了矩陣分解來進(jìn)行加速。
4.2.3?DeepFM
PNN完成了從隱式高階特征到隱式高階特征+顯式低階特征的升級,但是顯式低階特征依然經(jīng)過高階變換,我們引入DeepFM來解決這個(gè)問題,即顯式低階特征與隱式高階特征形成wide and deep結(jié)構(gòu)。
基于DeepFM的投放目標(biāo)預(yù)估模型
4.2.4?xDeepFM
DeepFM解決了二階特征交叉,我們想增加多階,進(jìn)一步特征對文章的理解能力,但是遇到了組合爆炸問題。
這里我們引入xDeepFm來解決,xDeepFm采用高階復(fù)用低階結(jié)果的方式,減少計(jì)算量。
五、內(nèi)容理解在推薦上的應(yīng)用
5.1 全鏈路特征
標(biāo)簽和embedding主要應(yīng)用在內(nèi)容庫構(gòu)建,模型特征上(召回,粗排,精排,混排)。
通過ItemKV和索引AB的方式推送給推薦系統(tǒng)中各個(gè)模型使用,這樣使得內(nèi)容理解直接作用于線上推薦系統(tǒng),驗(yàn)證和發(fā)揮內(nèi)容理解價(jià)值。未來ItemK會支持內(nèi)容理解的AB實(shí)驗(yàn),支持內(nèi)容理解的離線優(yōu)化策略。
推薦系統(tǒng)中的特征實(shí)驗(yàn)通路
5.2 內(nèi)容試探
很多外部接入的新內(nèi)容,例如UGC,在系統(tǒng)中沒有后驗(yàn)數(shù)據(jù),通過正常的模型流程很難分發(fā)出去,需要先進(jìn)行新內(nèi)容的試探,篩選出優(yōu)質(zhì)內(nèi)容。
由于沒有后驗(yàn)數(shù)據(jù),試探的時(shí)候命中用戶屬性后只能采取隨機(jī)的方式,內(nèi)容理解中的投放目標(biāo)預(yù)估能夠提前計(jì)算待試探內(nèi)容的目標(biāo)值(點(diǎn)擊率,分享率,帶vv等),試探過程中用預(yù)估值提權(quán),一方面可以提升出庫內(nèi)容的優(yōu)質(zhì)內(nèi)容占比,提升流量的“變現(xiàn)”效果。
另一方面,在不損傷系統(tǒng)的情況下,能夠獲取更多的試探流量,進(jìn)一步加大優(yōu)質(zhì)內(nèi)容的挖掘能力。我們先后在小視頻、小程序試探上做了線上實(shí)驗(yàn),都取得了正向的實(shí)驗(yàn)效果。
5.3 優(yōu)質(zhì)內(nèi)容庫構(gòu)建
通過改變模型的目標(biāo),我們得到了內(nèi)容傾向性模型。針對不同推薦場景,投放目標(biāo)預(yù)估支持不同的目標(biāo)。結(jié)合內(nèi)容投放目標(biāo)和內(nèi)容傾向性,我們針對不同場景和人群,構(gòu)建不同的內(nèi)容庫,比如針對老年人小程序,我們使用內(nèi)容分享率和年齡傾向性來構(gòu)建老年人庫。
老年人庫:比如我們目前正在優(yōu)化的看一看小程序,主要面向老年人群體,內(nèi)容就是通過年齡傾向性預(yù)估挖掘得到的,以年齡分布作為目標(biāo),以充分曝光的item為訓(xùn)練數(shù)據(jù),訓(xùn)練內(nèi)容年齡傾向性模型,然后預(yù)測沒有后驗(yàn)行為的內(nèi)容,挖掘老年人傾向的內(nèi)容。
小程序高分享庫:在小程序場景,DAU主要靠高分享內(nèi)容的不斷分享獲得的,所以分享率是最核心的指標(biāo)。我們以分享率為投放目標(biāo),訓(xùn)練分享率投放目標(biāo)預(yù)估模型,對老年人傾向內(nèi)容進(jìn)行分享率預(yù)估,挖掘高分享老年人內(nèi)容庫,提升小程序分享率,進(jìn)而提升小程序DAU。
高播放視頻庫:在相關(guān)視頻場景上,我們嘗試了帶vv投放目標(biāo)的應(yīng)用,從主TL點(diǎn)擊視頻之后,BC位出的是A位的相關(guān)視頻,我們大盤的目標(biāo)是pv+vv,所以BC位出的視頻的帶vv能力很重要,比如用戶觀看了一個(gè)視頻之后滿意度很高,會往下觀看更多視頻,那可以認(rèn)為這個(gè)視頻的帶vv能力很強(qiáng)。首先通過語義相關(guān)性,召回BC位視頻,然后通過帶vv投放目標(biāo)預(yù)估模型對BC位候選視頻進(jìn)行rerank,進(jìn)而加強(qiáng)用戶閱讀視頻個(gè)數(shù),增加大盤pv+vv。
除此之外,Item年齡性別傾向性用于召回過濾,避免出現(xiàn)明顯的badcase;item的多目標(biāo)的投放目標(biāo)預(yù)估分后續(xù)也計(jì)劃用于排序特征上。
5.4 智能創(chuàng)意
5.4.1 智能封面
看一看+是我們復(fù)用看一看能力開發(fā)的一款視頻推薦小程序,DAU增長主要靠群分享社交傳播效應(yīng),群聊中的分享卡片對于用戶進(jìn)入小程序非常重要,我們使用以點(diǎn)擊分享多目標(biāo)的封面圖優(yōu)選模型優(yōu)化群聊卡片封面圖,提升用戶點(diǎn)擊率和分享率,進(jìn)一步提升DAU。
另外,為了提升看一看+關(guān)注流點(diǎn)擊率和公共主頁關(guān)注率,我們引入了智能gif,視頻列表中視頻微動(dòng),提升消費(fèi)者和生產(chǎn)者之間的互動(dòng),進(jìn)一步提升上傳端指標(biāo),進(jìn)而激發(fā)用戶進(jìn)行更多創(chuàng)作。
5.4.2 標(biāo)題生成
為了提升Ugc有標(biāo)題占比,進(jìn)而能更好的理解內(nèi)容,我們進(jìn)行了自動(dòng)標(biāo)題生成,降低用戶填寫標(biāo)題的門檻。為了構(gòu)造社區(qū)氛圍,我們還在嘗試自動(dòng)匹配熱門話題等等。
六、總結(jié)與展望
隨著業(yè)務(wù)發(fā)展和內(nèi)容理解的深入優(yōu)化,內(nèi)容理解維度越來越多,我們與工程同學(xué)一起將其流程化和服務(wù)化,將內(nèi)容理解各維度算法沉淀成nlp服務(wù)和圖像服務(wù),這樣能夠快速擴(kuò)展到新數(shù)據(jù)源上,支持業(yè)務(wù)快速增長。
另外,對于實(shí)驗(yàn)性性質(zhì)的數(shù)據(jù)流程,我們優(yōu)先在gemini上快速部署,等到實(shí)驗(yàn)驗(yàn)證有效再切入到正式服務(wù)中。
我們以業(yè)務(wù)驅(qū)動(dòng)方式自上而下優(yōu)化內(nèi)容理解算法,同時(shí)也會根據(jù)內(nèi)容理解的優(yōu)勢自下而上打造算法能力而后尋找應(yīng)用。
由于內(nèi)容理解是推薦系統(tǒng)基礎(chǔ)的基礎(chǔ),從畫像到排序到召回都會影響到,我們也逐漸打磨出一套內(nèi)容理解abtest方法,充分驗(yàn)證內(nèi)容理解對整個(gè)推薦系統(tǒng)的影響,反過來也更好的驅(qū)動(dòng)內(nèi)容理解的迭代優(yōu)化。
同時(shí),我們也會基于行為對內(nèi)容進(jìn)行實(shí)時(shí)理解,使得內(nèi)容理解和業(yè)務(wù)貼合的更緊,能更好的優(yōu)化線上業(yè)務(wù)。
相關(guān)閱讀;
個(gè)性化推薦如何滿足用戶口味?微信看一看的技術(shù)這樣做
作者:richardsun ;微信公眾號:微信AI(id:wechat ai)
來源:https://mp.weixin.qq.com/s/ZS1NUPJmkWzWcEU2x3jq1A
本文由 @ 微信AI 授權(quán)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自 Unsplash,基于CC0協(xié)議。
又懂業(yè)務(wù)又懂產(chǎn)品還懂算法的真的太厲害了吧
涉及的算法很多,AI產(chǎn)品經(jīng)理,需要懂好多算法邏輯,學(xué)起來呀
啊,每個(gè)字都看得懂,連起來就看不懂系列~
剛開始,我以為我能看懂…
奈何老夫沒文化,一句我曹走天下~
太硬核了,這知識他不進(jìn)腦子啊〒▽〒
請問可以轉(zhuǎn)載么
好專業(yè)阿,我看完了一臉懵。得多多學(xué)習(xí)了