个性化推荐系统原理介绍(基于内容推荐/协同过滤/关联规则/序列模式/基于社交推荐)...

 

个性化推荐根据用户兴趣和行为特点,向用户推荐所需的信息或商品,帮助用户在海量信息中快速发现真正所需的商品,提高用户黏性,促进信息点击和商品销售。推荐系统是基于海量数据挖掘分析的商业智能平台,推荐主要基于以下信息:

  • 热点信息或商品
  • 用户信息,如性别、年龄、职业、收入以及所在城市等等
  • 用户历史浏览或行为记录
  • 社会化关系

 

基于人口统计学的推荐机制(Demographic-based Recommendation)是一种最易于实现的推荐方法,它只是简单的根据系统用户的基本信息发现用户的相关程度,然后将相似用户喜爱的其他物品推荐给当前用户。

首先,系统对每个用户都有一个用户 Profile 的建模,其中包括用户的基本信息,例如用户的年龄,性别等等;然后,系统会根据用户的 Profile 计算用户的相似度,可以看到用户 A 的 Profile 和用户 C 一样,那么系统会认为用户 A 和 C 是相似用户,在推荐引擎中,可以称他们是“邻居”;最后,基于“邻居”用户群的喜好推荐给当前用户一些物品。

这种基于人口统计学的推荐机制的好处在于:

l因为不使用当前用户对物品的喜好历史数据,所以对于新用户来讲没有“冷启动(Cold Start)”的问题

l这个方法不依赖于物品本身的数据,所以这个方法在不同物品的领域都可以使用,它是领域独立的(domain-independent)

然后,这个方法的缺点和问题就在于,这种基于用户的基本信息对用户进行分类的方法过于粗糙,尤其是对品味要求较高的领域,比如图书,电影和音乐等领域,无法得到很好的推荐效果。另外一个局限是,这个方法可能涉及到一些与信息发现问题本身无关却比较敏感的信息,比如用户的年龄等,这些用户信息不是很好获取

 

基于内容的推荐是在推荐引擎出现之初应用最为广泛的推荐机制,它的核心思想是根据推荐物品或内容的元数据,发现物品或者内容的相关性,然后基于用户以往的喜好记录,推荐给用户相似的物品。这种推荐系统多用于一些资讯类的应用上,针对文章本身抽取一些tag作为该文章的关键词,继而可以通过这些tag来评价两篇文章的相似度。

这种推荐系统的优点在于:

l易于实现,不需要用户数据因此不存在稀疏性和冷启动问题。

l基于物品本身特征推荐,因此不存在过度推荐热门的问题

然而,缺点在于抽取的特征既要保证准确性又要具有一定的实际意义,否则很难保证推荐结果的相关性。豆瓣网采用人工维护tag的策略,依靠用户去维护内容的tag的准确性。

 

 

 

原文链接: http://blog.csdn.net/liulingyuan6/article/details/54341761

 

推荐系统中常用的技术可大致分为四类:基于内容的过滤、协同过滤、基于规则的方法和混合方法。

 

基于内容过滤

   基于内容过滤推荐系统思路如下:

      (1)通过在抓取每个商品的一系列特征来构建商品档案;

      (2)通过用户购买的商品特征来构建基于内容的用户档案;

      (3)通过特定的相似度方程计算用户档案和商品档案的相似度;

      (4)推荐相似度最高的n个商品。所以,这种推荐基于与已购买商品的相似度来进行推荐。

        最初,这种系统用于文档推荐如网络新闻, 网页以及书籍。 用户档案和商品档案都以使用信息提取技术或信息过滤技术提取出的关键词集合来表示。鉴于两个档案都以权重向量的形式表示,则相似度分数则可以使用如余弦近似度方程或皮尔森相关系数等启发式方程来计算得到。其它的技术如分类模型,构建一个统计方法或者数据挖掘方法,来判断文档内容和用户是否相关。

        基于内容过滤局限:

     (1)不容易找到足够数量的特征来构建档案(特征缺少问题);

       (2) 推荐内容局限于目标用户已购买商品(超特化问题);

       (3) 还未有购买记录的新用户或偏好特殊的用户不能得到合适的推荐(新用户、特殊用户问题) 。

 

其中基于规则的方法

基于关联规则的推荐系统的首要目标是挖掘出关联规则,也就是那些同时被很多用户购买的物品集合,这些集合内的物品可以相互进行推荐。目前关联规则挖掘算法主要从Apriori和FP-Growth两个算法发展演变而来。

基于关联规则的推荐系统一般转化率较高,因为当用户已经购买了频繁集合中的若干项目后,购买该频繁集合中其他项目的可能性更高。该机制的缺点在于:

l计算量较大,但是可以离线计算,因此影响不大

l由于采用用户数据,不可避免的存在冷启动和稀疏性问题

l存在热门项目容易被过度推荐的问题。

 

使用数据挖掘技术从大量的过往交易数据中获取规则。它可以是会同时被购买的商品之间的关联规则,也可以是按时间依次被购买商品的序列模型。基于规则的推荐方法的主要局限为难以为没有在关联规则或序列模型中出现的商品进行推荐。Aggarwal提出了一种针对目标市场的发现局部关联规则的技术。他们首先聚类分析了来自UCI机器学习数据中的蘑菇数据集和成人数据集两个购物篮数据,然后从每个类别中提取关联规则。Huang提出了一个序列模式推荐系统来预测超市中顾客随时间变换的购买行为。

 

转载于:https://www.cnblogs.com/energy1010/p/6846436.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/416662.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工作总结9:vue处理token

最开始后端来和我说 token 时候, 虽然装着很懂的样子,但当时我听的是一脸懵逼 之前学习的时候,根本没接触过token, 后来查了一些资料,终于明白了token 的原理,以及应用。 token 原理 token 的意思是 令牌…

从底层重学 Java 之两大浮点类型 GitChat链接

chat连接 https://gitbook.cn/gitchat/activity/5f03fdd3852a4f3686fb3366 简介 从底层,从原理,我们来重学一次 Java。两大 Java 浮点类 Double、Float 是我们比较常用的对象,他们的源码及实现是怎样的呢? 本系列秉承所有结论…

UVA455 - Periodic Strings

原题链接:https://uva.onlinejudge.org/index.php?optioncom_onlinejudge&Itemid8&category830&pageshow_problem&problem396 题意: 如果一个字符串可以由某个长度为k的字符串重复多次得到,则称该串以k为周期。例 …

从底层重学 Java 之 BigInteger 大整数 Gitchat连接

Gitchat连接 https://gitbook.cn/gitchat/activity/5f395a80aced402379f6a0ca 简介 从底层,从原理,我们来重学一次 Java。BigInteger 是大整数计算类,是BigDecimal用于存储大数属性的类型,BigDecimal中很多计算就是基于BigInte…

让我们聊聊秒杀这东西

万事皆有因 这段似乎都成我写blog标准开头。言归正转,公司以前业务涉及到秒杀,并且是白天从10点起到晚上10点每小时一次(TT天天心惊肉跳的),周六还有个大礼包活动(重量级,经常会出一些你意想不到…

工作总结11:vue获取数据接口

getAction(/deparment/list,{})第一个参数是请求的接口url,第二个参数是需要传的请求接口需要传的参数例如需要传page1和limit5,第二个参数就要像这样写{page:1,limit:5}

从底层重学 Java 之 Character 字符型 Gitchat连接

Gitchat连接 https://gitbook.cn/gitchat/activity/5f50804bbe67a5348a9b2c91 简介 从底层,从原理,我们来重学一次 Java。Character 是char(字符)的封装类,是String用于字符存储的类型,他的源码及实现是…

Day7: Linux基础片:系统监控

一下1,2,3,4分别代表截图中第一行,第二行,第三行,第四行表示的内容 top top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。 当前时间&#xff0c…

工作总结12:封装组件

selectform组件 <!--封装部门选择的插件 需要的组件--> <template><el-select :value"value" placeholder"请选择所属部门" change"handleChange"><el-optionv-for"department in departments":key"depart…

Windows 环境下 Chrome浏览器崩溃“STATUS_INVALID_IMAGE_HASH”

问题 Windows环境下&#xff0c;新版的Chrome浏览器下载安装后&#xff0c;打开就报错&#xff0c;提示错误代码为“STATUS_INVALID_IMAGE_HASH”。重新打开、打开新标签页、刷新均无效。 解决 导致这个问题的原因是 Google 在79版本&#xff08;2019年12月20号左右&#xf…

工作总结13:vue官网封装组件

事件名 不同于组件和 prop&#xff0c;事件名不存在任何自动化的大小写转换。而是触发的事件名需要完全匹配监听这个事件所用的名称。举个例子&#xff0c;如果触发一个 camelCase 名字的事件&#xff1a; this.$emit(myEvent) 则监听这个名字的 kebab-case 版本是不会有任何…

从底层重学 Java 之 Stream 初探 Gitchat连接

Gitchat连接 https://gitbook.cn/gitchat/activity/5f85696aad812d16b498848c 简介 从底层&#xff0c;从原理&#xff0c;我们来重学一次 Java。Stream 是JDK8中新引入的&#xff0c;方便了数据列表的过滤、投影、遍历等各种处理&#xff0c;他的源码及实现是怎样的呢&…

签到题

直接查看源代码 nctf{flag_admiaanaaaaaaaaaaa}转载于:https://www.cnblogs.com/maodun/p/6912628.html

从底层重学 Java 之 Stream 并行及标志 GitChat连接

GitChat连接 https://gitbook.cn/gitchat/activity/5f8fc6cd1f577d4d9f428562 简介 从底层&#xff0c;从原理&#xff0c;我们来重学一次 Java。Stream 是JDK8中新引入的&#xff0c;方便了数据列表的过滤、投影、遍历等各种处理&#xff0c;他的源码及实现是怎样的呢&…

工作总结16:多看官网

多看官网 https://cn.vuejs.org/v2/guide/components.html

201521123121 《Java程序设计》第14周学习总结

1. 本周学习总结 1.1 以你喜欢的方式&#xff08;思维导图或其他&#xff09;归纳总结多数据库相关内容。 数据库的基本特点 1、实现数据共享 数据共享包含所有用户可同时存取数据库中的数据&#xff0c;也包括用户可以用各种方式通过接口使用数据库&#xff0c;并提供数据共享…

Java操作Mongo bulkWrite批量入库

Mongo bulkWrite示例 public boolean insertBulk(String collectionName, JSONArray array) {MongoCollection<Document> collection db.getCollection(collectionName);List<InsertOneModel<Document>> documentList array.stream().map(item -> {Doc…

工作总结17:组件封装思想

就是把部门下拉框选择这部分变成一个组件&#xff0c;在用户创建的时候引入这样就可以把功能不相关代码模块化&#xff0c;以后也便于管理如果别的地方也要用到部门选择&#xff0c;可以直接再次引入&#xff0c;就不用重复写代码了