推荐系统 —— 协同过滤

前言

作为推荐系统 这一系列的第二篇文章,我们今天主要来聊一聊目前比较流行的一种推荐算法——协同过滤;
当然,这里我们只讲理论,并不会涉及到相关代码或者相关框架的使用,在这一系列的后续文章,如果可能,我们可以将我们的所有理论知识整合一下,实践一个 推荐系统的 实战。

协同过滤是什么

顾名思义,协同过滤就是指用户可以齐心协力,通过不断地和网站互动,使自己的推荐列表能够不断过滤掉自己不感兴趣的物品,从而越来越满足自己的需求。这种仅仅基于用户行为数据设计的推荐算法一般称为协同过滤算法,一般来说可以分为以下几种:

  • 基于邻域的方法(neighborhood-based)
  • 隐语义模型(latent factor model)
  • 基于图的随机游走算法(random walk on graph)等

而今天我们要说的 基于用户的协同过滤 就是一种 基于邻域的方法;
基于邻域的方法 又可以分为以下两种算法:。

  • 基于物品的协同过滤算法
    这种算法给用户推荐和他之前喜欢的物品相似的物品。
  • 基于用户的协同过滤算法
    给用户推荐和他兴趣相似的其他用户喜欢的物品。

基于用户的协同过滤

  • 原理
    给用户推荐和他兴趣相似的其他用户喜欢的物品。

  • 实现步骤:

    • 找到和目标用户兴趣相似的用户集合。
    • 找到这个集合中的用户喜欢的,且目标用户没有听说过的物品推荐给目标用户。
  • 实践(只是为了加深理解哈)
    上面都是空洞洞的文字描述,下面我们就一个列子来加深一下理解

    1. 收集数据,假设我们现以收集如下数据
    user item1 item2 item3
    A 1 1 0
    B 1 1 1
    C 0 1 1

    这是一个简单的 user 和 item 的矩阵,如果user购买过item 则标识为1 ,否则为 0。

    1. 计算用户之间的相似度:
      相似度的计算是有很多种方法的,如何准确的计算出两个用户之间的相似度是该算法的一个最重要的环节,至于相似度的计算,网上还是有相当多的资料的,这里就不再赘述,下面我简单的列举了一些比较常用和简单的计算方式
    • 距离衡量相似度
      我们可以将每一个用户想象成特征组成的高维空间的一个点,而他们的相似度就是这两个点的距离,常用的距离公式有:欧几里得距离,曼哈顿距离,明可夫斯基距离 等
    • 余弦相似度计算法
      我们可以将每一个用户想象成特征组成的高维空间的一个点,其与 高维空间中的原点组成一个表示其的唯一向量,两个用户的相似度就可以用他们两个向量之间的夹角来确定,夹角越小,越相似
    • 其他
      可以参考一下这个文章这个文章
    • 同现度
      最后,我们再来说一个比较low,但是也简单的算法,也是本次实践的算法:同现度
      即,当两个用户同时购买了同一个商品,那么他们相似度 +1
      那么我们就可以计算出用户之间的相似度了,可以得到如下一个列表
      user A B C
      A * 2 1
      B 2 * 2
      C 1 2 *

    这里啰嗦一下,虽然算法分简单 和 复杂,但是和算法的效果是没有绝对的关系的,所以不要小看那些简单的算法噢。

    1. 找到和推荐用户相似的用户集合 ,并推荐
      这里我们只有一个3个用户,所以我们这个集合那就定为一个吧,如果我们要给A推荐,那么先找到与A相似的用户集合 {B}

    2. 推荐
      既然我们找到了A用户的相似用户们是 B,而且也可以很简单的发现 B 买过 item3,而A没有买过,所以我们就给 A 推荐 item3

  • 总结
    基于用户的协同过滤差不多就是这个样子,当然实际生产环境你肯定得考虑很多其他因素,比如数据规模,数据特征选取,特征的权重等等等等。当然这些都不在讨论之列,我们只要知道该算法是个什么,怎么做的,有什么用就好了。最后我们再来总结下这个算法优劣吧:+

    • 因为是找用户的相似度,所以更能反映了用户所在的小型兴趣群体中物品的热门程度,比较社会化群体化。
    • 针对用户个人而言,其特征或者说兴趣是不够细化的。
    • 从实时方面来看,用户个人的行为不一定能造成物品推荐的实时更新,当然这里是不一定,很多时候,当某个热点东西进入该用户的圈子,这个东西的传递还是迅速的
    • 对于物品的冷启动比较友好,一旦一个新物品被某个用户购买,立刻就可以推荐给他圈子的其他用户
    • 对于用户的冷启动不友好,因为一个新用户的加入,并不会马上被加入到某个圈子,比较用户相似度矩阵是不可能实时计算的。
    • 推荐结果不具有可解释性,我不知道推荐给你的这个物品是什么,我只知道,你的朋友都在用
    • 对于用户比较庞大的公司,计算用户相似度会比较麻烦

基于物品的协同过滤

上面讲完了 基于用户的协调过滤,那么我们成热打铁把 基于物品的协调 过滤也一块讲了

物品的协调过滤 不同于 基于用户的区别就在于:

  1. 计算相似度的时候我们是通过用户行为计算的 物品之间 的相似度,而基于用户 则是通过用户行为计算的 用户之间 的相似度。维护的是物品之间的相似度矩阵
  2. 当给一个用户作推荐的时候,基于用户 因为已经计算了 用户之间的相似度,则可以找到推荐用户兴趣相似的用户,而基于物品,则可以找到和推荐用户感兴趣的物品相似的物品来做推荐

好像差不多也就这些东西,弄懂基于用户的协同过滤之后,基于物品的也就是那么回事了,其主要特征如下:

  • 推荐更加个性化,反映了用户自己的兴趣传承
  • 实时性方面,用户实时浏览和喜欢,都能立即造成推荐的物品的改变
  • 对于物品的冷启动比较不友好
  • 对于用户的冷启动比较友好
  • 推荐结果具有很好的解释性
  • 对于物品实时更新的领域不太适用,比如:新闻。相反,对于物品变化比较不敏感的领域很适用。

ok!就这样了,感谢你的观看!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,546评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,224评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,911评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,737评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,753评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,598评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,338评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,249评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,696评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,888评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,013评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,731评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,348评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,929评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,048评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,203评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,960评论 2 355

推荐阅读更多精彩内容