推荐系统基础知识

推荐系统是现在消费互联网为了吸引点击率常用的手段,本文就推荐系统常用的知识做一些总结

计算物品距离的几种方法

欧几里得距离(Euclidean Distance)

最常见的距离度量方式,衡量多维空间中两点之间的绝对距离,要求维度的统一。

$$
dist(X,Y)=\sqrt{\sum_{i=1}^n(x_i-y_i)^2}
$$

明可夫斯基距离(Minkowski Distance)

明氏距离是欧氏距离的扩展,是对多个距离度量公式的概括性的表述(可以看到,当p=2时,其实就是欧式距离)。

$$
dist(X,Y)=(\sum_{i=1}^n|x_i-y_i|^p)^{1/p}
$$

$$
dist(X,Y)=\sqrt[p]{(\sum_{i=1}^n|x_i-y_i|^p)}
$$

曼哈顿距离(Manhattan Distance)

曼哈顿距离来源于城市区块距离,是将多个维度上的距离进行求和后的结果,即当上面的明氏距离中p=1时得到的距离度量。
$$
dist(X,Y)=\sum_{i=1}^n|x_i-y_i|
$$
//还有其他的一些距离度量,但是都不太常用,最常用的依然是欧式距离度量。

切比雪夫距离

切比雪夫距离(Chebyshev distance)或是L∞度量,是向量空间中的一种度量,二个点之间的距离定义是其各坐标数值差绝对值的最大值
$$
dist(X,Y)=\max(|x1-y1|,|x2-y2|,|x3-y3|,…)
$$

计算相似度量的几种方法

向量空间余弦相似度(Cosine Similarity)

余弦相似度用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小。相比距离度量,余弦相似度更加注重两个向量在方向上的差异,而非距离或长度上。

$$
sim(X,Y) = \cos\theta = \frac {\vec{x} \cdot \vec{y}} {||x|| \cdot ||y||}
$$

皮尔森相关系数(Pearson Correlation Coefficient)

即相关分析中的相关系数r,分别对X和Y基于自身总体标准化后计算空间向量的余弦夹角。
皮尔森相关系数

关于用户评分的说明

有些系统没有用户评分机制,所以可以用用户对物品的行为+行为权重(喜爱程度权重)综合衡量作为用户对物品的评分

基于内容的推荐

  • step1、将ItermProfile转置(物品的特征(标签)的特征矩阵)
  • step2、将ItermUser(评分矩阵)乘以ItermProfile(转置)
  • step3、计算用户与物品的向量(的余弦)相似度,得到推荐列表(用户对某物品的喜爱程度)
  • step4、将用户已经有过行为的的物品的相似度置0

基于用户的协同(UserCF)

  • step1、根据用户行为列表构建评分矩阵
  • step2、利用评分矩阵计算用户与用户的相似度矩阵
  • step3、将评分矩阵转置
  • step4、用户与用户相似度矩阵乘以评分矩阵=推荐列表
  • step5、推荐列表中用户之前已经有过行为的的商品评分置0

基于物品的协同(ItemCF)

  • step1、根据用户的行为计算用户、物品的评分矩阵
  • step2、根据用户、物品的评分矩阵计算物品、物品的相似矩阵
  • step3、根据物品与物品的相似矩阵乘以用户、物品的评分矩阵=推荐列表
  • step4、推荐列表中用户之前已经有过行为的元素值0

基于模型的协同(ModelCF)

常见的基于模型推荐又有三种:最近邻模型,典型如K最近邻;SVD模型,即矩阵分解;图模型,又称为社会网络图模型。

最近邻模型

SVD矩阵分解

社会网络图模型

其他相关知识

冷启动

长尾效应/马太效应

- 长尾效应: 强调“个性化”,“客户力量”和“小利润大市场”,也就是要赚很少的钱,但是要赚很多人的钱
- 马太效应: 强者更强,弱者更弱

AB分流测试

参考资料

推荐系统相关知识http://www.blogchong.com/post/129.html


   转载规则


《推荐系统基础知识》 zhfk 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
快手万亿级别Kafka集群应用实践与技术演进之路 快手万亿级别Kafka集群应用实践与技术演进之路
Kafka集群被大量用来对流量高峰期限流、系统解耦合、削弱峰值等业务场景。Kafka提供了高性能的消息写入、持久化、读取的优化。每一种技术都不能解决所有的问题。 本文整理自快手高级架构师、大数据架构团队负责人赵健博在 QCon 全球软件开发
2019-06-17
下一篇 
ReentantLock ReentantLock
针对Java中高并发场景下最常用的数据结构ReentantLock解析 ReentrantLock继承体系 非公平锁加锁过程
2019-06-15
  目录