百度推薦資源冷啟動實踐
一、內容冷啟動概念及挑戰
#百度Feed推薦是一個月活數億的綜合訊息流推薦平台。該平台涵蓋了圖文、影片、動態、小程式、問答等多種內容類型。它不僅提供類似單列或雙列的點選式推薦,還包括視訊沉浸式等多種推薦形式。同時,推薦系統是一個多利益方的系統,不只包含C端使用者體驗。內容生產者在推薦系統中扮演著重要的角色,百度Feed大量的活躍實踐者,每天生產大量的內容。
內容平台型推薦系統的本質是要做到多方共贏,對於用戶面:平台需要給用戶持續推薦優質、時鮮、多樣性的內容,吸引更多的使用者、貢獻較多的時長;對於作者側:使用者正向的激勵,促進作者生產更多優質的內容,相反,如果作者發布的優質、時鮮的內容得不到快速、足夠的曝光,作者會選擇退出平台,這不利於平台永續發展的。基於上述討論,可以提煉出幾個關鍵字:時鮮、優質、多元、作者發文、留存。這與本文要討論的內容冷啟動密切相關。首先要讓更多的資源獲得足夠的展現,透過收集更多內容的回饋,增加可以被系統推薦的內容量,進而能夠增加用戶消費資源的多樣性;其次,新資源快速起量,提升用戶的時鮮感,進而拉動大盤的長度、DAU、CTR;作者側,透過作者積極性的激發,提升活躍作者數和內容發佈量。
新資源冷啟動和常規推薦演算法之間存在一些不同之處。冷啟動所面臨的挑戰可以歸納為三個主要面向: 1. 資料稀缺性:新資源在初始階段往往沒有足夠的使用者行為資料來支援個人化推薦。這導致推薦演算法無法準確了
首先是精準推薦的挑戰。隨著過去十多年來推薦演算法的發展,從最初的矩陣分解到後來的深度學習的廣泛應用,ID類特徵在模型中的作用逐漸凸顯。然而,由於新資源冷啟動樣本量稀少至不存在,導致 ID類特徵在冷啟動樣本上的訓練不充分,從而影響了建議精準度。
第二,推薦系統普遍存在著馬太效應,即已經被用戶認可的資源更容易被推薦,從而得到更多的曝光和點擊,進一步鞏固其地位。反之,新資源很難獲得推薦,甚至可能被完全忽視。因此,推薦系統需要不斷優化,使其更加公平客觀。
最後,我們需要給新資源一定的冷開扶持,那麼如何更有效率、更公平的對新資源進行扶持?這裡引出公平性和公正性兩個概念,公平性指的是:每個內容產品在冷啟動初期都能獲得一定的曝光機會,都能有公平競爭的機會。公正性指的是:我們要體現優質內容的價值,內容的品質高低,要能影響冷開扶持的權重。所以在新資源上,如何在公平和公正之間尋找合適的平衡點,讓優質的資源脫穎而出,從而達到整體收益的最大化,也是一個很大的挑戰。
二、內容冷啟動演算法實作
1. 基於內容的冷啟
以下是新資源常用的召回手段,因為新資源與使用者互動的次數很少,傳統的i-to- i(item-to-item)和u-to-i(user-to-item)召回方法並不適用。因此,冷啟動主要依賴內容推薦方法。例如,基於最基本的使用者畫像、內容標籤和分類進行直接召回的方法,個人化程度較低,召回的準確性也相對較差。
其次隨著各大內容平台人格化屬性的作者越來越多,基於關注關係的冷啟動成為有效的方法。但關注較為稀疏,並不能滿足許多低粉絲量作者的發文;所以更進一步,透過演算法挖掘作者的潛在粉絲,來擴充基於關注冷啟的影響面。例如經常消費該作者但未關注的用戶,以及基於用戶-作者關注關係構圖,計算潛在關注關係。
另外,多模态召回也是一种有效的方法。随着跨模态、多模型、大模型技术的发展,在推荐系统中整合内容的各种模态信息,尤其是在冷启动推荐系统中效果显著。CLIP 是一种基于对比文本和图像的预训练方法,主要包含文本编码器和图像编码器两个模块,将文本和图像信息映射到相同的空间,对下游任务提供更好的帮助。直接使用该向量进行召回会存在一定问题,该向量代表的是内容先验信息,先验相似并不一定代表用户都会喜欢,我们需要将先验表示和推荐系统中基于行为数据学习到的后验表示关联起来。
具体的映射做法是基于已经分发充足的 embedding 和充分学习的资源,可以收集一些样本并将其作为标签用于训练投影网络。该投影网络将跨模态的先验表示映射到推荐系统的后验行为表示。这种方法的一个优势在于,无需增加任何模型,就可以无缝使用推荐系统中已有的召回和排序模型。举例来说,对于双塔模型,我们只需要利用现有的用户侧向量,而不需要做任何改动,然后使用投影网络将新资源投影到双塔模型的后验表示空间,从而可以简单快速地上线一个双塔召回。同样,对于当前已有的图召回和基于树的召回,也可以以低成本的方式进行上线。
当然,这种映射方法存在一个小缺点,即回归的难度较大。在 CB2CF 中,这是一种回归问题,而回归一般比较难学习。因此,我们也可以采用 pairwise 的方式来学习映射关系。具体来说,可以将正样本设定为 item CF 学习到的相似 item pair,负样本可以通过全局负采样等方式获取,输入也包括 item 的一些先验和动态信息,然后通过学习来获得这样一个映射。
通过利用内容的先验信息,基本上可以实现大盘常用的召回方法在冷启动上的有效实现。
2. 基于种子用户的冷启
由于早期的冷启动主要针对一些零点击的资源进行设计,一旦有了一些早期的冷启动,这些内容就会收集到一定数量的正反馈种子。此时,我们可以通过 lookalike 的方法来进行召回。
Lookalike 的一个重要优点是其实时性特别高。这个方法主要源自互联网广告领域,以前广告主会选择一些可能感兴趣的用户作为种子用户,然后系统会寻找这些种子用户的相似用户进行扩散。在推荐系统中,我们可以订阅在线实时流日志,获取之前冷启动时收集到的给予资源的正反馈,比如点击、播放、互动、关注等,甚至包括负反馈,如快速滑动的用户。然后基于这些种子用户,系统可以通过用户的 embedding,并通过各种汇聚方法或添加一些自注意力机制等,得到 item 的表示。这个表示可以非常快速地进行更新,再基于这个表示向外扩散,具有非常高的时效性。
三、内容冷启实验系统
1. ID 特征优化
在模型方面,冷启动的优化点可以归纳为三种范式:ID 丢弃式、ID 生成式和模型的动态参数。这三种范式实际上可以相互组合使用。
对于 ID 丢弃式优化,由于整体资源样本较少,模型容易迎合头部资源,因此头部资源的 ID 学习非常充分,在模型中的特征重要度也特别高。然而,冷启动资源的出现较少,ID 学习不充分。针对这个问题,有两种思路:一种是尽量避免使用 ID,另一种是如何更好地利用 ID。
第一个范式是丢弃式优化,经典的方法之一是 DropoutNet。在训练过程中,DropoutNet 会随机丢弃 item ID 和 user ID 特征,以尽量提高模型对非 ID 特征的重视程度,增强模型的泛化能力。这样做实际上能够提升新用户或新资源的冷启效果。
另外,近年來也出現了一些對比學習的方法。對比學習是一種自監督學習方法,不依賴人工標註,可以建構大量的樣本,為優化多幫冷啟動問題提供了幫助,因為我們可以建構額外的樣本來加強冷啟動數據的地位。例如,在雙塔模型中,可以在 item 側增加一個輔助的對比損失。這兩個塔的參數是共享的,使用對比學習損失能夠影響資源塔的網路參數和嵌入特徵,透過掩碼方法,對具有ID 特徵和其他冷啟動特徵的樣本進行不同比例的掩碼,從而兼顧模型的泛化能力和冷啟動資源的特殊性。
接下來是生成式最佳化,前面提到了對於不可靠的ID 特徵,要盡量少使用,但目前更優的做法是如何讓它更可靠。常規的思路是基於 ID 的先驗特徵來進行 ID 的 embedding 初始化。透過合理的初始化,使得新資源的預測更加精確,同時能夠更快地收斂,以雙塔模型為例,通常情況下,新特徵會被隨機初始化或全零初始化,這會導致對新資源的預測不準確,收斂速度慢。因此,可以利用內容的一些先驗特徵,如標籤、內容標籤、作者標籤等,以及一些相似的ID(如熱門ID),選擇一些具有充分高後驗和高分發的資源的ID embedding 作為標籤,然後訓練一個生成器來產生ID 的embedding,以取代初始值。當然,也可以直接利用新資源與最相似的前 K 個熱門資源的 ID embedding 進行平均,作為新資源的 embedding 初始化,這種方法效果相對穩定,而且成本非常低,在工業界使用較多。
針對熱門 ID 主導模型且模型更依賴 ID 特徵的問題,我們可以採用多任務和多場景的思路進行最佳化。依然拿雙塔模型舉例,可以將冷啟動和非冷啟動資源的預測拆分為兩個獨立的目標。透過常見的多目標模型,提升模型對新內容的重視程度。一種經典的方法是 CGC 網絡,如上圖左部所示。在這種網絡中,所有任務共享 embedding 層,然後透過冷啟動任務和非冷啟動任務分別學習獨立的專家網絡,以提升冷啟動預測的能力。另一種方法是透過動態權重來調整網路中不同資源類型的參數權重,如上圖右部所示。在這個網路中,最右側的網路是一個冷啟動指示器,它接收冷啟動資源的資訊(如目前點擊展示次數和資源類型),然後輸出網路各層的權重,以控制不同資源類型下訊息在網路中的傳遞通道,從而讓模型在冷啟動情況下預測更加精準。
2. 流量調控機制設計
#新資源需要盡快起量以提升作者的發文體驗和建議的實現性,但由於馬太效應,我們需要對新資源進行一定的傾斜。一般的冷啟動傾斜可分為兩種流量:基礎流量和助推流量。基礎流量意味著公平,我們需要給予所有資源一些普惠的流量來進行試探。而助推流量則是基於作者品質資源的潛力預估和初級流量的表現給予差異化的扶持。
冷開機的扶持機制,在抽象層面上有兩個參數:時間和分發量,即透過強插、調權等手段,在給定的時間內讓資源達到給定的分發量目標。對於不同的業務,我們會設定不同的分發量和所需時間。例如,對於普通資源,可能只需要在 24 小時內展現 100 次就足夠了;而對於新熱資源,可能需要更快,例如半小時內達到 3000 次展現。同時,對於新作者可能會設定較大的冷啟動額度。
具體到公式上,公式中的 t 表示當前發佈時間除以目標所需時間的歸一化,即當前的時間進度,x 表示當前的分發進度。我們希望 t 和 x 相等,這意味著正常進度下的分發。如果 x 小於 t,則表示目前的冷啟動速度較慢,需要增加權重或強插的係數。公式中的 θ 可以控制資源前期投放的傾斜程度。
然而,這個公式的前提是產品不同時段的流量是均勻的,而實際情況並不符合這個假設。一般的網路產品流量分佈存在高峰和低谷的差異,因此需要根據實際情況進行調整。例如,如果一個內容在凌晨 2 點發布,到早上 8 點可能只需要 25 次分發,因為凌晨時段的流量較少。因此,公式中的 t 需要基於實際的流量分佈進行積分。
3. 投放使用者選擇
#另一個關鍵問題是在資源分發初期,應該將資源投放給哪些使用者?最常規的做法是盡量將新資源推薦給老用戶,而不是新用戶,因為老用戶的容忍度通常更高,可以避免新資源推薦不精準而對新用戶造成傷害。此外,如果將冷啟動資源的提升視為一種幹預,基於 Uplift 思想可以學習幹預對用戶時長和留存的影響,盡量選擇對幹預不產生負面影響的用戶進行冷啟動。
以上兩點都是基於 C 端使用者影響的角度。然而,冷啟動受眾的選擇也會影響資源的後續傳播發展。從資訊傳播的角度來看,二級傳播理論將訊息傳播分為兩個步驟。首先,在每天產生的大量資訊中,有些人群具有篩選和助推資訊的能力,我們稱之為意見領袖。然後,由這些意見領袖放大助推的資源會大規模傳播。
在當前時代,意見領袖的角色同樣存在於社群平台、知名媒體、電視台等地方。對於推薦系統來說,也存在著關鍵節點使用者資源的概念,他們透過篩選優質資源並進行推薦,從而影響其他使用者的消費行為。
那麼,如何挖掘這些關鍵用戶呢?透過上述討論,關鍵用戶有兩個特點:一是對資源品質有較高的鑑別能力,二是他們推薦的內容被其他用戶接受的機率較高。因此,有兩種挖掘方法:
首先,根據資源的後驗情況將資源劃分為優質和低質資源,並將其作為標籤。然後以初期點擊這些資源的使用者 ID 作為特徵,預測資源的事後情況。模型學習出的每個使用者 ID 的權重可以視為該使用者的關鍵指數。
其次,透過線上使用者協同過濾推薦系統,挖掘使用者之間的建議成功率。推薦成功率較高的使用者可視為推薦系統中的關鍵使用者。透過這兩種方法,挖掘出圖中的關鍵用戶,並在資源冷卻啟動時優先推薦給他們。
4. 實驗系統
#冷啟動內容的實驗系統設計時需要注意一些特殊性,因為推薦系統的樣本是共享的,導致實驗組收集到的回饋也會在對照組中被學習到,難以準確衡量冷啟動策略的效果。因此,我們需要進行內容隔離實驗,以評估冷啟動策略對整個系統的影響。
常見的實驗設計是將使用者和資源完全隔離,例如上圖左下部所示。其中,50% 的使用者只能看到 50% 的內容,不同的資源分組使用不同的冷啟動策略。這樣可以評估冷啟動策略對整個系統的影響。但這種方法可能對 C 端使用者的體驗造成較大的影響,因為他們只能看到一部分的內容。
另一種柔和的方式是在冷啟動階段,例如前 3000 次,將使用者和資源完全隔離,然後不同的分組進行不同的冷啟動策略。在經過冷啟動之後,就可以在全部用戶上分發資源。這樣的設計可以降低對 C 端使用者體驗的影響。
透過實驗,我們可以分析以下指標:
- 冷啟動期間的冷啟動達標率、速率和效率指標,如點擊率(CTR)、完播率等。
- 全面分發階段,不同資源分組的優質內容比例、出破率、爆款率、對應作者的發文量等指標。
四、Q&A
#Q1:冷熱雙塔怎麼判斷?一個是熱塔,一個是冷塔的。
A1:冷熱雙塔的判斷通常是基於資源的分發量。一般來說,分發量較低的資源被認為是冷塔,而分發量較高的資源則被認為是熱塔。例如,可以將分發量小於 100 次的資源視為冷開資源。當然,需要根據線上模型的預估精度進行分析,並根據實際情況來確定具體的判斷標準。
Q2:冷開流量優質助推,這裡怎麼判斷資源的潛力?就是否是領域新熱也是用價值模式做預估嗎?
A2:冷開流量的優質助推通常涉及對資源潛力的評估。判斷資源潛力可以結合多個訊號源。例如,對於是否是領域的新熱,可以綜合考慮全網的信息,包括各個產品的熱榜信息,以及相關領域的話題討論和關注度等。對於資源的價值評估,可以考慮作者的優質度,包括其在初期階段的表現、互動情境等因素。綜合利用這些訊息,可以對資源的潛力進行較為全面的預估。
Q3:理想的 t 跟實際的 t 怎麼求解?曝光曲線上體現呢?如何確保實際的曝光和大盤趨勢是一致的。
A3:在求解理想的 t 和實際的 t 時,可以透過觀察曝光曲線來體現。曝光曲線展示了資源在不同時間段內的曝光量,而理想的t 指的是根據設定的目標所需時間而計算的理論曝光進度,而實際的t 則是根據當前實際的曝光進度而確定的。為了確保實際的曝光與大盤趨勢一致,需要對整體流量的比例進行穩定的監測,以確保冷開機的進度與整體流量趨勢保持一致。如果冷開機的進度比較慢,可能需要提高曝光量或調整其他推薦策略以加速進度,而如果進度快,則可能需要減緩曝光速度以避免資源過度曝光。
Q4:實驗時使用者只能看到 50% 的內容,全量的時候看到的是 100% 的內容。如何證明實驗跟全量效果是一致的?
A4:冷開機的問題其實很難精確的測出來效果的準確值。現在一般就是去比較實驗組和對照組哪個比較好。
以上是百度推薦資源冷啟動實踐的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

如何使用Go語言和Redis實現推薦系統推薦系統是現代網路平台中重要的一環,它幫助使用者發現和獲取感興趣的資訊。而Go語言和Redis是兩個非常流行的工具,它們在實現推薦系統的過程中能夠發揮重要作用。本文將介紹如何使用Go語言和Redis來實作一個簡單的推薦系統,並提供具體的程式碼範例。 Redis是一個開源的記憶體資料庫,它提供了鍵值對的儲存接口,並支援多種數據

隨著網路應用的普及,微服務架構成為目前較受歡迎的架構方式。其中,微服務架構的關鍵在於將應用程式拆分為不同的服務,透過RPC方式進行通信,實現鬆散耦合的服務架構。在本文中,我們將結合實際案例,介紹如何使用go-micro建構一個微服務推薦系統。一、什麼是微服務推薦系統微服務推薦系統是一種基於微服務架構的推薦系統,它將推薦系統中的不同模組(如特徵工程、分類

一、場景介紹首先來介紹本文涉及的場景—「有好貨」場景。它的位置是在淘寶首頁的四宮格,分為一跳精選頁和二跳承接頁。承接頁主要有兩種形式,一種是圖文的承接頁,另一種是短視頻的承接頁。這個場景的目標主要是為使用者提供滿意的好貨,帶動GMV的成長,從而進一步撬動達人的供給。二、流行度偏差是什麼,為什麼接下來進入本文的重點,流行度偏差。流行度偏差是什麼?為什麼會產生流行度偏差? 1.流行度偏差是什麼流行度偏差有很多別名,例如馬太效應、資訊繭房,直觀來講它是高爆品的狂歡,越熱門的商品,越容易曝光。這會導致

隨著網路技術的不斷發展和普及,推薦系統作為一種重要的資訊過濾技術,越來越受到廣泛的應用和關注。在實作推薦系統演算法方面,Java作為一種快速、可靠的程式語言,已被廣泛應用。本文將介紹利用Java實現的推薦系統演算法和應用,並著重介紹三種常見的推薦系統演算法:基於使用者的協同過濾演算法、基於物品的協同過濾演算法和基於內容的推薦演算法。基於用戶的協同過濾演算法是基於用戶的協同過

一、问题背景:冷启动建模的必要性和重要性作为一个内容平台,云音乐每天都会有大量的新内容上线。虽然相较于短视频等其他平台,云音乐平台的新内容数量相对较少,但实际数量可能远远超出大家的想象。同时,音乐内容与短视频、新闻、商品推荐又有着显著的不同。音乐的生命周期跨度极长,通常会以年为单位。有些歌曲可能在沉寂几个月、几年之后爆发,经典歌曲甚至可能经过十几年仍然有着极强的生命力。因此,对于音乐平台的推荐系统来说,发掘冷门、长尾的优质内容,并把它们推荐给合适的用户,相比其他类目的推荐显得更加重要冷门、长尾的

隨著雲端運算技術的不斷發展和普及,雲端搜尋和推薦系統也越來越得到了人們的青睞。而針對這項需求,Go語言也提供了很好的解決方案。在Go語言中,我們可以利用其高速的並發處理能力和豐富的標準庫來實現一個高效的雲端搜尋和推薦系統。以下將介紹Go語言如何實現這樣的系統。一、雲上搜尋首先,我們需要對搜尋的姿勢和原理進行了解。搜尋姿勢指的是搜尋引擎根據使用者輸入的關鍵字來配對頁面

推薦系統是廣泛應用於網路產品的演算法,對於提升使用者的體驗、增加產品的價值具有重要作用。而在推薦系統中,演算法的最佳化能夠提高推薦的準確性和使用者的滿意度。在Golang中使用快取處理推薦系統的最佳化演算法可以提高效能和效率,以下就簡單介紹一些技巧。一、快取基礎:什麼是快取?快取是在使用程式或應用程式時,將一些經常重複使用的資料儲存到臨時的一塊記憶體區域,以便程式

隨著互聯網的發展,網路上的數據量呈現爆炸性增長,使得用戶在面對大量資訊時很難快速準確的找到他們真正需要的內容。推薦演算法應運而生,透過對用戶行為數據的記錄和分析為用戶提供個人化的服務和推薦內容,從而提高用戶的滿意度和忠誠度。 Java作為大型軟體開發的首選語言,在推薦演算法的實作中也廣受歡迎。一、推薦演算法推薦演算法是一種透過對使用者互動、行為和興趣數據進行分析與挖掘
