首页 > 编程语言 >协同过滤算法:在线推荐系统如何工作?

协同过滤算法:在线推荐系统如何工作?

时间:2022-12-19 22:37:12浏览次数:62  
标签:在线 推荐 用户 亚马逊 算法 过滤 购买


摘要:个性化推荐系统为电子商务网站提供了一个强大的营销工具,而协同过滤技术被认为是最有前途的个性化推荐技术之一。文中主要介绍了亚马逊的协同过滤推荐系统,并且对比了Facebook、Netflix以及Eventbrite等公司各自推荐系统的特点。


随着互联网的发展,人们正处于一个信息爆炸的时代。相比于过去的信息匮乏,面对现阶段海量的信息数据,对信息的筛选和过滤成为了衡量一个系统好坏的重要指标。来自GigaOM的记者​​Derrick Harris​​​撰文介绍了​​在线推荐​

对于一双未经训练的眼睛来说,所有在线推荐貌似都是“千篇一律”,毕竟“你可能会喜欢”,“你的朋友喜欢”或者“购买此商品的顾客也同时购买”并没有什么很大的不同,真的是这样吗?其实不然,如果如果拥有一个强大的推荐系统,业务就可能会有一个新的突破。2013年1月6日, ​​在CTO俱乐部举办的第91期线下活动中​​,来自当当网的高级开发总监傅强介绍了当当网的个性化推荐&精准营销系统,当时他给出了一组数据:仅一支几十人的技术团队,推荐产品日均对销售贡献,甚至抵得上一些事业部销售贡献50%;在2012年下半年,个性化推荐&精准营销系统对当当网销售贡献占比提高了50%。

其实对于企业来说,他们必须知道自己的受众是谁,他们能够收集何种类型的数据,如何更好地利用这些数据发现用户真正需要的是什么,想要做好这一点,还需要理解数据科学。

亚马逊的协同过滤推荐算法

亚马逊是一个很好的例子,这家电商巨头,过去使用层次模型为消费者推荐新的商品,比如说,如果顾客购买了一个相机,那么系统就会给他推荐一些电池产品。然而随着商品种类的增加,而且亚马逊的数据分析能力也不断在增强,新的推荐模型还可以推荐购买过该产品的用户还同时购买的其他商品。

现在,亚马逊能够提出更准确的建议,因为它使用更真实的购买数据,代替了那些静态的指标(只能猜测用户可能会购买什么商品)。提示“购买此商品的顾客也同时购买”不仅仅是一种新的销售方式,而且还为消费者提供了一些搭配商品的建议——如果,这些智慧的群体是可信的——就可以“随波逐流”了。

当然,亚马逊使用的算法称之为“协同过滤算法”,这种算法不仅仅基于那些用户经常购买的商品,而且还参考了用户之间购买历史以及用户兴趣行为的相似度,亚马逊在推荐系统的FAQ页面上是这么描述的:


我们通过检查您已经购买的商品、您已经评分的商品还有那些您所喜欢的商品来判断您的兴趣,接下来我们会比较您与其他顾客的购买行为,通过对比分析相似度,然后为您推荐可能喜欢的产品。


其实协同过滤技术的出发点是任何人的兴趣都不是孤立的,应处于某个群体所关心的兴趣当中,如果某些用户对一些项目的评分比较相似,则他们对其他项目的评分也比较相似。该推荐方法实现的基本思想是采用某种技术找到目标用户的若干最近邻居(与目标用户有相似兴趣的用户),然后根据最近邻居对目标项目的评分产生推荐,把预测评分值最高的多项商品作为该用户的推荐列表。

亚马逊和 Netflix 都曾公开表示过他们使用的是Item-Item关联算法的变种,但对细节都绝口不提。

延伸阅读:

  • 亚马逊的Greg Linden、Brent Smith和Jeremy York曾撰写论文《 ​​Amazon.com Recommendations:Item-to-Item Collaborative Filtering​​》(PDF),对协同过滤推荐算法有更深层次的阐述。
  • 在开源中国社区中,Breath_L发表博客《 ​​推荐系统中协同过滤算法实现分析​​》,其中详细介绍了协同过滤推荐算法。其中基于用户的推荐算法,如下图所示:

 

基于用户的推荐算法

个性化推荐,每个公司做的都不一样

其实,每个互联网公司都有自己独一无二的推荐方式,就像Facebook,依靠的是用户的社交图谱来做推荐,也就是说基于朋友所喜欢的项目来做推荐,该平台就是靠朋友之间的联系所建立,所以它 ​​认为用户在乎的是朋友所喜欢或者关注的内容​​。

而Netflix则是完全不同的一种方式,它围绕内容进行推荐, ​​该算法只是计算内容之间的相似度​​,比如参考流派、演员以及收视率等因素,这种情况就是一种个性化推荐。Netflix知道用户所喜欢的内容(至少用户看过),并据此为用户推荐新的内容。

 

Netflix推荐系统

​在线活动管理公司Eventbrite​​也建立了所谓的“隐式社交图谱”,这和Facebook的社交图谱有所不同,因为在此图谱中的人不一定是用户的朋友,二是那些经常出席同一会议的人群。

 

Eventbrite推荐系统 

个性化,毕竟是证明自身价值的一种方式。Netflix表示75%的流量来源于推荐系统,而来自Eventbrite的数据工程的负责人Sharma则表示:“我们不是一种可以订阅的产品,但是如果大家喜欢这款产品,会留在这里的。”(文/王鹏,审校/仲浩)




标签:在线,推荐,用户,亚马逊,算法,过滤,购买
From: https://blog.51cto.com/u_5488952/5953905

相关文章

  • 数据结构与算法概念
    目录引入概念第一次尝试算法的提出算法的概念算法的五大特性第二次尝试算法效率衡量执行时间反应算法效率单靠时间值绝对可信吗?时间复杂度与“大O记法”如何理解“大O记法......
  • LeetCode 有关二叉树的算法题目(C++)
    0、NULL与nullptr的区别在C语言中,​​NULL​​​通常被定义为:​​#defineNULL((void*)0)​​​。因为在C语言中把空指针赋给​​int​​​和​​char​​​指针的时候,发......
  • RSA非对称加解密算法填充方式(Padding)
    1.padding模式1.1三类常见填充方式RSA加密常用的填充模式有三种:​​RSA_PKCS1_PADDING,RSA_PKCS1_OAEP_PADDING,RSA_NO_PADDING。​​与对称加密算法DES,AES一样,RSA算法也......
  • GPU并行算法读书笔记-chapter3 CUDA线程模型
    目录《GPU并行算法》读书笔记-chapter3CUDA线程模型SIMD模型SIMT模型kernel函数CUDA线程结构blockgrid线程的全局IDCUDA结构与GPU硬件的映射关系CUDA线程设计执行配置什......
  • Tarjan算法求割点
    定义如果在一个图中,删除某个节点连同与之关联的边,会导致整个图的连通分支数增加,那么这个节点叫做割点(ArticulationPoint,CutVertex)如下图:整个图的连通分支数为1,但......
  • 基于.NetCore开发博客项目 StarBlog - (23) 文章列表接口分页、过滤、搜索、排序
    前言上一篇留的坑,火速补上。在之前的第6篇中,已经有初步介绍,本文做一些补充,已经搞定这部分的同学可以快速跳过,基于.NetCore开发博客项目StarBlog-(6)页面开发之博客文......
  • 基础算法汇总之二叉搜索树实现
    一.树定义在计算机科学中,树(英语:tree)是一种抽象数据类型(ADT)或是实现这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>0)个有限节点组成一个具有层......
  • 基础算法汇总之AVL树实现
    一.什么是AVL树?在说AVL树之前,先回顾一下我们之前研究过的二分查找树(二分搜索树),在极端的情况下,二分搜索树会从一棵二叉树变为链表(按顺序插入数据)这样的查询效率会大打折扣。......
  • 基础算法汇总之哈希表
    一.什么是哈希表哈希表也叫做散列表,是一种可以根据关键key值直接访问的数据结构;简单说就是把关键的key值映射到数组中一个位置来访问记录,这样可以加快反应速度。这里面计算......
  • 基础算法汇总之堆和优先队列
    一.简述这篇文章将介绍几种常见的队列,本文将重点介绍优先队列以及优先队列底层的二叉堆并且实现基础算法(go实现),最后还会介绍一样Java并发包中的四种最常用的队列,分析其源码......