說說標簽算法在視頻推薦的那些事兒
轉眼就到年關了,這裏想認真總結下半年基於標簽的個性化推薦項目的得與失。
一方面記錄下我們使用標簽算法遇到的問題和解決方式,還有一方面也和各位分享下過程中做過的那些事兒和踩過的那些坑。
1.事情由來
我們組負責的是優酷、土豆的全部的個性化推薦模塊。當前覆蓋無線,主站。PCclient等多端,近百個場景。
每天從上億的視頻中。為上千萬的用戶提供個性化的服務。之前的個性化推薦算法主要基於Item-based協同過濾算法。熟悉推薦系統的同學,都知道這個算法的優勢在於:
- 協同過濾依靠的是“群體智慧”,通過用戶行為能直接計算出推薦內容之間的相似度。
- 算法project師不須要對於業務的理解,僅僅要實用戶的行為日誌。就能得出還不錯的結果。特別的。對於我們站點不須要對視頻內容進行分析理解。
有長處就有缺點。缺點主要體如今:
- 因為依賴用戶的行為。捕捉新視頻。實時熱點視頻能力較弱(即Item的冷啟動問題)
- 結果因為依賴其它用戶的行為,可解釋性不強。有時候會發現推薦了一些用戶不可理解的內容。著名的樣例就是推薦中的“哈利波特”問題。
- 運營編輯人員無法顯性的幹預推薦結果,對於優酷土豆這樣的強媒體屬性的公司,這樣的支持強幹預、抗風險能力是必須的。
2.標簽3
重要的事情說三遍! 是的,標簽是我們的這件事成敗的關鍵點。單獨抽出來和大家分享。
2.1 標簽體系
說到標簽,大家的第一反應就是相似豆瓣、Delicious一樣的站點。或者諸例如以下圖的用戶標簽雲模塊。
在維基百科中。標簽被定義為一種無層次化結構的,用來描寫敘述信息、表明物品語義的關鍵詞。
在我們的實際使用過程中,沒有直接採用分詞標簽,而是將不同的詞組合成一組能表達特殊興趣的詞包集合,從而構建成興趣葉子節點。
相關的葉子節點又組合成不同層級的興趣標簽。逐級的合並構建出一棵興趣分類樹,例如以下圖所看到的。眼下的興趣分類樹是四層結構。覆蓋近萬個葉子興趣節點。這樣組織的長處是:
- 層級化結構的標簽,易於編輯運營人員的理解和使用。便於興許的更新與維護,能與已有的品類系統銜接配合
- 能利用興趣分類樹的結構,進行相關標簽計算以及在推薦算法的權重調整
2.2 標簽匹配
大家知道優酷、土豆有別於其它的視頻站點,既包括了比如“跑男”、“瑯琊榜”等節目類的內容,又包括大量的用戶產生內容,即通常稱之為的UGC內容,總視頻數超過2億。
對於如此之多的視頻內容,想要分析其視頻內容的成本是非常之高的。為此。我們通過視頻的標題、描寫敘述以及用戶上傳視頻時加入的tag信息,將視頻vid 以及用戶uid 映射至我們的興趣標簽 Interesting Tag,從而進行我們的個性化推薦。詳細的標簽匹配過程能夠參見我們的上一篇博客《基於用戶行為的興趣標簽模型》。
2.3 遇到的問題
在我們實施的過程中,發現了之前未曾考慮的問題。
首先。標簽的覆蓋是個比較大的問題。假設用戶的興趣沒有相應的葉子節點,相應的視頻是無法被推薦算法所匹配的。通過統計分析頭部的VVLog。ClickLog以及SearchLog的方式。標簽的覆蓋程度得到了提升,眼下能到當天播放量的70%左右。
其次。標簽體系一定是一個“活”的結構,新詞發現、標簽結構的增刪是重要的組成部分。一方面通過同步官方媒資庫的方式,擴充節目類視頻的標簽以及類目關系,還有一方面通過站內搜索日誌的新詞、站外的內容的爬取擴充已有的興趣標簽。
達到標簽系統能更實時的捕捉到突發的興趣點效果。
另外,標簽二義性的問題也是須要解決的。通過標簽的分類信息以及視頻的屬性信息的相關性推斷與規則約束,以及上傳者範圍約束能較好的解決標簽二義性問題。
3.從召回到排序
個性化推薦本質上就是在特定的場景(Context),為不同的用戶匹配上滿足用戶須要的內容的過程。
我們比較認同《京東個性化推薦系統持續優化的奧秘》這篇文章裏的一個觀點,將個性化推薦分為:召回與排序兩大步驟。
3.1 召回策略
直接使用包括標簽的視頻作為候選集。一來質量較差,二來可召回的內容太多,計算復雜度較高,不利於後一步的排序工作的可擴展性。為此。我們須要對候選集進行過濾篩選。生成“優質視頻”候選池。
考慮的因素包括:用戶觀看量、播放完畢率、評論量、點擊量等綜合考慮的視頻質量分;視頻上傳的時間。上傳者的歷史播放情況。是否包括敏感詞等眾多因素。而且因為各個頻道分類的不同,閾值也不同,我們針對各個頻道消費特點進行調整。比如:電視劇頻道的質量條件會比音樂頻道嚴苛。
上線之後。使用CTR與曝光量:將曝光量大,但卻沒有點擊或CTR偏低的視頻進行降權,效果得到進一步提升。終於我們依照視頻的綜合得分Vr排序。形成了Tag->Vid 的倒排表。
3.2排序策略
排序這塊。我們參考了項亮《推薦系統實踐》中提到的方法。而且結合特有的業務場景做出相應調整優化:
當中,
上面的排序公式。傾向於推薦熱門標簽的權重,比如熱門電視劇、綜藝一般都好幾十集,因為觀看的次數較多導致相應的權重普遍偏高。而一些小眾的興趣點不能得到體現,不能非常好的反應用戶的個性化興趣。
為此,我們借鑒TF-IDF的思想,對公式進行修正:
當中
假設我們考慮視頻本身的質量因素Vr(能夠是帶時間衰減的觀看次數,或加權質量分,也能夠是上線之後的CTR);再考慮標簽本身的質量TQ,上面的公式可改動為:
當中
3.3上線效果
通過上面的介紹能夠看到。我們優化工作是三管齊下:
- 完好標簽體系,添加興趣標簽的覆蓋度。減少標簽錯誤率
- 優化召回策略。找出最值得推薦的視頻
- 調整排序模型。以點擊率作為學習目標
我們的工作從10月初正式開發上線至12月底,在優酷首頁的猜你喜歡模塊,基於標簽的算法CTR從4.5%提升至8.2%。同一時候。基於標簽的算法也在很多其它的應用場景落地。
4.任重而道遠
但遺憾的是,眼下基於標簽的個性化推薦眼下點擊率仍落後於基於CF的個性化推薦4%左右。
分析了原因。一方面是CF算法在第一節中提到的長處,能更精準的捕捉用戶的興趣(當然包括了眾多宅男們喜愛的福利視頻)。還有一方面。眼下我們基於標簽的推薦工作還不夠深入。
未來我們還會在例如以下的方面做出嘗試:
實時興趣標簽獲取。眼下的召回,或匹配都沒有做到實時。實時能夠細分三方面:一是新的熱點興趣標簽的能被標簽系統自己主動捕獲。二是新的視頻的興趣標簽的實時標註。三是用戶的實時行為。不管是搜索、訂閱、觀看相應的興趣標簽也須要能及時計算。這樣才幹更準確的捕獲用戶的短期興趣。推薦滿足當前用戶興趣的新熱奇視頻。
排序模型優化。眼下的排序模型還相對簡單,僅僅考察了用戶與視頻標簽層面的特征匹配程度。對於用戶本身特征。視頻本身特征,上下文特征,用戶的反饋特征。以及其它交叉特征都未做更深入的分析和探討。
同一時候。個性化推薦模塊不但須要準確性,多樣性和新穎性,也是須要考慮的因素。這一塊也是未來的一個重點。
基於圖模型的標簽推薦算法。視頻、標簽、用戶這三元組之間的關系能夠表示為三部圖的結構。Folkrank這一算法,能在標簽推薦中獲得相似Pageank的效果。基於圖計算的分布式計算框架。比如Spark-GraphX。以及阿裏的ODPS-GRAPH,能非常好的支持在海量數據上的圖算法的實現與計算。這也是下一步我們須要研究的一個方向。
多算法的融合。眼下的推薦系統。假設要不斷的叠代優化效果。僅僅依靠一個模型或者一個算法是遠遠不夠的。多算法融合的方式有非常多,怎樣發揮各個算法的優勢。取長補短。從而為用戶提供愜意的推薦體驗,也是眼下須要解決的重要的一個問題。
說了這麽多,看來2015年我們做的還不遠遠夠,2016年又有不少的方向能夠努力。
歡迎各位看官對於上面的內容。假設有什麽問題或者建議,能夠多交流討論,我們的郵箱是 [email protected] 。假設你也想投身於個性化算法的優化改進工作,不斷改善視頻行業的用戶體驗,也歡迎把你的簡歷發給我們。
這裏有億級的視頻。億級的用戶等你來挑戰。我們熱忱歡迎你的加入。
最後,祝大家猴年行大運。
路漫漫其修遠兮,吾將上下而求索。
To be continue…
說說標簽算法在視頻推薦的那些事兒