协同过滤

时间:2024-10-01 12:43:01编辑:思创君

什么叫算法推荐

国家网信办、工信部、公安部、市场监管总局近日印发《互联网信息服务算法推荐管理规定》(以下简称规定),对算法推荐服务提供者作出一系列规定。比如,不得利用算法推荐服务从事危害国家安全和社会公共利益、扰乱经济秩序和社会秩序、侵犯他人合法权益等法律、行政法规禁止的活动;不得根据消费者的偏好、交易习惯等特征,利用算法在交易价格等交易条件上实施不合理的差别待遇等违法行为;应当保护劳动者取得劳动报酬、休息休假等合法权益,建立完善平台订单分配、报酬构成及支付、工作时间、奖惩等相关算法。
记者调查发现,平台涉嫌侵犯隐私推荐广告、“大数据杀熟”、盘剥劳动者的现象时有发生。
首先是个人隐私被算法利用。记者做了一个实验,将几款社交App放置后台运行,然后在相册里存下跟卷发棒产品相关的照片。

次日,某App在推荐页面里出现了关于卷发棒的短视频。

记者利用手机自带的查看隐私访问功能和第三方软件查看,发现除了位置信息外,该App还访问了手机相册,一上午就访问了6次,访问时间短则20多秒,长则1分钟。

规定明确提出,算法推荐服务提供者应当以显著方式告知用户其提供算法推荐服务的情况,并以适当方式公示算法推荐服务的基本原理、目的意图和主要运行机制等。在上述案例中,在不告知用户的情况下,访问个人手机相册且推荐广告的行为明显已越界。

其次是“大数据杀熟”。同样的送餐时间、地点、订单、外卖平台,会员却比非会员多付钱;同时同地打同类型车到同一目的地,某打车平台曾被用户发现熟客反而收费更高。以上现象虽已老生常谈,但依旧有App我行我素。
不少App为鼓励新用户,会在用户刚注册后对其发放优惠券,这类做法被不少平台称之为市场促销。但有些平台新老用户的价格差异大,让老用户感觉颇为不公。


推荐算法有什么用

您好!很高兴为您解答。
现今,智能手机在我们的生活中扮演着越来越重要的角色。我们使用手机进行购物,听音乐,观看视频,游戏等等。智能手机应用的一个显著特征是它们的个性化推荐服务。我们是否曾经好奇过app如何知道我们喜欢什么?答案是推荐算法。但是,手机算法具体如何了解我们的喜好呢?本文将从以下几个方面进行分析。
一、数据采集
数据采集是推荐算法所必须的基础。在手机应用、网站或搜索引擎中,手机号码、搜索历史、网址访问记录等等等等,这是手机记录信息的基础数据。推荐算法将其分为不同的类别和细分。App类别是最广泛的应用之一,它们依赖于数据加强推荐算法,以提供精准的定制服务。例如,Your Tube收集用户每个视频的观看次数、视频类型、时长等统计信息,在这个基础上,系统可以分析您的喜好,然后向您推荐相关的视频。搜索引擎也利用收集的搜索数据,基于用户的需求和行为,推荐相关的搜索结果。
二、机器学习和人工智能
机器学习和人工智能是推荐算法中最重要的组成部分之一。推荐算法需要对大量的数据进行学习和分析,以检索对用户的未来行为和兴趣的预测。随着时间的推移,推荐算法将变得越来越精准,更具个性化。如今,深度学习算法成为人工智能技术的新领域,深度学习算法可以提取用户行为数据的特征,进一步分析用户的兴趣并开发更加智能化的推荐系统。
三、基于协同过滤的技术
基于协同过滤的技术是推荐算法中的主要范畴之一,其核心思想是采用用户之间的相似性进行推荐,它发现规律并构建用户行为之间的关联串,从而推荐相似品项推荐对于那些类似用户是有用的。例如,如果用户A和B的历史行为和兴趣相似,用户A就可以通过分析用户B的历史行为和兴趣信息,找到相似的活动并推荐给他们。协同过滤根据用户对物品的偏好和交互行为,可以实现个性化推荐和信息过滤。
四、隐式反馈
隐式反馈是一种新的用户行为分析方法。它是指自然而然地指示用户的个性化需求的行为,例如用户在浏览视频时停留时间很长,或者在购物时在一个类别中浏览了很长时间,都是有价值的信息。隐式反馈可以帮助推荐算法自动发现这些难以观测和描述的数据模式和规律,从而精细化推荐服务,提升全面的用户体验。
五、社交信任
社交信任是重要的推荐算法因素之一。社交信任基于用户之间的社交关系和信任度。推荐算法可以利用这些信息进行推荐服务。社交信任的传播可能会因人而异,例如,如果一个用户信任另一个用户,并且经常从他那里获得相应的推荐和建议,那么推荐算法可以利用这些信息,为用户提供更加个性化、精准和可信的推荐。
综上所述,推荐算法是打造智能手机应用程序的关键要素。它们的主要方法包括数据采集、机器学习、协同过滤、隐式反馈和社交信任。通过这些方法,推荐算法可以对用户的行为和偏好进行分析和判断,从而为用户提供更加个性化和有价值的内容和服务。在未来,我们可以预期推荐算法技术将不断发展,带来更加智能化和人性化的推荐服务,为用户带来更多的方便和愉悦。


协同过滤与分类

[TOC] 本文是《写给程序员的数据挖掘实践指南》的一周性笔记总结。主要涵盖了以下内容: 所谓推荐系统就是系统根据你的行为操作为你推荐你可能想要的其他物品。这在电商平台、音乐平台、资讯推送平台等多有见到。而协同过滤简单来说是利用某兴趣相投、拥有共同经验之群体的喜好来推荐用户感兴趣的信息,个人通过合作的机制给予信息相当程度的回应(如评分)并记录下来以达到过滤的目的进而帮助别人筛选信息。其推荐基础是用户评分。这里可以分为两种用户评分,即显式评分与隐式评分。显式评分即日常见到的为物品打分,如对喜好音乐评级等;隐式评分是通过对用户行为的持续性观察,进而发现用户偏好的一种方法,如新闻网页中的推送你经常阅读过的相关内容等。两种评分方法都有自己的问题。 总体来说,协同过滤其运作机制也可以分为两种: 基于用户的推荐是指通过用户的行为偏好,划分相似用户。在相似用户群体之间互相推送一方喜欢而另一方未有过的物品。核心在于相似用户群体的划分。这种推荐方法有自己的局限: 基于用户的过滤其核心是用户群体的划分,其实也就是分类。 这里的距离函数包括三种:曼哈顿距离和欧氏距离。这里以二维举例,更多维情况下类推即可。 两距离函数可以一般化为: 其中,当r=1时,函数为曼哈顿距离;当r=2时,函数为欧氏距离。 算法实现: 在算出距离函数后,通过比对目标用户与所有用户群体的偏好,找到最近邻的用户并给予推荐。 基于用户距离的推荐有一个明显的问题,就是用户评分体系的差异。比如评分极端的用户给喜欢的评最高分,给不喜欢的评最低分;而有些用户倾向于不出现极端评分。即所谓“分数贬值”( Grade Inflation )问题。这种问题的存在可能让基于距离的评分产生偏差。皮尔逊相关系数可以缓解这种问题。 原皮尔逊相关系数公式在实际运用的时候会出现多次迭代的问题,影响计算效率,这里给出了近似公式: 皮尔逊相关系数的用户判断依据不是单纯的用户距离,而是用户的评分一致性:取值在[-1, 1]之间,越接近1则表示两用户的评分一致性越好;反之则反。 python实现: 基于用户推荐的过程中,另一个存在的问题就是由于大部分人的喜爱物品集合的交集过少,存在大量计算值为0的feature的情况。即所谓 稀疏性 问题。一个较容易理解的例子是对书本内容的挖掘。余弦相似度会忽略这种0-0匹配。 余弦相似度: python实现: 如此多的评估系数,如何进行抉择呢?根据数据特征: 另外值得考虑的一点是,目前为止的推荐都是基于单用户的。即对一个用户的推荐系统只是基于另一个用户。这会存在一些问题。比如虽然虽然两者相似度很高,但是另外一个人有一些怪癖,怪癖的推荐就是不合理的;又比如,在相似度极高的情况下,你不能确定统一账户下的操作是同一个人做出的或者说操作行为是为了用户自身。比如用户考虑购买某件商品作为礼物送给别人,这就是基于别人喜好的购买行为,这种推荐也是不合适的。 对这种问题的解决可以使用群体划分的方法。原理与单用户类似,但是用户的匹配是k个。在这k位最优匹配的用户之间,以相似度的大小为依据设定权重作为物品推荐的条件。此即协同过滤的k近邻。 正如前面提到的基于用户的推荐有复杂度、稀疏性的问题,而基于物品的过滤则可以缓解这些问题。所谓基于物品的过滤是指,我们事先找到最相似的物品,并结合用户对物品的评级结果来生成推荐。前提是要对物品进行相似度匹配,找到一种算法。 这里的调整是指为了减轻用户评分体系的不一致情况(抵消分数贬值),从每个评级结果中减去该用户所有物品的平均分的评级结果。 其中,U表示所有同时对i, j进行评级过的用户的集合。  表示用户u给物品i的评分减去用户u对所有物品的评分的平均值。 在得到所有物品的余弦相似度后,我们就可以通过该指数预测用户对某件物品的偏好程度。方法就是所有相似物品的相似度乘以得分的总和。 其中p(u, i)指的是用户u对物品i评分的预测值。N是用户u的所有评级物品中每个和i得分相似的物品。这里的相似指的是矩阵中存在N和i的一个相似度得分。 是i和N之间的相似度得分。 是u给N的评级结果。公式较好运行的条件是 取值在(-1, 1)之间,这里就要使用归一化概念。 另一种常用的基于物品过滤的算法就是 slope one 算法。它的大概原理是预测用户u对产品j的评分时,预先计算包含所有物品的两物品偏差表;根据u的已评价的所有物品评分与该物品和产品j的偏差( )之和并乘以所有对此两类物品有过评分的用户个数,一一加总,除以所有同时对产品i与u评价过的所有物品有过评分的用户的人数,得到得分。公式如下: 其中, ; 是利用加权s1算法给出的用户u对物品j的预测值。 指的是对所有除j之外u打过分的物品。 python实现: 在前面两节中,基于物品和基于用户的过滤其前提都是用户需要对已有的item进行评分。而实际上,如果一个新的item出现,由于缺乏别人的偏好,他永远不会被推荐。这就是推荐系统中所谓的—— 冷启动 问题。基于用户评价的系统就会出现这种问题。 冷启动 问题的解决方案之一就是 基于物品属性的过滤 来进行推荐:对物品自身的属性进行归纳总结,并以此进行物品推荐。基于物品属性的过滤存在一个问题同样是量纲的不统一。如果量纲不统一极端值将会对推荐系统造成大麻烦。解决方法也很简单:归一化。此章使用的是z-评分。 使用z得分也存在问题,就是极易受到离群值的影响。这里可以使用 改进的标准分数 来缓解这个问题: 什么时候可以进行归一化呢? 这里用曼哈顿距离举例基于物品属性的过滤: 在上一章最后一节对于用户是否喜欢某件item的判别中,实际上包含了分类器的思想:分类器就是利用对象属性判定对象属于哪个组或类别的程序。这里简单用另一个小项目来说明。 简单来说就是根据运动员的某些指标来判断这位运动员属于什么类别的运动员。 准确率有0.8。

协同过滤算法

用户行为数据在网站上最简单的存在形式就是日志,比如用户在电子商务网站中的网页浏览、购买、点击、评分和评论等活动。 用户行为在个性化推荐系统中一般分两种——显性反馈行为(explicit feedback)和隐性反馈 行为(implicit feedback)。显性反馈行为包括用户明确表示对物品喜好的行为。网站中收集显性反馈的主要方式就是评分和喜欢/不喜欢。隐性反馈行为指的是那些不能明确反应用户喜好 的行为。最具代表性的隐性反馈行为就是页面浏览行为。 按照反馈的明确性分,用户行为数据可以分为显性反馈和隐性反馈,但按照反馈的方向分, 又可以分为正反馈和负反馈。正反馈指用户的行为倾向于指用户喜欢该物品,而负反馈指用户的 行为倾向于指用户不喜欢该物品。在显性反馈中,很容易区分一个用户行为是正反馈还是负反馈, 而在隐性反馈行为中,就相对比较难以确定。 在利用用户行为数据设计推荐算法之前,研究人员首先需要对用户行为数据进行分析,了解 数据中蕴含的一般规律,这样才能对算法的设计起到指导作用。 (1) 用户活跃度和物品流行度 (2) 用户活跃度和物品流行度的关系 一般认为,新用户倾向于浏览热门的物品,因为他 们对网站还不熟悉,只能点击首页的热门物品,而老用户会逐渐开始浏览冷门的物品。如果用横坐标表示用户活跃度,纵坐标表示具有某个活跃度的所有用户评过分的物品的平均流行度。图中曲线呈明显下 降的趋势,这表明用户越活跃,越倾向于浏览冷门的物品。 仅仅基于用户行为数据设计的推荐算法一般称为协同过滤算法。学术界对协同过滤算法进行了深入研究,提出了很多方法,比如基于邻域的方法(neighborhood-based)、隐语义模型 (latent factor model)、基于图的随机游走算法(random walk on graph)等。在这些方法中, 最著名的、在业界得到最广泛应用的算法是基于邻域的方法,而基于邻域的方法主要包含下面两种算法。 基于用户的协同过滤算法 :这种算法给用户推荐和他兴趣相似的其他用户喜欢的物品 基于物品的协同过滤算法: 这种算法给用户推荐和他之前喜欢的物品相似的物品 基于邻域的算法是推荐系统中最基本的算法,该算法不仅在学术界得到了深入研究,而且在 业界得到了广泛应用。基于邻域的算法分为两大类,一类是基于用户的协同过滤算法,另一类是 基于物品的协同过滤算法。现在我们所说的协同过滤,基本上就就是指基于用户或者是基于物品的协同过滤算法,因此,我们可以说基于邻域的算法即是我们常说的协同过滤算法 (1) 基于用户的协同过滤算法(UserCF) 基于用户的协同过滤算法的基本思想是:在一个在线个性化推荐系统中,当一个用户A需要个性化推荐 时,可以先找到和他有相似兴趣的其他用户,然后把那些用户喜欢的、而用户A没有听说过的物品推荐给A。 Ø 从上面的描述中可以看到,基于用户的协同过滤算法主要包括两个步骤。 第一步:找到和目标用户兴趣相似的用户集合。 第二步: 找到这个集合中的用户喜欢的,且目标用户没有听说过的物品推荐给目标用户。 这里,步骤1的关键是计算两个用户的兴趣相似度,协同过滤算法主要利用行为的相似度计算兴趣的相似度。给定用户u和用户v,令N(u)表示用户u曾经有过正反馈的物品集合,令N(v) 为用户v曾经有过正反馈的物品集合。那么我们可以通过以下方法计算用户的相似度: 基于余弦相似度 (2) 基于物品的协同过滤算法(itemCF) 与UserCF同理 (3) UserCF和itemCF的比 较 首先我们提出一个问题,为什么新闻网站一般使用UserCF,而图书、电商网站一般使用ItemCF呢? 首先回顾一下UserCF算法和ItemCF算法的推荐原理。UserCF给用户推荐那些和他有共同兴 趣爱好的用户喜欢的物品,而ItemCF给用户推荐那些和他之前喜欢的物品类似的物品。从这个算 法的原理可以看到,UserCF的推荐结果着重于反映和用户兴趣相似的小群体的热点,而ItemCF 的推荐结果着重于维系用户的历史兴趣。换句话说,UserCF的推荐更社会化,反映了用户所在的小型兴趣群体中物品的热门程度,而ItemCF的推荐更加个性化,反映了用户自己的兴趣传承。 在新闻网站中,用户的兴趣不是特别细化,绝大多数用户都喜欢看热门的新闻。个性化新闻推荐更加强调抓住 新闻热点,热门程度和时效性是个性化新闻推荐的重点,而个性化相对于这两点略显次要。因 此,UserCF可以给用户推荐和他有相似爱好的一群其他用户今天都在看的新闻,这样在抓住热 点和时效性的同时,保证了一定程度的个性化。同时,在新闻网站中,物品的更新速度远远快于新用户的加入速度,而且 对于新用户,完全可以给他推荐最热门的新闻,因此UserCF显然是利大于弊。 但是,在图书、电子商务和电影网站,比如亚马逊、豆瓣、Netflix中,ItemCF则能极大地发 挥优势。首先,在这些网站中,用户的兴趣是比较固定和持久的。一个技术人员可能都是在购买 技术方面的书,而且他们对书的热门程度并不是那么敏感,事实上越是资深的技术人员,他们看 的书就越可能不热门。此外,这些系统中的用户大都不太需要流行度来辅助他们判断一个物品的 好坏,而是可以通过自己熟悉领域的知识自己判断物品的质量。因此,这些网站中个性化推荐的 任务是帮助用户发现和他研究领域相关的物品。因此,ItemCF算法成为了这些网站的首选算法。 此外,这些网站的物品更新速度不会特别快,一天一次更新物品相似度矩阵对它们来说不会造成 太大的损失,是可以接受的。同时,从技术上考虑,UserCF需要维护一个用户相似度的矩阵,而ItemCF需要维护一个物品 相似度矩阵。从存储的角度说,如果用户很多,那么维护用户兴趣相似度矩阵需要很大的空间, 同理,如果物品很多,那么维护物品相似度矩阵代价较大 下表是对二者的一个全面的表较:

上一篇:三多

下一篇:没有了