简介
在推荐系统里,有些场景下是需要推荐相似商品,从而可以更好的挖掘用户行为并且提升用户体验。这些情况下需要一些公式计算商品的相似度。
一、距离公式
1、曼哈顿距离
$$left | X_{1}-X_{2} ight | +left | Y_{1}-Y_{2} ight |$$
即每个纬度上距离的差的绝对值之和。
公式比较简单,因此计算起来速度应该是快的。
2、欧式距离
$$sqrt{(X1-X2)^{2}+(Y1-Y2)^{2}}$$
如果特征完好的情况下,曼哈顿距离和欧式距离还是比较合适的。
3、闵可夫斯基距离
$$d(x,y)=(sum_{f=1}^{n}|U_{1}(f) - U_{2}(f)|^{r})^{frac{1}{r}}$$
把曼哈顿距离和欧式距离连起来,r=1为满汉顿距离,r=2为欧式距离。如果r越大则单项特征的影响越大。查了一些博客,有些人说曼哈顿和欧式距离可以计算用户评分相似性,比如用户U1,U2对电影A,B的评分为(U1(A), U1(B))和(U2(A), U2(B)),则把评分套入公式即可。
4、皮尔逊相关系数
$$ ho (x,y)=frac{cov(x,y)}{sigma (x)sigma (y)}=frac{E[(X-mu _{x})(Y-mu _{y})]}{sigma _{x}sigma _{y}}=frac{E(XY)-E(X)E(Y)}{sqrt{E(X^{2})-E^{2}(X)}sqrt{E(Y^{2})-E^{2}(Y)}}$$
皮尔逊相关系数用来计算变量之间的相似性。
5、余弦相似性
$$cos(X,Y)=frac{Xcdot Y}{left | X ight | imes left |Y ight |}$$
余弦相似性对距离不敏感,欧式距离对两特征间的距离敏感。
6、马氏距离
$$d(x,y)=sqrt{(x-y)sigma ^{-1}(x-y)^{T}}$$
其中σ是协方差矩阵。
二、KL散度
1、量化两种分布P和Q可以使用KL散度来度量。K-L散度能帮我们度量一个分布来近似另一个分布所使用的损失信息
2、公式以及推导
信息熵
$$H=-sum_{i=1}^{N}p(x_{i})cdot log p(x_i)$$
KL散度
$$D_{KL}(p||q)=sum_{i=1}^{N}p(x_{i})cdot (log p(x_{i})-log q(x_{i}))$$
根据上面公式可得,KL散度是近似分布和原始分布对数差的期望值
另一种表示方法
$$D_{KL}(p||q)=sum_{i=1}^{N}p(x_{i})cdot logfrac{p(x_{i})}{q(x_{i})}$$
KL散度并非对称
$$Dkl (Observed || Binomial) != Dkl (Binomial || Observed)$$
三、相似度重要性
加入相似度重要性的策略,这些策略的本质是一样的,当只有少量评分用于计算时,就会降低相似度重要性的权重
1、公式
$$omega _{uv}=frac{min(left | I_{uv} ight |,gamma )}{gamma}*gamma_{uv}$$
Iuv为u和v用户共同评分的商品数,当I小雨给定的参数r时,他们的相似度w会收到与I成比例的惩罚
2、当能够根据常量的收缩权重的时候,可以使用公式
$$omega _{uv}=frac{left | mu _{ij} ight |}{left | mu _{ij} ight |+eta }ast omega _{ij}$$