KL散度,相似度计算以及相似度重要性

简介

在推荐系统里,有些场景下是需要推荐相似商品,从而可以更好的挖掘用户行为并且提升用户体验。这些情况下需要一些公式计算商品的相似度。

 

一、距离公式

1、曼哈顿距离

$$\left | X_{1}-X_{2} \right | +\left | Y_{1}-Y_{2}\right |$$

即每个纬度上距离的差的绝对值之和。

公式比较简单,因此计算起来速度应该是快的。

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、皮尔逊相关系数

$$\rho (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{X\cdot Y}{\left \| X \right \|\times \left \|Y  \right \|}$$

余弦相似性对距离不敏感,欧式距离对两特征间的距离敏感。

 

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 log\frac{p(x_{i})}{q(x_{i})}$$

 

KL散度并非对称

 $$Dkl (Observed || Binomial) != Dkl (Binomial || Observed)$$

 

 

 

三、相似度重要性

加入相似度重要性的策略,这些策略的本质是一样的,当只有少量评分用于计算时,就会降低相似度重要性的权重

1、公式

$$\omega _{uv}=\frac{min(\left | I_{uv} \right |,\gamma )}{\gamma}*\gamma_{uv}$$

Iuv为u和v用户共同评分的商品数,当I小雨给定的参数r时,他们的相似度w会收到与I成比例的惩罚

 

2、当能够根据常量的收缩权重的时候,可以使用公式

$$\omega _{uv}=\frac{\left | \mu _{ij} \right |}{\left |  \mu _{ij} \right |+\beta }\ast \omega _{ij}$$

 

posted @ 2019-01-02 14:43  ylxn  阅读(2929)  评论(0编辑  收藏  举报