推荐算法-余弦相似度

一、余弦相似度:

余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似,这就叫"余弦相似性"

二维向量的余弦相似度:

多维向量的余弦相似度(类比)

协同过滤(Collaborative Filtering, 简称 CF):

  • 收集用户行为
  • 减噪与归一化处理
  1. 减噪:用户行为数据是用户在使用应用过程中产生的,它可能存在大量的噪音和用户的误操作,我们可以通过经典的数据挖掘算法过滤掉行为数据中的噪音,这样可以是我们的分析更加精确
  2. 归一化:将各个行为的数据统一在一个相同的取值范围中,从而使得加权求和得到的总体喜好更加精确。

二、基于物品的协同过滤推荐算法(itemCF):

算法思想:给用户推荐那些和他们之前喜欢的物品相似的物品

用户行为与权重:点击-1、搜索-3、收藏-5 、付款-10

用户 A、B、C

商品 1、2、3、4、5、6

  • 根据用户行为列表计算用户、物品的评分矩阵
  • 根据用户、物品的评分矩阵计算物品、物品的相似矩阵
  • 相似度矩阵x评分矩阵=推荐列表
  • 推荐列表中用户之前已经有过行为的元素置为0

三、基于用户的协同过滤推荐算法(UserCF)

算法思想:给用户推荐和他兴趣相似的其他用户喜欢的物品

用户行为与权重:点击-1、搜索-3、收藏-5 、付款-10

用户 A、B、C、D、E、F

商品 1、2、3、4、5、6

  • 根据用户行为列表计算物品、用户的评分矩阵
  • 根据物品、用户的评分矩阵计算用户、用户的相似矩阵
  • 相似度矩阵X评分矩阵=推荐列表
  • 将推荐列表中用户已有行为的元素置0

四、基于内容推荐算法

算法思想:给用户推荐和他们之前喜欢的物品在内容上相似的其他物品

1表示电影具有某个特征  0表示电影不具有某个特征

物品特征建模:Item Profile

  • 构建Item Profile矩阵(电影的特征项矩阵)
  • 构建Item User评分矩阵(用户电影的评分矩阵)
  • Item User x Item Profile = User Profile (用户对电影的喜爱程度)
  • 对Item Profile和User Profile求余弦相似度

五、基于物品的协同过滤推荐算法(itemCF)说明:

1、根据用户行为列表计算用户、物品的评分矩阵

2、根据用户物品的评分矩阵计算物品、物品的相似矩阵

3、相似度矩阵x评分矩阵=推荐列表

4、推荐列表中用户之前已经有过行为的元素置为0

原文地址:https://www.cnblogs.com/wjh123/p/11400937.html

时间: 2024-10-08 04:27:58

推荐算法-余弦相似度的相关文章

什么是协同过滤推荐算法?

剖析千人千面的大脑——推荐引擎部分,其中这篇是定位:对推荐引擎中的核心算法:协同过滤进行深挖. 首先,千人千面融合各种场景,如搜索,如feed流,如广告,如风控,如策略增长,如购物全流程等等:其次千人千面的大脑肯定是内部的推荐引擎,这里有诸多规则和算法在实现对上述各个场景进行“细分推荐排序”:最后是推荐引擎的算法又以“协同过滤”为最核心.最主流热门,也是当下众多内容型.电商型.社交工具.分发型的基础. 由于协同过滤的算法介绍,网上也蛮多但片段化.要么侧重讲“原理流程”,这个占了4成:要么讲算法公

【java算法】---余弦相似度计算字符串相似率

余弦相似度计算字符串相似率 功能需求:最近在做通过爬虫技术去爬取各大相关网站的新闻,储存到公司数据中.这里面就有一个技术点,就是如何保证你已爬取的新闻,再有相似的新闻 或者一样的新闻,那就不存储到数据库中.(因为有网站会去引用其它网站新闻,或者把其它网站新闻拿过来稍微改下内容就发布到自己网站中). 解析方案:最终就是采用余弦相似度算法,来计算两个新闻正文的相似度.现在自己写一篇博客总结下. 一.理论知识 先推荐一篇博客,对于余弦相似度算法的理论讲的比较清晰,我们也是按照这个方式来计算相似度的.网

基于欧式距离定义相似度推荐算法的评估

/* * 这段程序对于基于欧式距离定义相似度的评估 * */ package byuser; import java.io.File; import org.apache.mahout.cf.taste.common.TasteException; import org.apache.mahout.cf.taste.eval.RecommenderBuilder; import org.apache.mahout.cf.taste.eval.RecommenderEvaluator; impor

相似度算法之余弦相似度

转自:http://blog.csdn.net/u012160689/article/details/15341303 余弦距离,也称为余弦相似度,是用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小的度量. 余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似,这就叫"余弦相似性". 上图两个向量a,b的夹角很小可以说a向量和b向量有很高的的相似性,极端情况下,a和b向量完全重合.如下图: 如上图二:可以认为a和b向量是相等的,也即a,b向量代表的文本是完全相似的,或

基于用户的协同过滤推荐算法原理和实现

在推荐系统众多方法中,基于用户的协同过滤推荐算法是最早诞生的,原理也较为简单.该算法1992年提出并用于邮件过滤系统,两年后1994年被 GroupLens 用于新闻过滤.一直到2000年,该算法都是推荐系统领域最著名的算法. 本文简单介绍基于用户的协同过滤算法思想以及原理,最后基于该算法实现园友的推荐,即根据你关注的人,为你推荐博客园中其他你有可能感兴趣的人. 基本思想 俗话说"物以类聚.人以群分",拿看电影这个例子来说,如果你喜欢<蝙蝠侠>.<碟中谍>.&l

一个简单的基于内容的推荐算法

最近闲下来又开始继续折腾推荐系统了,声明一下,本文只是介绍一下最基础的基于内容的推荐系统(Content-based recommender system)的工作原理,其实基于内容的推荐系统也分三六九等Orz,这里只是简单的较少一下最原始的.最基本的工作流程. 基于内容的推荐算法思路很简单,它的原理大概分为3步: 1.为每个物品(Item)构建一个物品的属性资料(Item Profile) 2.为每个用户(User)构建一个用户的喜好资料(User Profile) 3.计算用户喜好资料与物品属

Python简单实现基于VSM的余弦相似度计算

在知识图谱构建阶段的实体对齐和属性值决策.判断一篇文章是否是你喜欢的文章.比较两篇文章的相似性等实例中,都涉及到了向量空间模型(Vector Space Model,简称VSM)和余弦相似度计算相关知识.        这篇文章主要是先叙述VSM和余弦相似度相关理论知识,然后引用阮一峰大神的例子进行解释,最后通过Python简单实现百度百科和互动百科Infobox的余弦相似度计算. 一. 基础知识 第一部分参考我的文章: 基于VSM的命名实体识别.歧义消解和指代消解 第一步,向量空间模型VSM 

微博推荐算法学习(Weibo Recommend Algolrithm)

原文:http://hijiangtao.github.io/2014/10/06/WeiboRecommendAlgorithm/ 基础及关联算法 作用:为微博推荐挖掘必要的基础资源.解决推荐时的通用技术问题.完成必要的数据分析.为推荐业务提供指导. 分词技术与核心词提取:是微博内容推荐的基础,用于将微博内容转化为结构化向量,包括词语切分.词语信息标注.内容核心词/实体词提取.语义依存分析等. 分类与anti-spam:用于微博内容推荐候选的分析,包含微博内容分类和营销广告/色情类微博识别:内

机器学习:推荐算法之基于用户、基于物品和Slope One

? ? 引言 ? ? 之前有段时间研究过推荐算法,倒不是科研需要,是觉得很想弄明白每天淘宝的时候那些猜你喜欢的东西是怎么冒出来的,还有最近很火的网易云音乐以及虾米音乐的推荐算法,这里很高兴的就是网易云音乐已经被我调教的很棒了,真开心 ? ? 后来了解到那些企业做的推荐算法多是混合推荐,而我只了解了基础的三种,不过相信万变不离其宗,很多基础的东西还是很重要的,所以对这三种推荐算法进行了整理,最后因为之前自己用Python参照着github上一个人的代码自己也尝试着实现了一下该推荐系统,主要是基于用