孙远帅. 基于大数据的推荐算法研究[D]. 厦门大学, 2014.
读的一篇论文的总结(2)
常规相似度度量方法
在机器学习和数据挖掘领域,大多算法都是采用特征提取力处根损用户行为数据或用户项目内容数据为用户和项目分别创建一个向量模型。通过度量向量模型的距离来度量用户或项目的相似度。下面主要介绍余弦距离和皮尔逊相关系数。
- 余弦距离
从几何角度看,余弦距离是指n(n>=2)维空间中两个向量夹角的余弦值。在推荐系统中,项目间的相似度如果通过向量间的余弦距离度量,那么如果用户对项目没有进行评分,则需要把用户对该项目的评分设为0。
项目i,j之间的像素的通过余弦距离度量为:
- 皮尔逊相关系数
皮尔逊相关系数一般用于计算两个定距变量间的线性关系,衡量两个数据集合是否在一条线上面,它的取值范围在[-1,1]之间。相关系数的绝对值越大,相关性就越强。当相关系数等于1时,表示两个数据集合完全正相关;当相关系数等于-1时,则为完全负相关。当相关系数的值接近于0时,表示两个定距变量之间没有相关关系。
改进相似度
对余弦距离和皮尔逊相关系数的改进主要利用它们公式分子中的加性模型。
余弦距离改进
在计算余弦距离的过程中,当计算完第k个用户时,己知两个项目的相似度至少为simk(i,j)则剩余还没有计算的相似度部分不会超过两个共同评分用户评分最大值和的平方。
由于则有皮尔逊相关系数改进
由于公式(3.2)中,不一定非负,则
当计算完第k个用户时,己知两个项目的相似度至少为simk(i,j),剩余还没有计算的相似度部
分不会超过下式给出的值- 改进算法框架
该文对传统计算项目之间的相似度和最近邻项目的算法框架进行了修正,把二者整合到了一个框架中,修正后的算法在计算项之间相似度的同时查找出标项目的最近邻项目。
利用相似度的特性,如最大值,评分矩阵的稀疏性等,抛弃不可能成为k个最近邻的项目,从而避免了相似度的盲目计算。(在该文章中称为TopKS算法)
该文章为加快查找项目共同评分用户的速度,引入倒排索引。先对评分矩阵矩阵进行预处理,生成倒排索引图,就可以通过倒排索引和评分矩阵很快查找到每个项目的共同用户评分的其他项目。