iT邦幫忙

2022 iThome 鐵人賽

DAY 24
0
AI & Data

那些在科技公司和 app 背後的資料科學系列 第 24

[Day 24] Pinterest 生成推薦內容的方法(四)- PinnerFormer

  • 分享至 

  • xImage
  •  

我們昨天介紹 Pinterest 的推薦系統 PinnerSage,不過那是 2020 年的文章。身為不斷創新的 Pinterest 公司,在 2022 年又提出改良的模型,這次,他們不只是想要推薦用戶此時此刻會喜歡的內容,更想要進一步結合序列模型(sequential model)的概念,預測用戶的未來行為。

因此,他們在今年(2022年)提出 PinnerFormer 的模型,讓我們一起來看這篇熱騰騰的技術介紹吧!


設計理念:一個使用者要有一個或是多個 embeddings

在昨天提到的 PinnerSage 中,每個用戶都有多個代表自己興趣的 embeddings,雖然這樣的確可以抓取使用者的興趣。然而,在 PinnerFormer 這個新模型中,Pinterest 想要使用序列模型(sequential model),希望能夠用一個 embedding 代表用戶,以便於之後的 downstream 模型。


PinnerFormer

資料

他們使用許多 pins 當作資料,每個 pin 都用 PinSage(詳見 Day 22 的文章)抓取 256 維的 embedding,其涵蓋視覺、文字和用戶參與程度的資訊。

對於每個用戶,他們使用一連串的用戶行為,包含儲存 pin、點擊,和留言。

特別值得注意的是,對於 Pinterest 而言,行為可分為正向、負向和中性行為。例如長點擊是正向,而短點擊是負向或中性。在 PinnerFormer 的模型中,他們只專注於預測正向參與行為,特別是 Repin(儲存 pin)、Closeup(在十秒後才關掉一個 pin)和 Click(在 pin 中的連結點超過十秒鐘)。

目標:預測用戶在未來 14 天之內的正向參與行為。

模型架構

為了預測用戶的未來一連串的行為,PinnerFormer 使用 transformer 架構。

首先,輸入矩陣為用戶在時間 T 的所有 M 個行為特徵(使用 PinSage 產生的 embedding),輸入至一個 transformer 層中,再接到一層 MLP,並經過 L2 normalization,最後輸出一組 embeddings。

https://ithelp.ithome.com.tw/upload/images/20221008/201523252hAFgXz7aH.png

反例資料選擇(Negative Selection)

為了訓練模型,對於每一對用戶 embedding 和 pin embedding {(?1, ?1), . . . , (??, ?? )},他們需要一些反例資料(negative examples)。反例資料(negative examples)的來源有二:in-batch 反例(in-batch negatives) 和隨機反例(random negatives)。

  • In-batch 反例(in-batch negatives):選擇所有在 batch 裡面的正例資料(positive examples)做為反例,並在訓練時隱藏(mask)擁有這項正例資料的 pin。
  • 隨機反例(random negatives):在所有 pin 中隨機選擇。

Pinterest 混合以上兩種,以選擇訓練時需要的反例資料。

Loss function 為:

https://ithelp.ithome.com.tw/upload/images/20221008/20152325uVlNck5TSj.png

訓練

此模型有三種需要預測的任務:Repins、Closeups 和 Clicks。一般常見的方法是訓練每個目標特有的 head,但是 Pinterest 在此選擇訓練單一個 embedding 以達成多個不同任務任務。

另外,PinnerFormer 有四個訓練目標:Next Action Prediction、SASRec、All Action Prediction、和 Dense All Action。

https://ithelp.ithome.com.tw/upload/images/20221008/20152325cEWaEHfSPg.png

  • Next Action Prediction:在給予一系列行為之後,要預測第 T+ 1 的行為(如果為正向行為的話)。
  • SASRec:除了第 T+1 個行為以外,其他系列中的每一個正向行為也會藉由上一個行為預測。
  • All Action Prediction:要預測在 T + 1 開始的每一個正向行為。
  • Dense All Action:跟 SASRec 有類似概念,每一個歷史行為都預測 K 天以後的正向行為。

結果

最後來看結果吧!將 PinnerFormer 取代 PinnerSage 之後,結果有非常大的提升。

https://ithelp.ithome.com.tw/upload/images/20221008/20152325Iey9jK2jiG.png

他們的四個訓練也都有進步,特別是預測全部行為的部分,28 天比 14 天的結果更好,很可能是因為 28 天的資訊量更多。

https://ithelp.ithome.com.tw/upload/images/20221008/20152325kmLQxk0A7y.png

並且在線上的 A/B testing 中也有很大的進步,無論是哪一個測量項目都有進展,Repins 和 Close-ups 甚至分別成長 7.5% 和 6%。

https://ithelp.ithome.com.tw/upload/images/20221008/20152325624fM3kqdF.png


好的,花了四天的篇幅,我們徹底介紹所有 Pinterest 從歷史到今年發表的所有技術!明天再來看看其他科技公司又做了什麼吧!


謝謝讀到最後的你,如果喜歡這系列,別忘了按下喜歡和訂閱,才不會錯過最新更新。
也歡迎到我的 medium 逛逛!


Reference:
N. Pancha, A. Zhai, J. Leskovec, and C. Rosenberg, “PinnerFormer: Sequence Modeling for User Representation at Pinterest.” arXiv, May 09, 2022. Accessed: Sep. 28, 2022. [Online]. Available: http://arxiv.org/abs/2205.04507


上一篇
[Day 23] Pinterest 生成推薦內容的方法(三)- PinnerSage
下一篇
[Day 25] Spotify 使用 NLP 以助於 Podcast 搜尋
系列文
那些在科技公司和 app 背後的資料科學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言