没脚的雀

TransRev-Modeling Reviews as Translations from Users to Items阅读

摘要

用户评论(review text)作为一个丰富的信息源,越来越受到推荐系统研究人员的关注,而在推荐系统的设定下,利用review text 的推荐算法在为一个特定的user以及item进行预测时,对应user,item的review text 是不存在的,这造成了这一类算法在推荐的时候没有review text 可利用。这篇paper通过将训练数据中所有的user、item、review text 表示成同一个向量空间中的向量并假设review text 的向量等于特定user与item的向量之差,构建了特定的(user, item, review text)在向量空间中的约束关系,得到了user、item、各自对应的向量化表示后,那些未知的review text 可以通过两者的差进行表示,进而作为test time阶段,推荐算法的输入。

简介

当前大多数的review-based RSs, 需要面对的问题是,在上线阶段,当一个user从未购买过某个item的时候,这个(user, item) 对应的review text 是不可能存在的, 也就是说: 如果一个用户从未购买过某一个商品, 那么该用户对该商品的评论也就不存在,从而无法被相应的推荐算法利用。

为了解决上面的问题,作者提出了将review text 表示成为user、item、review text 的向量空间中相应user、item向量之间的translation,也就是两个向量之间的差,包括了两个阶段的obj function的联合求解,分别是: review text 的向量化表示关于user 对item的overall rating 的回归;user、 item的向量化表示之差与review text 的向量化表示之差的最小化。

review-text 关于rating的回归

在paper中,通过某些word embedding 的技术(word2vec, fastText) 将会语料中的所有词汇做向量化表示,而每一段review text的向量化表示定义为:
$$
h_{rev_{(u,i)}} = \frac 1 {|rev_{(u,i)}|} \sum_{t\in rev_{(u,i)}} v_t + h_0
$$
其中,$v_t$ review 中每一个单词的向量化表示, 那么所有的review 表示成为review 中单词向量化的平均 加上一个 $h_0$偏差, 这个$h_0$ 偏差主要用来表示某些不在词典中的单词。

在得到了review text 的向量化表示之后, 用户的预测评分可以表示成为:
$$
\hat{r_{(u,i)}} = h_{rev_{(u,i)}}w^T + b_{(u,i)}
$$
其中,
$$
b_{(u,i)} = b_u + b_i + b_0
$$
是传统推荐系统中常用的去除偏差影响的方法。那么,review-text关于rating回归的目标函数可以写为:
$$
min{L_1} = min{\sum_{(u, rev_{(u,i)}, i) \in S}} (h_{rev_{(u,i)}}w^T + b_{(u,i)} - r_{(u,i)})^2
$$
其中 $w^T, b_{(u,i)}$是参数,需要从训练数据中学习。

user、item向量化之差与review text向量化的最小化

paper中第二个目标函数,用于关联 user、item向量化表示 与 review text 向量化表示之间的关系,具体如下:
$$
min{L_2} = min \sum_{(u, rev_{(u,i)}, i) \in S} ||e_u + h_{rev_{(u,i)}} - e_i||^2
$$

联合求解两个目标函数

完整的目标函数为:
$$
min L = min (L_1 + \lambda L_2 + \mu ||\Theta||_2)
$$
$\Theta$ 表示参数,包含了 $e_u, e_i$ 表示用户、item的向量化表示, $w^T$表示了review-text向量化表示的各个维度在预测评分的权重,$b_{(u,i)}$ 表示了评分预测中的偏差。

在得到了上述的参数之后, 评分过程中,一个未知的review text 的向量化表示可以表示成为:
$$
\hat {h}{rev{(u,i)}} = e_i - e_u
$$
从而相应的评分预测为:
$$
\hat {r}_{(u,i)} = \hat h {rev{(u,i)}}w^T + b_{(u,i)}
$$

参考paper

大佬给口饭吃咧