我們昨天介紹 Pinterest 的推薦系統 PinnerSage,不過那是 2020 年的文章。身為不斷創新的 Pinterest 公司,在 2022 年又提出改良的模型,這次,他們不只是想要推薦用戶此時此刻會喜歡的內容,更想要進一步結合序列模型(sequential model)的概念,預測用戶的未來行為。
因此,他們在今年(2022年)提出 PinnerFormer 的模型,讓我們一起來看這篇熱騰騰的技術介紹吧!
在昨天提到的 PinnerSage 中,每個用戶都有多個代表自己興趣的 embeddings,雖然這樣的確可以抓取使用者的興趣。然而,在 PinnerFormer 這個新模型中,Pinterest 想要使用序列模型(sequential model),希望能夠用一個 embedding 代表用戶,以便於之後的 downstream 模型。
他們使用許多 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。
為了訓練模型,對於每一對用戶 embedding 和 pin embedding {(?1, ?1), . . . , (??, ?? )},他們需要一些反例資料(negative examples)。反例資料(negative examples)的來源有二:in-batch 反例(in-batch negatives) 和隨機反例(random negatives)。
Pinterest 混合以上兩種,以選擇訓練時需要的反例資料。
Loss function 為:
此模型有三種需要預測的任務:Repins、Closeups 和 Clicks。一般常見的方法是訓練每個目標特有的 head,但是 Pinterest 在此選擇訓練單一個 embedding 以達成多個不同任務任務。
另外,PinnerFormer 有四個訓練目標:Next Action Prediction、SASRec、All Action Prediction、和 Dense All Action。
最後來看結果吧!將 PinnerFormer 取代 PinnerSage 之後,結果有非常大的提升。
他們的四個訓練也都有進步,特別是預測全部行為的部分,28 天比 14 天的結果更好,很可能是因為 28 天的資訊量更多。
並且在線上的 A/B testing 中也有很大的進步,無論是哪一個測量項目都有進展,Repins 和 Close-ups 甚至分別成長 7.5% 和 6%。
好的,花了四天的篇幅,我們徹底介紹所有 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