推荐系统之矩阵分解模型注(二)

腾讯这三篇文章,逐渐深入,为我们初步讲解了推荐系统之矩阵分解的方法。

科普篇 | 推荐系统之矩阵分解模型

原理篇 | 推荐系统之矩阵分解模型

实践篇 | 推荐系统之矩阵分解模型


1. 矩阵分解算法

经典的矩阵分解算法有:余弦相似度(Cosine Similarity)、皮尔逊相关系数(Pearson Correlation)、欧氏距离(Euclidean Distance)、jaccard相似度等(jaccard similarity coefficient),这个系列文章只提到了余弦相似度个jaccard相似度,需要啥拿啥,咱们就简单说说这两种算法。

1.1 余弦相似度

Similarity=\cos \theta = \frac{a\cdot b}{\left | a \right |\left | b \right |}

高中知识我们知道,cosΘ的值在(-1,1),也就是Similarity的值在(-1,1)之间。但是以上只是2维空间的计算方法,拓展到n维,不推导,直接看公式:

Smilarity=cos(A,B )=\frac{A\cdot B}{\left \| A \right \|\left \| B \right \|}=\frac{\sum_{i=1}^{n}(A_{i}*B_{i})}{\sqrt{\sum_{i=1}^{n}(A_{i})^{2}}*\sqrt{\sum_{i=1}^{n}(B_{i})^{2}}}

这里的A_{i}B_{i}分别代表向量A和B的各分量。

1.2 jaccard相似度

Similarity = jaccard(A,B)=\frac{\left | A\bigcap B \right |}{\left | A\bigcup B \right |}=\frac{\left | A\bigcap B \right |}{\left | A \right |+\left | B \right |-\left | A\bigcap B \right |}

Similarity越大,说明相似度越高

1.3 与原文的关联

Smilarity=cos(A,B )=\frac{\left |N(A)\bigcap N(B)) \right |}{\sqrt{\left | N(A)) \right |\left | N(B)) \right |}}

Smilarity=jaccard(A,B )=\frac{\left |N(A)\bigcap N(B)) \right |}{\left | N(A)\bigcup N(B))) \right |}

这里的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的积的最大特征根的平方根值,利用公式表示为:\left \| A \right \|_{2}。是指空间上两个向量矩阵的直线距离。类似于求棋盘上两点间的直线距离。

在文章中,出现了符号:\left \| A \right \|_2^2 ,就是2范数的平方。

你可能感兴趣的:(人工智能)