Recommender Systems基于内容的推荐

简介:   基于内容的推荐的基本推荐思路是:用户喜欢幻想小说,这本书是幻想小说,则用户有可能喜欢这本小说   两方面要求:(1)知道用户的喜好;(2)知道物品的属性   基于内容的推荐相比协同过滤方法(个人观点):协同过滤用到了大量用户的群体行为特征,两个特点,(1)要大量用户,(2)除了用户的行为之外,不需要其他信息;基于内容的推荐,需要用户和物品的额外信息,如:用户喜好、物品属性等等,但是不需要存储、处理大量的用户数据。

  基于内容的推荐的基本推荐思路是:用户喜欢幻想小说,这本书是幻想小说,则用户有可能喜欢这本小说

  两方面要求:(1)知道用户的喜好;(2)知道物品的属性

  基于内容的推荐相比协同过滤方法(个人观点):协同过滤用到了大量用户的群体行为特征,两个特点,(1)要大量用户,(2)除了用户的行为之外,不需要其他信息;基于内容的推荐,需要用户和物品的额外信息,如:用户喜好、物品属性等等,但是不需要存储、处理大量的用户数据。

  基于内容的推荐和基于知识的推荐没有明确界限,两者区别:前者更侧重于提取物品属性,后者更侧重于因果关系。

  基于内容的推荐一般应用在在文章、新闻推荐上面。文章的属性从文本内容中自动抽取。用户的喜好从用户从前评价过的文章中抽取。一般以关键词来表示文章和用户。

  1. 内容表示和相似度

  基于内容推荐的基本思路是:计算物品与用户喜欢的物品的相似度,从而确定用户是否喜欢该物品
  如何获取用户的喜好?(1)明确的问用户;(2)请用户为一系列item进行打分,从而自动抽取特征
  经典方法:用关键词来表示文本、tfidf表示关键词的权重、VSM模型来计算文本之间的相关度
  问题:如何选取最有代表性的N个词语(特征选择)。
  缺点:没法利用词语上下文信息

  2. 基于内容相似度检索

  协同过滤方法可以描述成为“推荐相似用户喜欢的物品”;基于内容的推荐方法可描述成为“推荐与用户过去喜欢的物品相似的物品”。这一节在上一节的基础上,讨论具体如何给用户推荐物品。

  2.1 k近邻方法
  对于某个用户未见的物品,找到用户从前评价过的k个与当前物品最相似的物品,根据用户对这k个物品的评分,来投票解决当前未知物品的评分。
  Billsus2000,个性化移动新闻推荐:KNN用于对用户短期兴趣进行建模,用概率分类模型来对用户长期兴趣进行建模。长短两个模型共同作用,来给用户进行个性化新闻推荐。
  如何组合长短兴趣模型?方法1:优先短期模型,然后长期模型;方法2,用短期模型把所有相关的item找到,然后用长期模型进行综合排序

  2.2 相关性反馈 —— Rocchio方法
  需要用户在使用过程中明确对item给出反馈,不实用。
  在实际使用中可以考虑获取用户隐式反馈。
  个性化搜索?如何把不同的相关度体系(pagerank和用户和物品相关度)融合在一起是个问题。

  3 其他文本分类方法

  将推荐问题转成分类问题,用分类器来做推荐,例如:朴素贝叶斯+二分类,来预测用户是否喜欢某个特定商品
  还有svm、决策树等模型。涉及到特征选择,用卡方选择或者fisher判别。

  4. 小结

  基于内容的推荐技术,大多数方法都源于信息检索领域。

  参考文献http://blog.csdn.net/xceman1997/article/details/41791651

目录
相关文章
【推荐】排序模型的评价指标nDCG
nDCG(Normalized Discounted Cumulative Gain)归一化折损累计增益是一种用于评估排序模型性能的指标,它考虑了两个方面:排序的正确性和相关性的程度。
3508 0
|
数据安全/隐私保护 安全
单点登录(SSO)看这一篇就够了
背景 在企业发展初期,企业使用的系统很少,通常一个或者两个,每个系统都有自己的登录模块,运营人员每天用自己的账号登录,很方便。但随着企业的发展,用到的系统随之增多,运营人员在操作不同的系统时,需要多次登录,而且每个系统的账号都不一样,这对于运营人员来说,很不方便。
277723 15
|
自然语言处理 算法 API
|
Java 数据库连接
JSR303校验框架介绍和Hibernate Validator扩展
JSR303 校验框架介绍: • JSR303 用于对JavaBean 中的字段的值进行验证,使得验证逻辑从业务代码中脱离出来 • 是一个运行时的数据验证框架,在验证之后验证的错误信息会被马上返回 • 一般用于表单提交页面(如用户名必填、只能由数字字母组成等等) JSR...
|
2天前
|
搜索推荐 编译器 Linux
一个可用于企业开发及通用跨平台的Makefile文件
一款适用于企业级开发的通用跨平台Makefile,支持C/C++混合编译、多目标输出(可执行文件、静态/动态库)、Release/Debug版本管理。配置简洁,仅需修改带`MF_CONFIGURE_`前缀的变量,支持脚本化配置与子Makefile管理,具备完善日志、错误提示和跨平台兼容性,附详细文档与示例,便于学习与集成。
253 116
|
17天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
11天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
650 220