美圖個性化推薦的實踐與探索

美圖資料技術團隊發表於2018-06-28

總覽

美圖個性化推薦的實踐與探索圖 1

美圖個性化推薦主要應用於美拍APP,應用場景如下:

  • 場景一:美拍直播,實時的線上個性化排序業務;

  • 場景二:美拍熱門(即美拍首頁),典型的Feed流產品,使用者可在熱門Feed流中不斷翻頁滾動,探索和消費自己可能感興趣的內容;

  • 場景三:播放詳情頁下的“猜你喜歡”模組,用於推薦相似視訊。

美圖個性化推薦的實踐與探索圖 2個性化推薦的目標是連線使用者與內容、提升使用者體驗和優化內容生態。為了實現以上目標,演算法需要理解內容,瞭解平臺上可用於推薦的內容;同時也要理解使用者,瞭解使用者的興趣愛好,從而進行精準推薦。

理解內容

美圖個性化推薦的實踐與探索圖 3理解內容,即內容的特徵提取。美拍APP的內容是短視訊,其特徵可分為四部分:

  • 基礎特徵,即視訊的時長、解析度、標籤等基礎屬性;

  • 視覺特徵,即通過視覺演算法,對人物的性別、顏值、年齡、身高,對視訊的場景、物件等進行識別;

  • 文字特徵,美拍短視訊有封面文字、標題、評論等文字資訊,可以通過這些文字資訊進行文字挖掘,提取一些關鍵字、topic、情感極性等文字特徵;

  • 互動特徵,是使用者與內容進行行為互動的產物,使用者可以對某些內容進行點贊、評論、分享、播放等行為,通過對這些互動資料進行統計分析得到互動特徵。

理解使用者


美圖個性化推薦的實踐與探索圖 4

對內容有一定理解之後,則要進一步理解使用者,從而連線使用者與內容。理解使用者就是我們常說的使用者畫像建設,建設使用者畫像需要了解使用者的自然屬性,如使用者的性別、年齡、所在城市;社會屬性,如職業、婚姻狀況等;以及最重要的興趣屬性,除了瞭解使用者在平臺上的興趣和偏好,也要儘可能去探索使用者在平臺之外的興趣愛好(打遊戲、逛淘寶等)。

推薦流程

基於對內容和使用者的理解可進行精準推薦。美圖的推薦流程分為如下三個階段:

  • 召回階段

推薦的本質是給不同的使用者提供不同的內容排序。美拍APP上有數十億個短視訊,面對如此龐大的量級我們無法對使用者計算所有內容的排序。通過統計召回、簡單模型、圖計算等篩選方式將內容的數量級降到幾千至幾百之後可以得到初步的推薦結果;

  • 預估階段

利用機器學習模型、結合超高維度和精細化的特徵,以“使用者-情境-物品”三個維度聯合建模,得到預估模型,再對不同的目標進行預估;

  • 排序階段

在對目標進行預估之後,要對內容進行排序,從而決定可觸達使用者的排序。排序階段會結合新穎性、多樣性、準確性三個方面進行綜合排序,最終將推薦結果呈現給使用者。

美圖個性化推薦的實踐與探索圖 5在召回階段,我們已經實施了基於熱度、趨勢、協同過濾、使用者畫像、內容、情境和社交關係等一系列召回方式,同時也實踐了基於深度學習的召回方法。在預估階段,較成熟的有大規模離線特徵+LR、連續特徵+GBDT,也實踐了NFM、DCN等深度學習預估模型。

基於上述的推薦流程,推薦的整體架構如圖6所示:

美圖個性化推薦的實踐與探索圖 6

  • OFFLINE

主要是離線處理流程,對資料進行收集,並從資料出發進行資料清洗、資料標註、特徵工程、模型訓練、模型評估,最後生成離線特徵、離線召回模型和離線排序模型;

  • NEARLINE

主要是對實時的資料流進行處理,通過獲取實時日誌,對資料流進行統計、效果監控、反作弊處理、特徵更新以及對模型的增量訓練,最終得到實時的召回模型和排序模型;

  • ONLINE

即引擎部分,對流量分流後進行召回、融合、排序,最終將推薦結果返回給應用端。

 個性化推薦探索

推薦時效性

天下武功,唯快不破。美圖的使用者數量逐步增長,而每個使用者的興趣點隨著場景、時間也在同步發生變化。平臺上新的內容源源不斷,一個好的內容型產品往往不會錯過任何熱點。隨著大環境的變化,推薦時效性顯得尤為重要,對此推薦效果的提升也有很大優化空間。

召回時效性

如圖7所示,首先建立一個實時更新的相似視訊(I2I)索引;當使用者播放視訊或對其產生有效行為後,利用此索引,得到對應視訊的相似視訊進行召回。同時通過收集並分析使用者的實時行為,計算使用者對不同內容型別的實時偏好,並實時獲取使用者對應偏好型別的實時榜單內容, 從而獲得實時召回的結果;

美圖個性化推薦的實踐與探索圖 7在引擎部分會融合實時及非實時的召回,並進行預估排序,最終將推薦結果綜合呈現給使用者。

預估時效性

假設預估模型多天內不更新,其離線評估效果的變化情況如圖8所示。很明顯,預估模型從第二天開始就有大幅度的效用下降,大概一週內會下降至66%左右。根據該圖表可以看出,預估的時效性會隨著時間迅速下降,所以在預估的時效性上有很大的優化空間。

美圖個性化推薦的實踐與探索圖 8為了優化預估時效性,我們選擇了線上學習。如圖9所示,以訓練LR模型為例,左上是LR模型的預估方程和損失函式,在複雜的線上環境中,樣本輸入是隨機的,即今後計算的方向以及步長也是隨機的,實現線上學習可以簡單採用線上梯度下降方式,但是選擇這種簡單的優化方式會造成模型更新的不穩定性和模型效用的不穩定性;同時簡單的梯度更新方式會使得模型從舊樣本學習到的有效資訊被遺忘。

美圖個性化推薦的實踐與探索圖 9FTRL則是一種生成解析解的更新方式,詳見左下的方程式,其中有四個項,第一個項保證引數隨著梯度方向進行更新;第二個項保證模型的穩定性,使得每次更新的結果不會遠離之前的結果;第三、四個項是常見的L1和L2正則約束;如圖9右側所示,為更新過程的虛擬碼

如圖10所示,基於上述FTRL的線上學習方法,我們設計了實時特徵與線上學習的流程與架構。 Arachnia收集到日誌之後,FeatureServer通過Kafka元件獲取到實時日誌,進行實時特徵計算更新特徵。TrainServer還會收集使用者不同行為的日誌,分正負樣本,得到原始樣本,再將原始樣本與FeatureServer進行互動,索引到對應的特徵列表,拼裝成模型訓練可以直接應用樣本,供模型進行更新。

美圖個性化推薦的實踐與探索圖 10我們設計基於Parameter Server架構的模型更新,模型更新階段從Parameter Server獲取模型引數,對樣本進行預估,計算引數的更新,並將更新結果迴流到Parameter Server中。由於在複雜的線上環境中,不同行為的日誌可能會產生不同程度的延遲,比如在短時間內都是正樣本或負樣本,這種情況下線上學習的穩定性會受到傷害。因此我們設計了Balance Cache,控制不同行為日誌的消費速度使得樣本的正負比例保持穩定。通過這樣的架構設計,模型更新及特徵更新都實現了秒級別更新。

推薦冷啟動

冷啟動問題分為使用者冷啟動和內容冷啟動。使用者冷啟動顧名思義就是指當新使用者來到平臺時無相關的歷史行為,而傳統的推薦演算法都是採用基於行為的模型,因此無法做出有效的推薦。同理,內容冷啟動是指當新內容產生時,它還未在平臺上進行有效的流量驗證,新內容的精準分發也是一個值得探討的問題。

使用者冷啟動

一個內容型平臺的使用者冷啟動目標是將新增使用者轉化為消費使用者,進而轉化為留存使用者。為了將新增使用者轉化成消費使用者,需要匹配該使用者的興趣型別,進而推薦相關的內容,且推薦的內容要具有吸引眼球的能力,使使用者能夠在該內容上進行消費。

美圖個性化推薦的實踐與探索圖 11而吸引使用者對內容進行消費的同時,要求推薦的內容具有一定的質量,能夠使得使用者在內容上進行互動並認可消費過的內容,從而轉化為留存使用者。

美圖個性化推薦的實踐與探索圖 12

對於使用者冷啟動問題,也需要在召回和預估兩個階段進行優化。在召回階段,我們設計了多級別特徵組合召回,使用者冷啟動從定義上來說缺失使用者的歷史行為,但我們也總能通過產品機制調整、外部合作獲得使用者一定的基礎資訊;同時結合使用者所處情境對這些特徵進行組合,匹配不同特徵組合的內容候選集得到初步有效的召回結果。
美圖個性化推薦的實踐與探索圖 13

在預估階段,使用服務端日誌、客戶端資訊以及第三方資料做特徵工程,提取使用者特徵(比如性別、年齡、職業)、情境特徵(比如時間、位置、網路)和視訊特徵(比如標籤、型別、音樂)。基於這些特徵以及對應生成樣本再進行模型訓練,我們的模型訓練會預估三個目標,即點選率、時長和留存率,並進行非線性的組合,對內容綜合排序,最終呈現給使用者。基於上述兩個階段的優化,新增使用者留存率有了大幅度的提升。

內容冷啟動

內容冷啟動也是一個經典的E&E問題(Exploration & Exploitation),即對新內容和舊內容如何選擇與權衡的問題。在做精準推薦時,是對舊內容進行有效挖掘的過程,但對於新內容而言,如果未能利用有效的方式將其曝光,那麼我們的演算法就無法挖掘到新的優質內容,無法形成一個健康的內容生態。

美圖個性化推薦的實踐與探索圖 14對於新內容而言,其轉化率、點選率等效用函式的變化較不穩定,因此它的後驗方差會比較大;而對於舊內容,對它的評估是比較穩定的,其後驗方差比較低。換言之,對於新內容效用的預估偏差比較大,而對於舊內容的評估是比較穩定合理。針對這樣的新舊內容該如何去選擇?這就是經典的E&E問題、多臂老虎機問題(MAB)。

  • UCB

假設每個老虎機的中獎概率服從二項分佈,在每次選擇老虎機時,對中獎概率進行假設檢驗並得到置信區間,然後選擇置信區間上界最高的一臺老虎機;

  • Thompson取樣

假設每臺老虎機的中獎概率都服從β分佈,在選擇時對每臺老虎機的中獎概率進行去擬合β分佈,然後再從β分佈中隨機取樣一個點作為此老虎機的預估分,最後選擇預估分最高的一臺老虎機。

美圖個性化推薦的實踐與探索圖 15為了解決內容冷啟動問題,可將平臺流量分成三部分:隨機Explore、個性化Explore和個性化Exploit。其中,最大的一部分是個性化Exploit,即通過各種推薦模型,對內容進行有效的精準推薦。隨機Explore和個性化Explore則是針對新內容的探索。此處需要關注兩點:首先要根據場景和業務設計合理的流量比例;其次要結合業務目標對業務上的流量效用進行量化,如點選率、播放完整度、時長等。 

美圖個性化推薦的實踐與探索圖 16當新內容產生時,經過MAB Score計算,再進行一定的過濾,當它進入到探索候選池裡,再進行隨機召回,召回成功之後會有對應的排序和展示。當一個新內容得到曝光之後,需要收集它的使用者行為反饋以更新MAB Score。過程中,會過濾曝光次數達到一定上限的內容(我們認為它已經是舊內容),也會過濾MAB Score較低的內容,從而形成整個隨機Explore的閉環。

美圖個性化推薦的實踐與探索圖 17個性化Explore相比於隨機Explore在新內容產生時,會先利用視覺演算法對內容進行分類,視覺分類就是把新內容進行基礎的特徵提取,歸類到某個類目榜單裡。接著,結合視覺分類和MAB Score維護動態的類目榜單,最後再結合類目榜單和使用者實時偏好進行基於內容的召回。同樣的,在召回之後,將收集到的使用者的行為反饋用於更新MAB Score和類目榜單。這就是基於內容召回的個性化Explore流程。

美圖個性化推薦的實踐與探索圖 18


內容多樣性

多樣性、準確性以及新穎性是衡量推薦系統效果非常重要的三個指標。同時最大化這三個指標從而給使用者帶來驚喜,使得使用者在平臺上留存,是推薦系統的一個終極目標。但在實際情況下,這三個指標往往需要權衡取捨,例如在大多數情況下,提升準確性的同時,推薦多樣性指標可能會降低。因此,我們將問題簡化,對多目標問題進行重新建模,在保證一定的多樣性和新穎性約束的前提下最大化推薦準確性。

那麼,如何保證推薦多樣性呢?首先要定義什麼內容是一樣的,從而知道什麼內容是不一樣的。我們可以通過運營對視訊打標籤、通過視覺演算法進行視覺分類,而上述幾種方法都依賴先驗的類目體系,往往無法精確匹配使用者時刻變化的細粒度興趣點。一個UGC平臺,其重要特性之一就是內容形態快速更新,有各種各樣的創意會發展成小眾類別,再從小眾類別迅速發展成一個新類別,那麼這種基於經驗知的有監督方法是無法及時響應變化的,因此考慮利用使用者行為序列對內容聚類。

內容聚類

美圖個性化推薦的實踐與探索圖 19在基於使用者行為序列的內容聚類中,假設使用者對於興趣點會產生其行為序列,假設某個使用者喜歡小鮮肉和舞蹈,那麼基於這個興趣點,他便會觀看較多小鮮肉跳舞的視訊。這個問題可以類比文字領域的Topic Model問題,當作者寫文章時,需要先確定文章主題,再基於主題確定文章中使用到的詞。

而對使用者興趣進行建模,我們採用LDA的方法將使用者類比為一篇文章,使用者行為序列裡的內容類比為文章裡的詞,那麼可以對內容直接利用LDA模型進行聚類,從而匹配到使用者興趣。基於這樣的假設,可以採用word2Vec對內容生成向量再進行聚類,也可以基於LDA的深化版本DSSM模型來對內容生成向量。如圖19右側所示,是DSSM方法的網路結構圖。

展望 

美圖個性化推薦的實踐與探索圖 20未來美圖希望能夠挖掘更多的場景,為使用者提供更多的個性化服務,從而全面提升使用者的產品體驗。我們也希望能夠通過個性化的迭代與內容生態變化進行推演,從而更全面地優化內容生態,同時通過建設更深層次的模型進行精準推薦,從有監督的學習模型訓練向強化學習的方法轉變,進而預估推薦演算法的期望收益,大幅度提升使用者體驗。

相關文章