简书不支持目录。。。
概述
基于内容的推荐系统会挖掘用户曾经喜欢的物品,从而去推荐类似的物品。本质上就是利用用户已知偏好,兴趣等特征和物品的特征相匹配,以此为用户推荐新的感兴趣的商品
基于内容推荐
流程图
三个主要阶段
内容分析器:处理数据格式,抽取信息得到结构化描述
信息学习器:构建用户特征数据
过滤组件:将用户个人信息和物品进行匹配,利用用户特征进行推荐
用户的反馈
- 显示反馈
- 喜欢/不喜欢
- 评分
- 文本评论->情感分析->积极/消极
- 隐式反馈
- 保存,删除,打印,收藏
基于内容推荐优缺点
优点
- 用户独立性:只从当前用户提供的评分构建兴趣模型,不需要像CF一样找近邻
- 透明度:可以显示的列出使物品出现在推荐列表的特征,具有可解释性,物品特征还可以作为是否新人推荐的指标
- 新物品:对于新物品,在没有用户任何评分的情况下也可以进行推荐
缺点
- 可分析内容有限:必须去提取物品各个维度的特征,很难说提取充分
- 过度特化:无法发现令人惊喜的推荐,新颖性上的缺陷,只能推荐用户兴趣相似的物品
- 新用户:首先要有足够评分才能构建可信的用户兴趣模型,评分数据少的情况下,推荐不可靠
推荐系统技术细节
机器学习视角
看做一个用用户过去知识来学习的学习问题,用户特征反应了用户的长期兴趣,用户特征来源于用户过去被显示/隐式标记为感兴趣的信息,不建议强迫用户提供,构建系统去收集和学习。
预测模型的目标是用户感兴趣/不感兴趣,可以看做一个分类问题
物品特征处理
对于非结构化特征,如文本,需要提取文本的特征
关键词向量空间
基于TF-IDF的向量空间模型(Vector Space Model,VSM)
每个文档都是一个n维的向量,每个维度对应一个词语。每个文档被表示为词权重的向量,权重表达了词和文档的关联程度
VSM中,文档表示2个主要问题:确定单词权重;度量特征向量相似度
- 单词权重的特点
- 稀有词相关性 >= 频繁词相关性(逆文档率假设)
- 一篇文档中多次出现的词相关性 >= 只出现一次的词
- 长文档不一定比短文档好
- 一个词,在一篇文档出现次数很多(词频TF),在其他文档中很少出现(逆文档率IDF),则与该文档相关性很高
- $$TF-IDF(t_k,d_j)=\frac{f_{k,j}}{max_zf_{z,j}}\cdot log\frac{N}{n_k}$$
- 进行权重归一化,防止对长文档有偏向
- 相似度计算利用余弦相似度
基于关键词的系统
一些小例子
Web推荐系统Letizia通过隐式反馈来推断用户喜好,例如收藏网页等动作
Web推荐系统WevWatcher根据访问网页和离开已访问网页链接,来构建用户兴趣模型
ifWeb加入了时间衰减机制
新闻推荐过滤器中,考虑学习短期和长期2类特征。NewsDude利用TF-IDF学习用户短期兴趣,利用贝叶斯学习用户长期兴趣
基于关键词的系统存在的问题
基于关键词的系统,物品和用户的信息采集基于关键词表示,通过足够多的信息证明用户兴趣可用,就能预测用户行为。大多数情况都是建立用户兴趣正例负例的文本分类器
推荐准确率依赖大量文本训练数据,训练集的好坏依赖自然语言处理的结果
如果有语义层次的智能,将会改善基于关键词的系统
运用本体的语义分析
语义分析需要学习大量准确的信息,基于语义的推荐要可以翻译自然语言文档和分析内容
语义推荐需要考虑的内容
- 知识源类型(词典 or 本体)
- 物品注释或表达所采用的技术
- 用户信息的内容的类型
- 物品-用户匹配策略
运用的例子
· SiteIF是第一个基于感知的文档表示来构建用户兴趣模型,每个新闻利用词邻域消歧关联到同义词集合,用户模型来自于用户读过文档对应的同义词集合
· SEWeP是一个web个性化系统,利用日志和web站点内容的语义来实现个性化抽取网页关键词,对应到类别的概念里,类别就是用户的兴趣主题
· Quickstep是个论文推荐系统,运用kNN结合论文的语义标注和论文研究主体进行推荐,用户兴趣就是一组主题和主题的兴趣值
· Informed Recommender利用用户评价给出推荐,评价分为观点的质量和商品的质量两部分,可以响应用户对于某个特征的不同质量的请求
· IDT是一个电视推荐系统,电视知识和用户特征都用OWL本体表示,本体-用户特征给出了用户偏好的表示,可以找到偏好的原因。推荐阶段采用用户特征中的知识来发现隐藏在偏好和物品间的语义关联
用户特征处理
学习用户特征的问题可以转化为一个二元分类问题,感兴趣/不感兴趣
概率方法和朴素贝叶斯
朴素贝叶斯是一个归纳式学习的概率方法,基于观测数据产生一个概率模型
即文档d属于类别c的后验概率
决策函数就是去概率最大的类别
朴素贝叶斯的问题在于它假设所有的词之间都条件独立,然而这并不符合实际情况
相关反馈和Rocchio
来自信息检索,帮助用户逐步完善之前搜索的结果,由根据所需用户检索到的相关文档,给出进一步用户反馈组成,常用Rocchio
原则是允许用户给推荐系统的推荐结果打分,利用反馈逐步完善推荐
w是TF-IDF权重,POS是正例集合,NEG是负例集合,β和γ是控制参数
基于内容推荐的拓展
- 用户产生内容(User Generated Content,UGC),用户利用标签来标注和区分感兴趣内容,但是还有很多问题,例如多义词,标签同义词等
- 社会化标签推荐,对用户打标签,有标签向量,协同标注等方法,还有对标签评分的尝试