当前位置: 首页 > news >正文

推荐系统原理简析

个性化推荐
个性化推荐根据用户兴趣和行为特点,向用户推荐所需的信息或商品,帮助用户在过载信息中快速发现真正所需的商品,提高用户黏性,促进信息点击和商品销售。推荐基于海量数据挖掘分析的商业智能平台,推荐主要基于以下信息:
–热点信息或商品
–用户信息,如性别、年龄、职业、收入、所在城市
–用户历史浏览或购买行为记录
–社会化关系

推荐发展历程
–1995年3月,卡耐基.梅隆大学的Robert Armstrong等人在美国人工智能协会上提出了个性化导航系统Web Watcher; 斯坦福大学的Marko Balabanovic等人在同一会议上推出了个性化推荐系统LIRA;
–1995年8月,麻省理工学院的Henry Lieberman在国际人工智能联合大会(IJCAI)上提出了个性化导航智能体Litizia;
–1996年,Yahoo 推出了个性化入口My Yahoo;
–1997年,AT&T实验室提出了基于协同过滤的推荐系统PHOAKS和Referral Web;
–1999年,德国Dresden的Tanja Joerding实现了个性化电子商务原型系统TELLIM;
–2000年,NEC研究院的Kurt等人为搜索引擎CiteSeer增加了个性化推荐功能;
–2001年,纽约大学的Gediminas Adoavicius和Alexander Tuzhilin实现了个性化电子商务网站的用户建模系统1:1 Pro;
–2001年,IBM公司在其电子商务平台Websphere中增加了个性化功能,以便商家开发个性化电子商务网站;

推荐目标
–提高单个信息或商品被访问的机会
–增加用户滞留时间,提高用户黏性
–促进信息访问或商品销售
–帮助用户发现感兴趣的信息或商品,提高用户体验

典型代表
–电子商务:Amazon、eBay、淘宝网、当当网
–IPTV:Netflix、Youtube、Pandora、Last.fm、土豆
–SNS:Facebook、Twitter、Del.icio.us、豆瓣

如何工作?
–用户信息收集,如个人信息、历史行为、评分、社会化关系
–用户偏好分析,如喜好特征、用户分类/聚类
–个性化推荐,如协同过滤、关联规则

主要问题
–缺少数据:数据越多,推荐越精确
–数据变化:数据不断变化,历史数据是否仍然生效?
–用户偏好变化:用户可能存个多个偏好,并会发生变化
–精确推荐困难:有些用户是多样化和不可预测的
–推荐系统复杂:海量数据、算法、实时性、精确性

推荐分类
–个性化推荐:根据用户行为历史进行推荐
–社会化推荐:根据相似用户行为历史进行推荐
–基于物品推荐:根据物品本身的特征进行推荐

推荐依据
–Friendship,如Facebook
–Membership,如Digg
–Familiarity
–Trust / distrust
–Follow,如Twitter
–Similarity

推荐特点
–以用户为中心,建立用户行为模型
–有记忆的,进化的系统
–由知识形成系统结构

主要推荐算法
–协同过滤(Collaborative filtering):这是目前应用最为成功和广泛的推荐算法。它充分利用集体智慧,在大量用户或物品中搜索,并从中发现品味相近的用户或属性相近的物品,据此构造经过排序的推荐列表。
–关联规则(Correlation Rule):挖掘物品的空间上的相关性,即发现同时被访问或购买的物品,据此为用户推荐。最为成功和经典的例子就是沃尔玛超市的物品排列-尿布和啤酒放在一起销售和例子。
–分类/聚类(Classification/Clustering):物以类聚,人以群分。同一类别的用户喜欢的东西,非常可能也是你喜欢的。算法来发现用户群组,并根据群组中其他用户浏览或者购买的物品来为当前用户推荐。
–基于内容(Content-based):分析物品内容或属性来构造相关性,据此构造推荐列表。这种算法主要用于电子信息物品的推荐,如网页、ebook、图片、音乐、视频。
–混合推荐:综合运用以上多种推荐算法进行推荐,不同算法之间可以取长补短。但增加了一定的复杂性,而且推荐结果也不容易解释。

推荐难点问题
–新物品冷启动
–用户兴趣过多
–用户打分稀疏性
–算法可扩展性
–海量数据存储与分析

相关文章:

  • 用谷歌拼音输入法
  • centos7 jsoup java.net.UnknownHostException
  • 今天去超市
  • Path类
  • 更换 Windows 7 的 Windows Media Center 主题
  • 如何卸载rpm包
  • 如何让网页上的Flash视频以弹出窗口播放
  • 难道冬泳都会断子绝孙?
  • pdf转word软件
  • 优酷视频下载器 优酷视频下载方法
  • LeetCode: Surrounded Regions [130]
  • 常用中文字体
  • 2016 - 1 - 23 json转模型 常用的第三方框架
  • 常用英文字体收集备用
  • 80后的我,碌碌无为的22年
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • Cookie 在前端中的实践
  • Fastjson的基本使用方法大全
  • input实现文字超出省略号功能
  • Java反射-动态类加载和重新加载
  • JS 面试题总结
  • SOFAMosn配置模型
  • 程序员最讨厌的9句话,你可有补充?
  • 机器学习 vs. 深度学习
  • 七牛云假注销小指南
  • 如何优雅地使用 Sublime Text
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 通过几道题目学习二叉搜索树
  • 一文看透浏览器架构
  • 在electron中实现跨域请求,无需更改服务器端设置
  • - 转 Ext2.0 form使用实例
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (C)一些题4
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (原)Matlab的svmtrain和svmclassify
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • [].slice.call()将类数组转化为真正的数组
  • [Android]How to use FFmpeg to decode Android f...
  • [Angular 基础] - 自定义指令,深入学习 directive
  • [AX]AX2012开发新特性-禁止表或者表字段
  • [BZOJ1010] [HNOI2008] 玩具装箱toy (斜率优化)
  • [C++数据结构](31)哈夫曼树,哈夫曼编码与解码
  • [Docker]五.Docker中Dockerfile详解
  • [flume$2]记录一个写自定义Flume拦截器遇到的错误
  • [Java基础]—JDBC
  • [luogu P1527]矩阵乘法(矩形k小)
  • [office] 图文演示excel怎样给单元格添加下拉列表 #知识分享#经验分享
  • [OS-Linux] CentOS 7.x 使用密钥登录安全设置
  • [POJ 1915] Knight Moves
  • [POJ2411]Mondriaan's Dream
  • [Python学习笔记][Python内置函数]