Joint Deep Modeling of Users and Items Using Reviews for Recommendation

推荐系统

原文网盘分享:链接:https://pan.baidu.com/s/19SnwvU93VRPAdxSBozICEw

密码:zfhm

Joint Deep Modeling of Users and Items Using Reviews

用于推荐的基于Users和Items评论的联合深度模型

协同过滤推荐

  • 基本思想:过去具有相同偏好的人往往会有类似的选择
  • 矩阵分解技术是协同过滤推荐中的重要分支
  • 问题:
    • 数据稀疏性(当用户评分的item与总item无关的时候,就会出现稀疏性问题)
      • 协同过滤不容易向评分较少的用户提供推荐
      • 协同过滤不容易吧评分较少的item推荐给用户
  • 一种方法是:
    • 除了数字评分外,使用用户的评论作为推荐的原因之一。
      • 评论可以用于缓解稀疏性问题。

本文提出一种基于神经网络的模型,称为深度协同神经网络(DeepCoNN)

  • 使用评论文本对user和item进行联合建模。
  • 所提出的模型使用两个耦合的神经网络共同学习user和item的潜特征,使得评分预测准确性最大化。
  • 本文的贡献
    • 据作者所知:DeepCoNN是第一个使用神经网络联合训练user和item的人
    • DeepCoNN使用预先训练的深层模型将评论文本表示为字嵌入向量
    • DeepCoNN不仅利用评论来缓解数据稀疏问题,而且显著提高了推荐系统的整体性能。
  • 符号定义
  • 一组训练集$\tau$由$N$个元组组成,每个元组$(u,i,r_{ui},w_{ui})$表示$user$ $u$ 为$item$ $i$ 的评分$r_{ui}$和评论文本$w_{ui}$
  • DeepCoNN模型如下图
  • Loop-Up层
    • 评论被表示为单词嵌入的矩阵以提取语义信息
    • 词嵌入的函数$M → ℜn $ ,其中$M$ 表示单词的字典。是将单词映射到$n$维分布向量的参数化函数。
    • 为了实现它,$user$ $u$ 的评论的所有评论被合并到一个文本向量$d_{1:n}^u$中,它由$n$个单词组成。
    • 就可以为$user$ $u$ 构建一个词向量矩阵$V_{1:n}^u$ :
      • $V_{1:n}^u= \phi(d_1^u) \bigoplus\phi(d_2^u) \bigoplus\phi(d_3^u) \bigoplus … \bigoplus\phi(d_n^u) $
      • 其中$d_k^u$ 表示文档$d_{1:n}^u$ 的第$k$个字
      • 查找函数$ \phi(d_k^u) $ 返回单词$d_k^u$ 相应的$c$维词向量, $\bigoplus$ 是连接符
  • CNN层(包括卷积层、最大池化层和全连接层)
    • 卷积层
      • 卷积层由$m$个神经元组成
      • 这些神经元通过在$user$ $u$ 的词向量$V_{1:n}^u$应用卷积运算符来生成新的特征。
      • 卷积层中的每个神经元$j$ 在大小为$t$ 的单词窗口上使用滤波器$K_j ∈ ℜ^{c×t} $
      • 对于$V_{1:n}^u$ 我们对卷积层中的每个内核$K_j$进行卷积运算
      • $z_j=f(V_{1:n}^u*K_j+b_j)$
        • 这里$*$是卷积运算符,$b_j$是偏置项,$f$是激活函数
        • 激活函数使用ReLUs(Rectified Linear Units)
    • 最大池化层
      • 最大池化操作,在特征映射上,将最大值作为与此特定内核对应的特征。
      • 池化操作后,卷积结果被减少到固定大小的向量。
      • $f(x)=max ${$0,x$}
      • 上述是一个从内核中提取一个特征的过程,该模型使用多个滤波器来获取各种特征,并且输出$O=${$o_1,o_2,o_3,…,o_{n_1}$}
      • 其中$n_1$表示卷积层中的内核数
    • 全连接层
      • 最大池化层得到的结果$O$被传递到具有权重矩阵$W$的全连接层
      • 全连接层的输入$X_u ∈ ℜ^{n_2×1} $ 是用户$u$的特征
      • $X_u = f(W × O + g)$
      • 最后可以获得$user$和$item$ 卷积后的输入$x_u$ $y_i$
  • 共享层
    • 虽然这些输出可以被视为用户和项目的特征,但它们可以处于不同的特征空间中而不具有可比性。 因此,为了将它们映射到相同的特征空间,我们在顶部引入了一个共享层来连接$Net_u$和$Net_i$。
      • 我们将$x_u$ $y_i$连接成单个向量$z=(x_u,y_i)$
      • 为了模拟$z$中的所有嵌套变量交互,我们引入分解机(FM)估计相应的评分
      • 其中$\omega_0$ 是全局偏差,$w_i$是第$i$个$z_i$的权重,$<V_i,V_j>$模拟二阶交互。

DeepCoNN的一些优点

  • 大多数在建模过程中使用评论的推荐系统采用主题建模技术来对用户或项目进行建模。主题建模技术使用词袋来推断潜在主题变量,其中忽略词序。
  • 但是,在许多文本建模应用程序中,单词顺序至关重要。
  • DeepCoNN不是基于主题建模,而是使用单词嵌入来创建单词向量矩阵,其中单词的顺序被保留。通过这种方式,卷积运算利用了数据的内部结构,并提供了一种在文本建模中有效使用单词顺序的机制。