首先來看快手冷啟動要解決的問題。
短期來看,平台首先要讓更多的新影片能夠獲得流量,也就是能夠發得出去。同時也要讓發出去的流量有比較好的效率。長期來看,我們也要去探索挖掘更多的高潛新視頻,為整個熱門池提供更多的新鮮血液,緩解生態的馬太效應。提供更多優質的內容,帶來使用者體驗的提升,同時也帶來長度和 DAU 的成長。
透過冷啟動來促進UGC作者獲得互動回饋激勵,以維持整個生產者的留存。在此過程中,有兩個約束條件。首先,整體的探索成本和流量成本在大局中應相對穩定。其次,我們僅幹預新視訊低vv階段的分發。那麼,在這些限制條件下,我們要如何實現整體收益的最大化呢?
影片的冷啟動分發對其成長空間有著重要影響,尤其是當作品分發給與其興趣不匹配的人群時,會帶來兩個方面的影響。首先,作者的成長會受到影響,長期來看,他將無法得到有效的互動流量激勵,導致他的投稿方向和意願改變。其次,由於早期流量缺乏有效的轉換率,系統會認為該內容品質不高,因此長期來看,它將無法獲得足夠的流量支持,從而無法實現成長
長此以往,生態就會陷入一個比較不好的狀態。例如有一個在地美食的作品,它肯定有一個最適合的觀眾群 A,他的動作率整體是最高的。而另外可能有一個完全不相關的人群 C,在投給這個人群的時候會有一定的挑選性,動作率可能會極低。當然還有第三種人群 B,該人群是一個興趣非常廣泛的人群,雖然這個人群流量很大,但是整體上這部分人群的動作率也是會偏低的。
如果我們能夠儘早的觸達核心人群A提升內容早期的互動率,就可以帶來一個自然流量的撬動分發。但是如果我們早期過度把流量給到了 C 人群或 B 人群,就會導致整體的動作率偏低,就會限制他的成長。總而言之,提升冷啟分送效率是完成內容成長的一個最重要的途徑。為了完成內容冷啟動效率的迭代,我們會建立一些中間過程指標和最終的長期指標。
重寫後的內容為:流程指標主要分為兩部分,一部分是新影片的消費表現,主要包括它們的流量動作率;另一部分是出坡指標,包括探索向、利用向和生態向。探索向是為了確保優質新影片不被忽視,主要觀察曝光大於0、曝光大於100的影片數量的成長情況。利用向是觀察高熱優質新影片的高VV出坡影片數量的成長。生態向主要觀察熱門池的使用者普及率。從長遠來看,由於這是一個透過生態影響帶來的長期變化,所以我們最終會透過Combo實驗長期觀察一些核心指標的變化趨勢,包括APP時間長度、作者DAU和整體DAU
二、冷啟動建模的挑戰與解決方案
#總的來說,內容冷啟動有三個主要困難。首先,內容冷啟動的樣本空間與真實求解空間之間存在巨大差異。其次,內容冷啟動的樣本非常稀疏,這會導致學習結果不準確,偏差非常大,尤其是在曝光偏差方面處於弱勢。第三,影片成長價值的建模也是一個困難,這也是我們目前正在努力解決的問題。本文將重點放在前兩個面向的困難
##在最佳化內容冷啟動問題時,樣本空間小於求解空間是一個非常突出的問題。尤其是在推薦內容冷啟動方面,需要提高索引內容的觸達率,讓更多的影片有機會被展示出來
我們認為要解決這個問題,最重要的是在召回階段提升影片的觸達與透出效率。為了解決冷啟動影片的召回觸達率。業界普遍的做法是基於 Content-Based,包括屬性倒排、基於語意相似度的一些回想方法,或是基於雙塔加泛化特徵的回想模型,又或是引入行為空間和內容空間的映射,類似於 CB2CF 的做法。
這次我們將重點介紹兩個比較有趣的新方法,分別是基於圖熵自增強的異構圖網路和基於 I2U 的星河模型。在技術選項上,我們先使用 GNN 作為內容冷啟動 U2I 的 Base model。因為我們考慮到 GNN 整體來說是歸納式的學習方法,它對於新增節點非常友好,提供了更多的靈活性。另外,GNN 中引入了更多的屬性節點,是增強冷啟動內容觸達的重要手段。在具體實務方面,我們也是會引入 user 節點、author 節點和 item 節點,並完成資訊的聚合。在引入了這種泛化屬性節點後,新內容的整體觸達率得到了極大的提升。但泛化性過強的中間節點,例如 tag 類目也會造成視訊的感知域不夠個人化,帶來過平滑的風險。從 case 回查來看,我們發現有些喜歡看羽球影片的用戶,現有的這款 GNN 刻畫方案容易造成羽球影片和其他乒乓球、足球等影片的區分能力不夠好。
為了解決GNN建模過程中引入過度泛化訊息所帶來的泛化過度問題,我們的想法主要是引入更細緻化的鄰居刻畫方案,具體會在GNN中引入語意自增強邊。從右下角的圖可以看到,我們會基於冷門視頻去尋找它在熱門空間中的相似熱門視頻,然後將熱門相似視頻作為冷啟連邊的初始節點。在具體聚合的過程中,我們會根據圖熵減少的原則,進行自增強邊的構造與挑選。具體的挑選方案從公式可以看到,主要考慮了上面這個連邊鄰居節點和當前節點資訊的描述。如果兩個節點相似度越高,它們的資訊熵會越小。下面的節點分母代表了鄰居節點整體的感知域,也可以理解為在挑選的過程中,我們更希望尋找到一個感知欲比較強的鄰居節點
在實踐過程中,我們主要有兩個技巧,一個是相似視頻的特徵域和 item id 的特徵域要共享 embedding 空間,然後是自增強節點只保留熱門視頻,去除學習不充分節點引入的噪聲。有了這個升級之後,泛化性整體上得到充分保證情況下,有效提升了模型的個性化程度,並帶來了離線和在線的效果提升。
上述方法其實都是從U2I視角來建模內容觸達的一個提升,但是無法從根本上解決視訊無法觸達的問題
#如果轉換思路,從 item 的視角去尋找適合的人群,也就是切換到 I2U 的視角,理論上每個影片都有獲取流量的空間。
#具體的做法是,我們需要訓練一個I2U的檢索服務,透過該檢索服務動態地為每個影片檢索興趣人群。透過這種I2U的構圖方式,反向建構U2I的倒排索引,最終根據使用者的即時請求返回物品清單作為冷啟動推薦清單
重寫後的內容是:重點是訓練一個I2U的檢索服務,我們的初版是一個雙塔模型。在實踐過程中,為了避免用戶過於集中的問題,我們首先會棄用uid,而使用action list和self-attention的方式有效地緩解用戶聚集問題。同時,為了避免學習過程中item-id帶來的學習曝光偏差,我們會棄用item-id,而引入更多的語義向量、類目、tag和AuthorID等這樣的泛化特徵來有效地緩解item -id的聚集。從使用者的角度來看,引入了這種Debias的loss,然後引入batch內的負採樣,更好地避免用戶集中的問題
##我們的首版實踐是雙塔的I2U模型,在實踐過程中也發現了一些問題。首先,雙塔模型存在著使用者和物品互動的局限性,整體的檢索精度受到了限制。此外,還有興趣集中的問題,掛載在使用者身上的內容往往興趣非常集中,但事實上使用者的興趣是多峰分佈的。我們也發現用戶過於集中的問題,大部分的冷啟動影片都被掛載在一些頭部用戶身上,這也是不夠合理的,因為畢竟頭部用戶每天能消費的內容也是有限的
為了解決上面三個問題,新的解決方案是 TDM 建模和 TDM 分層檢索方式。 TDM 的一個好處是可以引入更複雜的 user-item 互動模式,突破雙塔的互動限制。第二個是使用類似 DIN 的模式,可以減少對單峰興趣的依賴。最後是 TDM 中引入分層檢索可以非常有效地緩解掛載使用者集中的問題。
另外,我們還有一個比較有效的最佳化點,就是為父節點增加子孫節點的聚合表示。這樣可以增強父節點的特徵泛化和判別精確度。也就是說,我們會透過注意力機制將子節點聚合到父節點上,透過逐層傳遞,中間節點也能有一定的語意泛化能力
在最終的系統實踐過程中,除了I2U模型之外,我們還引入了U2U的興趣拓展模組。也就是說,如果某些用戶在冷啟動影片中表現出色,我們會快速擴散該影片
#具體與目前業界的一些方法是類似的,但這裡的U2U興趣擴充模組主要有三個方面的優勢。首先,TDM樹結構相對比較固化,增加這種U2U模組可以更貼近使用者的即時偏好。其次,透過即時興趣的擴散,我們可以突破模型的限制,透過使用者的協同,將內容快速推廣,帶來多樣性的提升。最終,這也能提升星河召回的整體覆蓋率,這是我們在實踐過程中的一些優化點
透過這些方案,我們能夠有效解決內容冷啟動中樣本空間和真實求解空間不一致的問題,從而顯著提升冷啟動的觸達和覆蓋效果
接下來介紹內容冷啟動樣本稀疏性導致學習不準確和偏差大的問題,這是一個最大的挑戰。這個問題的本質是互動行為的稀疏性,我們把問題展開為三個方向。
#
首先,由於冷啟動樣本的曝光較少,導致item id的學習不充分,進而影響了推薦效果和推薦效率。其次,由於早期分發的不準確性,收集的標籤存在較高的不確定性和低置信度。第三,目前的訓練範式在不進行糾偏的情況下,會將熱度訊息引入item的嵌入中,導致冷啟動影片可能被低估,從而無法得到充分的分發
我們主要從四個方向去解決這個問題。第一個是泛化,第二個是遷移,第三個是探索,第四個是糾偏。泛化更多是從泛化特徵的角度來完成建模和升級。遷移主要是想把冷門和熱門的影片當做兩個域,將熱門視訊域或全量資訊域的資訊進行有效遷移來輔助冷門影片的學習。探索主要是引入探索和利用的思想,就是在早期 label 不準確的情況下,我們希望在建模的過程中就引入探索的思想,從而緩解冷啟階段的不置信 label 帶來的負面影響。熱度糾偏是目前比較火的一些方向,我們主要透過門控和正規 loss 的方式來約束熱度資訊的使用。
以下具體介紹我們的工作。
首先,泛化是解決冷啟動問題時非常常用的方法。然而,在實踐中我們發現,與標籤和類別相比,引入一些語義嵌入也是非常有用的。但是直接將語意特徵加入整體模型的收益是有限的。由於視訊語義空間和行為空間存在差異,我們是否可以透過視訊語義的共性資訊來近似表示新視訊在行為空間中的位置,以輔助泛化。先前我們提到了一些方法,例如CB2CF,它將泛化資訊與真實行為空間進行映射學習。然而,我們並沒有採用這種方法,而是根據影片的語意向量找到與目標項相似的項列表。首先,它與使用者的長期和短期興趣行為共享行為空間,同時我們會對相似項清單進行聚合,模擬候選影片在行為空間中的表示。實際上,這種方法與我們先前提到的圖召回中引入與候選項相似連邊的方法是相似的,而且效果非常明顯,在離線AUC上提升了0.35PP
第二個是探索,就是新影片早期分發不準會導致後驗CTR 平均值偏低,而這種平均值偏低也會導致模型認為影片本身可能品質比較差,最終冷啟動內容的探索性就受到了限制。那麼能否建模 PCTR 的不確定性,減緩冷開階段label的絕對利用與信任。我們嘗試將一次請求的 CTR 預估轉變為一個 Beta 分佈的預估,在線兼顧使用期望和方差。具體在實作過程中,我們會預估 Beta 分佈的一個 α 和 β,具體在 loss 設計是預估的值和真實 label 的均方差的期望值。我們把期望值展開之後會發現需要得到預估值平方的期望和預估值的期望。而這兩個值我們透過預估出來的 α 和 β 可以有效的計算出來, loss 也就產生了,然後我們就能夠訓練 Beta 分佈,最後把 Beta 分佈的預估值增加一個隊列平衡探索與利用。其實我們在低 vv 階段使用 Beta 的 loss 在 AUC 上有一定的提升,但並不是特別明顯。但我們把貝塔分佈在線使用能夠在整體動作率持平的情況下,使得 0vv 的內容有效透出率增長22%。
接下來介紹的是對偶域遷移學習框架。整體的想法是,冷啟動內容通常是高度傾斜的長尾分佈,也是流行性偏見中的弱勢群體。如果我們只使用冷啟動樣本,可以一定程度上緩解流行性的偏差,但會失去大量的使用者興趣,導致整體的精確度下降。
我們目前已有的一些嘗試,大多數是透過高熱樣本的一些欠取樣,或者逆頻率加權或泛化特徵的方式來專注於冷啟樣本的學習,但是往往忽略了冷啟動早期行為樣本與熱門影片的在行為空間上的一個內在共性。
所以我們在設計過程中會把全量樣本和冷開機樣本分成兩個域,就是上圖中的全量域和冷啟動域,全量域對所有的樣本都生效,冷開機域只針對冷啟動條件的樣本才生效,然後增加雙邊的冷熱知識域的遷移模組。具體的是會對 user 和 item 分別建模,從全域的樣本塔到冷啟樣本塔的網路映射,從而在模型層面捕捉隱式的資料增強,提升冷啟動影片的表示。在 item 側我們會保留全量所有冷啟樣本,此外,也會對一些高熱的視訊根據曝光量進行採樣,保證冷熱域分佈的相似性,最終能夠確保整個映射的知識遷移的平滑。
此外我們還增加了一個獨特的對偶流行度門控機制,引入一些流行性特徵,用它去輔助冷熱視頻域的融合配比。一方面,新影片在不同的生命週期下冷啟表達利用率的匹配可以得到有效的學習和分配。另一方面,在用戶側也學習了不同活躍用戶對冷開影片的敏感度。在實務過程中,離線效果無論在低 vv 階段或 4000vv 的 AUC 都有一定的提升。
最後介紹一個在糾偏方面的工作,也就是熱度糾偏。推薦系統經常會面臨熱度的偏差,整體來說是高爆品的狂歡。現有的模式範式擬合的目標是全域的 CTR,建議熱門可能獲得整體 loss 較低,但也會將一些熱度的資訊注入到 item embedding 中,造成高熱視訊被高估。
一些現有的方法過於追求無偏估計,但實際上會導致一些消費損失。那麼我們是否可以將一些項目嵌入與熱度資訊和真實興趣資訊解耦,有效地利用熱度資訊和興趣資訊進行線上融合,這可能是一種更合理的方法。在具體實踐中,我們參考了同行的一些做法
#重點主要是兩個模組,一個是做了輸入內容熱度和興趣的正交約束,例如輸入的是 item id、author id 等特徵,會產生兩個表徵,這兩個表徵一個是熱度表徵,一個是真實興趣表徵,求解過程中會做一個正規約束。第二個是我們會將一些 item 的純熱度資訊也產生 embedding 作為視訊的純熱度表徵,純熱度表徵會根據視訊的真實熱度表徵去做一個相似性約束,這樣就可以得到剛才說到的熱度表徵和興趣表徵,他們一個是表達熱度訊息,一個是在表達興趣訊息。最後會基於這兩個表徵在線添加一個有偏估計和無偏估計的隊列做乘法公式融合。
#最後來分享對未來工作的展望。
首先,我們需要更精細地建模和應用人群擴散模型,尤其是即時性方面,包括目前的相似人群擴散。我們已經在冷啟動階段實施了一些相似人群擴散方案,例如U2U的一個擴散應用,我們希望能夠進一步提升其精細化程度
第二個是糾偏的方案,目前的因果模型在冷啟動糾偏中也是有很多的研究,我們也會在這個方向做持續的研究和探索,特別是對於曝光的糾偏,還有熱度的糾偏,第三個是在樣本選擇上,高熱樣本對於冷啟的推薦還是有更大的價值的,能否在高熱樣本空間中挑選出一些更有價值的樣本,給他們以不同的權重來提升冷啟模型的推薦效率。
第三個是影片的長期成長價值的刻畫,每個影片都需要經歷冷啟-成長-穩定-衰落的過程,如何在建模影片的時候更加關注它的長期收益,也就是成長空間,特別是在撬動價值方面,如何建模不同的單次分發對未來成長的價值差異,這也是一項非常有趣的工作。
最後一個是透過資料增強的方案,無論是樣本還是對比學習的方案,我們都希望引入一些這方面的工作提升冷啟推薦的效率。
A1:I2U 模型會在離線過程中不斷在索引庫中尋找與之最相似的用戶,然後根據找到的最相似用戶和物品,將其轉化為用戶-物品對,最終得到使用者對物品清單的聚合結果,並將其儲存在Redis 中供線上使用
A2:分享中已經提到了幾個方法,從根本上來說,我們還是從泛化、探索和糾偏的角度去解決。例如 item id 如何初始化,使得它有更好的初始點,同時做一些泛化特徵的引入,把泛化特徵映射到行為語意空間。然後透過Beta 分佈來提升探索性;還有就是透過引入純內容塔,去除pid 等存在強記憶的特徵,從而引入無熱度偏差的純泛化預估,還有就是糾偏的工作,希望在學習的過程中將熱度因子單獨學習和約束,提供純興趣標準和熱度標準,線上合理的分配熱度標準的使用力度。當然除了這些方法之外我們也嘗試從資料增強緩解冷啟動內容的稀疏性,還有從遷移學習的角度去使用熱門的內容輔助冷啟動內容的學習。
A3:優普率其實是人工參與度非常高的工作,我們不可能完全用 model 去評估一個影片的優普率。如果我們能夠用模型來評估一個內容,例如曝光量達到5萬的視頻,整體優普率會有人工參與,它一定會推送給審核人員來審核哪些是優普。
以上是快手內容冷啟動推薦模型的實際應用的詳細內容。更多資訊請關注PHP中文網其他相關文章!