Facebook首次揭秘:超過10億用戶使用的Instagram推薦算法是怎樣煉成的?
- 2019 年 11 月 29 日
- 筆記
來源:Venturebeat
編輯:大明
【新智元導讀】目前,每年約有5億用戶通過Instagram的自建推薦功能搜索和發現自己喜歡的內容,其背後的推薦引擎是怎樣煉成的呢?近日,Facebook發表博客文章,首次對這個名為Explore的推薦引擎的原理和機制進行全方位揭秘,一起來看看!來 新智元AI朋友圈 和AI大咖們一起討論吧。
在目前Instagram大約10億用戶中,超過一半的人每月都通過Instagram Explore來搜索視頻、圖片、直播和各種文章。可以預見,為這些用戶構建服務基礎的推薦引擎,需要負責整理上傳到Instagram的數十億條內容,這是個工程上的大難題,尤其是這些內容還是實時生成的。
在近日發表的一篇博客文章中,Facebook首次揭開了Explore內部的運行機制。Facebook稱,Explore是個由三部分組成分級漏斗,使用自定義查詢語言和建模技術,目前已提取了650億個特徵,每秒可以做出9000萬次模型預測。而且,這些還只是冰山一角。
10億用戶使用的推薦工具,背後有着怎樣的奧秘?
在開始構建內容推薦系統之前,開發團隊已經使用大量工具進行了大規模實驗,並獲得關於用戶關注興趣的強烈信號。研究人員使用的首款工具是IGQL,這是一種元語言,能夠提供對候選算法進行集中聚合所需的概要信息。
Facebook表示,經C++優化的IGQL可在不犧牲可擴展性的情況下最大程度地降低延遲,減少計算資源的消耗。工程師能夠以「類似Python」的方式編寫推薦算法,並補充了帳戶嵌入組件,可以識別局部高度相似的配置文件,並將其作為帳戶級信息的檢索流程的一部分。

上圖:ig2vec預測賬戶內容相似性的功能演示
Ig2vec框架將用戶與之交互的Instagram帳戶視為句子中的單詞序列,通知用戶可能與之交互的模型預測。(與隨機帳戶相比,會話中進行交互的一系列帳戶在局部上的連貫性更高。)同時,Facebook的AI會搜索最近鄰域檢索庫(FAISS)來查詢數百萬個帳戶進行訓練。
Facebook表示,在Explore中基於興趣對賬戶進行排名,需要預測與每個賬戶相關度最高的內容,生成輕量級排名提煉模型,該模型在將候選賬戶傳遞給更複雜的排名模型之前,會對賬戶進行預選。利用較複雜模型的特徵和輸出的候選輸入的知識,較簡單的模型會嘗試通過直接(和間接)學習來儘可能近似主排名模型。
Explore架構和運行機制
Explorer運行包括兩個階段:候選內容生成階段(也稱為「採購」階段)和排名階段。
在生成階段,Explore會挖掘用戶以前與之交互過的帳戶,以識別感興趣的「種子帳戶」。這些賬戶只是興趣相同的帳戶的一小部分,但與「興趣相同」賬戶篩選結合使用,可以更高效地識別局部相似的帳戶。
了解可能吸引用戶的帳戶是哪些,這是確定哪些內容可能會被篩選出來的第一步。IGQL允許將不同的候選內容源表示為不同的子查詢,這樣Explore就可以在多種類型的內容源中為普通人找到成千上萬的合格候選內容。

上圖所示為一個典型的Explore推薦內容源
為了確保推薦內容的安全,適合所有年齡段的用戶,系統利用信號來過濾可能不符合要求的內容。在為每個用戶建立推薦列表之前,會由算法進行檢測,過濾垃圾郵件和其他內容。
根據Facebook最新的社區標準執行報告的內容,這套過濾系統非常有效。在2019年第三季度,Facebook刪除了涉及自殘內容數量達到84.5萬條,其中主動檢測到79.1%,在過去四個季度中,Facebook刪除了超過99%的兒童裸體色情內容和剝削職位。
對於每個「explore」排名請求,系統將從數千個採樣樣本中選擇500個候選,並將結果送至排名階段(即上文所說的第二階段)。這個階段由三部分的基礎架構組成,旨在實現內容相關度和計算效率的平衡。
在排名階段的第一階段,濾過模型以最少的特徵數量模擬其他階段的組合。它從500個最優質和最相關的候選內容中選出1個,然後,具有完全密集特徵集的模型(第二階段)會選擇前50個候選內容。最後,另一個具有全特徵的模型將選擇25個最佳候選內容,這些候選內容將填充至「explore」網格中。

上圖:當前最終通過模型架構的圖示
有時,首次濾過模型會按照內容排名順序模仿其他兩個階段的模型。這是個修補程序,實際是一種多任務,多層算法,可以預測人們可能對相關內容做出的行為。
比如點「喜歡」或「收藏」之類的「積極」行為,以及點「不再查看這類內容」等「消極」行為。算法會使用值模型公式進行預測,以獲取行為的集中程度,然後加權和確定用戶行為的重要程度,比如「保存」帖子和「喜歡」帖子的重要性孰高孰低。
為了在新內容和現有內容之間保持「豐富的平衡」,Explore團隊制定了一條規則,以促進內容多樣性:添加懲罰因子,這一規則降低了來自同一作者或種子帳戶的帖子的排名,因此用戶不會在資源管理器中看到來自同一個人或同一種子帳戶的多個帖子。
Facebook表示:「我們以代際方式根據每個排名候選內容的終值模型得分,對相關度最高的內容進行排名。」Explore的最激動人心的部分之一是尋找新的有趣方式來幫助社區發現Instagram上最有趣和最相關的內容。我們還在不斷繼續開發Instagram Explore。無論是添加新格式的媒體,還是不同主題的帖子(比如購物帖),都是很有趣的體驗。」
參考鏈接: