推荐算法 Recommendation
@(deepLearning)
1.基于内容(Content-based Recommendation):
基于内容的推荐是建立在
产品的信息
上作出推荐的,而不需要依据用户对项目的评价意见,更多地需要用机器学习的方法从关于内容的特征描述的事例中得到用户的兴趣资料。
2.协同过滤(Collaborative Filtering):
- 1) 基于用户(user-based):
- 考虑的是
用户和用户
之间的相似度
,只要找出相似用户喜欢的物品,并预测目标用户对相应物品的评分,就可以找到评分最高的若干个物品推荐给用户。- 2) 基于项目(item-based):
- 考虑的是
物品和物品
之间的相似度
,只有找到了目标用户对某些物品的评分,那么我们就可以对相似度高的类似物品进行预测,将评分最高的若干个相似物品推荐给用户。
基于矩阵分解(matrix factorization):
1.Funk-SVD
- 评分矩阵:
Rm×n≈Pm×k×Qk×n=R^m×n R m × n ≈ P m × k × Q k × n = R ^ m × n
- 矩阵 Pm×k P m × k 表示的是m个用户与k个特征之间的关系,而矩阵 Qk×n Q k × n 表示的是k个特征与n个商品之间的关系。
- 损失函数(loss function):
e2i,j=(ri,j−r^i,j)2=(ri,j−∑k=1Kpi,kqk,j)2 e i , j 2 = ( r i , j − r ^ i , j ) 2 = ( r i , j − ∑ k = 1 K p i , k q k , j ) 2- 总损失:
minJ=∑ri,j≠−e2i,j m i n J = ∑ r i , j ≠ − e i , j 2
加入L2正则化:
argminpi,qj∑i,j(ri,j−qTjpi)2+λ(||pi||22+||qj||22) a r g m i n ⏟ p i , q j ∑ i , j ( r i , j − q j T p i ) 2 + λ ( | | p i | | 2 2 + | | q j | | 2 2 )
将上式分别对pi,qj求导我们得到:
∂J∂pi=−2(ri,j−qTjpi)qj+2λpi ∂ J ∂ p i = − 2 ( r i , j − q j T p i ) q j + 2 λ p i
∂J∂pi=−2(ri,j−qTjpi)qj+2λpi ∂ J ∂ p i = − 2 ( r i , j − q j T p i ) q j + 2 λ p i
update公式:
pi:=pi+α((ri,j−qTjpi)qj−λpi) p i := p i + α ( ( r i , j − q j T p i ) q j − λ p i )
qj:=qj+α(ri,j−qTjpi)pi−λqj) q j := q j + α ( r i , j − q j T p i ) p i − λ q j )