引用数:9183 来源:Proceedings of the 10th international conference on World Wide Web
cosine-based similarity
:将i,j视为由用户评分组成的向量,相似性为向量角度的cos值; s i m ( i , j ) = cos ( i ⃗ , j ⃗ ) = i ⃗ ⋅ j ⃗ ∣ ∣ i ⃗ ∣ ∣ 2 ∗ ∣ ∣ j ⃗ ∣ ∣ 2 sim(i,j)=\cos(\vec i,\vec j)=\frac{\vec i\cdot \vec j}{||\vec i||_2*||\vec j||_2} sim(i,j)=cos(i,j)=∣∣i∣∣2∗∣∣j∣∣2i⋅jcorrelation-based similarity
:Pearson-r correlation
,设对i,j都评价的人的集合为U,则 s i m ( i , j ) = ∑ u ∈ U ( R u , i − R ˉ i ) ( R u , j − R ˉ j ) ∑ u ∈ U ( R u , i − R ˉ i ) 2 ∑ u ∈ U ( R u , j − R ˉ j ) 2 sim(i,j)=\frac{\sum_{u\in U}(R_{u,i}-\bar R_i)(R_{u,j}-\bar R_j)}{\sqrt{\sum_{u\in U}(R_{u,i}-\bar R_i)^2}\sqrt{\sum_{u\in U}(R_{u,j}-\bar R_j)^2}} sim(i,j)=∑u∈U(Ru,i−Rˉi)2∑u∈U(Ru,j−Rˉj)2∑u∈U(Ru,i−Rˉi)(Ru,j−Rˉj), R ˉ i \bar R_i Rˉi为物品i的平均评分。adjusted-cosine similarity
:考虑不同用户打分的范围, s i m ( i , j ) = ∑ u ∈ U ( R u , i − R ˉ u ) ( R u , j − R ˉ u ) ∑ u ∈ U ( R u , i − R ˉ u ) 2 ∑ u ∈ U ( R u , j − R ˉ u ) 2 sim(i,j)=\frac{\sum_{u\in U}(R_{u,i}-\bar R_u)(R_{u,j}-\bar R_u)}{\sqrt{\sum_{u\in U}(R_{u,i}-\bar R_u)^2}\sqrt{\sum_{u\in U}(R_{u,j}-\bar R_u)^2}} sim(i,j)=∑u∈U(Ru,i−Rˉu)2∑u∈U(Ru,j−Rˉu)2∑u∈U(Ru,i−Rˉu)(Ru,j−Rˉu)。Weighted Sum
:通过用户在与i相似的物品上的评分来推测对i的评分, P u , i = ∑ a l l s i m i l a r i t e m s , N ( s i , N ∗ R u , N ) ∑ a l l s i m i l a r i t e m s , N ( ∣ s i , N ∣ ) P_{u,i}=\frac{\sum_{all\ similar\ items,N}(s_{i,N}*R_{u,N})}{\sum_{all\ similar\ items,N}(|s_{i,N}|)} Pu,i=∑all similar items,N(∣si,N∣)∑all similar items,N(si,N∗Ru,N)Regression
:相似物品的评分 R N R_N RN,i物品的评分 R i R_i Ri;则 R ˉ N ′ = α R ˉ i + β + ϵ \bar R'_N=\alpha \bar R_i+\beta+\epsilon RˉN′=αRˉi+β+ϵ 。movielens
;选择评分电影超20部的用户,交互大概有1百万个,然后将该数据集分为训练集和测试集。adjusted cosine similarity
最好。Training/Test
比例x:使用两种预测生成方法,x增加,MAE越小,,取两条预测生成方法曲线的交点,x=0.8.引用数:7437 来源:Computer
在Netflix竞赛上证明矩阵分解技术好于最近邻方法。并且可以结合其他信息(隐反馈、时间等)。
主要的方法:
the content filtering approach\content-based
,创造刻画用户或物品的资料,然后使用资料关联用户和匹配的物品。past user behavior\collaborative filtering
,分析用户间的关系,物品间的相关性,然后据此确定用户物品关系。又可以分为领域的方法和建立隐因素模型的方法。推荐系统的输入,有明显反馈输入的系统,一般是一个矩阵,坐标轴一般为用户、用户在物品上的评分,是一个稀疏矩阵。
方法:
基本的
matrix factorization
模型
将用户和物品映射到一个 f f f维度的联合因素空间,用户-物品的交互可用空间中的内积表示。物品可表示为 q i ∈ R f q_i\in R^f qi∈Rf,用户表示为 p u ∈ R f p_u\in R^f pu∈Rf;空间中的每一维表示用户(物品)在该维上的喜好(程度)。 q i T p u q_i^Tp_u qiTpu表示用户u与物品i的交互(兴趣),近似用户的评分 r ^ u i \hat{r}_{ui} r^ui。当学的映射后,可用== r ^ u i = q i T p u \hat{r}_{ui}=q_i^Tp_u r^ui=qiTpu==来预测用户u在物品i上的评分。
这种方法与奇异值分解
singular matrix decomposition
紧密相关。由于稀疏性,无法直接将SVD应用到CF。一种是填充数据,另一种是只用已有数据,通过正则化防止过拟合。即:
min q ∗ , p ∗ ∑ ( u , i ) ∈ K ( r ^ u i − q i T p u ) 2 + λ ( ∣ ∣ q i ∣ ∣ 2 + ∣ ∣ p u ∣ ∣ 2 ) (1) \min_{q^*,p^*}\sum_{(u,i)\in K}(\hat{r}_{ui}-q_i^Tp_u)^2+\lambda(||q_i||^2+||p_u||^2) \tag{1} q∗,p∗min(u,i)∈K∑(r^ui−qiTpu)2+λ(∣∣qi∣∣2+∣∣pu∣∣2)(1)学习方法:
stochastic gradient descent
:随机梯度下降alternating least squares
:交替固定一个参数,依次解一个最小二乘问题,可并行处理。添加
baises
由于用户等原因,会产生一些变化,如一些用户偏向于给一些物品高分。
一阶偏差可定义为: b u i = μ + b u + b i b_{ui}=\mu+b_u+b_i bui=μ+bu+bi。分别代表:整体平均值,用户bias,物品bias;则评分可表示为:
r ^ u i = μ + b u + b i + q i T p u (2) \hat{r}_{ui}=\mu+b_u+b_i+q_i^Tp_u \tag{2} r^ui=μ+bu+bi+qiTpu(2)添加额外输入,解决
cold start problem
,提供的评分较少的情况。
设 N ( u ) N(u) N(u)表示用户有隐偏好的物品集合(如历史购物、浏览情况)。用户在该集合上的偏好可表示为 ∑ i ∈ N ( u ) x i \sum_{i\in N(u)}x_i ∑i∈N(u)xi, x i ∈ R f x_i\in R^f xi∈Rf。
设 A ( u ) A(u) A(u)表示用户对应的属性集合(如性别、年龄),用户在相关属性集合上可表示为 ∑ a ∈ A ( u ) y a \sum_{a\in A(u)}y_a ∑a∈A(u)ya, y a ∈ R f y_a\in R^f ya∈Rf。
所以评分表示为:可再添加额外的物品属性。
r ^ u i = μ + b u + b i + q i T [ p u + ∣ N ( u ) ∣ − 0.5 ∑ i ∈ N ( u ) x i + ∑ a ∈ A ( u ) y a ] (3) \hat{r}_{ui}=\mu+b_u+b_i+q_i^T[p_u+|N(u)|^{-0.5}\sum_{i\in N(u)}x_i+\sum_{a\in A(u)}y_a] \tag{3} r^ui=μ+bu+bi+qiT[pu+∣N(u)∣−0.5i∈N(u)∑xi+a∈A(u)∑ya](3)
temporal dynamics
:偏好会随时间变化
- 用户偏差,物品偏差,用户偏好都可能随时间变化,所以,评分可表示为:
r ^ u i ( t ) = μ + b u ( t ) + b i ( t ) + q i T p u ( t ) (4) \hat{r}_{ui}(t)=\mu+b_u(t)+b_i(t)+q_i^Tp_u(t) \tag{4} r^ui(t)=μ+bu(t)+bi(t)+qiTpu(t)(4)加上
confidence level
:打分的可信度是不一样的,如一个视频看的次数。
- 添加可信度,问题变为:
min q ∗ , p ∗ ∑ ( u , i ) ∈ K c u i ( r ^ u i − μ − b u − b i − q i T p u ) 2 + λ ( ∣ ∣ q i ∣ ∣ 2 + ∣ ∣ p u ∣ ∣ 2 + b u 2 + b i 2 ) (5) \min_{q^*,p^*}\sum_{(u,i)\in K}c_{ui}(\hat{r}_{ui}-\mu -b_u-b_i-q_i^Tp_u)^2+\lambda(||q_i||^2+||p_u||^2+b_u^2+b_i^2) \tag{5} q∗,p∗min(u,i)∈K∑cui(r^ui−μ−bu−bi−qiTpu)2+λ(∣∣qi∣∣2+∣∣pu∣∣2+bu2+bi2)(5)
c u i c_{ui} cui表示用户u在物品i上的置信度。
数据集:Netflix数据集(大约),训练集100百万个评分,0.5百万用户,1.7万的电影;测试集,预测3百万个评分。
评价指标:计算root-mean-square error (RMSE)
, R M S E = ∑ i = 1 N ( p i − q i ) 2 N RMSE=\sqrt\frac{\sum_{i=1}^N(p_i-q_i)^2}{N} RMSE=N∑i=1N(pi−qi)2。
实验结果:由(1)-(5)参数越多,性能越好。
引用数:1217 来源:2010 IEEE International Conference on Data Mining
问题:很多分解方法(如MF、parallel factor analysis、SVD++、PITF、FPMC),缺点是无法广泛应用到普遍的预测问题。只能针对特定的输入(任务)。
FM结合了SVM和分解模型的优点,是具有一般性的预测器,计算复杂度是线性的,能对变量间的各种交互建模(包括高稀疏的数据)。
方法:
将输入编码为向量,输入 x ∈ R n x\in R^n x∈Rn,输出 y ∈ R y\in R y∈R,
d=2的模型方程:
传统的SVM的方法,如 y ^ ( x ) : = w 0 + ∑ n w i x i + ∑ i = 1 n ∑ j = i + 1 n w i , j x i x j \hat y(x):=w_0+\sum_n w_ix_i+\sum_{i=1}^n \sum_{j=i+1}^nw_{i,j}x_ix_j y^(x):=w0+∑nwixi+∑i=1n∑j=i+1nwi,jxixj;变量w间的交互视为独立的,使用
maximum margin
,会导致在测试中的训练集中未出现的交互 w i , j = 0 w_{i,j}=0 wi,j=0;本文的方法:
y ^ ( x ) : = w 0 + ∑ n w i x i + ∑ i = 1 n ∑ j = i + 1 n < v i , v j > x i x j (eq1) \hat y(x):=w_0+\sum_n w_ix_i+\sum_{i=1}^n \sum_{j=i+1}^n<\mathtt v_i,\mathtt v_j>x_ix_j \tag{eq1} y^(x):=w0+n∑wixi+i=1∑nj=i+1∑n<vi,vj>xixj(eq1)
w i , j : = < v i , v j > w_{i,j}:=<\mathtt v_i,\mathtt v_j> wi,j:=<vi,vj>表示第i,j两个变量的交互, v i ∈ R k \mathtt v_i\in R^k vi∈Rk。eq1的计算量为 O ( k n 2 ) O(kn^2) O(kn2);由于经过变换, ∑ i = 1 n ∑ j = i + 1 n < v i , v j > x i x j = 1 2 ∑ f = 1 k ( ( ∑ i = 1 n v i , f x i ) 2 − ∑ i = 1 2 v i , f 2 x i 2 ) \sum_{i=1}^n \sum_{j=i+1}^n<\mathtt v_i,\mathtt v_j>x_ix_j=\frac{1}{2}\sum_{f=1}^k((\sum_{i=1}^nv_{i,f}x_i)^2-\sum_{i=1}^2v_{i,f}^2x_i^2) ∑i=1n∑j=i+1n<vi,vj>xixj=21∑f=1k((∑i=1nvi,fxi)2−∑i=12vi,f2xi2);则计算量为 O ( k n ) O(kn) O(kn)。只算非零元素,则计算量为 O ( k m ˉ D ) O(k\bar m_D) O(kmˉD); m ˉ D \bar m_D mˉD为输入向量中的非零元素的平均个数。
FM对可实现其他方法:
MF
:只取user和item; y ^ ( x ) = w 0 + w i + w u + < v u , v i > \hat y(\mathtt x)=w_0+w_i+w_u+<\mathtt v_u,\mathtt v_i> y^(x)=w0+wi+wu+<vu,vi>。SVD++
:考虑输入的前三项, y ^ ( x ) = w 0 + w i + w u + < v u , v i > + 1 ∣ N u ∣ ∑ l ∈ N u < v i , v l > \hat y(\mathtt x)=w_0+w_i+w_u+<\mathtt v_u,\mathtt v_i>+\frac{1}{\sqrt{|N_u|}}\sum_{l\in N_u}<\mathtt v_i,\mathtt v_l> y^(x)=w0+wi+wu+<vu,vi>+∣Nu∣1∑l∈Nu<vi,vl>。PITF
:推荐标签, y ^ ( x ) = w 0 + w u + w i + w t + < v u , v i > + < v u , v t > + < v i , v t > \hat y(\mathtt x)=w_0+w_u+w_i+w_t+<\mathtt v_u,\mathtt v_i>+<\mathtt v_u,\mathtt v_t>+<\mathtt v_i,\mathtt v_t> y^(x)=w0+wu+wi+wt+<vu,vi>+<vu,vt>+<vi,vt>;使用pairwise ranking
则变为: y ^ ( x ) = w t + < v u , v t > + < v i , v t > \hat y(\mathtt x)=w_t+<\mathtt v_u,\mathtt v_t>+<\mathtt v_i,\mathtt v_t> y^(x)=wt+<vu,vt>+<vi,vt>。
Factorized Personalized Markov Chains (FPMC)
:基于用户上次购买情况对商品排序; y ^ ( x ) = w i + < v u , v i > + 1 ∣ B t − 1 u ∣ ∑ l ∈ B t − 1 u < v i , v l > \hat y(x)=w_i+<\mathtt v_u,\mathtt v_i>+\frac{1}{|B_{t-1}^u|}\sum_{l\in B_{t-1}^u}<\mathtt v_i,\mathtt v_l> y^(x)=wi+<vu,vi>+∣Bt−1u∣1∑l∈Bt−1u<vi,vl>。 B t − 1 u B_{t-1}^u Bt−1u为用户t-1时买的物品。
引用数:2728 来源:Proceedings of the Twenty-Fifth Conference on Uncertainty in Artificial Intelligence(2009)
问题:有很多以隐反馈implicit feedback
(如购买浏览历史)输入,实现个性化推荐(MF,kNN),但它们都没有直接针对排名进行优化。为优化排名,提出了一般化的优化标准BPR-OPT
,和一般化的学习算法LearnBPR
。
方法:
在隐反馈系统中,只有正例 S S S(用户喜欢的)被观测到,其他数据是真负例和缺失值的样例组成;
- 以前的方法是将观测的数据视为正例(1),其他视为负例(0),以此作为数据集;然后对该数据建模。所以模型学到的是: p ( i ) = { 1 i ∈ S 0 i ∉ S p(i)=\begin{cases} 1 & i \in S\\ 0 & i\notin S \end{cases} p(i)={10i∈Si∈/S。未来需要预测的item在训练中被视为负例。之前模型能进行预测的原因是有正则项,防止了过拟合。
- 本文使用物品对item pairs作为训练数据,假设用户对浏览过的物品的喜好程度超过未浏览的物品。则训练集 D S : = { ( u , i , j ) ∣ i ∈ I u + ∧ j ∈ I ∖ I u + } D_S:=\{(u,i,j)|i\in I_u^+ \land j\in I\setminus I_u^+\} DS:={(u,i,j)∣i∈Iu+∧j∈I∖Iu+}; ( u , i , j ) (u,i,j) (u,i,j)表示用户u相比j更喜欢i。
BPR Optimization Criterion
:参考
为所有物品进行正确的个性化排序的Bayesian公式是最大化模型参数的后验概率: p ( Θ ∣ > u ) p(\Theta |>_u) p(Θ∣>u),正比于 ∝ p ( > u ∣ Θ ) p ( Θ ) \propto p(>_u|\Theta)p(\Theta) ∝p(>u∣Θ)p(Θ)。 Θ \Theta Θ为模型参数, > u >_u >u为用户想要的item排序。因此相当于最大化似然函数 p ( > u ∣ Θ ) p(>_u|\Theta) p(>u∣Θ)。
两点假设:
- 用户之间相互独立。
- 一个用户对物品对(i,j)的顺序与其他物品对的顺序相互独立。
对于所有用户,似然函数: ∏ u ∈ U p ( > u ∣ Θ ) = ∏ ( u , i , j ) ∈ U × I × I p ( i > u j ∣ Θ ) ( u , i , j ) ∈ D S ⋅ ( 1 − p ( i > u j ∣ Θ ) ) ( u , j , i ) ∉ D S \prod_{u\in U}p(>_u|\Theta)=\prod_{(u,i,j)\in U\times I\times I}p(i>_uj|\Theta)^{(u,i,j)\in D_S}\cdot (1-p(i>_uj|\Theta))^{(u,j,i)\notin D_S} ∏u∈Up(>u∣Θ)=∏(u,i,j)∈U×I×Ip(i>uj∣Θ)(u,i,j)∈DS⋅(1−p(i>uj∣Θ))(u,j,i)∈/DS;可简化为: ∏ u ∈ U p ( > u ∣ Θ ) = ∏ ( u , i , j ) ∈ D S p ( i > u j ∣ Θ ) \prod_{u\in U}p(>_u|\Theta)=\prod_{(u,i,j)\in D_S}p(i>_uj|\Theta) ∏u∈Up(>u∣Θ)=∏(u,i,j)∈DSp(i>uj∣Θ)。
定义用户相比j更喜好i的单个概率为: p ( i > u j ∣ Θ ) : = σ ( x ^ u i j ( Θ ) ) p(i>_uj|\Theta):=\sigma(\hat x_{uij}(\Theta)) p(i>uj∣Θ):=σ(x^uij(Θ))。 σ \sigma σ为sigmoid函数。 x ^ u i j \hat x_{uij} x^uij是模型参数 Θ \Theta Θ学到的 ( u , i , j ) (u,i,j) (u,i,j)间的关系。
对于先验概率 p ( Θ ) p(\Theta) p(Θ),可以使用正态分布 p ( Θ ) ∼ N ( 0 , Σ Θ ) p(\Theta)\sim N(0,\Sigma_{\Theta}) p(Θ)∼N(0,ΣΘ)。 Σ Θ \Sigma_{\Theta} ΣΘ为协方差矩阵。为了减少参数,设 Σ Θ = λ Θ I \Sigma_{\Theta}=\lambda_{\Theta}I ΣΘ=λΘI。 λ Θ \lambda_{\Theta} λΘ为模型正则项。
则一般性的优化标准为:
KaTeX parse error: No such environment: align* at position 8: \begin{̲a̲l̲i̲g̲n̲*̲}̲ BPR-OPT &:=\ln…
BPR Learning Algorithm
:
- 梯度: ∂ B P R − O P T ∂ Θ ∝ ∑ ( u , i , j ) ∈ D S − e − x ^ u i j 1 + e − x ^ u i j ⋅ ∂ ∂ Θ x ^ u i j − λ Θ Θ \frac{\partial BPR-OPT}{\partial \Theta} \propto \sum_{(u,i,j)\in D_S}\frac{-e^{-\hat x_{uij}}}{1+e^{-\hat x_{uij}}}\cdot\frac{\partial}{\partial\Theta}\hat x_{uij}-\lambda_{\Theta}\Theta ∂Θ∂BPR−OPT∝∑(u,i,j)∈DS1+e−x^uij−e−x^uij⋅∂Θ∂x^uij−λΘΘ;
- 整体梯度下降是在所有训练集上求梯度,再更新参数,收敛缓慢。
- 随机梯度下降在一个训练样本上进行参数更新,但容易受训练样本的顺序影响。
- 采用随机抽取(均匀分布)的方法
bootstrap sampling
,防止在连续更新中一直抽到相同的用户物品整合。
Learning models with BPR
:
- 以前方法是对(u,i)对给出一个值,因此我们将评估值 x ^ u i j \hat x_{uij} x^uij分解定义为 x ^ u i j : = x ^ u i − x ^ u j \hat x_{uij}:=\hat x_{ui}-\hat x_{uj} x^uij:=x^ui−x^uj。
Matrix Factorization
:将矩阵 X ∈ R U × I X\in R^{U\times I} X∈RU×I分解为 W ∈ R U × f W\in R^{U\times f} W∈RU×f和 H ∈ R I × f H\in R^{I\times f} H∈RI×f;预测值表示为 x ^ u i = < w u , h i > = ∑ f = 1 k w u f ⋅ h i f \hat x_{ui}==\sum_{f=1}^k w_{uf}\cdot h_{if} x^ui=<wu,hi>=∑f=1kwuf⋅hif。
数据集:Rossmann dataset
:来自在线商店的购买记录;Netflix
:电影DVD租赁记录,包含评分(实验中将评分都视为1)。
评价指标: A U C = 1 ∣ U ∣ ∑ u 1 E ( u ) ∑ ( i , j ) ∈ E ( u ) δ ( x ^ u i > x ^ u j ) AUC=\frac{1}{|U|}\sum_u\frac{1}{E(u)}\sum_{(i,j)\in E(u)}\delta(\hat x_{ui}>\hat x_{uj}) AUC=∣U∣1∑uE(u)1∑(i,j)∈E(u)δ(x^ui>x^uj), E ( u ) E(u) E(u)为用户u的样本对(i,j),测试集里的物品i,未交互过的物品j。
实验方法:通过留一法,随机从每一个用户中抽出该用户交互过的一个物品,构成测试集,其他为训练集;进行测试;重复10轮,第一轮确定参数后,后面不再改变参数。
引用数:115 来源:The 41st International ACM SIGIR Conference on Research & Development in Information Retrieval 代码
问题:用BPR优化的MF推荐模型对模型参数的对抗干扰并不够鲁棒,
为了提升鲁棒性和泛化能力,本文提出了新的优化框架APR(使用对抗训练提升BPR)。在用户物品的嵌入向量上添加干扰实现MF上的APR。
证明MF-BPR对对抗噪声是脆弱的:对抗图像生成的方法不能直接应用到输入 ( u , i , j ) (u,i,j) (u,i,j),因为会改变输入语义信息,导致输出巨大变化;本文选择作用于模型的参数(MF的嵌入向量),假设模型参数的微小变化不会导致输出的剧烈变化,如果某种干扰比随机干扰更有效,则表明模型对这种干扰敏感。
APR模型:设计一个新的目标函数,使其能胜任个性化排序和抵抗对抗干扰,最小化目标函数:
L A P R ( D ∣ Θ ) = L B P R ( D ∣ ∣ Θ ) + λ L B P R ( D ∣ Θ + Δ a d v ) (1) L_{APR}(D|\Theta)=L_{BPR}(D||\Theta)+\lambda L_{BPR}(D|\Theta+\Delta_{adv}) \tag{1} LAPR(D∣Θ)=LBPR(D∣∣Θ)+λLBPR(D∣Θ+Δadv)(1)
通用的训练方法SGD:
构造对抗干扰:随机抽取训练样本 ( u , i , j ) (u,i,j) (u,i,j),最大化: l a d v ( ( u , i , j ) ∣ Δ ) = − λ ln σ ( y ^ u i j ( Θ ^ + Δ ) ) l_{adv}((u,i,j)|\Delta)=-\lambda\ln\sigma(\hat y_{uij}(\hat\Theta+\Delta)) ladv((u,i,j)∣Δ)=−λlnσ(y^uij(Θ^+Δ))。使用户u对物品ij难以区分。通过线性函数近似目标函数,使用fast gradient,即朝着梯度方向移动,
T : = ∂ l a d v ( ( u , i , j ) ∣ Δ ) ∂ Δ = − λ ( 1 − σ ( y ^ u i j ( Θ ^ + Δ ) ) ) ∂ y ^ u i j ( Θ ^ + Δ ) ∂ Δ (2) T:=\frac{\partial l_{adv}((u,i,j)|\Delta)}{\partial \Delta}=-\lambda(1-\sigma(\hat y_{uij}(\hat\Theta+\Delta)))\frac{\partial\hat y_{uij}(\hat\Theta+\Delta)}{\partial \Delta} \tag{2} T:=∂Δ∂ladv((u,i,j)∣Δ)=−λ(1−σ(y^uij(Θ^+Δ)))∂Δ∂y^uij(Θ^+Δ)(2)
则在max-norm限制下, Δ a d v = ϵ T ∣ ∣ T ∣ ∣ \Delta_{adv}=\epsilon\frac{T}{||T||} Δadv=ϵ∣∣T∣∣T。
模型参数学习:由(1)有:
l A P R ( ( u , i , j ) ∣ Θ ) = − ln σ ( y ^ u i j ( Θ ) ) + λ Θ ∣ ∣ Θ ∣ ∣ 2 − λ ln σ ( y ^ u i j ( Θ + Δ a d v ) ) (3) l_{APR}((u,i,j)|\Theta)=-\ln\sigma(\hat y_{uij}(\Theta))+\lambda_{\Theta}||\Theta||^2-\lambda\ln\sigma(\hat y_{uij}(\Theta+\Delta_{adv})) \tag{3} lAPR((u,i,j)∣Θ)=−lnσ(y^uij(Θ))+λΘ∣∣Θ∣∣2−λlnσ(y^uij(Θ+Δadv))(3)
用SGD方法更新参数: Θ = Θ − η ∂ l A P R ∂ Θ \Theta=\Theta-\eta\frac{\partial l_{APR}}{\partial\Theta} Θ=Θ−η∂Θ∂lAPR。
依次执行1,2;注意:模型参数 Θ \Theta Θ由BPR进行初始化。因为只有当模型过拟合后加干扰才有意义。
MF上的APR方法:MF的参数是用户物品的嵌入向量,定义干扰为: y ^ u i ( Θ + Δ ) = ( p u + Δ u ) T ( q i + Δ i ) \hat y_{ui}(\Theta+\Delta)=(p_u+\Delta_u)^T(q_i+\Delta_i) y^ui(Θ+Δ)=(pu+Δu)T(qi+Δi)。进行小批量训练,
数据集:Yelp、Pinterest、Gowalla;
对比方法:ItemPop(基于物品受喜好程度),MF-BPR,CDAE(基于Denoising Auto-Encoder),NeuMF(结合MF和MLP),IRGAN(生成器和判别器进行对抗训练)
评价指标:HR(点击率,基于召回率)、NDCG(位置敏感)
实验结果:
引用数:138 来源:2018 IEEE International Conference on Data Mining (ICDM)
Sequential dynamics的目的是基于用户历史行为,获得用户行为的上下文信息;主要有Markov Chains (MCs)和RNN;前者利用最近的行为,适合比较稀疏的数据;后者可利用长远的语义,适合比较密集的数据。
本文目标是平衡两者,提出基于自注意力的模型,可获得长的语义,并用注意力机制,基于较少的行为得到预测。
Temporal Recommendation对用户行为的时间戳建模;Sequential recommendation对用户行为的顺序建模。
序列推荐模型:FPMC、Caser、GRU4Rec
方法:输入用户行为序列 S u = ( S 1 u … S ∣ S u ∣ − 1 u ) S^u=(S_1^u\dots S_{|S^u|-1}^u) Su=(S1u…S∣Su∣−1u),输出一个平移的序列 ( S 2 u … S ∣ S u ∣ u ) (S_2^u\dots S_{|S^u|}^u) (S2u…S∣Su∣u)。
嵌入层:将训练序列 S u S^u Su变为固定长度的序列 s = ( s 1 , … , s n ) s=(s_1,\dots,s_n) s=(s1,…,sn),大于n考虑最近的n个,小于n前面填0。所有物品的嵌入矩阵 M ∈ R ∣ I ∣ × d M\in R^{|I|\times d} M∈R∣I∣×d,输入序列变为 E ∈ R n × d E\in R^{n\times d} E∈Rn×d。添加Positional Embedding: P ∈ R n × d P\in R^{n\times d} P∈Rn×d。输入为 E ^ = E + P \hat E=E+P E^=E+P。
Self-Attention:
S = S A ( E ^ ) = A t t e n t i o n ( E ^ W Q , E ^ W K , E ^ W V ) = s o f t m a x ( E ^ W Q ( E ^ W K ) T d E ^ W V ) (1) S=SA(\hat E)=Attention(\hat EW^Q,\hat EW^K,\hat EW^V)=softmax(\frac{\hat EW^Q(\hat EW^K)^T}{\sqrt d}\hat EW^V) \tag{1} S=SA(E^)=Attention(E^WQ,E^WK,E^WV)=softmax(dE^WQ(E^WK)TE^WV)(1)
因为预测t+1时只能考虑前t个的item,而Self-Attention会考虑之后的item,所以需要禁止之后的连接。
Point-Wise Feed-Forward Network:考虑不同隐藏层维度间的关系和赋予模型非线性,为每个 S i S_i Si添加两层feed-forward网络(参数共享):
F i = F F N ( S i ) = R e L U ( S i W ( 1 ) + b ( 1 ) ) W ( 2 ) + b ( 2 ) (2) F_i=FFN(S_i)=ReLU(S_iW^{(1)}+b^{(1)})W^{(2)}+b^{(2)} \tag{2} Fi=FFN(Si)=ReLU(SiW(1)+b(1))W(2)+b(2)(2)
Stacking Self-Attention Blocks:由self-attention layer and a feedforward network构成一个基本块,堆叠块以便获得更复杂的item transition。层数越多,会出现过拟合、训练不稳定、更多训练时间等问题,对以上两个网络层进行如下操作:Residual Connections,Layer Normalization,Dropout;g代表网络。在embeding层也使用dropout。
g ( x ) = x + D r o p o u t ( g ( L a y e r N o r m ( x ) ) ) (3) g(x)=x+Dropout(g(LayerNorm(x))) \tag{3} g(x)=x+Dropout(g(LayerNorm(x)))(3)
其中 L a y e r N o r m ( x ) = α ⊙ x − μ σ 2 + ϵ + β LayerNorm(x)=\alpha\odot\frac{x-\mu}{\sqrt{\sigma^2+\epsilon}}+\beta LayerNorm(x)=α⊙σ2+ϵx−μ+β, μ , σ \mu,\sigma μ,σ是x的均值和方差, α , β \alpha,\beta α,β是学到的参数。
Prediction Layer:使用最后一层的 F t ( b ) F_t^{(b)} Ft(b)来预测下一个item。使用MF layer来预测物品的相关性, N ∈ R ∣ I ∣ × d N\in R^{|I|\times d} N∈R∣I∣×d(实际选100个负例和一个正确的item)
r i , t = F t ( b ) N i T (4) r_{i,t}=F_t^{(b)}N_i^T \tag{4} ri,t=Ft(b)NiT(4)
对所有物品进行相关性计算,然后排序得到预测列表。为了减少参数和提升性能,使用Shared Item Embedding,即N=M。使用Explicit User Modeling并没有提升效果。
Network Training:输入是固定长度的序列s,输出也是固定长度的序列, o t = { < p a d > s t 为pad s t + 1 1 < t < n S ∣ S u ∣ u t = n o_t=\begin{cases}
− ∑ S u ∈ S ∑ t ∈ [ 1 , … , n ] [ log ( σ ( r o t , t ) ) + ∑ j ∉ S u log ( 1 − σ ( r j , t ) ) ] (5) -\sum_{S^u\in S}\sum_{t\in[1,\dots,n]}[\log(\sigma(r_{o_t,t}))+\sum_{j\notin S^u}\log(1-\sigma(r_{j,t}))] \tag{5} −Su∈S∑t∈[1,…,n]∑[log(σ(rot,t))+j∈/Su∑log(1−σ(rj,t))](5)
使用adam进行优化,每一epoch,为每一个序列在每一步随机选取一个负例j。
数据集:Amazon、Steam、MovieLens-1M,将评论或评分视为隐反馈。去掉少于5的用户和物品,最后一个测试集,倒数第二个为验证集,剩下的为训练集。
评价指标:Hit Rate@10 and NDCG@10,
引用数:13 来源:arXiv preprint arXiv
引用数:93 来源:Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining
引用数:146 来源:Proceedings of the 42nd international ACM SIGIR conference on Research and development in Information Retrieval.
two key components in learnable CF models:embedding;interaction modeling。Learning vector representations (aka. embeddings) of users and items lies at the core of modern recommender systems
引用数:22 来源:(SIGIR ’20)
引用数:2 来源:Proceedings of the 43rd International ACM SIGIR Conference on Research and Development in Information Retrieval
引用数:1 来源:Proceedings of the 43rd International ACM SIGIR Conference on Research and Development in Information Retrieval
Predicting tags for a given item and leveraging tags to assist item recommendation
引用数:0 来源:
there is a significant gap between clicks and user satisfaction
a causal graph that reflects the cause effect factors in recommendation;counterfactual world where each item has only exposure features(the features that the user can see before making a click decision)。
推荐定义: Y u , i = s θ ( u , i ) Y_{u,i}=s_{\theta}(u,i) Yu,i=sθ(u,i), D ˉ = { ( u , i , y ˉ u , i ) } \bar D=\{(u,i,\bar y_{u,i})\} Dˉ={(u,i,yˉu,i)}, θ ˉ = arg min L ( D ˉ ∣ θ ) = arg min ∑ D ˉ l ( s θ ( u , i ) , y ˉ u , i ) \bar \theta=\arg\min L(\bar D|\theta)=\arg\min\sum_{\bar D}l(s_{\theta}(u,i),\bar y_{u,i}) θˉ=argminL(Dˉ∣θ)=argmin∑Dˉl(sθ(u,i),yˉu,i)。
思路:distinguish the effects of exposure features (pre-click) and content features (post-click) on the prediction;estimate the direct effect of exposure features on the prediction score in a counterfactual world,During inference, we remove this direct effect from the prediction in the factual world;causal effect of X on Y is the magnitude by which Y is changed by a unit change in X.
factual world : Y u , i , e = Y ( U = u , I = i , E = e ) , i = I ( E = e , T = t ) total effect : T E = Y i , e ( u ) − Y i ∗ , e ∗ ( u ) natural direct effect : N D E = Y i ∗ , e ( u ) − Y i ∗ , e ∗ ( u ) total indirect effect : T I E = T E − N D E = Y i , e ( u ) − Y i ∗ , e ( u ) \text{factual world}: Y_{u,i,e}=Y(U=u,I=i,E=e),i=I(E=e,T=t) \\ \text{total effect}: TE=Y_{i,e}(u)-Y_{i*,e*}(u) \\ \text{natural direct effect}:NDE=Y_{i*,e}(u)-Y_{i*,e*}(u) \\ \text{total indirect effect}:TIE=TE-NDE=Y_{i,e}(u)-Y_{i*,e}(u) factual world:Yu,i,e=Y(U=u,I=i,E=e),i=I(E=e,T=t)total effect:TE=Yi,e(u)−Yi∗,e∗(u)natural direct effect:NDE=Yi∗,e(u)−Yi∗,e∗(u)total indirect effect:TIE=TE−NDE=Yi,e(u)−Yi∗,e(u)
Ranking items according to the TIE will resolve the direct effect of exposure features
实现:Aiming to keep generality and leverage the advantages of existing models, the scoring function is implemented in a late-fusion manner。
对比方法:MMGCN;NT:以click进行训练;CFT:以content特征进行训练;IPW:减去item popularity;CT:以like进行训练;NR:给未click和dislike的item不同权重;RR:在NT的基础上根据like/click重新排序。only clicks with positive post-click feedback such as thumbs-up, favorite, and finishing are used for testing.
引用数: 来源:Proceedings of the 28th ACM International Conference on Multimedia.
引用数: 来源:Proceedings of the 28th ACM International Conference on Multimedia