Generative Adversarial Zero-Shot Learning for Cold-Start News Recommendation论文阅读笔记
Abstract
现存的问题:
新闻推荐模型极其依赖用户与新闻文章之间的交互信息来进行个性化推荐。因此,冷启动问题(CSP)是其面临的最严峻挑战之一。对于新用户或新新闻,它们的性能会急剧下降。
提出方法
zero-shot学习有助于在各种应用任务中合成缺失数据的虚拟表示。因此,为新用户或新新闻文章生成虚拟交互行为是解决冷启动问题的一个很有前途的方法。在本文中,我们利用生成对抗zero-shot学习建立了一个框架,即 GAZRec,它能够解决纯新用户或新新闻引起的 CSP 问题。GAZRec 可以灵活地应用于任何神经新闻推荐模型。
Introduction
当前的 CSP 解决方案的总体思路是寻找额外信息,为冷用户/冷项目的推荐决策过程预热。这些额外信息可以是研究领域内或研究领域外冷门用户/项目的一些相关样本。
最近,人们注意到 CSP 的处理方法类似于zero-shot学习(ZSL)。CSP 与 ZSL 类似,都是在缺少数据的情况下进行预测。在 ZSL 中,缺少的是未见类别的样本,而在 CSP 中,缺少的是冷用户/冷项目的用户-项目交互(即行为)。ZSL 使用已见类和未见类的一些基本属性,将已见类的知识转化为未见类的知识。因此,可以生成未见类别的虚拟样本。直观地说,在 CSP 任务中也可以采用这种想法,利用用户/项目属性将旧样本中的行为概括到新样本中,从而获得虚拟行为表示。
我们提出了一种zero-shot学习方法来缓解新闻推荐领域的 CSP,从而解决纯冷用户和冷新闻的 CSP 问题。具体来说,我们利用生成对抗zero-shot学习开发了一个框架,即 GAZRec,该框架可应用于任何基于用户/新闻嵌入的神经新闻推荐模型,通过从冷用户和冷新闻的相应属性数据中构建冷用户和冷新闻的虚拟行为表示来克服 CSP。
实际上,GAZRec 由三座塔组成,即推荐塔、零镜头用户塔和零镜头新闻塔。第一个塔是根据用户和候选新闻的行为表现进行推荐。另外两个塔是通过条件 Wasserstein GAN 开发的,用于为冷用户/新闻生成虚拟表示,该表示以给定的属性数据为条件。本文的贡献概述如下:
- 我们为新闻推荐系统提出了一个名为 GAZRec 的三塔框架,以条件 Wasserstein GAN 为基础,提供纯冷用户和冷新闻的合成行为表示。它适用于任何基于嵌入的新闻推荐基线,以解决 CSP 问题。
- 端到端协同训练程序考虑了不同的冷启动情况,使三个塔同时学习,并在冷样本到达时向推荐塔提供来自zero-shot塔的合成表示。
Method
这里先进行一下背景知识的介绍
零镜头学习
零镜头学习(Zero-shot Learning,ZSL)主要解决的是对属于以前未见过的类别的样本进行分类的问题。其目的是利用共享属性空间(其中包含一些辅助数据),将知识从有训练数据的已见类别转移到未见类别。针对图像分类问题的现有 ZSL 模型的思路可分为三类: 1) 将视觉空间映射到属性空间 ;2) 将属性空间映射到视觉空间 ;3) 将两者映射到共享潜空间。因此,视觉样本可以被预测为未见类别。最近,变分自动编码器(VAE)和生成对抗网络(GAN)等生成模型被大量用于在许多零镜头分类问题中实施映射策略,因为它们能够有效地解决数据不足的问题。本文基于 GAN 构建了 GAZRec 框架的zero-shot塔,将用户/新闻的属性特征映射到其行为特征上。
总体结构
拟议的 GAZRec 框架结构如下图所示。其中有三个塔:推荐者塔、zero-shot用户塔和zero-shot新闻塔。中间的推荐塔采用用户和新闻表征,通过点击预测模块计算用户对新闻的偏好程度预测得分。这个推荐塔可以用任何基于嵌入的新闻推荐模型来实现。如果用户/新闻是热的,则由位于推荐塔中的用户/新闻编码器计算表征;反之,如果是冷的,则由位于左侧和右侧零镜头用户/新闻塔中的用户/新闻生成器获得表征。
由于缺乏冷用户的行为数据,用户编码器无法生成冷用户的表征,因此零镜头用户塔旨在为冷用户生成合成行为表征。同样,"零镜头新闻塔 "也用于生成未被用户点击的冷新闻文章的合成表征。请注意,冷暖新闻的表征学习是不同的。冷/暖新闻门控制着新闻表征的生成方式。对于暖新闻,门切换到中间塔的编码器,该编码器使用新闻与用户之间的交互。如与用户编码器的连接所示,"点击新闻 "可以多次包含一条热门新闻,因此暖新闻表示法是通过用户交互历史学习的,与 "冷 "新闻不同。使用 "塔 "而不是新闻编码器来处理 "冷 "新闻,是为了在其表征中考虑从类似的 "暖 "新闻中转移过来的虚拟行为。这两个 "zeroshot 塔 "是由生成式对抗网络实现的,特别是条件 Wasserstein GAN,用于合成以给定属性数据为条件的行为表征。三个塔的共同训练使该框架不受用户和新闻 CSP 的影响。
问题定义
暖和冷新闻/用户的符号
我们认为暖的新闻/用户有至少十条以上的交互,而冷的是没有任何交互。以用户为例,暖用户表示为\(i_w=\{r_w,h_w,t\}\),冷用户表示为:\(i_c=\{r_c,h_c=\phi,t\}\),其中r是一个用户属性向量,其大小等于主要新闻类别的数量(𝑅),其值表示用户对每个类别的喜欢程度。h是由具有相应id的交互新闻列表表示的用户历史,t是需要评估的目标新闻。它由 ID 定义,其特征是类别、标题和正文中的词语。它还有一个标签 𝑡𝑓 ∈ {0, 1},其中 0 表示该新闻是热门新闻(曾经被一些用户点击过),1 表示该新闻是冷门新闻(从未被点击过)。
推荐塔符号
推荐塔旨在学习针对任何类型的用户和新闻(即暖或冷)的映射函数\(f\left(x\right)=\hat{y}\)。其中𝑥={𝑢,𝑛}的输入包括用户表示𝑢和新闻表示n。我们考虑输入中的常规情况和所有CSP情况:
- 暖用户和暖新闻(WW)
- 暖用户和冷新闻(WC)
- 冷用户和暖新闻(CW)
- 冷用户和冷新闻(CC)
因此我们有四种类型的输入:\(x_{ww}=\{u_{w},n_{w}\},x_{cw}=\{\tilde{u}_{c},n_{w}\},x_{wc}=\{u_{w},\tilde{n}_{c}\}\)和\(x_{cc}=\{\tilde{u}_c,\tilde{n}_c\}\)
𝑢𝑤和𝑛𝑤分别表示由用户和新闻编码器获得的暖用户和暖新闻的真实表示,˜𝑢𝑐是由用户生成器𝐺𝑢获得的冷用户的合成表示,˜𝑛𝑐是由新闻生成器𝐺𝑛获得的冷新闻的合成表示。
Zero-shot塔符号
条件 WGAN 用于实现两个塔,即判别器𝐷𝑢 和𝐷𝑛,以及生成器𝐺𝑢 和𝐺𝑛 分别用于零镜头用户塔和零镜头新闻塔。两个塔的条件分别是 𝑎 和 𝑠,它们是用户和新闻的属性表示向量,分别在r(表示用户喜欢的新闻类别的初始用户属性)和新闻标题词上应用属性编码器𝐸𝑢 和𝐸𝑛,从而得到用户和新闻的属性表示向量。\(a=E_u(r)\mathrm{~and~}s=E_n([w_1, w_2, \ldots, w_m]).\)
推荐塔
推荐塔模块
用户和新闻编码器的结构基于 GAZRec 采用的新闻推荐基线。推荐塔以不同的方式对待热用户/新闻和冷用户/新闻。对于热用户和热新闻,它们的真实表示向量𝑢𝑤和𝑛𝑤是从相应的编码器中获得的。而对于冷用户和冷新闻,它们的合成表示向量\(\tilde{u_c}\)和\(\tilde{n_c}\)则从相应的生成器中获得。因此,W/C 用户门和 W/C 新闻门用于根据\(flag_u\)和\(flag_n\)表示的用户/新闻的冷或热状态,在生成器和编码器的输出之间进行切换。如果用户𝑢是冷门用户,则 \(flag_u\)=true,否则\(flag_u\)=false。同样,如果新闻 𝑛 是冷门,则\(flag_n\)=true ,否则\(flag_n\)=false 。
点击预测模块用于预测用户点击候选新闻的概率。根据所使用的推荐基线,点击概率得分\(\hat{y}\)可以通过两种不同的评分方法计算。第一种方法是用户表示𝑢 和新闻表示 𝑛 的内积,即\(\hat{y}=u^Tn\)。第二种方法是采用多层感知器,将\(\hat{y}\)作为最后一层的输出结果。
推荐塔的训练
这个就跟许多传统的方法一样
\(p_i=\frac{\exp(\hat{y}_i^+)}{\exp{(\hat{y}_i^+)}+\sum_{j=1}^K\exp(\hat{y}_j^-)}.\)
\(L=-\sum_{i\in P}\log(p_i).\)
我们有四种输入数据到点击预测器,每种输入的损失函数都是按这个来计算,最后的损失函数为:
\(L_{Rec}=L_{WW}+L_{CW}+L_{WC}+L_{CD}.\)
Zero-shot用户塔
零镜头用户塔是专为生成冷用户的合成行为表示而设计的。它主要由三个部分组成:属性编码器𝐸𝑢,用于编码用户属性特征;生成器𝐺𝑢,用于生成合成用户表示向量;判别器𝐷𝑢,用于区分合成表示向量和真实表示向量。该塔在热用户身上进行训练,并将在测试阶段用于推断冷用户的表征。
用户属性编码器
属性编码器的输入是向量 𝑟,它表示用户对每个主要新闻类别的喜爱程度。属性编码器𝐸𝑢的设计规则之一是对𝑟进行归一化处理,得到用户属性向量𝑎:
\(a=E_u(r)=r/\|r\|_2\)
其他用户特征,如年龄、性别和社交网络,也可以通过更复杂的属性编码器𝐸𝑢,纳入属性向量 𝑎 中。对于冷用户来说,输入属性向量 𝑟 是用户在大多数新闻平台注册时可以收集到的最少信息,即通过勾选(点击标签)其偏好的新闻类别。
用户生成器和判别器
我们将属性向量 𝑎 与从高斯分布𝑁 (0, 𝐼) 中采样的随机向量 𝑧𝑢∈R 𝑧 连接起来。然后,我们将其输入\(G_u\),得到合成用户表示\(\tilde{u}\leftarrow G_{u}(a\parallel z_{u}).\)。因此,我们认为生成是以𝑎为条件的,目的是使\(\tilde{u}\)为用户的𝑢个性化表示。用户生成器𝐺𝑢 可以用双层全连接神经网络(NN)来实现,其激活因子分别为 Leaky ReLU和 Tanh。
作为生成式对抗网络的一部分,判别器𝐷𝑢 试图将合成的\(\tilde{u}\)与真实的用户表示向量𝑢 区分开来。它可以通过分别具有激活函数 ReLU 和 Sigmoid 的双层 NN 来实现。判别器 𝐷𝑢 获取真实的 𝑢 或合成的\(\tilde{u}\),将其与相应的属性向量 𝑎 连接,然后做出判别预测\(D_u(u\parallel a)\mathrm{~or~}D_u(\tilde{u}\parallel a)\)。由于目标是使合成的\(\tilde{u}\)与真实的 𝑢 无法区分,因此 \(D_u(\tilde{u}\parallel a)\)的输出应该接近 \(D_u(u\parallel a)\) 。
我们在暖用户身上训练用户生成器𝐺𝑢和判别器𝐷𝑢,因为他们的真实表示𝑢是可用的。生成器𝐺𝑢 和鉴别器𝐷𝑢 的损失函数定义如下:
𝐿𝐺𝑢的第二项用于保证生成的特性非常适合代表冷用户。它鼓励生成器构建冷用户表示,以最小化对冷用户的推荐损失。
这整个损失函数太专业了,作者没有接触过GAN,这里就不解释了。
Zero-shot新闻塔
零镜头新闻塔为未被用户点击的冷新闻文章生成合成表示。生成器考虑了新闻文本内容,但比普通编码器更有效。重要的是,它将从类似的暖新闻中转移过来的虚拟交互行为纳入到生成的表征中。
与零镜头用户塔类似,这个新闻塔也由三个部分组成:属性编码器𝐸𝑛、生成器𝐺𝑛和判别器𝐷𝑛。塔对暖新闻进行训练,并推断出冷新闻的表征。
新闻属性编码器
它旨在对新闻标题词进行编码,并将编码结果作为新闻生成器 𝐺𝑛 和新闻判别器 𝐷𝑛 的条件。给定新闻标题(一个由 𝑚 个词组成的序列 [𝑤1,𝑤2, ... ,𝑤𝑚])。𝐸𝑛 将其转换为一系列词嵌入向量,并计算它们的平均值,从而输出新闻属性向量 𝑠。词嵌入模型可以是任何预先训练好的模型。
新闻的生成器和新闻的判别器
这一整个部分都与用户的生成判别器的方式相似,详细见具体论文
端到端的训练GAZRec
GAZRec 的训练是一个端到端的过程,其中三个塔的所有参数都在每个训练epoch中一起训练。实际上,零点塔是通过热样本(即用户塔的热用户和新闻塔的热新闻)进行训练的,并推断出冷样本的合成表示。因此,除了用户和新闻编码器的参数外,暖样本的真实表示和冷样本的合成表示都用于训练推荐塔参数,因为它们只通过暖用户/新闻进行训练。
算法 1 概述了训练过程。框架的输入是记录列表,每条记录都包括用户属性𝑟(用于零点用户塔)、用户点击新闻列表h(输入到用户编码器模块)、候选新闻𝑡(应输入到新闻编码器)以及𝑙𝑎𝑏𝑒𝑙(值为 1 或 0,表示用户是否喜欢候选新闻的基本事实)。𝑙𝑎𝑏𝑒𝑙用于计算推荐塔的损失。请注意,冷用户的点击新闻列表是空的。
GAZRec的训练过程如下:
在每个训练时程中,确定每个记录的 𝑓𝑙𝑎𝑔𝑢 和 𝑓𝑙𝑎𝑔𝑛。根据它们的值,输入记录的类型被指定为 WW、CW、WC 或 CC。因此,用户表示和新闻表示由推荐塔中的编码器或零点塔中的生成器生成。然后,计算所有输入的预测分数,并根据其损失更新推荐塔(第 7 行)。然后,对用户判别器进行\(N_D\)步优化(第 9 - 13 行),对生成器进行 1 步优化(第 15 - 18 行)。新闻鉴别器和生成器也进行了同样的优化(第 20 - 29 行)。图 1 中带有黑色箭头的灰色模块代表了经过训练的 GAZRec 的最终结构。然后,经过训练的 GAZRec 就可以用于向热用户/代码用户推荐冷/暖新闻。与采用的骨干推荐模型相比,由于用户/新闻生成器和用户/新闻编码器交替使用,GAZRec 的训练时间最多增加一倍,而推理时间基本相同。此外,用户/新闻生成器的结构也比用户/新闻编码器的结构简单。
总结
整篇文章还是讲的比较清晰的,看图就能够看明白大部分,需要一定的GAN的基础知识。这里贴一下原文的conclusion
在这项工作中,我们提出了基于生成对抗零点学习的三塔 GAZRec 框架,以减轻新闻推荐中的 CSP。通过对零点用户塔和零点新闻塔进行条件 GAN,可以根据冷用户/新闻对应的属性数据,将暖用户/新闻的行为数据泛化为冷用户/新闻的行为数据。因此,可以生成冷用户和新闻的虚拟行为表示,并用于推荐。将该框架应用于基于嵌入式的新闻推荐基线,可以提高它们在不同冷启动场景下的准确性。