初识推荐算法

  • 算法背景
  • 推荐系统的基本概念
  • 哪些信息可以用于推荐
  • 常用的推荐系统算法

算法背景

推荐系统是根据用户的浏览习惯,确定用户的兴趣,通过发掘用户的行为,将合适的信息推荐给用户,满足用户的个性化需求,帮助用户找到对他胃口但是不易找到的信息或商品。

推荐系统在互联网和传统行业中都有着大量的应用。在互联网行业,几乎所有的互联网平台都应用了推荐系统,如资讯新闻/影视剧/知识社区的内容推荐、电商平台的商品推荐等;在传统行业中,有些用于企业的营销环节,如银行的金融产品推荐、保险公司的保险产品推荐等。根据QM报告,以推荐系统技术为核心的短视频行业在2019年的用户规模已超8.2亿,市场规模达2千亿,由此可见这项技术在现代社会的经济价值。

推荐系统的基本概念

构建推荐系统本质上是要解决“5w”的问题。如下图示例,当用户在晚间休闲,上网阅读小说时,在阅读的军事小说下方,向他推荐三国志游戏,并给出推荐理由“纸上谈兵不如亲身实践”。


这是一个较好的推荐案例,很多军迷用户会下载游戏试玩。但反之,如果在用户白天开会投屏时,弹出提示框向用户推荐“巴厘岛旅游”,会给在场的同事留下不认真工作的印象,用户也会非常的恼火。可见,除了向谁(Who)推荐什么(What)之外,承载推荐的产品形式(Where)和推荐时机(When)也非常重要。

另外给出推荐理由(Why)会对推荐效果产生帮助吗? 答案是肯定的。心理学家艾伦·兰格做过一个“合理化行为”的实验,发现在提供行动理由的情况下,更容易说服人们采取行动,因为人们会认为自己是“合乎逻辑”的人。

艾伦设计了排队打印的场景,一个实验者想要插队,通过不同的请求方式,观测插队成功的概率。他做了三组实验:
第一组:请求话术“打搅了,我有5页资料要复印,能否让我先来?”,有60%的成功概率。
第二组:请求话术中加入合理的理由“因为……(如赶时间)”,成功率上升到94%。
第三组:请求话术变成无厘头的理由“我能先用下复印机吗?因为我有东西要印。”,成功率仅略有下降,达到93%。

由此可见,哪怕我们提供一个不太靠谱的推荐理由,用户接受推荐的概率都会大大提高。

虽然完整的推荐系统需要考虑“5w”问题,但向谁(who)推荐什么(what)是问题的核心。所以,初识介算法的话,就介绍一个解决这两个核心问题的推荐系统吧。
使用的数据和推荐任务如下图所示,已知用户对部分内容的评分(偏好),推测他们对未评分内容的评分,并据此进行推荐。

哪些信息可以用于推荐

图中蕴含的数据可以分为三种:

  1. 每个用户的不同特征,如性别、年龄;
  2. 物品的各种描述属性,如品牌、品类;
  3. 用户对部分物品的兴趣表达,即用户与物品的关联数据,如历史上的评分、评价、点击行为和购买行为。

结合这三种信息可以形成类似“女性A 喜欢 LV包”这样的表达。


基于3的关联信息,人们设计了“协同过滤的推荐算法”。
基于2的内容信息,设计出“基于内容的推荐算法”。
现在的推荐系统普遍同时利用这三种信息,下面我们就来看看这些方法的原理。

常用的推荐系统算法

常用的推荐系统算法实现方案有三种:

  1. 协同过滤推荐(Collaborative Filtering Recommendation):该算法的核心是分析用户的兴趣和行为,利用共同行为习惯的群体有相似喜好的原则,推荐用户感兴趣的信息。兴趣有高有低,算法会根据用户对信息的反馈(如评分)进行排序,这种方式在学术上称为协同过滤。协同过滤算法是经典的推荐算法,经典意味着简单、好用。协同过滤算法又可以简单分为两种:
    a)基于用户的协同过滤:根据用户的历史喜好分析出相似兴趣的人,然后给用户推荐其他人喜欢的物品。假如小李,小张对物品A、B都给了十分好评,那么可以认为小李、小张具有相似的兴趣爱好,如果小李给物品C十分好评,那么可以把C推荐给小张,可简单理解为“人以类聚”。
    b)基于物品的协同过滤:根据用户的历史喜好分析出相似物品,然后给用户推荐同类物品。比如小李对物品A、B、C给了十分好评,小王对物品A、C给了十分好评,从这些用户的喜好中分析出喜欢A的人都喜欢C,物品A、C是相似的,如果小张给了A好评,那么可以把C也推荐给小张,可简单理解为“物以群分”。

  2. 基于内容过滤推荐(Content-based Filtering Recommendation):基于内容的过滤是信息检索领域的重要研究内容,是更为简单直接的算法,该算法的核心是衡量出两个物品的相似度。首先对物品或内容的特征作出描述,发现其相关性,然后基于用户以往的喜好记录,推荐给用户相似的物品。比如,小张对物品A感兴趣,而物品A和物品C是同类物品,可以把物品C也推荐给小张。

  3. 组合推荐(Hybrid Recommendation):以上算法各有优缺点,比如基于内容的过滤推荐是基于物品建模,在系统启动初期往往有较好的推荐效果,但是没有考虑用户群体的关联属性;协同过滤推荐考虑了用户群体喜好信息,可以推荐内容上不相似的新物品,发现用户潜在的兴趣偏好,但是这依赖于足够多且准确的用户历史信息。所以,实际应用中往往不只采用某一种推荐方法,而是通过一定的组合方法将多个算法混合在一起,以实现更好的推荐效果,比如加权混合、分层混合等。具体选择哪种方式和应用场景有很大关系。

初识推荐算法---算法背景、算法概念介绍、推荐信息选取、常用推荐算法简介相关推荐

  1. AI:人工智能实践六大场景(金融信用违约、反欺诈模型、客户偏好洞察、智能推荐、精准营销、客户流失管理)及其对应常用机器学习算法经验总结(不断更新)

    AI:人工智能实践六大场景(金融信用违约.反欺诈模型.客户偏好洞察.智能推荐.精准营销.客户流失管理)及其对应常用机器学习算法经验总结(不断更新) 目录

  2. 【会话推荐】ICDM论文:探索跨会话信息感知的推荐模型

    会话推荐是推荐领域的一个子分支,  美团平台增长技术部也在该领域不断地进行探索.不久前,该部门提出的跨会话信息感知的时间卷积神经网络模型CA-TCN被国际会议ICDM NeuRec Workshop ...

  3. 深度学习算法训练和部署流程介绍--让初学者一篇文章理解算法训练和部署流程

    目录 1 什么是深度学习算法 2 算法训练 2.1 训练的原理 2.2 名词解释 3 算法C++部署 3.1 嵌入式终端板子部署 3.3.1 tpu  npu推理 3.3.2 cpu推理 3.2 服务 ...

  4. 详细介绍用MATLAB实现基于A*算法的路径规划(附完整的代码,代码逐行进行解释)(一)--------A*算法简介和环境的创建

       本系列文章主要介绍基于A*算法的路径规划的实现,并使用MATLAB进行仿真演示.本文作为本系列的第一篇文章主要介绍如何进行环境的创建,还有一定要记得读前言!!! 本系列文章链接: ------- ...

  5. 技术分享 | 嵌入式常用滤波算法的matlab实现

    随着基于模型设计的广泛应用,模型在环仿真也逐渐多了起来,我们今天介绍几种嵌入式常用滤波算法的matlab实现. 一.采用数字滤波算法克服随机干扰的误差具有以下优点: 数字滤波无需其他的硬件成本,只用一 ...

  6. 想要挑战高薪,不懂算法怎么能行??10 大常用机器学习算法

    点击上方"java大数据修炼之道",选择"设为星标" 优质文章和精品资源, 第一时间送达 来源:机器之心     作者:garvitanand2 参与:Geek ...

  7. 【图像处理】 常用边缘检测算法对比分析

    文章目录一瞥 边缘的定义 边缘检测的基本方法 图像滤波 图像增强 图像检测 图像定位 常见边缘检测算子分析 1) 差分边缘检测 2)Reborts算子 3)Sobel算子 4)Prewitt 算子 非 ...

  8. 用c语言编写插入排序算法,C语言实现常用排序算法——插入排序

    插入排序是最基础的排序算法,原理: 首先1个元素肯定是有序的,所以插入排序从第二个元素开始遍历: 内循环首先请求一个空间保存待插入元素,从当前元素向数组起始位置反向遍历: 当发现有大于待插入元素的元素 ...

  9. 基于推荐算法的电影系统——理论介绍(1)

    效果预览 本项目目的是从猫眼读取数据,搭建一个电影网站,向用户推荐可能感兴趣电影. Web管理员后端界面展示 电影推荐系统--用户界面展示 本章首先介绍完成这样一个系统需要哪些理论知识. 1. Web ...

最新文章

  1. JS如何判断json是否为空
  2. RXJAVA之变换操作
  3. 02HTML标签(下)
  4. 在CSS3中,可以利用transform功能来实现文字或图像的旋转、缩放、倾斜、移动这四种类型的变形处理...
  5. Hadoop2常用Shell命令
  6. 七招从办公室政治中取胜 发表于 09 May 2008 ? 领导力培养
  7. Intel Realsense 处理帧时报错:RuntimeError: null pointer passed for argument frame_ref
  8. 如何在Win10上配置JDK1.8
  9. 侯捷畅谈技术人生与读书感悟
  10. 《结网》《人人都是产品经理》对比
  11. 英语知识点整理day03
  12. IMO模型编程思维法(Input-Model-Output)
  13. pip install deepforest 失败
  14. Python——全国二级等级考试
  15. HTML5:移动互联网的第二个苹
  16. “鸡血驱动”为CS:GO、LOL注入“强心剂”!英特尔锐炫A750显卡实测
  17. Arduino的密码锁
  18. UTXO:未使用的交易输出
  19. PIP生存记 | 10%强制淘汰率? Amazon好进,不好混。
  20. matlab计算涡度的函数_涡度的计算

热门文章

  1. 大数——大数相加(hdu1002)
  2. ip地址的分类:A、B、C、D、E五类是如何划分的?
  3. sql中left join后用on还是where
  4. 解决nginx无法启动的问题——端口被占用
  5. LeetCode 637. Average of Levels in Binary Tree
  6. 【OpenGL4.0】GLSL-使用Uniform Block实现着色器的数据共享
  7. 9203 0409 随堂
  8. emmet语法 1127
  9. django-阻止某一个IP访问某一个页面
  10. 在Hive查询中如何显示列名