1. 程式人生 > 資訊 >用上 GAN 推薦演算法成精,看完視訊馬上刷出相關文章,微信已用上

用上 GAN 推薦演算法成精,看完視訊馬上刷出相關文章,微信已用上

這年頭,推薦演算法真是越來越智慧了。

舉個栗子,當你熱衷於東京奧運會並且刷了不少剪輯視訊,App 就會根據你的品味為你推薦文章、遊戲或是同款周邊。

沒錯,推薦演算法早已不侷限於一個場景,而是在視訊、文章、小程式等各種場景中“打通任督二脈”,也就是多領域推薦演算法。

但事實上,這類演算法並不如想象中容易駕馭,關鍵在於如何抓住不同領域中,關於目標領域的有效特徵。

為了讓推薦演算法更瞭解你,騰訊微信的看一看團隊,針對多領域推薦任務提出了一個全新的模型,融合了生成對抗網路 GAN、ELECTRA、知識表示學習等思路,學習不同領域之間的特徵轉移,極大地提升了多領域推薦演算法的效果,論文已被 KDD 2021 收錄。

8 月 18 日,資料探勘領域國際最高級別會議 KDD 2021 會議在線上舉行,微信看一看團隊的 Xiaobo Hao,針對這篇名為「Adversarial Feature Translation for Multi-domain Recommendation」的論文,進行了詳細解析和分享。

我們對論文解析進行了相關總結,一起來看看。

多領域推薦難在哪

推薦系統已經融入生活的方方面面,為我們提供個性化的資訊獲取及娛樂。

在馬太效應的影響下,Google、WeChat、Twitter 等平臺應運而生。它們往往擁有各種(推薦)服務,能夠為使用者推薦多樣化的物品(如文章、視訊、小程式等),滿足使用者需求。

使用者在不同推薦服務上的行為(在使用者允許下),會通過使用者的共享賬號產生關聯。

這些行為,能在目標領域行為之外提供更多資訊,幫助推薦系統更加全面地瞭解使用者,輔助提升各領域推薦效果。

多領域推薦(Multi-domain recommendation,MDR)任務就是基於使用者在多個領域的行為和特徵,來同時優化多個領域的推薦效果,關鍵在於如何抓住不同領域中的目標領域特化的特徵。

一個直觀的方法,是將使用者的多領域行為當作額外的輸入特徵,直接輸入給 ranking 模型,但這種方法沒有針對領域間的特徵互動進行優化建模。

另一個方法,是近期基於多工學習(Multi-task learning,MTL)的一些思路,將一個領域的推薦當作一個任務進行處理,取得了不錯的效果。

然而,多領域推薦效果仍然嚴重地受限於其固有的稀疏性問題,具體體現在兩個方面:其一,user-item 點選行為的稀疏性(這個是推薦系統本身擁有的稀疏性問題);其二,跨領域特徵互動的稀疏性(這是多領域推薦特有的稀疏性問題)。

AFT 模型要解決什麼?

為了解決這兩個問題,使模型能夠同時提升多領域推薦效果,論文提出了一個名為 Adversarial Feature Translation(AFT)的模型,基於生成對抗網路(GAN)學習不同領域之間的特徵轉移(feature translation)。

首先,在 multi-domain generator 中,論文先提出了一個 domain-specific masked encoder,用以強調跨領域的特徵互動建模,再基於 transformer 層以及 domain-specific attention 層聚合這些跨領域互動後的特徵,學習使用者在目標領域下的表示,以生成虛假的物品候選(fake clicked items)輸入到判別器中。

在 multi-domain discriminator 中,受到知識表示學習(KRL)中的基於三元組的建模方法(如 TransE)的啟發,論文構建了一個兩階段特徵轉移(two-step feature translation)模型,對領域、物品和使用者不同粒度/不同領域的偏好進行可解釋的建模。

團隊在 Netflix 和微信多領域推薦資料集上進行了測試後,發現模型在離線和線上實驗的多個結果上都獲得了顯著的提升,論文也進行了充分的消融實驗和模型分析,以驗證模型各個模組的有效性。

△圖 1:多領域推薦及 AFT 模型框架圖

具體來說,如上圖 1,AFT 包括 domain-specific masked encoder 以及 two-step feature translation,著重關注跨領域、多粒度的特徵互動建模。

在生成器(generator)部分,論文先設計了一個 domain-specific masked encoder,通過 mask 掉目標領域的歷史行為特徵(historical behaviors),來加強“其它領域歷史行為特徵”和“目標領域點選行為”之間的互動特徵權重,以驅使 AFT 模型學習基於其它領域特徵進行的目標領域推薦;

再用 Transformer 層和 Domain-specific aggregation 來抽取目標領域相關的使用者特徵,以生成 top-k 虛假點選的物品(fake clicked items)。這些虛假點選的物品將被輸入判別器,迷惑判別器的判斷,在對抗中相互提升所有領域的推薦能力。

在判別器(discriminator)部分,論文受知識表示學習模型(KRL)啟發,希望顯式地對使用者、物品和領域進行建模。

其中,先用 Transformer 從多領域特徵中分別抽取使用者的細粒度 item 和粗粒度 domain 的偏好特徵,分別標記為 user item-level preference 和 user domain-level preference;

再構造第一個三元組(user item-level preference,user domain-level preference,user general preference),進行第一次特徵轉移,學習使用者通用領域的偏好特徵(user general preference)。第一個三元組的物理含義是,對於(Hamlet,writer,Shakespeare)三元組關係,有 Hamlet+writer=Shakespeare(以 KRL 中的經典模型 TransE 為例)。

在多領域推薦中,使用者不同粒度的偏好相加(item-level preference+ domain-level preference),就約等於使用者通用領域的偏好(user general preference),因此這一步能得到使用者通用領域的偏好。

然後,論文再次構建第二個三元組(user general preference, target domain information, user domain-specific preference),進行第二次特徵轉移。第二個三元組的物理含義是,使用者的通用領域偏好 + 目標領域的特徵 = 使用者在目標領域的偏好(user domain-specific preference)。

論文基於成熟的知識表示學習模型 ConvE 進行兩層特徵轉移(two-step feature translation)後,得到了使用者在目標領域上的表示,並用於推薦。

那麼,AFT 模型到底有什麼優勢?

其一,AFT 的 GAN 框架在 domain-specific masked encoder 的幫助下,提供了充足且高質量的多領域推薦負例,緩解了資料稀疏和過擬合的問題;

其二,生成器中的 domain-specific masked encoder 能加強模型的跨領域特徵互動,而這正是多領域推薦的核心要素;

其三,判別器中的 two-step feature translation 提供了一種大膽的、顯式化可解釋的建模使用者、物品和領域的方式,對多領域推薦提供了更深層次的理解。

團隊將 AFT 模型和多個有競爭力的 baseline 模型進行了離線和線上對比。結果顯示,AFT 模型在多個領域上全面顯著地超出所有 baseline。此外,團隊還進行了詳盡的消融實驗和模型分析實驗,用以加深對 AFT 各個模組和引數的理解。

目前,AFT 模型已經在用了 —— 被部署於微信看一看的多領域推薦場景,正服務於千萬使用者。論文字身的貢獻如下:

針對多領域推薦問題,提出了一個全新的 AFT 框架,首次在多領域推薦中引入了對抗下的特徵轉移。

提出了一種 GAN 框架下的 domain-specific masked encoder,能夠針對跨領域特徵互動進行特化加強。

設計了一種兩階段特徵轉移策略,嘗試使用結構化知識表示學習的建模方式,學習使用者多粒度多領域偏好、物品和領域之間的可解釋的轉移關係。

AFT 在離線和線上實驗中均取得顯著的提升效果,並已經被部署於微信看一看系統。

AFT 模型具體長啥樣

上文提到,AFT 模型基於 GAN 訓練框架,主要分為生成器和判別器兩個部分。

如下圖 2,生成器輸入使用者多領域行為特徵,並基於 domain-specific masked encoder、Transformer 層和 Domain-specific attention,抽取目標領域相關的使用者特徵,用於生成 top-k 虛假點選的物品(fake clicked items)。判別器則基於兩階段特徵轉移,獲得使用者向量,然後預測真實/虛假點選物品的得分。

△圖 2:AFT 具體模型,包括(a)多領域生成器和(b)多領域判別器

我們具體來看。

多領域生成器

多領域生成器旨在為使用者生成每個領域上的 fake clicked items,其輸入是某個使用者在所有 n 個領域上的行為序列 X={X_1, …, X_n},其中 X_t 是第 t 個領域上的行為序列特徵矩陣。

不失一般性,論文假設生成器正在生成目標領域 d_t 上使用者可能點選的物品,首先使用 domain-specific masked encoder 處理目標領域序列 X_t,隨機對目標領域 d_t 中的行為進行 mask,如下式:

公式表示序列中 pos_t 這些位置上的行為被 [mask] 的 token 替代,使得 domain-specific masked encoder 強制生成器在生成目標領域的候選物品時,會更多地考慮其它領域的使用者行為。

這樣雖然會丟失關鍵的目標領域的歷史行為,導致生成器更難生成最合適的 fake clicked items,但也會加強跨領域歷史行為和點選的特徵互動,有助於多領域推薦,特別是稀疏行為的領域上的推薦效果,瑕不掩瑜。

隨後,論文使用 average pooling 分別聚合各個領域上(mask 後)的行為序列,並基於 Transformer 和 domain-specific attention,得到使用者在目標領域上的表示 h_t 如下:

對每個候選物品 e_i,生成器計算的點選概率 p 為:

論文基於生成概率 p,選擇目標領域上的 top k 的近鄰物品(剔除訓練集中的真實正例),作為生成器生成的負例輸入判別器。

多領域判別器

在判別器中,論文首先基於 Transformer 特徵抽取器,獲取使用者在細粒度的具體行為(item)上和在粗粒度的領域(domain)上的特徵表示:

隨後,團隊基於知識表示學習中三元組的學習正規化,設計了一個兩階段的特徵轉移:先基於使用者在多領域的細粒度和粗粒度上的偏好,得到使用者整體偏好;然後基於使用者整體偏好和目標領域資訊,得到使用者在目標領域上的偏好。

傳統的知識表示學習方法(如 TransE)顯式建模三元組關係。上文提到,對於(Hamlet, writer, Shakespeare)這個三元組關係,TransE 認為:Hamlet+writer=Shakespeare。

因此,使用者細粒度的偏好加上用於粗粒度的偏好,應該等於使用者通用領域上的全域性偏好(user general preference)。基於 ConvE 模型(因為他能夠挖掘 element-wise 的特徵互動),對於三元組(e_h, r, e_t)有:

類似地,在第一次特徵轉移中,構造了一個三元組(user item-level preference, user domain-level preference, user general preference),計算使用者通用領域上的全域性偏好 u_g 如下:

在得到 user general preference 後,又構建了第二個三元組(user general preference, target domain information, user domain-specific preference),並進行第二次特徵轉移。這個三元組的物理含義是,使用者的通用領域偏好加上目標領域的特徵,約等於使用者在目標領域的偏好(user domain-specific preference),有:

其中,目標領域特徵綜合考慮了領域向量和行為向量。與生成器類似,團隊基於使用者在 d_t 的特徵表示 u_t,計算物品 e_i 的點選概率 p 如下:

生成器 & 判別器優化

模型判別器的優化如下:

生成器則是基於 REINFORCE 強化學習進行優化:

團隊還提出一項 MMD loss,目的是讓生成器產生的物品和真實物品不完全一致(否則會干擾判別器的訓練),具體如下:

MMD loss 基於推薦系統的特質設計:在推薦系統中,絕大多數物品其實並未被曝光,團隊假設所有未被使用者點選的物品均為負例;和點選物品特別相似的 fake clicked items,也有很大概率同樣被使用者點選(例如不同自媒體號發表的同一主題的新聞/視訊等),這也是推薦系統 item-CF 的本質。

因此,團隊選擇加入 MMD loss,使得 GAN 能夠生成更加多樣化的、相似但又不完全一樣的物品作為判別器的負例。

最後,綜合三項 loss 獲得最終 AFT 的 loss,如下:

AFT 模型的判別器被部署於線上,更多模型和線上細節可參考論文第三和第四部分。

實驗結果

團隊在公開資料集和微信看一看資料集上進行了實驗,結果表明,模型在多領域推薦上獲得了顯著提升:

△圖 3:AFT 離線結果

此外,論文也在微信看一看多個線上推薦場景進行了 A/B 實驗,也同樣獲得了顯著的提升:

△圖 4:AFT 線上實驗結果

消融實驗也證明了模型各個模組的有效性:

△圖 5:AFT 消融實驗

最後,論文也進行了詳盡的模型引數分析,探索了不同 mask ratio 和 fake clicked item number 對模型效果的影響:

△圖 6:AFT 引數實驗

模型已用到微信裡

整體來說,這篇論文針對多領域推薦任務,提出了一個對抗特徵轉移的 AFT 模型。它基於 domain-specific masked encoder 加強了跨領域特徵互動,設計了一種 two-step feature translation,能夠顯式可解釋地對多領域下使用者不同粒度的偏好、物品和領域進行建模。

目前,AFT 模型已部署於微信看一看多領域推薦模組中,我們日常用微信看一看時,就會用到這個模型。

對於未來,團隊表示十分看好基於對抗和知識表示學習的跨領域特徵互動思路,計劃展開進一步探索。