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

這篇論文主要提出了一個網絡,成為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結果。

整體算法流程