【每周一文】Collaborative Filtering for Implicit Feedback Datasets(2008)
来源:互联网 发布:ubuntu 语言包 编辑:程序博客网 时间:2024/05/17 23:04
概述
协同过滤(Collaborative Filtering)是推荐领域非常重要的算法策略,由于它的领域无关性,应用非常广泛。本文解决的一个问题是:在训练数据集合中,只有用户的隐式反馈,例如用户的浏览行为、收藏行为等,没有用户直接打分行为;即只有用户偏好行为,对于用户不喜欢的商品没有数据支持;基于以上数据本文提出一种隐式因子模型(Factor Model)解决该问题,并给出优化求解。
问题建模
矩阵分解
推荐问题解决的问题归纳为给用户u推荐物品i,并且满足用户偏好、新奇度和多样性等。协同过滤和矩阵分解是常用的方法。
协同过滤
按照用户和物品维度可以分为基于用户的协同过滤和基于物品的协同过滤,主要思想是计算用户与用户、物品与物品以及用户和物品的相关度。以物品协同过滤举例,将物品表示为用户维度的向量,这样就可以计算物品之间的相似度,则用户与物品相似度为
矩阵分解
用户对物品的打分矩阵可以通过矩阵分解技术得到用户和物品在低维空间的表示,这样可以通过向量相似度计算得到用户-用户、物品-物品以及用户到物品之间的相似度。
SVD分解:可以解决该问题,由于用户对物品打分矩阵不是完备的,需要对缺少数据进行处理,此时应用SVD才能得到较好效果。
因子分解:对SVD问题进行补充,仅仅考虑已知的打分,归约为
模型
隐式反馈特征
相对于显示反馈数据,隐式反馈有以下几方面特征
1. 没有负反馈,只能得到用户喜欢那些物品,对于用户不喜欢的物品没有数据支持。
2. 隐式反馈噪声比较多,不像用户评分行为是用户强烈的主动行为,用户浏览行为、点击行为都相对比较被动。以浏览行为为例,可能某个页面是用户默认打开页面导致打分较高。
3. 显式反馈代表用户真实的喜好程度,隐式反馈代表置信度
4. 评估相对不容易
建模
在该模型中对
喜好变量
置信度变量
最终模型为
这里需要解决两个问题1)如何对置信度进行度量2)如何求解该最优化问题
模型求解
针对以上两个问题
1.置信度度量方法,可以采用上面提及的两种方法,其中针对第一种方法实验验证当
α为40时 效果较好
2. 模型求解,该模型相对于因子分解,需要求解一个稠密矩阵的分解,按照原始SGD进行求解时间复杂度较高
3. ALS进行求解,对用户维度和物品维度分别进行求解,每一步求解都是一个最优化问题,可以采用正规方程进行求解
总结
该文提出一个隐式反馈模型对隐式反馈数据进行建模,将用户对物品的观测行为分解为喜好程度和置信程度两个维度变量进行求解,通过TV播放数据验证效果较其他方法较好。
在后面工作中,给用户推荐页面,可以将对用户隐式行为即浏览和点击行为进行建模,进行效果优化。
- 【每周一文】Collaborative Filtering for Implicit Feedback Datasets(2008)
- 【每周一文】Factorization Meets the Neighborhood:a Multifaceted Collaborative Filtering Model
- 【每周一文】Googles News Personalization:Scalable Online Collaborative Filtering(2007)
- Collaborative Filtering for Java
- Alternating Least Squares(ASL) for Implicit Feedback Datasets的数学推导以及用Python实现
- Restricted Boltzman Machines for Collaborative Filtering
- Collaborative Filtering
- Collaborative Filtering
- Collaborative Filtering
- Implicit data and collaborative filtering(隐式反馈和协同过滤)
- Large-scale Parallel Collaborative Filtering for the Netflix Prize
- 【deep learning学习笔记】Restricted Boltzmann Machines for Collaborative Filtering
- Large-scale Parallel Collaborative Filtering for the Netflix Prize
- large-scale parallel collaborative filtering for the Netfile Priza
- (TODO)Empirical Analysis of Predictive Algorithm for Collaborative Filtering
- Denoising Autoencoder for Collaborative Filtering on Market Basket Data
- Collaborative Filtering算法
- Collaborative Filtering Resources
- 默认参数和占位参数
- os_core.c
- 浅谈JavaScript的全局变量跟局部变量
- webStorm:正确的代码也提示绿色下划线的解决方法
- Hibernate应用开发学习笔记1
- 【每周一文】Collaborative Filtering for Implicit Feedback Datasets(2008)
- 函数重载
- CGI/FastCGI学习-篇一
- 初探视频监控(1)
- Java的IO流基本使用方法
- 多项式求和
- mysql主从之bin-log的三种模式
- 读写文件实例
- ZOJ 3209 Treasure Map(精确覆盖问题&舞蹈链)