摘要:美圖的推薦流程分為如下三個階段召回階段推薦的本質是給不同的用戶提供不同的內容排序。美圖的用戶數量逐步增長,而每個用戶的興趣點隨著場景時間也在同步發生變化。
互聯網技術將我們帶入了信息爆炸的時代,面對海量的信息,一方面用戶難以迅速發現自己感興趣的信息,另一方面長尾信息得不到曝光。為了解決這些問題,個性化推薦系統應運而生。美圖擁有海量用戶的同時積累了海量圖片與視頻,通過推薦系統有效建立了用戶與內容的連接,大幅度提升產品的用戶體驗。總覽
美圖個性化推薦主要應用于美拍APP,應用場景如下:
場景一:美拍直播,實時的在線個性化排序業務;
場景二:美拍熱門(即美拍首頁),典型的Feed流產品,用戶可在熱門Feed流中不斷翻頁滾動,探索和消費自己可能感興趣的內容;
場景三:播放詳情頁下的“猜你喜歡”模塊,用于推薦相似視頻。
個性化推薦的目標是連接用戶與內容、提升用戶體驗和優化內容生態。為了實現以上目標,算法需要理解內容,了解平臺上可用于推薦的內容;同時也要理解用戶,了解用戶的興趣愛好,從而進行精準推薦。
理解內容理解內容,即內容的特征提取。美拍APP的內容是短視頻,其特征可分為四部分:
基礎特征,即視頻的時長、分辨率、標簽等基礎屬性;
視覺特征,即通過視覺算法,對人物的性別、顏值、年齡、身高,對視頻的場景、對象等進行識別;
文本特征,美拍短視頻有封面文字、標題、評論等文本信息,可以通過這些文本信息進行文本挖掘,提取一些關鍵字、topic、情感極性等文本特征;
交互特征,是用戶與內容進行行為交互的產物,用戶可以對某些內容進行點贊、評論、分享、播放等行為,通過對這些交互數據進行統計分析得到交互特征。
理解用戶對內容有一定理解之后,則要進一步理解用戶,從而連接用戶與內容。理解用戶就是我們常說的用戶畫像建設,建設用戶畫像需要了解用戶的自然屬性,如用戶的性別、年齡、所在城市;社會屬性,如職業、婚姻狀況等;以及最重要的興趣屬性,除了了解用戶在平臺上的興趣和偏好,也要盡可能去探索用戶在平臺之外的興趣愛好(打游戲、逛淘寶等)。
推薦流程基于對內容和用戶的理解可進行精準推薦。美圖的推薦流程分為如下三個階段:
召回階段
推薦的本質是給不同的用戶提供不同的內容排序。美拍APP上有數十億個短視頻,面對如此龐大的量級我們無法對用戶計算所有內容的排序。通過統計召回、簡單模型、圖計算等篩選方式將內容的數量級降到幾千至幾百之后可以得到初步的推薦結果;
預估階段
利用機器學習模型、結合超高維度和精細化的特征,以“用戶-情境-物品”三個維度聯合建模,得到預估模型,再對不同的目標進行預估;
排序階段
在對目標進行預估之后,要對內容進行排序,從而決定可觸達用戶的排序。排序階段會結合新穎性、多樣性、準確性三個方面進行綜合排序,最終將推薦結果呈現給用戶。
在召回階段,我們已經實施了基于熱度、趨勢、協同過濾、用戶畫像、內容、情境和社交關系等一系列召回方式,同時也實踐了基于深度學習的召回方法。在預估階段,較成熟的有大規模離線特征+LR、連續特征+GBDT,也實踐了NFM、DCN等深度學習預估模型。
基于上述的推薦流程,推薦的整體架構如下圖所示:
OFFLINE
主要是離線處理流程,對數據進行收集,并從數據出發進行數據清洗、數據標注、特征工程、模型訓練、模型評估,最后生成離線特征、離線召回模型和離線排序模型;
NEARLINE
主要是對實時的數據流進行處理,通過獲取實時日志,對數據流進行統計、效果監控、反作弊處理、特征更新以及對模型的增量訓練,最終得到實時的召回模型和排序模型;
ONLINE
即引擎部分,對流量分流后進行召回、融合、排序,最終將推薦結果返回給應用端。
推薦時效性
天下武功,唯快不破。美圖的用戶數量逐步增長,而每個用戶的興趣點隨著場景、時間也在同步發生變化。平臺上新的內容源源不斷,一個好的內容型產品往往不會錯過任何熱點。隨著大環境的變化,推薦時效性顯得尤為重要,對此推薦效果的提升也有很大優化空間。
召回時效性
如圖7所示,首先建立一個實時更新的相似視頻(I2I)索引;當用戶播放視頻或對其產生有效行為后,利用此索引,得到對應視頻的相似視頻進行召回。同時通過收集并分析用戶的實時行為,計算用戶對不同內容類型的實時偏好,并實時獲取用戶對應偏好類型的實時榜單內容, 從而獲得實時召回的結果;
在引擎部分會融合實時及非實時的召回,并進行預估排序,最終將推薦結果綜合呈現給用戶。
預估時效性
假設預估模型多天內不更新,其離線評估效果的變化情況如下圖所示。很明顯,預估模型從第二天開始就有大幅度的效用下降,大概一周內會下降至66%左右。根據該圖表可以看出,預估的時效性會隨著時間迅速下降,所以在預估的時效性上有很大的優化空間。
為了優化預估時效性,我們選擇了在線學習。如下圖所示,以訓練LR模型為例,左上是LR模型的預估方程和損失函數,在復雜的線上環境中,樣本輸入是隨機的,即今后計算的方向以及步長也是隨機的,實現在線學習可以簡單采用在線梯度下降方式,但是選擇這種簡單的優化方式會造成模型更新的不穩定性和模型效用的不穩定性;同時簡單的梯度更新方式會使得模型從舊樣本學習到的有效信息被遺忘。
FTRL則是一種生成解析解的更新方式,詳見左下的方程式,其中有四個項,第一個項保證參數隨著梯度方向進行更新;第二個項保證模型的穩定性,使得每次更新的結果不會遠離之前的結果;第三、四個項是常見的L1和L2正則約束;如圖9右側所示,為更新過程的偽代碼。
如下圖所示,基于上述FTRL的在線學習方法,我們設計了實時特征與在線學習的流程與架構。 Arachnia收集到日志之后,FeatureServer通過Kafka組件獲取到實時日志,進行實時特征計算更新特征。TrainServer還會收集用戶不同行為的日志,分正負樣本,得到原始樣本,再將原始樣本與FeatureServer進行交互,索引到對應的特征列表,拼裝成模型訓練可以直接應用樣本,供模型進行更新。
我們設計基于Parameter Server架構的模型更新,模型更新階段從Parameter Server獲取模型參數,對樣本進行預估,計算參數的更新,并將更新結果回流到Parameter Server中。由于在復雜的線上環境中,不同行為的日志可能會產生不同程度的延遲,比如在短時間內都是正樣本或負樣本,這種情況下在線學習的穩定性會受到傷害。因此我們設計了Balance Cache,控制不同行為日志的消費速度使得樣本的正負比例保持穩定。通過這樣的架構設計,模型更新及特征更新都實現了秒級別更新。
推薦冷啟動冷啟動問題分為用戶冷啟動和內容冷啟動。用戶冷啟動顧名思義就是指當新用戶來到平臺時無相關的歷史行為,而傳統的推薦算法都是采用基于行為的模型,因此無法做出有效的推薦。同理,內容冷啟動是指當新內容產生時,它還未在平臺上進行有效的流量驗證,新內容的精準分發也是一個值得探討的問題。
用戶冷啟動
一個內容型平臺的用戶冷啟動目標是將新增用戶轉化為消費用戶,進而轉化為留存用戶。為了將新增用戶轉化成消費用戶,需要匹配該用戶的興趣類型,進而推薦相關的內容,且推薦的內容要具有吸引眼球的能力,使用戶能夠在該內容上進行消費。
而吸引用戶對內容進行消費的同時,要求推薦的內容具有一定的質量,能夠使得用戶在內容上進行互動并認可消費過的內容,從而轉化為留存用戶。
對于用戶冷啟動問題,也需要在召回和預估兩個階段進行優化。在召回階段,我們設計了多級別特征組合召回,用戶冷啟動從定義上來說缺失用戶的歷史行為,但我們也總能通過產品機制調整、外部合作獲得用戶一定的基礎信息;同時結合用戶所處情境對這些特征進行組合,匹配不同特征組合的內容候選集得到初步有效的召回結果。
在預估階段,使用服務端日志、客戶端信息以及第三方數據做特征工程,提取用戶特征(比如性別、年齡、職業)、情境特征(比如時間、位置、網絡)和視頻特征(比如標簽、類型、音樂)。基于這些特征以及對應生成樣本再進行模型訓練,我們的模型訓練會預估三個目標,即點擊率、時長和留存率,并進行非線性的組合,對內容綜合排序,最終呈現給用戶。基于上述兩個階段的優化,新增用戶留存率有了大幅度的提升。
內容冷啟動
內容冷啟動也是一個經典的E&E問題(Exploration & Exploitation),即對新內容和舊內容如何選擇與權衡的問題。在做精準推薦時,是對舊內容進行有效挖掘的過程,但對于新內容而言,如果未能利用有效的方式將其曝光,那么我們的算法就無法挖掘到新的優質內容,無法形成一個健康的內容生態。
對于新內容而言,其轉化率、點擊率等效用函數的變化較不穩定,因此它的后驗方差會比較大;而對于舊內容,對它的評估是比較穩定的,其后驗方差比較低。換言之,對于新內容效用的預估偏差比較大,而對于舊內容的評估是比較穩定合理。針對這樣的新舊內容該如何去選擇?這就是經典的E&E問題、多臂老虎機問題(MAB)。
UCB
假設每個老虎機的中獎概率服從二項分布,在每次選擇老虎機時,對中獎概率進行假設檢驗并得到置信區間,然后選擇置信區間上界最高的一臺老虎機;
Thompson采樣
假設每臺老虎機的中獎概率都服從β分布,在選擇時對每臺老虎機的中獎概率進行去擬合β分布,然后再從β分布中隨機采樣一個點作為此老虎機的預估分,最后選擇預估分最高的一臺老虎機。
為了解決內容冷啟動問題,可將平臺流量分成三部分:隨機Explore、個性化Explore和個性化Exploit。其中,最大的一部分是個性化Exploit,即通過各種推薦模型,對內容進行有效的精準推薦。隨機Explore和個性化Explore則是針對新內容的探索。此處需要關注兩點:首先要根據場景和業務設計合理的流量比例;其次要結合業務目標對業務上的流量效用進行量化,如點擊率、播放完整度、時長等。
當新內容產生時,經過MAB Score計算,再進行一定的過濾,當它進入到探索候選池里,再進行隨機召回,召回成功之后會有對應的排序和展示。當一個新內容得到曝光之后,需要收集它的用戶行為反饋以更新MAB Score。過程中,會過濾曝光次數達到一定上限的內容(我們認為它已經是舊內容),也會過濾MAB Score較低的內容,從而形成整個隨機Explore的閉環。
個性化Explore相比于隨機Explore在新內容產生時,會先利用視覺算法對內容進行分類,視覺分類就是把新內容進行基礎的特征提取,歸類到某個類目榜單里。接著,結合視覺分類和MAB Score維護動態的類目榜單,最后再結合類目榜單和用戶實時偏好進行基于內容的召回。同樣的,在召回之后,將收集到的用戶的行為反饋用于更新MAB Score和類目榜單。這就是基于內容召回的個性化Explore流程。
內容多樣性多樣性、準確性以及新穎性是衡量推薦系統效果非常重要的三個指標。同時最大化這三個指標從而給用戶帶來驚喜,使得用戶在平臺上留存,是推薦系統的一個終極目標。但在實際情況下,這三個指標往往需要權衡取舍,例如在大多數情況下,提升準確性的同時,推薦多樣性指標可能會降低。因此,我們將問題簡化,對多目標問題進行重新建模,在保證一定的多樣性和新穎性約束的前提下最大化推薦準確性。
那么,如何保證推薦多樣性呢?首先要定義什么內容是一樣的,從而知道什么內容是不一樣的。我們可以通過運營對視頻打標簽、通過視覺算法進行視覺分類,而上述幾種方法都依賴先驗的類目體系,往往無法精確匹配用戶時刻變化的細粒度興趣點。一個UGC平臺,其重要特性之一就是內容形態快速更新,有各種各樣的創意會發展成小眾類別,再從小眾類別迅速發展成一個新類別,那么這種基于經驗知的有監督方法是無法及時響應變化的,因此考慮利用用戶行為序列對內容聚類。
內容聚類
在基于用戶行為序列的內容聚類中,假設用戶對于興趣點會產生其行為序列,假設某個用戶喜歡小鮮肉和舞蹈,那么基于這個興趣點,他便會觀看較多小鮮肉跳舞的視頻。這個問題可以類比文本領域的Topic Model問題,當作者寫文章時,需要先確定文章主題,再基于主題確定文章中使用到的詞。
而對用戶興趣進行建模,我們采用LDA的方法將用戶類比為一篇文章,用戶行為序列里的內容類比為文章里的詞,那么可以對內容直接利用LDA模型進行聚類,從而匹配到用戶興趣。基于這樣的假設,可以采用word2Vec對內容生成向量再進行聚類,也可以基于LDA的深化版本DSSM模型來對內容生成向量。如圖19右側所示,是DSSM方法的網絡結構圖。
展望未來美圖希望能夠挖掘更多的場景,為用戶提供更多的個性化服務,從而全面提升用戶的產品體驗。我們也希望能夠通過個性化的迭代與內容生態變化進行推演,從而更全面地優化內容生態,同時通過建設更深層次的模型進行精準推薦,從有監督的學習模型訓練向強化學習的方法轉變,進而預估推薦算法的期望收益,大幅度提升用戶體驗。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/19818.html
摘要:月日下午,七牛云美圖共享日在廈門舉行,來自七牛云美圖廈門大學羅普特等眾位大咖齊聚一堂。七牛云美圖共享日精華語錄計算機識別是按照具體問題具體分析,具體場景具體分析。又稱小牛匯共享日,是小牛匯舉辦的第一個系列活動。 時間機器、穿越星際的宇宙飛船、飛行汽車,幾乎每一部科幻電影作品中都能發明點新東西。超現實技術在引起人們陣陣贊嘆的同時,也在激勵著人們思考如何將不可能變成可能。而在我們的生活當中...
摘要:近日,在個推技術沙龍深圳站,來自華為個推的技術大拿們在現場,對核心技術進行了深入的探討。最后,個推還支持了部署發布的工具,讓訓練的成果能夠通過標準化的方式導出到線上,進行服務部署,真正地在線上產生價值。 人工智能技術的飛速發展給各行各業都帶來了深遠的影響,AI已被視為企業提升運營效能、應對市場競爭的必經之路。然而對于一些企業而言,讓AI真正實現落地和應用,并且創造價值,仍是一件需要努力...
閱讀 2410·2021-11-16 11:44
閱讀 848·2021-09-10 11:16
閱讀 2223·2019-08-30 15:54
閱讀 1042·2019-08-30 15:53
閱讀 1893·2019-08-30 13:00
閱讀 615·2019-08-29 17:07
閱讀 3509·2019-08-29 16:39
閱讀 3134·2019-08-29 13:30