乐于分享
好东西不私藏

别再骂App偷听了!App比亲妈还懂你的真正原因是协同过滤

别再骂App偷听了!App比亲妈还懂你的真正原因是协同过滤

你有没有这样的经历:打开淘宝,想买双鞋,结果首页推荐的鞋,恰好正是你喜欢的款式;打开网易云音乐,日推歌单里每首歌都像在对你表达“我懂你”;打开抖音,随便刷两下,几个小时就过去了,因为每一条都“刚好”戳中你的笑点。

你可能会想:这些App是不是在偷听我说话、监控了我的输入法?答案是:并没有偷听和监控,但有更强的“协同过滤”。今天,我们就用一篇文章,把这项“懂你”的黑科技讲清楚。不堆砌术语,不烧脑,看完你也能跟朋友吹牛。

01 先讲个故事:假设你是个“懒人吃货”

假设你是大学生,刚搬进新宿舍,不知道学校附近哪家外卖好吃。你懒得看几百条评价,于是问了三个室友:

  • 室友A:口味跟你几乎一模一样——喜欢辣的、讨厌甜的、爱吃内脏。

  • 室友B:口味跟你完全相反——爱吃甜、不吃辣、不吃内脏。

  • 室友C:口味跟你有时一样、有时不一样。

这时候,你会听谁的推荐?当然听室友A的。因为你俩“历史口味记录”高度重合。既然他觉得那家店好吃,你也大概率会觉得好吃。

这个简单的问朋友推理过程,就是协同过滤的核心思想。物以类聚,人以群分。喜欢相同东西的人,未来的喜好也会相似。没有用到任何食材成分、烹饪工艺、店面评分,仅仅通过“你和谁的口味像”,就能做出靠谱推荐。

02 协同过滤的本质其实很简单

协同过滤”四个字,看起来很高端,拆开就明白了:协同即大家一起帮忙。不是一个人在战斗,而是千万用户的行为数据在一起“协作”;过滤即从海量信息里筛出你可能喜欢的,过滤掉不相关的。合起来就是:借助一群人的集体行为,帮你过滤出你很可能感兴趣的东西。

在推荐系统里,协同过滤主要分两派:

派别一是基于用户的协同过滤,你跟谁口味像,他喜欢啥我就给你推荐啥。这种方式第1步需要找出和你历史行为相似的一群“邻居用户”(比如室友A);第2步看这些与你相似的用户喜欢什么、讨厌什么、在看什么;第3步只需要把他们喜欢而你还没看过的,推荐给你。亚马逊早期的“购买此商品的用户也购买了……” 这就是典型的用户协同过滤。

 派别二是基于物品的协同过滤,你喜欢这个东西,那跟它“类似”的其他东西,你也可能喜欢。这里的“类似”不是指外形、功能相似,而是“被同一拨人喜欢”的程度。举个栗子:买iPhone的人,通常也会买AirPods;于是系统发现:这两件商品经常“同框”出现在同一个人的购物车里;所以当你买了iPhone,它就推AirPods。你看,AirPods和iPhone长得一点都不像,但它们在“用户喜好”上是高度相似的。这就是基于物品的协同过滤。

03 协同过滤看起来无所不能?它也有“硬伤”

协同过滤虽然强大,但不是神。它有三大致命弱点,做推荐系统的工程师天天都在跟它们斗智斗勇。

第一点是冷启动问题,即无法应对新用户、新物品。一个刚注册的用户,没有任何历史行为(没买过、没看过、没点过赞),系统怎么给他推荐?同样,一件刚上架的新商品,没有任何人买过,系统怎么知道它跟谁“协同”?对于这些情况,协同过滤误解。所以你会看到,很多App在新用户注册时,会强制你选兴趣标签(“选3部你看过的电影”),这是在人工解决冷启动问题。

第二点是流行度偏差,即“越火的越推,越推越火”。协同过滤有个“惰性”:它更倾向于推荐热门物品。为什么?因为热门物品被很多人喜欢,它跟很多用户的“协同”关系都强。系统会觉得“这东西这么火,总不会错吧”。结果就是头部内容越来越火,长尾内容永远出不了头。比如你刷抖音,如果一直不主动搜索、不主动点“不感兴趣”,系统会一直推那些百万点赞的爆款,你永远看不到那些小众但精品的内容。

第三点是稀疏性问题,因为大部分人都是‘冷用户’。现实中,绝大多数用户只有极少量的行为数据。想象一个10万部电影的平台,你可能只看过50部,点过赞的只有10部。你跟其他用户之间的“共同喜好”少得可怜。于是系统很难找到行为与你相似的用户,最后只能随便推荐,或者推那些大热门。这就是为什么很多App的推荐一开始乱七八糟,等你用了很久、积累了足够数据之后,才慢慢变准。

写在最后:协同过滤本质只是机械地执行一句话:跟你行为相似的那些人,喜欢这个东西,所以你也会喜欢。这个朴素的想法,成就了今天几乎所有互联网巨头的增长引擎。当你被一条推荐精准击中时,不用觉得它“偷听了你”,只是因为在庞大系统里,有一群和你口味相似的陌生人,他们替你做了一次选择。