?編譯 | 王瑞平
審校 | 云昭
3月的最后一天,推特的推薦算法終于在Github上開源了,馬斯克的承諾兌現(xiàn)了。
圖注:馬斯克在推特上表示,上周發(fā)布的是“大部分推薦算法”,并表示其余部分將在未來發(fā)布
按照馬斯克之前的承諾,上周,Twitter已在GitHub上發(fā)布了“時間軸上顯示哪些推文”的代碼,并發(fā)布了一篇博客文章闡述了具體細節(jié)。
博客文章特別深入介紹了推薦算法的工作原理。開源代碼的做法不僅幫助馬斯克兌現(xiàn)了承諾,還有助于增加用戶信任度、利于產(chǎn)品優(yōu)化改進。
1、Twitter的推薦算法
文章詳細描述了算法執(zhí)行的每一步,并介紹了推薦系統(tǒng)由許多相互關(guān)聯(lián)的服務和工作組成。雖然Twitter的很多區(qū)域都推薦推文(往往以搜索、探索、廣告的形式出現(xiàn)),但是,這篇文章主要介紹了For You時間軸上的推薦系統(tǒng)。
Twitter每時每刻都在為用戶提供來自世界各地的新聞。這就需要一種獨特的推薦算法,從每天發(fā)布的大約5億條推文中提煉出幾條最熱門的推文,最終顯示在設備的For You時間軸上。
具體來講,推薦的算法系統(tǒng)以一組核心模型和功能為基礎(chǔ),從Twitter、用戶和參與度數(shù)據(jù)中提取潛在信息。模型旨在回答關(guān)于Twitter網(wǎng)絡的重要問題,比如,“你未來與另一個用戶互動的概率是多少?”“Twitter上有哪些社區(qū),這些社區(qū)里有哪些熱門推文?”準確回答這些問題可以讓Twitter提供更相關(guān)的建議。
推文途徑主要由3個階段組成:第一個階段,系統(tǒng)會從不同的推薦源獲取最好的推文,這個過程稱為推薦源候選;第二個階段,系統(tǒng)會使用機器學習模型對每條推文進行排名;第三個階段,啟發(fā)式和過濾器開始執(zhí)行命令,例如,過濾來自已經(jīng)屏蔽的用戶的推文、不適合在上班時瀏覽的內(nèi)容和已看到的推文。
順便說一句,負責構(gòu)建和服務For You時間軸的服務系統(tǒng)叫做Home Mixer。它構(gòu)建在Product Mixer上,是自定義的Scala框架,可以方便地構(gòu)建內(nèi)容提要。該服務充當連接不同候選源、評分函數(shù)、啟發(fā)式和過濾器的軟件主干。
2、For You時間軸模型
模型的關(guān)鍵部分以在單個時間軸請求期間的調(diào)用順序開展,首先需要從Candidate Sources中檢索出候選源。
Twitter有幾個候選源,用來為用戶檢索最近的和相關(guān)的推文。對于每個用戶請求,系統(tǒng)試圖通過候選源從數(shù)億條推文中提取出最好的1500條推文。然后,從你關(guān)注的人(網(wǎng)絡內(nèi))和你不關(guān)注的人(網(wǎng)絡外)中尋找候選源。
具體來講,F(xiàn)or You時間軸可以讓用戶時間軸中大約有50%來自用戶關(guān)注的人(稱為“內(nèi)部網(wǎng)絡”)的推文,以及50%來自用戶沒有關(guān)注的“外部網(wǎng)絡”賬戶的推文。排名旨在“優(yōu)化積極參與(例如,點贊、轉(zhuǎn)推和回復)”,最后一步將試圖確保用戶不會看到太多來自同一個人的推文。
3、內(nèi)部與外部網(wǎng)絡消息源
下面再來具體介紹下上文提到的內(nèi)部與外部網(wǎng)絡消息源。內(nèi)部網(wǎng)絡消息源是最大的候選消息源,旨在提供你關(guān)注的用戶最新發(fā)布的最相關(guān)推文。它使用邏輯回歸模型根據(jù)你關(guān)注的推文的相關(guān)性有效地排名。排名靠前的推文會被送到下一個階段。
內(nèi)部網(wǎng)絡消息源最重要的組成部分是Real Graph(實數(shù)圖)。Real Graph是一種預測兩個用戶之間產(chǎn)生互動可能性的模型。用戶和推文作者之間的Real Graph得分越高,模型中就會包含更多他們的推文。
那么,什么是外部網(wǎng)絡消息源呢?眾所周知,在用戶所關(guān)注的網(wǎng)絡之外尋找相關(guān)推文是一項棘手的問題,原因是如果用戶不關(guān)注作者,怎么知道某條推文是否與其相關(guān)?Twitter采取了兩種方法解決這個問題。
系統(tǒng)根據(jù)這些問題的答案生成候選推文,并使用邏輯回歸模型對結(jié)果推文進行排名。
第二種方法是構(gòu)建嵌入空間,旨在回答系統(tǒng)關(guān)于內(nèi)容相似性的更普遍問題:哪些推文和用戶與我的興趣相似?
嵌入空間的工作原理是生成用戶感興趣和推文內(nèi)容的數(shù)字表達式。然后,用戶可以在這個嵌入空間中計算任意兩個用戶、推文或用戶-推文對之間的相似性。如果生成準確的嵌入,模型可以用這種相似性替代相關(guān)性消息。
例如,Twitter最有用的嵌入空間之一是SimClusters。SimClusters使用自定義矩陣分解算法,能夠發(fā)現(xiàn)由有影響力的用戶集群錨定的社區(qū)。目前,共有145000個社區(qū),每三周更新一次。社區(qū)的規(guī)模從個人朋友群的幾千用戶到新聞中出現(xiàn)的數(shù)億用戶不等,下圖展示出一些最大的社區(qū):
4、For You時間軸上的排行
下面再來介紹下推薦途徑的第二階段,即推文排名。For You時間軸上的排名是通過一個約48M參數(shù)的神經(jīng)網(wǎng)絡實現(xiàn)。該神經(jīng)網(wǎng)絡不斷地訓練推文交互,以優(yōu)化積極的參與度(例如,點贊、轉(zhuǎn)發(fā)和回復)。這種排名機制“考慮”數(shù)千個特征,并輸出10個標簽給每條推文打分。每個標簽代表用戶參與的概率,根據(jù)分數(shù)對推文進行排名。
5、將推文發(fā)送至設備
在排名階段之后,啟發(fā)式和過濾器能夠幫助優(yōu)化推文功能。這些功能共同創(chuàng)建出平衡和多樣化的推文質(zhì)量,包括:根據(jù)內(nèi)容和個人喜好過濾推文、避免同一作者連續(xù)發(fā)布過多推文、確保網(wǎng)絡內(nèi)和外的推文數(shù)量平衡。
Home Mixer將推文準備發(fā)送到終端設備。系統(tǒng)將推文與其它非推文內(nèi)容(如,廣告、關(guān)注推薦和登錄提示)混合在一起,這些內(nèi)容將返回到終端上顯示。至此,一個完整的推文過程就結(jié)束了。
6、Twitter未來的動作
未來,Twitter將以此為基礎(chǔ),不斷打造出更好的分析平臺,為創(chuàng)作者提供更多關(guān)于覆蓋面和參與度的信息。并且,用戶推文或賬戶上的任何安全標簽都會變得更透明。
為此,Twitter正在努力尋找新的機會擴展其推薦系統(tǒng),包括:新的實時功能、嵌入和用戶表示,旨在構(gòu)建出世界上最有趣的數(shù)據(jù)集和用戶基礎(chǔ)。但是,Twitter也將因此面臨來自開源社區(qū)的潛在競爭。
參考資料:
https://blog.twitter.com/engineering/en_us/topics/open-source/2023/twitter-recommendation-algorithm
https://www.theverge.com/2023/3/31/23664849/twitter-releases-algorithm-musk-open-source