圖片來源: 

GitHub

在馬斯克接掌推特5個月後,這家社群平臺終於如承諾的,於上周開源其推文推薦演算法。

推特平臺上眾多顯示內容都有演算法在底層運作,包括搜尋、探索及廣告。昨日推特只針對「為你推薦」時間軸的推薦演算法運作方式做出說明

每天推特從平臺5億則推文篩選出特定推文,顯示在用戶「為你推薦」時間軸中。這個推薦流程(pipeline)包含三個步驟:首先從名為「候選來源」(candidate sources)的貼文來源抓取內容,再以機器學習模型將抓到的推文排序。第三步是運用啟發式(heuristics)演算法和篩選條件,將用戶封鎖、防火牆規則不允許,以及已經讀過的貼文過濾掉。

負責組成並將推文提供給用戶的服務稱為Home Mixer,它是以推特自製Scala框架Product Mixer為基礎開發,Hom Mixer是推送貼文的骨幹,串連不同推文來源、評分、演算法及篩選器。

推文的候選來源包括來自用戶追蹤的用戶(In-Network)及未追蹤的用戶(Out-of-Network),在「為你推薦」中平均各占50%的內容。在In-Network中,推文根據名為Real Graph的邏輯回歸模型做出相關性排序。這個模型能預測用戶和他追蹤的人的互動並給予評分,分數愈高者愈容易被加入推薦。推特2月停用散發(Fanout)服務,原因在它的故障導致馬斯克推文觸及率下降,該公司也正在改寫上一次改版是好幾年前的邏輯回歸排序模型。

至於在Out-of-Network,則是從用戶未追蹤的人的貼文中選擇用戶可能感興趣的,送入「為你推薦中」。這包含2種方法。第一是社交圖譜(Social Graph),它分析用戶追蹤的人或有相同興趣的人讀取的貼文。為此他們開發了GraphJet圖表處理引擎,可建立用戶和推文的即時互動圖表,執行這類遍歷(traversal)行為,導入推文。不過這部份只占了用戶首頁時間軸15%的推文,更大部分是來自嵌入空間(embedding space)方法所引進。

嵌入(embeddings)是一種機器學習模型訓練方法,它將使用者的興趣和推文內容以向量長度表示,一方面降低維度,同時捕獲關鍵特性,藉此推特可以計算二位用戶、二則推文或用戶與推文的相似度,判定相關性。推特最有用的表徵學習模型是SimClusters,它利用矩陣分解(matrix factorization)演算法出分解出以人或組織為中心的社群。推特上有1.45億個社群,這些社群小至數千人,大則數億人(例如知名運動員、明星或媒體),每個用戶都屬於1個以上的社群。推特將推文嵌入這些社群,一個社群中愈多人按讚的推文,表示愈相關,也能根據用戶所屬社群推向用戶。

一旦推特完成從In-Network和Out-of-Network選取推文後,就進入排序階段。這個過程是由一個已訓練過、參數多達4,800萬的神經網路,根據數千個特徵輸出10個標籤,並給予每則推文評分,加以排序。

最後,推特利用啟發式演算法及篩選器實作多個產品功能,這些功能最後產出了給用戶的推薦貼文。推特會過濾掉用戶封鎖或消音的帳號貼文、避免單一用戶連續多則貼文。若用戶曾給某則推文負面評價,評分會降低。Out-of-Network的推文若不包含第2級關聯人士者也會被剔除。推特也會提供原推文及回覆串、以及經過編輯的新版推文。

至此,推文推薦已經完成,推特再加入其他內容,包括廣告、推薦追蹤的帳號,以及教學提示等一同送給用戶。推特指出,這個流程每天執行將近50億次,平均不到1.5秒就完成。單一次執行需要220秒CPU時間,是推特App延遲性的將近150倍。

推特為求公開透明,將推薦演算法程式碼公開於GitHub用戶存取。推特還會開發其他透明化新功能,包括供創作者了解觸及率和互動的推特分析平臺、公開運用於推文及帳號的安全標籤、以及說明推文何以出現在用戶時間軸。

開源演算法是馬斯克去年4月首度提議以440億美元收購推特時的承諾。他主張為維續推特作為公開數位論壇角色,避免政治及公關勢力介入影響推文排序,計畫開源推特演算法以促進信任、打擊垃圾內容機器人(spambot)、假帳號,並且驗證所有用戶。推特已在去年改版Twitter Blue作為用戶驗證及開闢營收來源。

最後,推特公告正在擴展推薦系統功能,包括新的即時功能、嵌入、及用戶表徵(user representation)方法,為此公開徵才(careers@twitter.com)。

熱門新聞

Advertisement