“猜你喜欢”是根据什么来推荐相关资讯的?

  • 回答 (8)
  • 关注 (0)
  • 查看 (225)

我在很多应用里,都看到有个“猜你喜欢”的推荐部分,比如电商,论坛,新闻甚至视频APP里都有,而且它推荐的东西刚好是我最近感兴趣的东西,这是为什么?它是怎么做到的?是不是app后台上传了我的数据和信息?这会侵犯到我的隐私吗?

脸滚键盘dj脸滚键盘dj提问于
暴躁的蛆宝宝回答于

这个“猜你喜欢”模块,学名是“推荐系统”。因为你说到的这些,包括电商,新闻等,他们的信息太多了,用户在庞大的信息中,需要大量时间才能找到自己需要的信息,耗费大量精力,这就是“信息过载”,为了解决这个问题,“推荐系统”就被开发出来了。

根据百度百科的定义,推荐系统,它是根据用户的信息需求、兴趣等,将用户感兴趣的信息、产品等推荐给用户的个性化信息推荐系统。和搜索引擎相比推荐系统通过研究用户的兴趣偏好,进行个性化计算,由系统发现用户的兴趣点,从而引导用户发现自己的信息需求。推荐系统有3个重要的模块:用户建模模块推荐对象建模模块推荐算法模块。通用的推荐系统模型流程如图。推荐系统把用户模型中兴趣需求信息和推荐对象模型中的特征信息匹配,同时使用相应的推荐算法进行计算筛选,找到用户可能感兴趣的推荐对象,然后推荐给用户。

推荐系统的流程大概是如下图所示。

而推荐系统最核心的部分是推荐算法,即根据不同算法来给用户推荐相关的内容,最常用的推荐算法是基于内容推荐,协同过滤推荐,基于规则过滤推荐。推荐算法的基本流程如下图所示:

“猜你喜欢”这个系统大概就是这样实现的。具体算法问题你想了解的话可以再问我。

所有的酒都不如你修改于

楼上说了,推荐算法是核心,而协同过滤算法是其中应用最广的,引用腾讯云社区大牛的专栏来给你科普下这个算法:

协同过滤算法

协同过滤算法(Collaborative Filtering, CF)是很常用的一种算法,在很多电商网站上都有用到。CF算法包括基于用户的CF(User-based CF)和基于物品的CF(Item-based CF)。

基于用户的CF原理如下:

  1. 分析各个用户对item的评价(通过浏览记录、购买记录等);
  2. 依据用户对item的评价计算得出所有用户之间的相似度;
  3. 选出与当前用户最相似的N个用户;
  4. 将这N个用户评价最高并且当前用户又没有浏览过的item推荐给当前用户。

示意图如下:

基于物品的CF原理大同小异,只是主体在于物品:

  1. 分析各个用户对item的浏览记录。
  2. 依据浏览记录分析得出所有item之间的相似度;
  3. 对于当前用户评价高的item,找出与之相似度最高的N个item;
  4. 将这N个item推荐给用户。

示意图如下:

举个例子,基于用户的CF算法大致的计算流程如下:

首先我们根据网站的记录计算出一个用户与item的关联矩阵,如下:

图中,行是不同的用户,列是所有物品,(x, y)的值则是x用户对y物品的评分(喜好程度)。我们可以把每一行视为一个用户对物品偏好的向量,然后计算每两个用户之间的向量距离,这里我们用余弦相似度来算:

然后得出用户向量之间相似度如下,其中值越接近1表示这两个用户越相似:

最后,我们要为用户1推荐物品,则找出与用户1相似度最高的N名用户(设N=2)评价的物品,去掉用户1评价过的物品,则是推荐结果。

基于物品的CF计算方式大致相同,只是关联矩阵变为了item和item之间的关系,若用户同时浏览过item1和item2,则(1,1)的值为1,最后计算出所有item之间的关联关系如下:

我们可以看到,CF算法确实简单,而且很多时候推荐也是很准确的。然而它也存在一些问题:

  1. 依赖于准确的用户评分;
  2. 在计算的过程中,那些大热的物品会有更大的几率被推荐给用户;
  3. 冷启动问题。当有一名新用户或者新物品进入系统时,推荐将无从依据;
  4. 在一些item生存周期短(如新闻、广告)的系统中,由于更新速度快,大量item不会有用户评分,造成评分矩阵稀疏,不利于这些内容的推荐。

对于矩阵稀疏的问题,有很多方法来改进CF算法。比如通过矩阵因子分解(如LFM),我们可以把一个nm的矩阵分解为一个nk的矩阵乘以一个k*m的矩阵,如下图:

这里的k可以是用户的特征、兴趣爱好与物品属性的一些联系,通过因子分解,可以找到用户和物品之间的一些潜在关联,从而填补之前矩阵中的缺失值。

踏踏实实没啥子特别的,时刻记住:你要什么然后怎么做回答于

你最后问算不算侵犯隐私,其实我觉得不算,充其量是隐私和便利两方面做了一点平衡。

因为你看了别的答案应该知道,推荐系统是先抽象化出一个模型,这个模型可以描述这个人的喜好,然后对这个模型进行系统分析和比较,计算出推荐的东西,在抽象出模型后就不会涉及到个人信息了,所以放心吧。

吃葡萄不吐番茄皮悟空,救我!修改于

推荐系统还有一种最常见的算法是基于内容的推荐算法,根据百科:

基于内容的推荐(Content-based Recommendation)是建立在项目的内容信息上作出推荐的,而不需要依据用户对项目的评价意见,更多地需要用机器学习的方法从关于内容的特征描述的事例中得到用户的兴趣资料。在基于内容的推荐系统中,项目或对象是通过相关的特征的属性来定义,系统基于用户评价对象的特征,学习用户的兴趣,考察用户资料与待预测项目的相匹配程度。用户的资料模型取决于所用学习方法,常用的有决策树、神经网络和基于向量的表示方法等。 基于内容的用户资料是需要有用户的历史数据,用户资料模型可能随着用户的偏好改变而发生变化。

基于内容推荐方法的优点是:

(1)不需要其它用户的数据,没有冷开始问题和稀疏问题。 (2)能为具有特殊兴趣爱好的用户进行推荐。 (3)能推荐新的或不是很流行的项目,没有新项目问题。 (4)通过列出推荐项目的内容特征,可以解释为什么推荐那些项目。 (5)已有比较好的技术,如关于分类学习方面的技术已相当成熟。

缺点是要求内容能容易抽取成有意义的特征,要求特征内容有良好的结构性,并且用户的口味必须能够用内容特征形式来表达,不能显式地得到其它用户的判断情况。

湛蓝回答于

“猜你喜欢”是一个推荐系统。是近几年一个内容创新的重要技术。

一个常见的推荐系统由下面四个部分组成:样本库、特征库、 算法和模型。其中,样本库存储从流水日志中提取的用户行为和特征;特征库存储用户和物品的属性等特征;算法是用于训练模型用到的机器学习算法;模型库存储的是从样本和特征计算得到的训练模型。为了不同的算法可以用于不同的样本和特征,我们可以使用图3中的算法配置表来存储数据、算法和模型的映射关系,将模型、算法、样本和特征的关系解耦,使得算法可以复用。比如,我的模型是从样本1和特征1使用算法A训练得到。

起风了BUG OF BUG回答于

这些推荐是基于大数据来推荐的吧?感觉大数据分析得越全面越具体,我们就越没隐私可言啊......

迷失特李回答于

我觉得现在的“猜你喜欢”还是不够智能的,刚在某宝上买了个电饭煲,它就一直给我推荐电饭煲,我买那么多电饭煲干嘛?

谢鸢回答于

其实现在每个推荐算法都有它自己的优缺点,现在一般是用“混合算法”来做推荐算法,即每个主流的算法都借鉴一些。

扫码关注云+社区