推薦系統之樣本加權

2021-02-28 AINLP

在推薦系統當中,樣本生而不平等。對於某一類樣本來說,其數據量越多,模型對這類樣本的學習會更好,這也是為什麼一般模型對長尾樣本學習不好的原因,這也是新用戶和新Item冷啟動一般需要被單獨處理的原因。如何在模型當中對我們重點關注的指標從樣本層面進行優化?樣本加權是常用的一種方法。下面我將結合自身實踐,跟大家分享一下,如何使用樣本加權的方法提升用戶閱讀時長、用戶閱讀完成率及新用戶閱讀體驗。

 

先講講時長加權,一開始做的時候,樸素的想法就是,點擊率排序模型是為了將正例排在負例前面,但是在正例裡面如果能把閱讀時長長的排在前面,對於用戶體驗和產品指標來說,顯然更好,當然也不是越長越好,可以根據自身業務關注點做相應的處理,後面也會講講處理方法。同時考慮點擊率和時長,常規的思路就是做多目標,我們開始也走了這條線路,單獨訓練了時長模型和點擊率模型,然後線上融合,一般線上的效果就是以點擊率換時長,點擊率跌時長增,如果留存為正,那麼就可以上線。雖然線上已經有了點擊模型、時長模型、完播率模型等,但是,能不能進一步挖掘點擊模型在提升時長方面的能力呢?顯然是可以的。

 

業界已經有不少採用樣本加權的方式提升排序模型效果的工作,比如Youtube 2016就發了一篇介紹時長加權深度推薦模型的論文,UC信息流推薦模型在多目標方面的嘗試就是使用樣本加權的方式。借鑑這兩家的工作,我們首先嘗試使用時長加權,希望在點擊排序模型中,將時長長的正例排在前面。

 

點擊率模型是一般是二分類模型,點擊還是不點擊,兩個類。深度推薦模型網絡最後一層輸出logits,然後過sigmoid函數得到樣本點擊和不點擊的概率。以logloss為損失函數,logloss對錯誤分類進行懲罰,最小化logloss基本等價於最大化分類正確率。如果最後一層只用一個神經元,則可以看成最後輸出為正例的概率:

 

logloss = Ylog(Sigmoid(x))+ (1-Y)log(1-Sigmod(x))

 

x為最後一層的logits輸出,對損失函數及sigmoid函數求導,得到:

 

dx = Y*1/Sigmoid(x) * Sigmoid(x)(1 – Sigmoid(x)) +  (1-Y) * 1/(1-Sigmoid(x)) * (1- Sigmoid(x)) *-Sigmoid(x) = Y – Sigmoid(x)

 

我們將時長以權重的方式加到損失函數上面,也相當於對最後一層的回傳梯度加權。

 

點擊率模型樣本有正有負,負例是沒有實際閱讀時長的,所以對於負例不能直接使用樣本時長對樣本損失加權。把負例的權重看作1,正例的權重為(1+時長),這樣就能實現對正樣本進行時長加權了。但是不同樣本之間,時長的差距很大,有的幾秒,但是有的幾百秒,在一個batch_size為128的batch中,如果有一個時長很長的樣本,那麼最後做梯度平均的時候,該樣本的梯度就完全覆蓋掉掉了其它樣本的梯度,相當於其它樣本基本沒有得到學習,這樣顯然是不行的。

 

一個很自然想到的解決方法是做時長平滑,比如log(時長+1),但是相對於二分類logloss來說,這樣的權重還是太大了,權重會壓過損失本身,所以需要進一步對時長做歸一化,先對時長做截斷處理,比如統計下圖文視頻的閱讀時長分位數,然後做適當截斷到maxtime,再log(時長+1)/maxtime,這樣處理過後,權重就比較合理了。

 

既然我們對樣本進行了加權,那麼在一個batch內做梯度平均的時候,也應該除以加權batch數,即將一個batch內所有的權值加起來當作該batch_size數,然後做梯度平均,這樣處理對學習的穩定性非常重要,而且這樣mini-batch梯度優化的理論性才是完備的。

 

基本上這就是樣本加權的精髓了:

權重要做合理的transform

同時梯度平均的時候除以的是加權樣本數

 

完播率加權基本也是這樣處理的,不過完播率加權是以將完播率較高的樣本排在前面為出發點來做的。完播率這裡對於短時長點擊樣本需要做一些修正操作,因為短時長樣本完成率天然就高,這樣會導致短時長內容容易被推出來,而短時長內容一般質量都不是很好。

 

Uid即userid,uid曝光數反向加權的出發點是希望對新用戶樣本給予更大的權重,從而在新用戶上面取得收益。我們有特徵專門標誌每個uid的出現次數,然後根據uid的展現次數做一個反向加權,即展現高的權重小,展現少的權重高,即一個batch內新用戶的樣本權重更高。權重的處理基本與時長加權和完播率加權的處理方式差不多,都需要先合理的transform,然後計算平均梯度的時候除以加權樣本數。這裡也可以使用uid的點擊次數做反向加權,而不是曝光次數,相當於只對正樣本進行處理,而不是全量樣本。

 

時長加權、完播率加權和uid曝光數反向加權這幾個操作在線上都取得了不錯的收益。時長加權增時長的同時PV不跌,完播率加權則PV時長雙增,同時有效閱讀率提升,無效閱讀率下降,Uid加權在老用戶上面PV時長微跌,但是在新用戶上面則大漲。

 

大名鼎鼎的Youtube時長加權排序模型在訓練階段權重的處理跟我們的對時長的處理方式應該是一致的,雖然論文裡面沒有寫怎麼操作,只說了使用時長對損失進行加權。一開始做這個模型的時候還走了些彎路,就是對上面樣本加權的精髓沒有理解到位。Youbube 時長模型在Serving的時候使用的是pow(e, logits),至於為什麼這樣處理,可以參考王喆老師的文章,揭開YouTube深度推薦系統模型Serving之謎。

 

幾個小問題:

 你覺得樣本加權對於模型迭代會帶來負面影響嗎?

   如何統一多個樣本加權處理?

               

[1] https://zhuanlan.zhihu.com/p/61827629

[2] Deep Neural Networks for YouTube Recommendations (Youtube 2016)

 

由於微信平臺算法改版,公號內容將不再以時間排序展示,如果大家想第一時間看到我們的推送,強烈建議星標我們和給我們多點點【在看】。星標具體步驟為:

(1)點擊頁面最上方"AINLP",進入公眾號主頁。

(2)點擊右上角的小點點,在彈出頁面點擊「設為星標」,就可以啦。

感謝支持,比心

進群請添加AINLP小助手微信 AINLPer(id: ainlper),備註NLP技術交流

推薦閱讀

這個NLP工具,玩得根本停不下來

徵稿啟示| 200元稿費+5000DBC(價值20個小時GPU算力)

完結撒花!李宏毅老師深度學習與人類語言處理課程視頻及課件(附下載)

從數據到模型,你可能需要1篇詳實的pytorch踩坑指南

如何讓Bert在finetune小數據集時更「穩」一點

模型壓縮實踐系列之——bert-of-theseus,一個非常親民的bert壓縮方法

文本自動摘要任務的「不完全」心得總結番外篇——submodular函數優化

Node2Vec 論文+代碼筆記

模型壓縮實踐收尾篇——模型蒸餾以及其他一些技巧實踐小結

中文命名實體識別工具(NER)哪家強?

學自然語言處理,其實更應該學好英語

史丹福大學NLP組Python深度學習自然語言處理工具Stanza試用

關於AINLP

AINLP 是一個有趣有AI的自然語言處理社區,專注於 AI、NLP、機器學習、深度學習、推薦算法等相關技術的分享,主題包括文本摘要、智能問答、聊天機器人、機器翻譯、自動生成、知識圖譜、預訓練模型、推薦系統、計算廣告、招聘信息、求職經驗分享等,歡迎關注!加技術交流群請添加AINLPer(id:ainlper),備註工作/研究方向+加群目的。

閱讀至此了,分享、點讚、在看三選一吧🙏

相關焦點

  • 多目標學習在推薦系統中的應用
    這個問題的解決方案是把多任務損失函數「簡單求和」替換為「加權求和」。加權可以使得每個損失函數的尺度一致,但也帶來了新的問題:加權的超參難以確定。推薦系統中多目標綜述文章:推薦系統中的多任務學習,地址:https://lumingdong.cn/multi-task-learning-in-recommendation-system.html#dfref-footnote-5從谷歌到阿里,談談工業界推薦系統多目標預估的兩種範式,地址:https
  • 用DNN構建推薦系統-Deep Neural Networks for YouTube Recommendations論文精讀
    之所以要在推薦系統中應用DNN解決問題,一個重要原因是google內部在機器學習問題上的通用solution的趨勢正轉移到Deep learning,系統實際部署在基於tensorflow的Google Brain上。一、系統概覽在工業界工作的同學對下圖的系統劃分並不陌生。
  • 資源 | 主要推薦系統算法總結及Youtube深度學習推薦算法實例概括
    為使其簡單化,Statsbot 團隊為現有的主要推薦系統算法準備了一份概述。協同過濾協同過濾(CF)及其變式是最常用的推薦算法之一。即使是數據科學的初學者,也能憑之建立起自己的個性化電影推薦系統,例如,一個簡歷項目。
  • LBS推薦系統的設計方法
    由於推薦系統是興趣點系統的核心,所以接下來,我們將介紹推薦系統。推薦系統是一個很龐大的課題,將分成兩期予以介紹:本期講述推薦系統的設計方法,包含推薦系統的數學基礎和設計原理。關於推薦系統有很多經典的應用,比如:淘寶/天貓/亞馬遜上的商品都是通過推薦系統來排列的;各種音樂應用(比如網易雲音樂或者蝦米音樂)都是按照推薦系統的原理來向用戶推薦音樂的;今日頭條等新聞推薦應用已經充分說明了新聞推薦的力量;Netflix的電影推薦技術也為優酷/搜狐等視頻應用指明了道路。
  • 看Youtube怎麼利用深度學習做推薦
    隨著自己在推薦系統領域經驗的積累,最近帶著自己的感悟、問題再讀此文,又有了新的收穫,特分享如下。整體架構與幾乎所有推薦系統一樣,Youtube的推薦系統也分為「召回」與「排序」兩個子系統。Youtube推薦系統整體架構Youtube在這兩個子系統中,都使用了深度神經網絡,結構上並沒有太大的不同,主要是體現在所使用的特徵上。召回網絡
  • 「看一看」推薦模型揭秘!微信團隊提出實時Look-alike算法,解決推薦系統多樣性問題
    論文作者 |  Yudan Liu, Kaikai Ge, Xu Zhang, Leyu Lin,騰訊微信事業群 AI 前線導讀:Look-alike 是廣告領域經典的推薦算法,擁有定向能力強、用戶擴展精準等優點。本文在微信看一看的推薦場景下對傳統 look-alike 進行了改造,使之更適合高時效性的資訊推薦系統。
  • 一文帶你掌握推薦系統
    本文的主要內容是推薦系統相關的東西,會涵蓋推薦系統相關的大部分知識點,對於非技術人員應該是能基本了解推薦系統了。建議Mark之後慢慢看,畢竟文章有點長,而且第一遍也不一定能看懂…本文主要包括推薦系統的相關概念、推薦系統的架構和流程、常見的推薦算法、挖掘、召回、排序、評估和總結這幾部分。概念部分會簡述推薦系統相關的理論知識,架構和流程主要是介紹推薦系統的通用架構和常規的推薦流程。
  • 新聞智能推薦之Tensorflow自動生成標題的研究及應用
    新聞智能推薦之Tensorflow自動生成標題的研究及應用 引言:隨著人工智慧的快速興起,Google發布的深度學習框架TensorFlow
  • 獨家| AAAI-17獲獎論文深度解讀(下):蒙特卡羅定位和推薦系統
    其關鍵思想是通過一個有 N 個加權的、隨機的樣本或粒子 S 的集合來表示後驗可信度 Bel(l)。在這篇論文解讀中,除了介紹有關推薦系統的基本思想,我們也打算幫助讀者了解假設以及實驗設計,並基於 RSs 的當前發展給出我個人的看法。最後還會推薦些有價值的閱讀材料幫助讀者深入研究推薦系統。一. 背景——信息超載與推薦系統時間的推移,我們正在進入一個被稱為信息過載的時代。現在,人們發現去尋找他們想要的信息變得越來越困難。
  • 2.2w字長文詳解推薦系統之數據與特徵工程,碼起來慢慢看
    具體來說,我們會從推薦算法建模的一般流程、推薦系統依賴的數據源介紹、數據處理與特徵工程簡介、常用推薦算法之數據與特徵工程、推薦系統數據與特徵工程未來趨勢等5個部分來介紹相關知識點,期望本文的講解能夠讓讀者更加深入地理解推薦系統依賴的數據源的特點、數據預處理方法以及基於這些數據之上的特徵工程方法與技巧。
  • 建立屬於自己的電影推薦系統吧
    · 使用Python以及TMDB 5000部電影資料庫來執行幾個推薦系統。什麼是推薦系統?推薦系統(也常被稱為推薦引擎/推薦平臺),旨在預測用戶對可獲取物品的興趣(例如Spotify上的歌曲)並給出相應的推薦。以下是兩種主要的推薦系統:· 基於內容的過濾系統,會基於物品本身的特性給出推薦。
  • 結合論文看Youtube推薦系統中召回和排序的演進之路(上)篇
    後續會更新Youtube在深度學習和強化學習方向的幾篇論文解讀,以及在推薦系統方向做的探索!Youtube推薦系統的進步卻很有幫助,下面簡單看下這篇論文的核心內容。系統設計論文中提到的Youtube的推薦系統應該是目前推薦系統架構的比較古老的版本,其是一個經典的「二段式推薦架構」,包含召回和排序兩個部分。只不過使用到的算法和策略相比現在來講比較簡單和直接。
  • 如何合理制定推薦系統的優化目標?——以YouTube和阿里為例
    同理在推薦系統中,如果你的推薦系統模型的優化目標是不準確的,即使模型的評估指標做的再好,也肯定與實際所需的目標南轅北轍。所以,不要犯戰略性的失誤、合理設定推薦系統的優化目標是每位從業者在構建推薦系統之前,首先也是著重要思考的問題。設定一個「合理」的推薦系統優化目標,首先需要確立一個「什麼是合理」的原則。
  • 機器學習算法實踐:標準與局部加權線性回歸
    也就是引入偏差來降低預測的均方誤差,本部分總結下局部加權線性回歸的方法。當我們獲取某個xx的預測值的時候,我們需要計算回歸係數w,但是如果針對樣本中的數據,距離x越近我們就給個越大的權重,如果距離越遠就給一個小的權重,這樣就會使得針對x的預測值ypredict能夠更貼合樣本數據。
  • 推薦算法的"五環之歌"
    本文介紹我自己為「推薦算法」梳理出來的脈絡。我把推薦算法總結成5個關鍵詞,戲稱"五環"。當然這種梳理方法,只是我的一家之言,或許有其他的角度。「橫看成嶺側成峰」,只要能夠構建出屬於你自己的、清晰的知識體系,就沒有高低對錯之分。第1環:記憶與擴展記憶我們希望推薦系統記住什麼?
  • 浙江高考英語加權賦分:一次無視基層聲音的「任性」操作!
    2018年11月27日,浙江省教育考試院發布《關於英語科目考試成績的說明》:說明頒布成績經過「人為」調整,進行了加權賦分。《說明》一出,質疑的聲音不但沒有平息,反而進一步擴大,質疑從」成績錯了「轉向為」加權賦分任性操作「是否公平公正。
  • Survey design加權:NHANES資料庫實例
    例如參考文獻統計分析方法部分寫到進行了加權(weighted)。上文統計分析方法部分寫到:加權模型意味著在每種模型中,我們都使用了CDC建議的權重,以考慮到少數群體的過度抽樣,從而最終為人群提供了無偏性且準確的效應估計。
  • 推薦系統經典模型 Wide & Deep 論文剖析
    它發表於2016年,作者是Google App Store的推薦團隊。這年剛好是深度學習興起的時間。這篇文章討論的就是如何利用深度學習模型來進行推薦系統的CTR預測,可以說是在推薦系統領域一次深度學習的成功嘗試。著名的推薦模型Wide & deep就是出自這篇論文,這個模型因為實現簡單,效果不俗而在各大公司廣泛應用。因此它同樣也可以認為是推薦領域的必讀文章之一。
  • 推薦系統產品與算法概述
    》(點擊藍字可回顧)這篇文章的第五部分「推薦系統範式」中講到工業級推薦系統有非個性化範式、完全個性化範式、群組個性化範式、標的物關聯標的物範式、笛卡爾積範式等 5種 常用的推薦範式。有了特徵向量,就可以將用戶所有操作過的標的物的特徵向量的(時間加權)平均作為用戶的特徵向量,利用用戶特徵向量與標的物特徵向量的乘積就可以計算用戶與標的物的相似度,從而計算出用戶的推薦列表。
  • 巧用空格的標題能加權
    巧用空格的標題能加權 iwangshang / 淘大講師 未來partners / 2016-11-23 摘要:開直通車燒錢如流水,不如優化好標題,自然流量源源不絕的來。這篇文章教你如何取好一個能加權的標題。