协同过滤的国内外案例

  • 国内案例:京东、虾米音乐

  • 京东

从众多用户那里搜集到信息,从中得到推荐信息。基于用户的推荐——当系统发现你购买了一本《数据挖掘概念与技术》,而有其他用户同时购买了《数据挖掘概念与技术》和《mongobd权威指南》,那么系统猜想你同时喜欢《mongobd权威指南》的可能性也很大,就会把《mongobd权威指南》推荐给你。这种推荐是依据用户相似性,即两个用户有相同的爱好做出的推荐。基于项目的推荐——将相同类型的东西推荐给用户,如上面的京东推荐的最佳组合就是基于项目的推荐。

  • 协同过滤有助于我们更好的找到与我们兴趣相同的东西,能排除掉我们不感兴趣的东西,更快速、更便捷的找到所需要的东西。
  • 能快速的找到我们想找的东西,提高工作效率,个性化推荐,能形成自己的主流。
  • 通过相同属性或相同兴趣能快速找到自己的所想要找的,极大便携我们的工作效率。
  • 基于近邻用户协同过滤算法的音乐推荐系统:虾米音乐

该音乐系统的整个系统框架构成如图1所示。该框架可以分成以下几个部分:数据集获取、数据预处理、数据分析及算法设计和最终推荐结果的输出部分。

图 1 音乐推荐系统框架构成

1.数据集获取

在互联网上有一个叫MillionSongDataset[3]音乐数据集,它上面收集了目前100多万流行歌曲的信息,以及部分用户的行为信息。但所有数据都是进行脱敏后的数据,只能做研究,要想进行真实的音乐推荐服务,需要获取真实的用户行为数据。该音乐推荐系统最终目的是构建一个真实可用的基于Android移动端的音乐推荐系统,本文只涉及推荐系统构建及算法设计部分,Android端的设计不在本文考虑范围,所以所有信息必须是真实可靠未脱敏数据。

为获取真实可靠未脱敏数据,本文利用目前主流webmagic爬虫进行真实数据的获取。目前针对虾米音乐社区进行了用户行为信息爬取,最终获取了大约50万条真实未脱敏的用户行为数据。数据schemas包括4部分,userID是虾米音乐网站真实用户昵称,SongName是该用户听过的歌曲名,Singer是该歌曲的演唱者,Count是用户听过该歌曲的次数。原始数据集数据

如表1所示:
UserID SongName Singer Count
唐喜 卡农D大调 群星 1
sora 往日时光 黛青塔娜 8
king 水城 万晓利 3
表1 抓取虾米音乐网站得到的原始数据集

2.数据预处理

由于爬取到的原始数据有的信息丢失,我们需要对原始数据集进行信息规整,删除丢失信息的用户数据数据。并且原始数据记录的是每个用户每天的行为,但实际情况一个用户不可能只有一条记录,比如某用户昨天听了某歌曲共3次,今天该用户又听了该歌曲5次,那么数据预处理部分我们要对这部分用户的行为信息进行预处理,得到该用户该歌曲共8次,最终我们要得到用户在历史行为上的行为总和。此处数据预处理是用阿里巴巴的ODPS(OpenDataProcessingServices)平台进行处理。


3.数据分析及算法设计

3.1 用户评价矩阵

推荐的第一步我们需要得到每个用户对每首歌的一个评价矩阵。这里我们用表1的数据为例,得到表2的用户评价矩阵R。矩阵的第一行表示不同的歌曲,矩阵的第一列表示不同的用户,矩阵中对应的坐标是某用户听过某首歌的次数,为空表示该用户没有听过该首歌。

... 卡农D大调 往日时光 水城
唐喜 1 1
sora 2 8 3
king 1

3.2 用户相似度求解

衡量用户相似度的方法有很多,如余弦相似度、皮尔逊相似度、Jaccard相似度、LSH等等,本文利用最经典的余弦相似度。
3.3 推荐评分
通过3.2得到用户相似度之后,需要求解目标用户的最近邻用户,这里用快速排序算法来获取TopK个最近邻用户,即与目标用户相似度最高的前K个用户。接下来是用最近邻用户的评分来给目标用户进行推荐。

最后

通过2.3.2得到用户相似度之后,需要求解目标用户的最近邻用户,这里用快速排序算法来获取TopK个最近邻用户,即与目标用户相似度最高的前K个用户。接下来是用最近邻用户的评分来给目标用户进行推荐。

算法结果输出
通过上面的推荐算法之后得到最终的目标用户的推荐结果,推荐结果表如表3所示。其中SongName是推荐的歌名,Singer是其演唱者,Socre是评分值,就是最终推荐的依据。


·国外案例:亚马逊网站

Amazon.com的推荐:从商品到商品的协同过滤推荐算法以其在电子商务网站的用途而著称1,它们利用有关一个顾客的兴趣作为输入,来产生一个推荐商品的列表。很多应用仅仅使用顾客购买并明确表示代表其兴趣的商品,但它们也可以利用其他属性,包括已浏览的商品、人口统计特征数据、主题兴趣,以及偏爱的艺术家。
在Amazon.com,我们利用推荐算法,对每位顾客提供在线商店个性化。在顾客兴趣的基础上,商店有了彻底的改观,向一个软件工程师展示编程类标题,向一位新妈妈展示婴儿玩具。点击率和转化率——基于网络和邮件广告的两个重要评估指标——极大地超越了那些未定向内容,比如banner广告和热卖列表。
电子商务推荐算法经常要运行在一个充满挑战的环境里。例如:

  • 大型零售商有海量的数据,以千万计的顾客,以及数以百万计的登记在册的不同商品。
  • 许多应用要求结果实时返回,在半秒之内,还要产生高质量的推荐。
  • 新顾客很典型,他们的信息很有限,只能以少量购买或产品评级为基础。
  • 较老的顾客信息丰沛,以大量的购买和评级为基础。
  • 顾客数据不稳定:每一次交互都可提供有价值的顾客数据,算法必须立即对新的信息作出响应。

解决推荐问题有三个通常的途径:

1. 传统的协同过滤
2. 聚类模型
3. 基于搜索的方法。

在此,我们就这些方法与我们的算法——我们称之为商品到商品的协同过滤——进行对比。与传统协同过滤不同,我们算法的在线计算规模,与顾客数量和产品目录中的商品数量无关。我们的算法实时产生推荐,计算适应海量数据集,并生成高质量的推荐。


最终结论

协同过滤对于我们生活的个性化定制起着至关重要的作用,在我们美好生活中扮演着不可或缺的角色。

你可能感兴趣的:(协同过滤的国内外案例)