Leveraging Long and Short-term Information in Content-aware Movie Recommendation

Introduction

论文动机:RNN 可以捕捉用户短期的兴趣偏好变化,矩阵分解推荐方法基于用户的长期兴趣进行电影预测,其长期变化相对于时间变化非常缓慢.此外,大多数现有的推荐系统在进行推荐时只考虑用户过去的行为。与语料库中成千上万的电影相比,历史评级集太稀疏,无法学习表现良好的模型.在本文中,我们提出了一种新的LSIC模型,该模型利用对抗性训练在内容感知电影推荐中利用长期和短期信息。LSTC模型采用对抗框架将基于MF和RNN的模型结合起来进行前n个电影推荐,充分利用每个模型提高最终推荐性能.在对抗过程中,我们同时训练两个模型:生成模型G和判别模型D.
生成器的作用是把用户 i 和时间 t 作为输入, 根据用户历史行为为用户 i 在 t 时刻生成推荐列表. 在判别式 D 中结合了长期和基于情景的排名模型(这里不太懂).推荐系统两个重要的数据集:Netflix Prize Contest数据集和 Movielens 数据集

Related Work

  1. RNN 在推荐系统中的使用
    推荐系统的传统 MF 方法假设是兴趣和电影的属性接近静态.这与实际不一致,目前人们越来越关注 RNN 对推荐系统性能的影响.基于 RNN 的方法是把用户点击第一个商品视为 GRU 的输入,之后每次用户的后续点击行为将会根据之前的触发行为进行推荐.
  2. 生成对抗网络在推荐系统中的运用
    与此同时,以前的工作已经证明了生成对抗网络(GAN)在各种任务中的有效性,如图像生成,图像标题和序列生成.最近相关的论文是 IRGAN.本文方法创先之处在于:1. 我们将MF方法和RNN方法与GAN相结合,利用两种方法的性能贡献. 2. 其次,IRGAN不会尝试估计未来的行为,因为实验数据在其设置中随机划分.事实上,他们使用未来的轨迹来推断历史记录,这在现实生活中似乎没用(Leak 特征) 3. 第三,我们整合电影的海报信息来处理冷启动问题并提升推荐表现

Our Model

假设有 U 个用户和 M 个电影组成的系数用户电影评级矩阵 R.其中r_{ij,t}的意思是用户 i 在第 t 个实践步为电影 j 评分.LSIC 不是预测未知的评分,而是为用户提供电影的排名列表.在对抗过程中,我们同时训练两个模型:生成模型G和判别模型D.

Matrix Factorization

MF框架模拟所有用户e^u和所有电影e^m长期的状态.MF 公式为
argmin_{e^u,e^m} \sum_{i,j} I_{ij} (r_{ij} - \rho ((e_i^u)^T e_j^m))^2 + \lambda^u ||e^u||^2_F + \lambda^m ||e^m||^2_F \quad \quad(1)
其中e_i^ue_j^m表示用户和电影的潜在特征向量(d 维),r_{ij}为用户 i 对电影 j 的评分.如果评分r_{ij} > 0,那么I_{ij}为1, 否则为0.\lambda^u\lambda^m是正则化系数,\rho(\cdot)是逻辑评分函数,限制了输出范围.即使预测的评级可用于对电影进行排名,但众所周知,它并未提供对前n推荐的最佳预测.因为最小化目标函数-平方误差与优化排序顺序的目标不完全一致.在本文中,我们直接应用MF进行排名预测(top-n推荐)

Recurrent Neural Network(RNN)

基于 RNN 的方法侧重于建立基于情景,它预测未来的行为,并根据用户的过去历史为用户提供排名列表. 我们把 LSTM 模型写成h_t = LSTM(h_{t-1}, x_t)
这里我们使用z_{i,t}^u \in \mathbb{R}^Uz_{j,t}^m \in \mathbb{R}^M来各自用户 i 的评分向量和电影 j 的评分向量在 j 时刻给出的评分.z_{i,t}^u \in \mathbb{R}^Uz_{j,t}^m \in \mathbb{R}^M都被送入 LSTM 中
h^u_{i,t} = LSTM(h^u_{i, t-1}, z^U_{i,t}) \quad \quad(2)

h^m_{j,t} = LSTM(h^M_{j, t-1}, z^m_{j,t}) \quad \quad(3)

其中h^u_{i,t}h^m_{j,t}为用户 i,和电影 j 各自在 t 时刻的隐藏状态.海报是通过 CNN 映射到电影的同一空间.海报仅仅在t=0的时候输入一次,因而我们有:
z_{j,-}^m = CNN(P_j) \quad \quad(4)

RNN and MF Hybrid

基于情景的模型能够处理用户和电影状态的动态变化,同时我们还考虑了用户的长期偏好.我们进一步整合用户的长期偏好和电影的固有属性

我们把评分预测函数定义为:
r_{ij,t} = g(e^u_i, e^m_j,h^u_{i,t},h^m_{j,t}) \quad \quad(5)
其中g(\cdot)是评价函数,e_i^ue_j^m是经由公式1学习到的用户 i 和电影 j 的 embedding;h_{i,t}^uh_{j,t}^m为从公式2和公式3中学习到的在 t 时刻的隐藏状态.在本文中,我们研究了四种整合 MF 与 RMM计算得分函数的策略,细节描述如下:

r_{ij,t} = g(e^u_i, e^m_j, h^u_{i,t}, h^m_{j,t}) = \frac{1}{1 + \exp(-s)}
其中 s 有:
s = e^u_i \cdot e^m_j + h^u_{i,t} \cdot h^m_{j,t} + b^u_i + b^m_j
其中b^u_ib^m_j是用户 i 和电影 j 的偏置项.h^u_{i,t}h^m_{j,t}是由公式2和公式3计算得到.
我们说 LSIC-V1没有利用好所有临时动态的电影和用户的embedding, 在本文中,我们还设计三种在学习h^u_{i,t}h^m_{j,t}的过程中辅助e^u_ie^m_j的学习.

  • LSIC-V2 我们使用 MF 预训练得到的用户 i(e^u_i)和电影 j(e^m_j)来初始化 LSTM 的隐藏状态h^u_{i,0}h^m_{j,0}, 如图2(b)所示
  • LSIC-V3 如图2(c)所示, 我们把e^u_ie^m_j视作为静态上下文向量,在计算用户和电影的 LSTM 隐藏态时, 我们把它们作为额外的输入到计算中并应用于LSTM 中的每一个时间点和上下文信息中.
  • LSIC-V4
    这种方式利用 attention 机制计算通过利用全局因子来计算每个隐藏状态的参数.在时间 t 下的混合分数是可以通过如下方式重新表示:
    r_{ij,t} = g(e^u_i,e^m_j, h^u_{i, t-1},h^m_{j, t-1},c^u_{i,t},c^m_{j,t}) = \frac1{1+\exp(-s)}
    其中:c^u_{i,t}c^m_{j,t}是用户 i 和商品在时间步t 上的上下文向量.
    h^u_{i,t}h^m_{j,t}是 LSTM 在时间步 t 的隐藏状态.
    h^u_{i,t} = LSTM(h^u_{i,t-1}, z^u_{i,t}, c^u_{i,t})
    h^m_{i,t} = LSTM(h^m_{i,t-1}, z^m_{i,t}, c^m_{i,t})
    上下文向量c^u_{i,t}c^m_{i,t}作为 LSTM 中隐藏状态的额外输入确保 LSTM 在每个时间步都能够获得完整的上下文信息(长期信息).上下文向量c^u_{i,t}c^m_{j,t}是用户 i 和电影 j 在时间步 t 的长期信息的动态表示,公式如下:
    c^u_{i,t} = \sum^U_{k=1}a^i_{k,t}e^u_k;\quad\quad c^m_{j,t}= \sum_{p=1}^M \beta^j_{p,t}e^m_p
    其中 U 和 M 是电影的数量, 对于用户 i 和电影 j 在时间步 t 的注意力权重a^i_{k,t}\beta^j_{p,t}计算为:
    a^i_{k,t} = \frac{\exp(\sigma(h^u_{i,t-1},e^u_k))}{\sum^U_{K'=1} \exp(\sigma(h^u_{i, t-1},e^u_{k'}))}
    \beta^j_{p,t} = \frac{\exp(\sigma(h^m_{i,t-1},e^m_k))}{\sum^U_{K'=1} \exp(\sigma(h^m_{i, t-1},e^m_{k'}))}

\sigma是前馈神经网络,用于给出预测值.注意力权重a^i_t\beta_t^j共同决定了选择哪个用户和电影的因子被选择以产生r_{ij,t}

Generative Adversarial Network(GAN) for Recommendation

鉴别器试图区分训练数据上的真实高评级电影与G预测的排名或推荐列表,并且发生器试图欺骗鉴别器以生成(预测)排名良好的推荐列表.具体地说,D(判别式模型)和 G(生成式模型)进行如下博弈V(D,G):

\min_G \max_D v(D, G) = \mathbb{E}_{x~P_{true}(X)}[\log D(x)] + \mathbb{E}_{z~P_z(z)} [\log (1-D(G(z))]

其中,x 是从训练集中抽样的数据,z 是一个从高斯分布中抽样得到的噪声变量.
我们提出了一个迭代框架优化两个模型.生成模型G预测给定历史用户 - 电影交互的推荐列表,以及判别模型D预测生成列表的相关性.D试图将训练数据中的真实高评级电影与G生成的推荐列表区分开来,而G则最大化D犯错误的概率.希望这种对抗过程最终可以调整G以生成合理且高质量的推荐列表。 我们进一步详细说明下面的发生器和鉴别器.

Discriminate Model

鉴别器D具有两个对称的网络,它们共享参数并通过最小化成对loss来更新.鉴别器D的目的是最大化正确区分真实电影排名与生成的推荐电影的概率.对于一个静态的生成器 G 模型,我们可以使用以下公式获得鉴别器D的最佳参数:
\theta^* = arg \max_{\theta} \sum_{i\in u}(\mathbb{E}_{m_+,m_-}\sim p_{true}[\log D_{\theta}(u_i,m_-,m_+|t)] +
\mathbb{E}_{m_+ \sim p_{true},m_{g,t}~G_{\phi}(m_{g,t}|u_i,t)}[\log(1-D_{\theta}(u_i,m_{g,t},m_+|t))] \quad (20)
其中 U 是用户集合,u_i是用户 i.
m_+高评分电影,m_-是低评分电影.
\theta\phi是 D 和 G 的参数.
\theta\phi是 D 和 G 的参数
m_{g,t}是由 G 在时间步 t 生成的电影.
在这里,采用 hinge loss作为目标函数,因为它比其他训练目标函数表现更好.
hinge loss在各种学习中被广泛采用以排序场景,其目的在于惩罚违反边际约束的样本.
D(u_i,m_-,m_+|t) = \max{0, \epsilon - g(e^u_i, e^m_{m+},h^u_{i,t}, h^m_{m_+,t}) + g(e^u_i, e^m_{m-},h^u_{i,t}, h^m_{m_-,t})}
\epsilon确定 hinge-loss 惩罚程度的超参数, 我们随后将输出压缩到(0,1)

Generative Model

生成器模型了利用辅助信息(用户u_i和时间t)作为输入,为用户i生成推荐排序列表.当 D 在计算公式20后被固定,生成器可以通过如下公式被优化
\phi^* = arg \min_{\phi} \sum_{m \in M}(\mathbb{E}_{m_{g,t} \sim G_{phi}}[\log (1-D(u_i,m_{g,t},m_+|t)])
其中,M 是电影集合, 此外,我们不是最小化\log(1-D(u_i, m_{g,t},m_+|t)),我们训练 G 是通过最大化\log(D(u_i,m_{g,t},m_+|t))

Policy Gradient

由于G对推荐列表的采样是离散的,因此不能像标准GAN公式那样通过梯度下降直接优化.本文使用基于策略梯度的强化学习算法来优化发生器G,以便生成逼真的推荐列表。 具体而言,我们有以下推导

其中 K 是迭代版本下生成器采样的电影数量,m_k是第 k 个采样数目.
基于强化学习,我们把\log D(u_i, m_k, m_+|t)看成时间步 t 的回报,并在每个时间步采取m_k行动.为了加速收敛,批量中的回报用高斯分布归一化,以产生显着的差异.

Experimental Setup

本文使用的数据集

Netflix-3M:是 Netflix-full 的一个子集,在训练集测试集上的划分上,我们使用基于时间的划分方法. 在测试集和验证集中移除在训练集中没有出现的用户和电影.

其他细节

矩阵分解.分别为Movielens和Netfix使用5和16因子数的矩阵分解, 参数使用均匀分布[-0.05, 0.05]初始随机化.我们采用梯度限幅来将梯度抑制到[-0.2,0.2]的范围. 我们使用\lambda=0.05的l2正则化用于电影和用户因子的偏差.
RNN.我们使用具有10个隐藏单元的单层 LSTM, 具有15个输入 embeddings, 4维动态状态, 其中每个状态包含七天用户/电影行为轨迹.使用 L2 正则化(\lambda = 0.05)便面 LSTM 的过拟合.
生成对抗网络. 我们使用成对方案在 G 和 D 进行与训练,使用1\times 10^{-4}的 SGD 优化参数. 采样的点应用被设置为64(K=64),此外,我们使用矩阵分解模型生成100个候选电影,然后用LSTM重新排列这些电影.在所有实验中,我们进行批量大小为128作为一个mini-batch的数量.

Evaluation Metrics

为了定量评估我们的方法,我们采用基于排名的评估指标来衡量top-n推荐的表现.包括 Precision@N, NDCG@N, Mean Average Precision(MAP)以及 Mean Reciprocal Ranking(MRR)

Comparison to Baselines

在实验中,我们使用几种最先进的方法评估和比较我们的模型.

Bayesian Personalizsed Ranking(BPR):鉴于一部正面评分的电影,BPR统一采样负面评分电影以解决不平衡问题,并为前N推荐提供基本基线

Pairwise Ranking Factorization Machine(PRFM).这是目前主流的电影推荐算法之一,它将 FM 应用于成对分类的微博排名.

LambdaFM. 推荐系统中直接优化排名偏差指标的 baseline.我们使用公开的代码运行LambdaFM模型,并对所有超参数使用默认设置

Recurrent Recommender Networks(RNN). 该模型通过硬混合机制补充了矩阵分解和递归神经网络模型

IRGAN. 该模型在对抗过程中与MF一起训练发生器和鉴别器,我们使用公开的运行IRGAN模型,并使用所有超参数的默认设置.

实验分析略

Conclution

在本文中,我们提出了一种新的对抗性推荐方法。 我们的模型结合了矩阵分解和循环神经网络,以利用长期和短期知识的益处。 我们还整合了海报信息,以进一步改善电影推荐的表现。 两个真实数据集的实验表明了我们模型的性能优势.本文将传统做法 MF 和现下比较热门的用 RNN 模型处理序列化信息,进行序列化推荐的研究方向融合在一起,有理有据地说明了 MF 提取的是长期的特征,RNN 处理动态特征上的合理性,通过多种融合方式(LSIC-V1~V4),常规地加上 Attention,并且引入了外部信息来缓解冷启动。还把刚刚火起来的强化学习、GAN 用在一起,可以认为是把各种能用的武器都利用起来,感觉像个大杂烩,通篇读完觉得有一些道理,但是动机这块解释的比较欠缺,基本都是从相关工作中的动机直接拿来用的。 由于本文涉及到的技术过多,我认为是一项较为复杂且成功的项目,文章能解释 what and how,但是 why 方面有些欠缺,让人觉得有点道理,但不够信服,虽然最后给出的 case study、控制变量、对比实验等有一些体现,但是好像分析的不够透彻。目前本文似乎还没有公开发表出来,作者承诺将在文章发表后公开代码,可以期待一下,对于相关研究是很好的代码参考。 我认为,本文融合了太多的东西,模型中使用两个 RNN 来分别处理用户和电影的特征,还用的是 one-hot 这样的稀疏编码,难以体现用户、电影之间的潜在关系,可以考虑加一层 embedding。我之前的想法是,用一个 RNN 处理输入序列,t 时刻用户 i 的特征和电影 j 的特征都使用 embedding 作为长期、静态的特征输入,而动态特征则交给 RNN 每个时刻的隐状态 ht,可以精简模型的设计和运行开销,并且相比一些传统的做法有一些微小的提升。也考虑过 MF 作为 Fine-tuned 的初始化这样的融合方式、加入 Attention 机制这样的通常操作,和作者的诸多想法不谋而合。不过这里的 GAN + RL 还是比较有意思的,虽然设计还是有些简单,但根据推荐系统的实际任务做出了不少的修改,不得不说 RL 中 reward 的概念和生成候选推荐的质量是有很强的关联的。(PS:一年过去了,代码还没有发出来……)

发表回复

您的电子邮箱地址不会被公开。