前幾天有消息爆出 推特發布源代碼 對於集合 “推薦算法”, 其中包括用於創建在啟動時間線中向用戶顯示的推薦消息提要的服務和驅動程序。
除了提供透明度並允許對所使用的算法進行獨立審計外, 推特已表示願意接受拉取請求 來自社區的改進算法的更改,經過審查後,可以轉移到 Twitter 的工作代碼庫。
在 Twitter 2.0 中,我們認為,作為互聯網上的公共廣場,我們有責任使我們的平台透明化。 因此,今天我們邁出了邁向透明新時代的第一步,向全球社區開放了我們的大部分源代碼。
關於發布的代碼, 提到創建一個feed of recommendations分為三個階段 主:
- 從不同來源提取最佳推文 (候選採購)。 在此階段,以下內容用作來源: 搜索索引索引系統,涵蓋來自訂閱者(網絡內)的消息; 一個 cr-mixer 層,用於從各種輔助服務中提取消息,包括來自未訂閱者(網絡外部)的消息; user-tweet-entity-graph (UTEG) 組件,用於根據當前用戶交互圖提取消息; Recommendation Tracking Service (FRS) 根據被跟踪用戶的活動生成推薦。 在提要中,大約一半的帖子來自訂閱者。
- 所選推文的分類 使用機器學習模型。 使用了兩個排名系統:一個使用搜索索引的輕排名模型,以及一個用於選擇最相關候選人的重排名神經網絡。
- 應用過濾器和啟發式方法來丟棄消息 被屏蔽、淫穢或已經看過。 home-mixer 組件用於形成提要,可見性過濾系統用於過濾。 此外,用於從搜索索引中提取推文的舊 timelineranker 系統已開放編碼。
Twitter 推薦的基礎是一組核心模型和功能,它們從推文、用戶和參與數據中提取潛在信息。 這些模型旨在回答有關 Twitter 網絡的重要問題,例如“您將來與其他用戶互動的可能性有多大?” 或“Twitter 上的社區是什麼,其中的熱門推文是什麼?” 準確回答這些問題可以讓 Twitter 提供更相關的推薦。
除此之外, 輔助組件的代碼也高亮顯示 這也是開放的:
- simclusters-ann:用於定義具有相似興趣的社區。
- 雙核:這具有創建關於用戶和推文(訂閱者、用戶選擇的推文、廣告點擊)的知識圖譜的功能。
- 信任和安全模型:用於識別不當、淫穢和冒犯性內容的模型。
- 實圖:是預測不同用戶之間交互的模型。
- 推特 :一種根據用戶帖子的鏈接(Page-Rank)計算用戶聲譽的算法。
recos 噴油器: 是為 GraphJet 服務生成輸入的事件流控制器。 - 圖特征服務:圖表函數可以估計兩個用戶的交互,例如用戶“A”對用戶“B”的推文的讚賞程度。
- 船: 是用於處理機器學習模型的高性能服務器(用 Rust 編寫)。
- 產品混合器:具有來自不同來源的內容的提要生成器。
- TWML: 是一個舊的機器學習框架(TensorFlow v1 的分支)。
值得一提的是 源代碼在 AGPLv3 許可下開放. 實施使用了編程語言 Scala (53,8%)、Java (29,7%)、Starlark (6,3%)、Python (4,7%)、C++ (2,4%) 和 Rust (1,5%)。
與 Twitter 上使用的機器學習模型相關的代碼發佈在單獨的存儲庫中(出於安全和隱私原因,模型本身未發布)。 用於生成廣告推薦的組件也仍未發布。
如果你是 有興趣能夠更多地了解它, 您可以在中查看詳細信息 以下鏈接。