就其運營規(guī)模而言,TikTok 推薦系統(tǒng)被廣泛認為是世界上最好的推薦系統(tǒng)之一。 它可以推薦視頻或廣告,甚至其他大型科技公司也無法競爭。 在 TikTok 這樣的平臺上進行推薦很困難,因為訓練數(shù)據(jù)是非平穩(wěn)的,用戶的興趣可能在幾分鐘內發(fā)生變化,而且用戶、視頻和廣告的數(shù)量不斷變化。
社交媒體平臺上的推薦系統(tǒng)的預測性能在幾個小時內就會惡化,因此需要盡可能頻繁地更新。 TikTok 構建了一個流引擎,以確保模型以在線方式持續(xù)訓練。 模型服務器生成模型的特征來推薦視頻,作為回報,用戶與推薦的項目進行交互。 此反饋循環(huán)會產生立即發(fā)送到訓練服務器的新訓練樣本。 訓練服務器保存模型的副本,模型參數(shù)在參數(shù)服務器中更新。 每分鐘,參數(shù)服務器都會將自身與生產模型同步。
推薦模型的大小為幾 TB,因此通過網(wǎng)絡同步如此大的模型非常慢。 這就是模型僅部分更新的原因。 非平穩(wěn)(概念漂移)的主要原因來自于嵌入表表示的稀疏變量(用戶、視頻、廣告等)。 當用戶與推薦的項目交互時,僅與用戶和項目關聯(lián)的向量以及網(wǎng)絡上的一些權重得到更新。 因此,只有更新后的向量會以分鐘為單位進行同步,而網(wǎng)絡權重會在較長的時間范圍內進行同步。
典型的推薦系統(tǒng)使用固定的嵌入表,并且稀疏變量的類別通過哈希函數(shù)分配給向量。 通常,哈希大小小于類別數(shù),并且多個類別會分配給同一向量。 例如,多個用戶共享相同的向量。 這使我們能夠處理新用戶的冷啟動問題,并且它對整個表將使用的最大內存進行了限制。 但這也往往會降低模型的性能,因為用戶行為會被混淆。 相反,TikTok 使用動態(tài)嵌入大小,以便新用戶可以添加到他們自己的向量中。 他們使用無沖突哈希函數(shù),因此每個用戶都可以獲得自己的向量。 低活動用戶不會對模型性能產生太大影響,因此他們會動態(tài)刪除那些低出現(xiàn)率的 ID 以及過時的 ID。 這使得嵌入表很小,同時保持了模型的質量。
科技行業(yè)的每個人都在等待 TikTok 公布其推薦系統(tǒng)實施情況,以便從中學習。 我的猜測是,許多科技公司在 TikTok 論文發(fā)表時仔細研究了它,并開始實現(xiàn)自己的版本:“Monolith:具有無碰撞嵌入表的實時推薦系統(tǒng)”! 您可以在他們的 GitHub 上找到開源版本:https://github.com/bytedance/monolith。
審核編輯:黃飛
-
服務器
+關注
關注
12文章
9017瀏覽量
85182 -
推薦系統(tǒng)
+關注
關注
1文章
43瀏覽量
10073 -
TikTok
+關注
關注
2文章
213瀏覽量
7215
原文標題:為什么TikTok的推薦系統(tǒng)這么好?
文章出處:【微信號:計算機視覺芯片設計,微信公眾號:計算機視覺芯片設計】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論