隐性反馈行为数据的协同过滤推荐算法

《Collaborative Filtering for Implicit Feedback Datasets》论文笔记

本文是我阅读《CollaborativeFiltering for Implicit Feedback Datasets》论文的笔记,介绍的是对于隐性反馈行为数据协同过滤算法,采取的是隐语义模型(LFM),求解方式是ALS。

显性反馈行为包括用户明确表示对物品喜好的行为

隐性反馈行为指的是那些不能明确反应用户喜好

的行为。最具代表性的隐性反馈行为就是页面浏览行为。

考虑隐性反馈的必要性:

很多应用场景,并没有显性反馈的存在。因为大部分用户是沉默的用户,并不会明确给系统反馈“我对这个物品的偏好值是多少”。因此,推荐系统可以根据大量的隐性反馈来推断用户的偏好值。

However,explicit feedback is not always available.

Thus, recommenders can infer user preferences from the more abundant

implicit feedback, which indirectly reflect opinion through

observing userbehavior

隐性反馈的特性:

1 没有负反馈。隐性反馈无法判断是否不喜欢。而显性反馈,明显能区分是喜欢还是不喜欢。

2 先天性具有噪声。用户购买了某物品,并不代表他喜欢,也许是送礼,也许买了之后发现不喜欢。

3 显性反馈数值代表偏好程度,隐性反馈数值代表置信度。隐性反馈的数值通常是动作的频次,频次越多,并不代表偏好值越大。比如一个用户经常看某部连续剧,可能该用户对该连续剧的喜好值一般,只是因为每周都播,所以动作频次很大,假如该用户对某部电影超级喜欢,但可能就看过一次,因此动作频次大并不反应偏好值大。从这个用户经常看这部连续剧这个行为,只能推断出该用户喜欢这连续剧有很大的置信度,但这个用户对这个连续剧的偏好值是多少我们无法评估。

4 隐性行为需要近似评估。

显性反馈中,用rui表示偏好值。这里,我们用rui表示隐性反馈的动作频次。

We reserve special indexing letters for distinguishing

users fromitems: for users u, v, and for items i, j. The input

data associate users and items throughrui values, which we

henceforth call observations. For explicit feedback datasets,

those values would be ratings that indicate the preference

by user u of item i, where high values mean stronger preference.

For implicit feedback datasets, those values would

indicate observations for user actions. Forexample,ruican

indicate the number of times upurchased item
ior thetime

u spent on webpage
i.

偏好值的推断

这表达的意思是,用户u对物品i的隐性反馈动作超过一次,我们就认为u喜欢i,动作频次越多,这个假设的置信度就越高。如果没有动作,则认为u对i的偏好值为0,当然因为动作次数为0,所以“u对i的偏好值为0”这个假设的置信度就很低。因为没有动作,除了不喜欢和不感兴趣之外,还有其他很多原因,比如u不知道i的存在。

置信度的衡量

cui = 1 + αrui

论文中提到α = 40效果比较好。

当然,置信度的衡量还有其他方式,总的来说,动作频次越大,置信度就越高。

In general, as rui grows, we have a stronger indication

that the userindeed likes the item.

优化的目标函数:

这个跟显性反馈的矩阵分解优化的目标函数类似,但有两个不同点:

1 我们需要考虑置信度

2 优化的目标应该针对所有可能的u,i的键值对,而不只是可观察到的数据。显性反馈的矩阵分解优化时,对于missing data(未知评分),是不会当做训练数据输入到模型的,优化时针对已知评分数据优化。而这里隐性反馈,是利用所有可能的u,i键值对,所以总的数据是m*n,其中m是用户数量,n是物品数量。这里没有所谓的missing data,因为假如u对i没有任何动作,我们就认为偏好值为0,只不过置信度较低而已。

This is similar to matrix factorization techniques

which are popular for explicit feedback data, with two important

distinctions: (1)We need to account for the varying

confidence levels, (2) Optimization should account for all

possible u, i pairs, rather than only those corresponding to

observed data.

优化这个目标函数时,这里还是跟显性的ALS矩阵分解的做法一样。

固定物品特征,对用户特征求偏导数,令偏导数等于0,

更新用户特征

固定用户特征,对物品特征求偏导数,令偏导数等于0,

更新物品特征

这种做法叫做交替最小二乘法。

论文中,还介绍了一些可以加快上面矩阵计算速度的技巧,详细可以参看论文。

《Collaborative Filteringfor Implicit Feedback Datasets》

《推荐系统实践》

http://mahout.apache.org/users/recommender/intro-als-hadoop.html

本文作者:linger

本文链接:http://blog.csdn.net/lingerlanlan/article/details/46917601

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-23 02:34:25

隐性反馈行为数据的协同过滤推荐算法的相关文章

协同过滤推荐算法总结

推荐算法具有非常多的应用场景和商业价值,因此对推荐算法值得好好研究.推荐算法种类很多,但是目前应用最广泛的应该是协同过滤类别的推荐算法,本文就对协同过滤类别的推荐算法做一个概括总结,后续也会对一些典型的协同过滤推荐算法做原理总结. 一.推荐算法概述 推荐算法是非常古老的,在机器学习还没有兴起的时候就有需求和应用了.概括来说,可以分为以下5种: 1)基于内容的推荐:这一类一般依赖于自然语言处理NLP的一些知识,通过挖掘文本的TF-IDF特征向量,来得到用户的偏好,进而做推荐.这类推荐算法可以找到用

什么是协同过滤推荐算法?

剖析千人千面的大脑——推荐引擎部分,其中这篇是定位:对推荐引擎中的核心算法:协同过滤进行深挖. 首先,千人千面融合各种场景,如搜索,如feed流,如广告,如风控,如策略增长,如购物全流程等等:其次千人千面的大脑肯定是内部的推荐引擎,这里有诸多规则和算法在实现对上述各个场景进行“细分推荐排序”:最后是推荐引擎的算法又以“协同过滤”为最核心.最主流热门,也是当下众多内容型.电商型.社交工具.分发型的基础. 由于协同过滤的算法介绍,网上也蛮多但片段化.要么侧重讲“原理流程”,这个占了4成:要么讲算法公

一个简单的协同过滤推荐算法

1.推荐系统简介 个性化推荐是根据用户的兴趣特点和购买行为,向用户推荐用户感兴趣的信息和商品. 2.推荐系统分类 2.1基于内容的推荐(Content-based Recommendation) 基于内容的推荐系统的核心思想是挖掘被推荐对象的信息.基于内容的推荐算法的前提假设是:如果用户喜欢物品a,那么用户也应该会喜欢与a类似的物品.由于笔者的目的是侧重于介绍协同过滤推荐算法,所以对基于内容的推荐算法举个简单的例子一带而过: 假设一首歌有:名称.歌手.风格.作曲人这4个属性.如果用户Alice对

SimRank协同过滤推荐算法

在协同过滤推荐算法总结中,我们讲到了用图模型做协同过滤的方法,包括SimRank系列算法和马尔科夫链系列算法.现在我们就对SimRank算法在推荐系统的应用做一个总结. 1. SimRank推荐算法的图论基础 SimRank是基于图论的,如果用于推荐算法,则它假设用户和物品在空间中形成了一张图.而这张图是一个二部图.所谓二部图就是图中的节点可以分成两个子集,而图中任意一条边的两个端点分别来源于这两个子集.一个二部图的例子如下图.从图中也可以看出,二部图的子集内部没有边连接.对于我们的推荐算法中的

矩阵分解在协同过滤推荐算法中的应用

在协同过滤推荐算法总结中,我们讲到了用矩阵分解做协同过滤是广泛使用的方法,这里就对矩阵分解在协同过滤推荐算法中的应用做一个总结.(过年前最后一篇!祝大家新年快乐!明年的目标是写120篇机器学习,深度学习和NLP相关的文章) 1. 矩阵分解用于推荐算法要解决的问题 在推荐系统中,我们常常遇到的问题是这样的,我们有很多用户和物品,也有少部分用户对少部分物品的评分,我们希望预测目标用户对其他未评分物品的评分,进而将评分高的物品推荐给目标用户.比如下面的用户物品评分表: 用户\物品 物品1 物品2 物品

协同过滤推荐算法简述

协同过滤推荐算法是一种主流的.目前广泛应用在工业界的推荐算法. 一般,协同过滤推荐分为三种类型. 1.基于用户(user-based)的协同过滤 基于用户的协同过滤算法,主要考虑的是用户和用户之间的相似度,只要找出与目标用户相似度高的其他用户,根据相似用户喜欢的物品,预测目标用户对对应物品的评分,就可以找到评分最高的若干个物品推荐给用户. 2.基于项目(item-based)的协同过滤 基于项目的协同过滤算法,类似于基于用户的协同过滤,只是这往往是根据用户的行为判断物品的相似度(并不是根据物品的

(2)协同过滤推荐算法概述 摘要

依据网络用户对于信息的喜好程度,通过寻找信息之间的相关性或用户之间的相似性程度从而为用户提供有效内容的推荐算法即为协同过滤推荐算法.协同过滤推荐算法是推荐算法中应用最广泛,最成功的.它又分为基于用户的协同过滤和基于项目的协同过滤两种方式.前者是基于用户之间的相似性进行推荐,而后者是基于项目之间的相似性进行推荐.对两种协同过滤算法进行比较,基于用户的协同过滤算法更具社会化的特点,存储消耗和用户数量有关:基于项目的协同过滤算法更具个性化的特点,存储消耗和物品数量有关.协同过滤推荐算法存在数据稀疏性问

协同过滤推荐算法的原理及实现

一.协同过滤算法的原理及实现 协同过滤推荐算法是诞生最早,并且较为著名的推荐算法.主要的功能是预测和推荐.算法通过对用户历史行为数据的挖掘发现用户的偏好,基于不同的偏好对用户进行群组划分并推荐品味相似的商品.协同过滤推荐算法分为两类,分别是基于用户的协同过滤算法(user-based collaboratIve filtering),和基于物品的协同过滤算法(item-based collaborative filtering).简单的说就是:人以类聚,物以群分.下面我们将分别说明这两类推荐算法

推荐算法-协同过滤推荐算法

layout: post title: "推荐算法-协同过滤推荐算法" date: 2020-4-13 9:00:00 categories: [Algorithm] excerpt: "协同过滤推荐算法简介,参考https://zhuanlan.zhihu.com/p/40463528" 协同过滤推荐算法步骤 1.收集用户偏好 推测用户的喜好就要收集用户的信息,用户收藏的类别,评论,下载,转发这些信息可以数字化,作为用户信息二维矩阵的变量. 2.用户数据的减噪和归