中文搜索引擎指南网

 找回密码
 禁止注册

QQ登录

只需一步,快速开始

搜索
查看: 13704|回复: 0
打印 上一主题 下一主题

一张图告诉你推荐引擎为什么能猜到你喜欢什么

[复制链接]
跳转到指定楼层
1#
发表于 2016-3-14 23:58:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
无论是购物平台,还是在线音乐、在线视频,都会有类似”物品推荐”、”猜你喜欢”的版块。它们到底怎么读懂你的心思的?


作者:方块K

在移动互联网时代,个性化推荐随处可见。无论是购物平台,还是在线音乐、在线视频,都会有类似”物品推荐”、”猜你喜欢”的版块。今天K哥就跟大伙聊一聊推荐引擎那些事,分析分析为什么推荐引擎能猜到你喜欢什么?

在深入具体细节之前,咱们先来看看,推荐引擎都有哪些层次?就像张无忌练”乾坤大挪移”一样,先得知道都有哪些层,再练不迟。

推荐引擎第一层,把大家都喜欢的内容推送给你。就比如最近特别叫好的电影《疯狂动物城》,好评如潮,那么推荐引擎直接把这样的内容推荐给每一个人。啥?图样图森破?对,K哥也是这么觉得,大家都觉得好,我还用的着你推荐引擎给我推荐么?对不对。

推荐引擎第二层,根据你对音乐、电影、商品的评分,把同类内容推荐给你。就比如K哥特别喜欢看动画片,在视频网站给动画片的打分都很高,那么《疯狂动物城》上映的时候,推荐引擎会第一时间把这个内容推荐过来。啥?太Low?对,K哥也觉得是,我都明确给你打分了,相当于明确告诉你我喜欢、讨厌什么内容了,推荐引擎把相似的内容推送过来,这有什么难的?对不对。

好,咱们来看看推荐引擎第三层,根据你在网站的浏览轨迹、浏览习惯,推荐引擎自动分析你的喜好、偏好,然后把匹配的内容推荐给你。这是什么意思,兄弟们?就好比你经常访问某个在线音乐网站,听了一段时间之后,后台的推荐引擎自动捕捉你的喜好、偏好,然后会把相关的专辑、歌手推荐给你。这个就不一般了,相当于在你听音乐的时候,后台有个美眉一直在监听,而且这个美眉是个音乐达人,监听你一段时间后,就知道什么样的音乐是你的菜,然后把你的菜给你端上来。我就问你怕不怕?!

既然第一层、第二层都太幼稚,K哥今天就带你装逼、带你飞,咱们一起来看看,第三层的推荐引擎是怎么做到自动给你上菜的?

一张图,不解释:



有点太装逼了,还是得给大伙解释解释,这图啥意思。咱们刚才说的第三层推荐引擎,发动机用的都是一种叫”基于协同过滤的推荐算法”的东东,这个玩意您不用理会,本质就是图-1中的矩阵分解。啥?啥叫矩阵分解?简单的说,矩阵就是军队中的方阵、阵型,矩阵分解就是把”八卦阵”变换为”二龙出水阵”。只不过咱们这里的”八卦阵”,也即矩阵A包含了用户与物品(如音乐、电影)的直接关联(如试听次数、观影时间等等);”二龙出水阵”里面的第一条龙矩阵X,是用户特征(如用户年龄、性别、性格、职业、甚至性取向等等),第二条龙矩阵Y,是物品特征(如音乐、电影的时长、类别、清晰度等等)。图-1中的k值,就是用户和物品特征的数量,相当于两条龙的长度,越长越厉害!

基于协同过滤的推荐算法(以下简称CF,即Collaborative Filtering)牛逼的地方就在于,给定矩阵A,可以自动分解出矩阵X和矩阵Y。有了X和Y,给你推荐匹配内容那就是分分钟的事儿。通过X与Y相乘,就可以算出之前你没听过、没看过、没买过,但是却和你匹配的内容,然后把这些内容推送给你。内位看官说了,K哥你说的挺热闹,CF推荐引擎真的有这么厉害吗?内玩意推荐的准吗?

K哥这边从国外的一家在线音乐网站下载到了相关数据,今天就来用CF推荐引擎给大家Demo一下它的威力。先介绍一下数据的构成,是14.1万用户试听160万歌手的试听记录。就比如K哥的用户ID是”方块K”,然后听了来自林肯公园的歌曲的总次数是180次,那么K哥的这条记录就是:”方块K;Linkin Park;180”。下载到的数据总共有2420万条,都是这样用户与歌手的交叉组合。这份数据就构成了咱们刚刚说到的”八卦阵”,也即矩阵A,是一个2420万行、3列的矩阵。CF引擎需要做的,就是把这个矩阵A,自动分解成矩阵X和Y,即用户特征矩阵和音乐特征矩阵,分解之后再反过来把这两个矩阵相乘,就可以给用户推荐匹配内容了。

那么问题来了?怎么衡量这个CF推荐引擎推荐的准不准呢?如果一个推荐引擎推送的都是我不喜欢的内容,那就日了哮天犬了,对不对?那这推荐引擎纯粹是出来卖萌的。这里K哥介绍一个新的概念,叫AUC(Area Under Curve),也即”曲线下面积”。列位看官,您抬眼瞧下图:




图-2就是传说中的AUC图了,图中共4条曲线,分别用蓝色、红色、绿色和紫色勾画。顾名思义,AUC就是曲线下面的面积。比如图中的紫色曲线,它的AUC就是图中橘黄色标注的区域面积。很明显,AUC的最大值为1,因为整张图的面积是1嘛。现在可以回答刚才的问题了,行业中用AUC来衡量推荐引擎的准确度,AUC越接近1,代表推荐引擎越准确。一般AUC的值在0.75以上,就表示这是一个好的推荐引擎。

那么咱们的CF推荐引擎在在线音乐数据上的表现如何呢?K哥经过一系列编码、处理、运算、分析,得到最终的AUC值为0.9778!兄弟们?你说准不准?!你看,你在在线音乐网站啥也没干,就光听音乐、光享受,人家后台的”监听美眉”就知道该给你推送什么,这就叫个性化推荐。我就问你怕不怕?!

当然咱们这一期用的是在线音乐的数据,像什么在线电影、在线阅读、在线购物,CF推荐引擎的工作原理都是一样的。看完了这一期的内容,以后就可以和其他兄弟装逼了,K哥这里遥祝装逼愉快~


本文来自微信订阅号《小生活与大数据》
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏

Archiver|手机版|小黑屋|教你搜 ( 鲁ICP备16006309号

GMT+8, 2025-6-16 05:41 , Processed in 0.173576 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表