[SIGIR2020] Sequential Recommendation with Self-Attentive Multi-Adversarial Network

NoMornings發表於2021-04-10

這篇論文主要提出了一個網路,成為Multi-Factor Generative Adversarial Network,直接翻譯過來的話就是多因子生成對抗網路。主要是期望能夠探究影響推薦的其他因子(因素)到底起到了多大的作用。這裡的因子指的是上下文的資訊。說明:後文中判別器和鑑別器是相同的。

裡面的核心有兩個部分:

  • 基於Transformer的生成器,將使用者行為序列作為輸入,推薦可能的下一個專案,並採用多個特定因素的判別器,從不同因素的角度評估生成的子序列。
  • 使用多因子的判別器,利用判別器的獎勵訊號來指導生成器的學習,也就是說使用了強化學習的方式進行訓練。這些獎勵訊號來源於上下文的因子,使用的是多鑑別器的結構。

以前的論文主要還是基於Markov假設,並且使用了迴圈神經網路或者Transformer等網路結構來處理使用者和物品的互動,這些方法利用了上下文的資訊,能夠很有效的表示了使用者的行為。

序列的推薦器通常會使用極大似然估計進行優化,然而,很多論文發現基於MLE的訓練很容易受到資料稀疏性或暴露偏差等問題的影響。

這篇論文的一個創新之處在於,利用生成對抗網路,希望能夠從序列預測當中將因子利用部分解耦。對抗學習與推薦系統結構的方法,在這篇論文當中也有表述:在本文的框架中,生成器僅依靠使用者與物品的互動資料預測未來的推薦物品,而判別器則根據現有的各種因素資訊判斷生成的推薦序列的合理性。這種方法可以更靈活地利用外部上下文形成順序推薦,能夠提高推薦的可解釋性。

問題的假設為,有一組使用者,每個使用者都會對應一組物品,物品是具有時間順序的。因子在這裡也給出了例子,比如在音樂推薦中,因子(上下文)就表示如藝術家、專輯、人氣等等。那麼,最終要解決的問題就是,給出使用者的一段互動歷史,希望能預測該使用者最可能的下一個互動的物品。

生成器就是比較常規的生成器,輸入互動的物品序列,生成使用者下一個互動物品的預測。而判別器有點不一樣,判別器有多個,其數目取決於有多少因子(上下文),利用多角度的資訊判斷生成序列的合理性。每個判別器都會將物品序列作為輸入,判別器的引數根據生成的互動物品序列以及真實的互動物品序列進行更新的。

【我不禁想到了如果因子很多很多,那豈不是要爆炸……所以感覺有點像是是面向資料集設計模型方法了。】

論文的結構圖如下:

MFGAN論文結構圖

搞個這樣的模型有三點原因:

  1. 使用最大似然損失的直接優化來訓練一個基於生成的順序推薦器是比較困難的。
  2. 將各種因子納入到判別器進行處理,使模型更加靈活的處理多因子以及噪聲。
  3. 使用多鑑別器將因子從原有的框架中解耦,提高可解釋性,避免多因子蹂躪在一起相互影響。

生成器的主要組成模組:

  • 編碼層,將one-hot的表示編碼成d維的稠密表示,然後形成一個物品的編碼矩陣以及位置位置編碼矩陣。將這兩個矩陣進行加和就成了生成器的輸入表示。
  • 自注意力層。裡面用的是多頭的注意力模組,包括兩個子層:多頭注意力子層以及前向傳播層。為了有效地提取不同表徵子空間的資訊,採用了多頭注意力機制,而不是用單一的關注函式來關注使用者序列的資訊。值得一提的是,在順序推薦中,只能利用當前時間步長之前的資訊,對多頭自注意力函式的輸出進行掩碼操作。
  • 預測層(預測下一個互動的物品),使用的是softmax操作進行預測。

對於鑑別器來說:

  • 由於這篇論文的鑑別器是針對因子所設計的多個鑑別器的組合,每個鑑別器對產生的序列進行了二分類的操作,分辨是真實的序列還是預測的序列。對不同的鑑別器使用不同的引數,並且他們之間互相獨立。
  • 編碼層。同樣的,也是使用了一個編碼矩陣以及位置矩陣進行加和。首先將一個因子的可能值分解成若干個bin,然後為每個bin設定一個唯一的編碼向量,最後通過對輸入序列中bin ID的編碼進行連線,利用查詢操作得出最後的編碼矩陣。
  • 自注意力層。跟生成器結構類似,也是使用了注意力機制以及前向傳播層。這裡每個鑑別器都只用了一個注意力模組,防止太強而不能對生成器進行合適的優化。主要結構是雙向結構並且沒有mask進行掩碼操作。用這種方式能夠對序列當中的任意兩個位置的互動進行建模。
  • 合理性預測層。使用了多層感知機的結構,用來對合理性進行預測。多個鑑別器產生的合理性分數能夠指導生成器的學習(強化學習)。

由於物品集的取樣是一個離散的過程,所以對於我們的推薦任務,不能直接應用梯度下降法來解決原來的GAN公式。所以需要強化學習進行指導。接下來說強化學習如何接管。按照強化學習的設定:

  • 狀態s是前面的子序列
  • 動作a是所選擇的下一個物品
  • 選擇策略π是生成器網路,整個網路可以看做是策略
  • 獎勵訊號r就是不同鑑別器給出的合理性分數,Q-value函式使用的是不同鑑別器合理性分數的加權組合,權重是各個鑑別器合理性分數的\(\lambda\)引數化的softmax結果。

整體演算法流程

相關文章