博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
推荐系统简述(1)基于内容的推荐系统
阅读量:4220 次
发布时间:2019-05-26

本文共 1505 字,大约阅读时间需要 5 分钟。

最近,我喜欢上了东野奎吾的作品,⽐比如《⽩夜行》和《嫌疑人X的献身》,觉得⾮常赞,看完觉得还不过瘾,这时候我有两种继续阅读的路线:一种是根据⾃自⼰己看过的书的性质来寻找与书⻛格相似或者是作者的另外的作品,另外一种是看同样阅读这两本书的⼈人还阅读了哪些书籍。这⾥里的第⼀种方法,就是基于内容的推荐方式——试图推荐给定⽤用户过去喜欢的相似物品,而第二种⽅法,则为协同过滤推荐方式——识别出拥有相同喜好的⽤用户,并且推荐他们喜欢的物品。

本周介绍基于内容的推荐系统。
(一)基于内容的推荐系统⾼层次结构
STEP1:物品的描述有许多种表达,当物品信息没有结构化时候(⽐如⽂本),我们需要对物品信息进⾏行预处理。这一阶段控制的部件我们称为内容分析器(Content Analyzer),其作⽤就是将对象的内容表示成恰当的格式。
STEP2:⽤用户过去的⾏行为表明了这个⽤用户的偏好,我们需要收集其数据特征,并且去泛化这些数据。这⼀一阶段控制的部件我们称为信息学习器((Information Learner)。通常是通过机器学习技术实现的。
那么,用户的偏好从哪⾥里获得呢?
⽤户对物品的偏好反应(称为反馈)是通过某些渠道收集并记录在反馈库中。反馈分为显式反馈(系统要求用户明确评价物品)和隐式反馈两种,显⽰反馈主要包括:喜欢/不喜欢、评分(一星到五星)和⽂本评论三种⽅方式。⽽隐式反馈则是基于⽤户在某样物品上的特定行为(保存、删除、打印、收藏等等)进行相关性评分赋值。
STEP3:收集完用户的个⼈信息和物品的信息后,需要进⾏⽐对——更准确地说,是将数值化的⼆者信息在空间进行匹配(通常是使⽤某种相似度进行计算)。这一模块我们称为过滤组件(Filtering Component),其结果能生成一个潜在感兴趣物品的排名清单。
(⼆)基于内容的推荐系统优缺点
优点1,⽤户独立性强。我的选择不会受其他⽤户的影响,推荐的物品都是符合我的菜(⾄少是我之前喜欢的菜)。
优点2,透明度。我能清楚知道这个推荐系统是怎么工作的,推荐的TOP-N物品其特征是最接近⽤户偏好。
优点3,未被其他⽤户评价的物品也可以被推荐,只要物品的特征符合用户的偏好情况。
缺点1,可分析的内容有限。当物品的内容⽆法区用户喜欢/不喜欢,则会陷⼊推荐盲区。同时,⼀词多义也是一个很严重的问题,我喜欢苹果,你说我是喜欢ipad mini还是红富⼠士呢?
缺点2,过度特化。会局限于用户偏好,推荐的物品渐渐丧失了惊喜(惊喜度问题)。我喜欢看侦探小说,所以系统推荐了许多侦探系列,这样的反复推荐会使得系统对侦探系列的⼩说情有独钟(因为权重会越来越大)而很少能够发现新颖的东西(homophily trap),从而限制了应⽤范围。
缺点3,新用户问题。新⽤用户进⼊入推荐系统,由于没有用户的浏览、评分数据,导致基于内容的推荐系统⽆法提供很可靠的推荐,这也是热门的冷启动(cold start)问题。
(三)基于内容的推荐系统的改进
针对以上提出的基于内容的推荐系统的缺点,工业界和学术界也做了相应的改进。
语义分析法,⼀词多义问题,引⼊入nlp知识进⾏行语义分析,结合物品内容的上下⽂文消歧词义,或者是采⽤用感官特征⽽而⾮关键词。
大众分类法,随着互联⺴的兴起,许多⺴站如知乎为了挖掘用户的偏好,都预先设定了多级标签供⽤户选择,在一定程度上可以解决因物品特征在用户偏好盲区系统无所适从的问题。
知识输液和偶然推荐,通过利⽤统计学的相关计算引⼊一些随机性来偶然推荐⼀些新的特征物品给用户,同时利⽤不同的知识来源不断学习到的知识,对现有的结构化特征信息进⾏扩充。

转载地址:http://rwqmi.baihongyu.com/

你可能感兴趣的文章
重学Java虚拟机(一)—— JVM内存模型
查看>>
重学Java虚拟机(二)—— JVM内存管理
查看>>
重学Java虚拟机(三)—— Java类文件结构
查看>>
重学Java虚拟机(四)—— 类加载机制
查看>>
重学Java集合类(六)—— 红黑树和TreeMap
查看>>
Java的四种引用方式
查看>>
重学Java集合类(七)—— ConcurrentHashMap
查看>>
重学多线程(六)—— 原子操作类
查看>>
Java内部类学习
查看>>
Netty框架学习之路(一)—— Java网络IO模型
查看>>
如何编写一份优雅的Spring配置文件
查看>>
重学设计模式(一)—— 简单工厂、工厂方法、抽象工厂
查看>>
重学设计模式(二)—— 单例模式
查看>>
Netty框架学习之路(二)—— 一个简单的Netty程序
查看>>
重学设计模式(三)—— 构造器模式
查看>>
Netty框架学习之路(三)—— 初识Netty线程模型
查看>>
重学设计模式(四)—— 原型模式
查看>>
重学设计模式(五)—— 装饰器、适配器、门面和代理
查看>>
Netty框架学习之路(四)—— Channel及相关概念
查看>>
SpringMVC启动过程浅析
查看>>