「」协同过滤算法:在抖音狂给1000个小姐姐点赞的事被老婆发现了( 二 )
本文插图
如果用余弦相似度计算图书1和图书2的相似度 , 也叫做cosine距离 , 计算过程为:
回想高中时候的课本我们就可以知道 , 上面的similarity计算公式 , 实际上就是计算书籍1的评分向量(4,5,4,0,0,0)和书籍2的评分向量(3,0,3,3,4,0)的 cos 夹角 。
用同样的方式 , 可以算出图书1跟其他五本图书相似度分别为0.27, 0 .79 , 0.32,0.99和0 。 对每两本书计算完这个相似度后 , 就可以获得全部图书的相似矩阵 。
本文插图
一个平台不仅仅有6本图书6个用户 , 我们再扩展到一般的情况 。 计算物品的相似度 , 实际是计算每两个物品评分向量的cosine距离 , 评分向量的每一维 , 代表了一个用户 , 下图中 , 表格的第一行代表了所有用户对物品A的评分 。 当有100万个用户时 , 也就是计算每两个100万维向量的距离 。 这样就导致计算量很大 , 而且很多平台不仅仅只有100万用户 , 因而这个低效的计算方式需要改进 。
本文插图
(3)预测决策
有了评分矩阵之后 , 预测决策一般有两种场景 。
一种是根据相似度排序推荐最近邻物品 。 类似于“看了还看” , “买了还买”场景 。 在这里的例子中 , 我们知道图书1和其他图书的相似度排序分别是图书5 , 图书3 , 图书4和图书2 。 当用户点击了图书1时 , 就可以按照相似顺序从高到低推荐 。
本文插图
第二种是根据相似度预测评分推荐物品 。 如何决策要不要给用户B推荐图书2 , 图书4和图书6呢?
如下图 , 通过用户B对图书1的评分 * 未知图书与图书1的相似度来预测用户B对剩下图书的评分 。 如图书2的预测评分 = 图书1的评分5分 * 图书1和图书2的相似度0.27, 从而用户B对图书2的评分是:5×0.27=1.35 。 同样方式计算出其他图书的评分预测 。
本文插图
从上面的结果来看 , 用户B对其他图书评分比较低 , 这几本图书推荐的可能性大大减少 。
物品协同过滤实际使用
这是推荐系统里最朴素的算法 , 因为它的计算量会随着用户和物品的数量呈指数增长 , 所以它并不适合在大量用户或大量物品的场景使用 。 在它诞生的年代 , 还没有大数据 , 这种计算方式耗费大量内存 , 需要做大量的优化 。 我尝试过用100万用户 , 100万物品和500万条的数据在256G内存的机器上做过尝试 , 计算一分钟后就宣告内存耗尽 。
因为这个缺点 , 就需要新的算法来计算物品的协同过滤 。
前面提到 , 计算任意两物品之间的相似度后 , 有两个使用场景 。 针对这两个场景 , 分别有不同的迭代算法:
- 根据相似度排序推荐最近邻物品:使用如Word2vec , Item2vec等Embedding类的算法 , 将物品嵌入固定的向量空间中 , 再使用LSH算法(局部敏感哈希算法)取最近邻物品 。 这个后续文章会介绍 。
- 根据相似度预测评分推荐物品:本章后续介绍的SVD算法 。
最后补充一下 , 物品协同过滤的一个缺点 , 或者说是协同过滤的缺点 , 对于一个新物品 , 协同过滤是无法推荐的 。 因为新物品用户无评分 , 导致它跟所有物品的相似度都是为0 , 这个是使用这个算法时非常需要注意的一个点 。
推荐阅读
- 『强国兵器』中方协同美方开发AI工具,英国人:只有中国能做到,抗疫强力辅助
- 「TalkingData」打造智能化的小微企业信用评估体系?,如何用数据+算法
- 「中国电信」中国电信携手海思、长虹联合开展5G机器视觉“端边云”协同创新
- 『环球Tech』中国电信携手海思、长虹联合开展5G机器视觉“端边云”协同创新
- #环球Tech#中国电信携手海思、长虹联合开展5G机器视觉“端边云”协同创新
- 美伢的广志■设置Iphone的色情信息过滤机制,这么简单,原来是这样
- 「电气技术」提升磁悬浮系统的控制性能,新算法
- 工信:工信部:审慎积极地推进有创呼吸机等医疗装备产业链协同复工扩产
- 人脸识别:中科视拓开放商业版本人脸识别算法SeetaFace 6
- 节能罗茨风机@如何更换三叶罗茨风机的内部齿轮和空气过滤器的检查
