在推荐场景中, 我们可以把user
对item
的行为, 用评分矩阵 R ∈ R ∣ U ∣ × ∣ P ∣ R\in \mathbb R^{|U|\times|P|} R∈R∣U∣×∣P∣表示.
U = { u s e r } U=\{user\} U={user},为用户集合, P = { i t e m } P=\{item\} P={item}, 为item集合.
以商品为例,比如说用户u1对商品p1加购物车, 那就令 R u 1 , p 1 = 3 R_{u1,p1}=3 Ru1,p1=3, 用户u1对商品p2做出购买行为, 那就令 R u 1 , p 2 = 5 R_{u1,p2}=5 Ru1,p2=5.
在真实场景中, 用户只会对部分item做出反馈, 所以矩阵是非常稀疏的.
推荐的task就是预测出用户可能感兴趣的未见商品.
我们假设用户喜欢某个商品是因为用户的特征偏好与该商品的特征能够吻合起来.
那这些特征是什么呢? 以音乐推荐为例, 见图1
figure 1 音乐推荐中, latent space 的一种假设
这些特征我们不必人为定义, 可以引入latent space
的假定, 有 k k k个潜在的特征.
用户对每个特征都有一个偏好程度, 用矩阵 Q Q Q表示, 每个物品都有一个特征的吻合程度, 用 P P P表示,所以我们的任务就是求出这两个矩阵, 然后对 R R R进行补全, 找出得分高的未见商品推荐给用户.
R ^ = Q W T s . t . Q ∈ R ∣ U ∣ × k , W ∈ R ∣ P ∣ × k \hat R=QW^T \\ s.t. Q\in \mathbb R^{|U|\times k}, W\in \mathbb R^{|P|\times k} R^=QWTs.t.Q∈R∣U∣×k,W∈R∣P∣×k
figure 矩阵分解示意, 网络盗图,符号跟上面公式不一样
(1) min Q , P ∑ u , i ( R u , i − Q u P i T ) 2 + λ ∣ ∣ Q u ∣ ∣ 2 + λ ∣ ∣ P i ∣ ∣ 2 \min _{Q,P}\sum_{u,i}(R_{u,i}-Q_uP_i^T)^2+\lambda ||Q_u||^2+\lambda||P_i||^2 \tag 1 Q,Pminu,i∑(Ru,i−QuPiT)2+λ∣∣Qu∣∣2+λ∣∣Pi∣∣2(1)
式1 为目标函数. 求解方法通常为 alternating least squares (ALS), 交替最小二乘法.
FM, Factorization Machines, 因子机.