腾讯这三篇文章,逐渐深入,为我们初步讲解了推荐系统之矩阵分解的方法。
1. 矩阵分解算法
经典的矩阵分解算法有:余弦相似度(Cosine Similarity)、皮尔逊相关系数(Pearson Correlation)、欧氏距离(Euclidean Distance)、jaccard相似度等(jaccard similarity coefficient),这个系列文章只提到了余弦相似度个jaccard相似度,需要啥拿啥,咱们就简单说说这两种算法。
1.1 余弦相似度
高中知识我们知道,cosΘ的值在(-1,1),也就是Similarity的值在(-1,1)之间。但是以上只是2维空间的计算方法,拓展到n维,不推导,直接看公式:
这里的分别代表向量A和B的各分量。
1.2 jaccard相似度
Similarity越大,说明相似度越高
1.3 与原文的关联
这里的N(A), N(B)可以指阅读过文章A,B的人的集合。
比方说:abcdefghij一共十个人,abcde阅读过文章A,fghij阅读过文章B,即N(A)={a,b,c,d,e},N(B)={f,g,h,i,j},那么N(A)∩N(B)={}。因为没有一个人既阅读过A也阅读过B。
再举个栗子,甲乙丙丁四个人,甲乙丙阅读过文章A,乙丙丁阅读过文章B,N(A)={甲,乙,丙},N(B)={乙,丙,丁},那么N(A)∩N(B)={乙,丙}, | N(A)∩N(B) |=2。同理,可以求出Similarity=1/2 。
2. 范数与2范数
二范数指矩阵A的2范数,就是A的转置共轭矩阵与矩阵A的积的最大特征根的平方根值,利用公式表示为:。是指空间上两个向量矩阵的直线距离。类似于求棋盘上两点间的直线距离。
在文章中,出现了符号: ,就是2范数的平方。