推荐系统算法(3)InfoQ系列翻译文章,2016
《转自》http://www.infoq.com/cn/articles/recommendation-algorithm-overview-part03?spm=5176.100239.blogcont54403.29.hM7kY2
本文是推荐算法综述的第三部分。第一部分主要介绍了推荐算法的主要类型。第二部分,主要涵盖了不同类型的协同过滤算法,突出他们之间的一些细微差别。在这篇博客中,主要详细介绍基于内容的过滤算法的工作原理,以及它的优点和缺点,从而让读者对其有更深的理解。
基于内容的推荐算法总是为用户推荐那些与用户过去喜欢的item类似的item。它不同于协同过滤,它是基于item的内容(例如标题、年份、描述)比较item之间的相似度。并没有考虑用户过去如何使用item的情况。例如,如果一个用户喜欢电影“指环王:魔戒再现”和“指环王:双塔奇兵”,然后使用电影的标题信息,推荐系统可以向用户推荐电影“指环王:王者无敌”。在基于内容的推荐中,假设可以获取到item的描述信息,并将其作为item的特征向量(例如标题、年份、描述)。这些特征向量被用于创建一个反映用户偏好的模型。各种信息检索(例如TF-IDF)和机器学习技术(例如朴素贝叶斯、支持向量机、决策树等)可被用于创建用户模型,从而为用户产生推荐。
举个例子,假设有一些用户表达过对于一系列书籍的偏好。他们越喜欢一本书,他们对书籍的评分就会越高,通常划分为从1到5的5个等级。可以将用户对于书籍的偏好表示为一个矩阵,其中行代表用,列表示书籍,如图1所示。
图1:用户对书籍的偏好。所有的偏好都分为5个等级,5表示最喜欢的。第一个用户(行1)对于第一本书的偏好给出了一个4分的评分。如果一个单元格是空的,表示用户对于该书籍的偏好没有给出。
在基于内容的推荐中,我们想要做的第一件事是基于内容计算书籍之间的相似度。在这个例子中仅仅使用了书籍标题中的词汇,这是为了将例子进行简化,以方便理解基于内容的推荐算法的工作原理,如图2所示。在实际应用中,可以使用更多的属性。
图2:用户已经评分过的书籍的标题。
首先,从内容中删除停止词(例如语法词语、常见的词语)是非常普遍的,然后将书籍用一个向量表示(或数组),代表使用了哪些词,这被称为矢量空间表示,如下图3所示。
图3:使用书籍标题中词汇作为描述书籍的向量表示。当相应的词汇在标题中,对应的单元格中标注1,否则为空白。
给定每本书的表示之后,使用一系列的相似度度量来对书籍进行比较就变得非常简单了。在这个例子中,我们选择了余弦相似性度量。当我们把第一本书与五本其他的书进行比较时,就能得到这本书与其他书之间的相似程度,如下图4所示。如同大多数相似度度量一样,向量之间的相似性度量值越高,表明两个对象之间越相似。在这种情况下,第一本书与其中三本书非常类似,因为它们的表示之间有两个词汇相同(recommender和 systems),但是其中一本书的描述的词汇最少,它与第一本书最相似,因为它有最少的多余的词汇。而与剩下两本书之间因为没有共同的描述词汇,因此可以当做一点都不相似。
(点击放大图像)
图4:第一本书与其他书籍之间的相似度。能够使用余弦相似性度量进行计算。
更进一步,就可以在一个相似度矩阵中显示所有书籍之间的相似程度,如下图5所示。单元格的背景颜色表示两本书之间的相似程度,红颜色越深,它们之间越相似。
图5:书籍之间的相似度矩阵。每个相似度是基于书籍的词汇向量表示用余弦相似性度量进行计算的。
在知道书籍之间有多相似之后,我们就可以对用户推荐书籍了。类似于我们在第二部分所介绍的基于item的协同过滤方法,我们选取一个用户此前评分过的书籍,并推荐与它们最相似的书籍。与协同过滤方法不同的是,这里的相似性度量是基于书籍的内容,在这个例子中,准确来说是标题,而不是使用用户过去的行为数据。在我们的例子中,第一个用户将会被推荐第四本书,之后是第六本书,如下图6所示。再次,我们仅仅选取了最相似的两本书。
(点击放大图像)
图6:针对一个具体的用户产生的推荐。我们选择用户已经评分过的书籍,然后找到两本与它们最相似的书,推荐给用户未评分过的书籍。
基于内容的方法克服了协同过滤方法的很多不足。具体来说,基于内容的推荐算法可以克服流行度偏离和新item的冷启动问题,这些问题在第二部分介绍协同过滤的时候已经讨论过。然而,值得注意的是,纯粹基于内容的推荐算法的性能通常不如协同过滤算法。基于内容的推荐算法通常还存在过度专业化(over-specialisation)的问题,即用户可能会得到过多相同类型的item(如推荐所有的“指环王”系列电影),而不会推荐其他不同的、但用户可能感兴趣的item。最后是,基于内容的推荐算法中,仅仅使用了包含在item元数据中的词汇(如标题、描述年份),这限制了推荐算法的实用性,不能帮助用户探索和发现词汇之外的内容。
本文是一篇翻译稿,读者也可以参考英文原文。
推荐系统算法(3)InfoQ系列翻译文章,2016相关推荐
- 深入理解YouTube推荐系统算法!
之前天池-安泰杯跨境电商智能算法大赛是我初次接触推荐相关的比赛,通过比赛让我对推荐系统有了较为浅显的认识,赛后也是打算系统的学习这方面的内容,此后我也会将[推荐系统]作为一个系列板块进行更新,主打经典 ...
- 【推荐系统】深入理解YouTube推荐系统算法
去年天池-安泰杯跨境电商智能算法大赛是我初次接触推荐相关的比赛,通过比赛让我对推荐系统有了较为浅显的认识,赛后也是打算系统的学习这方面的内容,此后我也会将[推荐系统]作为一个系列板块进行更新,主打经典 ...
- 【转】分布式一致性算法:Raft 算法(Raft 论文翻译)
编者按:这篇文章来自简书的一个位博主Jeffbond,读了好几遍,翻译的质量比较高,原文链接:分布式一致性算法:Raft 算法(Raft 论文翻译),版权一切归原译者. 同时,第6部分的集群成员变更读 ...
- 推荐系统算法学习导论
推荐(引擎)系统算法学习导论 作者:July. 出处:结构之法算法之道 引言 昨日看到几个关键词:语义分析,协同过滤,智能推荐,想着想着便兴奋了.于是昨天下午开始到今天凌晨3点,便研究了一下推荐引擎, ...
- 候选翻译文章列表[示范]
本翻译文章列表持续更新中,大家有好的文章记得告诉我,我会把它们放入该列表的. 个人对于好文章的一些理解: 讲的透彻,不一定要有多少代码,但能够把问题讲清楚 不一定要涉及很难的技术,对于一些基础的东西我 ...
- 人工智能算法通俗讲解系列(二):逻辑回归
2019独角兽企业重金招聘Python工程师标准>>> 今天,我们介绍的机器学习算法叫逻辑回归.它英语名称是Logistic Regression,简称LR. 跟之前一样,介绍这个算 ...
- 深度探索推荐系统算法在工业界如何应用
由于近些年深度学习技术的飞速发展,大力加速推动了AI在互联网以及传统各个行业的商业化落地,尤其是推荐系统.计算广告等领域.由于推荐系统与提升用户量以及商业化变现有着密不可分的联系,各大公司都放出了众多 ...
- 【机器学习基础】数学推导+纯Python实现机器学习算法30:系列总结与感悟
Python机器学习算法实现 Author:louwill Machine Learning Lab 终于到了最后的总结.从第一篇线性回归的文章开始到现在,已经接近有两年的时间了.当然,也不是纯写这3 ...
- 【推荐系统算法学习笔记1】基本架构、专有名词、构建流程
文章目录 1.架构 1.1 大数据框架:lambda 架构的 1.2.基本概念 2. 推荐模型构建流程 2.1 数据 2.1.1 数据来源 2.1.2 数据清洗.处理 2.2 特征工程 2.3 算法( ...
最新文章
- node编写定时任务,for循环只执行一遍的解决办法
- 新手问题之找不到R文件
- 5G时代下,AI赋能行业的思考
- Cheese 模拟,贪心(300)
- mybatis当遇到,用mysql关键字作为的字段的表,如何处理
- 顺丰同城宣布苏炳添出任首位品牌代言人
- Machine Learning课程中的常见符号的含义
- ES6学习之路10----Symbol
- Centos下SVN环境部署记录
- gwr模型用什么做_干货|教你如何用Stata做二元选择模型
- Laravel框架的运行过程
- 全国行政边界矢量数据下载
- windows10如何注销
- 关于#1-D:last line of file ends without a newline警告的解决办法(stm32)
- 传统BI+敏捷BI+智能BI
- 如何屏蔽知乎网页中的热搜
- 10月12日棉花期货投资
- 最简单深度学习Python实现(二分类问题)
- 跟我一起编辑直播源码,直播app代码怎么写
- Java根据两点经纬度计算距离