“猜你喜欢”是怎么产生的?

8 评论 22280 浏览 200 收藏 8 分钟

在百度百科大致介绍了推荐算法,这是一个很有意思的人工智能(artificial intelligence)。想想看,计算机能够根据大数据较为精确地了解人们的喜好、预测可能的结果,那如果输入人类的表情、内心与行为方式给机器人,它是不是也就能像人一样进行思考和对话呢?

目前的科技已部分地完成了这种可能。下面想介绍下小编个人对推荐算法的浅薄之见,也是一个深入学习、认真思考的开篇。

推荐算法的Base可以分三类:用户性质、对象性质、用户与对象的交互过程。用网上的话来说,就是以人为本、以物为本和协同过滤(我喜欢称之为“联动”)。这三类算法并不会孤立存在,一般会交错切换或者加权共生,意思就是会综合起来使用或者在不同场景使用不同方法。我把它们单一的存在,称为“一度推荐”;综合在一起时,称为“二度推荐”。

首先说说“一度推荐”。

第一类叫基于用户性质的推荐,可以说是用户与用户的交互过程,具体来说,就是根据用户的label、喜好等个性来建立一个“同好会”。同好会也有分层,低层的只对应一个关键字词(tag),高层的会对应多个tag,故每个用户会有N个同好会,越高层联系越紧密。在推荐的时候,根据分层高低来进行前后排序。说白了,高层产生于低层,低层只是质变之前的量变,可以不作他用。

第二类叫基于对象性质的推荐,可以说是对象与对象的交互过程,根据对象(产品/内容)的本身相似度进行同类推荐,这就包括作用、场景、品牌、价格、目标用户、label等tag,在用户搜索浏览某些tag时,系统会据此来进行相应推荐,推荐排序可以是以加权算法计算的相似度高低。例如,A与B-Z均有关联,但要做推荐,那么简化版的计算公式为相似度=tag1*权重1+tag2*权重2+…+tagN*权重N,所得结果按高低排序。

第三类叫用户与对象的交互过程,根据用户显式或隐式的行为,比如搜索、浏览、关注、收藏、分享、下载、评价等加强的行为,或者取关、删除、拉黑、秒关等减弱的行为,还有关系传递(同类用户也看过B、买物品A的人80%的也买了B)。其中,根据用户不同的行为及展现出的喜好的强弱,进行权重的加减。另外我想到的用户二次行为,也要加入到运算中,比如推荐后主动浏览、多次浏览等。除了这些用户行为,系统也可以进行预测型行为来进一步提高推荐准确度,比如消息推送后点开链接、“换一组”的tag等。此类算法有几个经典的,例如余弦相似度、泊松相关系数等,稍后会一一说明。

这里有几种最主要的推荐算法供大家了解,因为小编数学一般,不能很深入了解,故写得较简略。

一,余弦相似度和修正余弦相似度,公式如下(截图来自百度百科):

屏幕快照 2016-08-28 07.43.26

将向量根据坐标值,绘制到向量空间中,求得他们的夹角,并得出夹角对应的余弦值。余弦值的范围在[-1,1]之间,值越趋近于1,代表夹角越小,两个向量的方向越一致,相似度也越高。

修正余弦相似度是为了加入取关、删除、低评价等影响相似度的用户反向行为,也算是对余弦相似度缺点的修正

二,潜在因子(Latent Factor)算法,用户-潜在因子矩阵Q(用户多个tag的关注喜爱度)和对象-潜在因子矩阵P(对象多个tag的关联包含度),用矩阵表示即为:R=QP,也是值高者胜。(本算法整理自知乎上的回答@nick lee

三,Pearson相关系数是用来衡量两个数据集合是否在一条线上面,它用来衡量定距变量间的线性关系,公式如下:

屏幕快照 2016-08-28 07.45.15

通常情况下通过以下取值范围判断变量的相关强度:

  • 0.8-1.0 极强相关
  • 0.6-0.8 强相关
  • 0.4-0.6 中等程度相关
  • 0.2-0.4 弱相关
  • 0.0-0.2 极弱相关或无相关

此外,还有一种我觉得特别有意思的推荐算法,可称之为互动的生态圈型,也就是UGC和官网的联动推荐。目前算法主要是官方来主导的,基于其背后的大数据系统,但用户参与很少,基于用户的social性质,这种生态圈型的算法会成为一种趋势,用户可以自行建立电台、社区等个性化“文件夹”,进行用户之间的相互推荐,特别适用于电商、娱乐型产品,淘宝的社区、微淘都具有此类属性。具体的方式可以是基于用户之间的关联,推荐同类用户的个人“文件夹”;基于对象之间的关联,推荐含有相同tag的个人“文件夹”,鼓励和引导用户贡献内容,加强社交属性,增强用户归属感和成就感,增加用户黏性,这种知乎就做得很好,虽然不至于主动推荐,但专为用户开放一个入口,可以接触到可能感兴趣的他人“文件夹”。

出现的疑问一:如何避免推荐的单一化?解决方式可以是推荐用户没有加强或减弱行为下的tag,进行热门推荐、换一组形式的tag。在推荐比例上,遵循推荐数量为强关联:中等关联:弱关联=4:2:1,。

出现的疑问二:如何解决用户冷启动的问题?解决方式可以是排行榜、热门推荐等,也可以在最初让用户选择tag和拒绝部分tag,进行初步推荐,在后续用户行为增加后再进行精细化推荐。

以上是从个人兴趣点出发,仅为拙见。

 

作者:小乔,公众号:乱入花间化绿叶。产品小白一枚,希望通过这种每周一次深入思考总结的方式,促进自己的成长,走出从0到1到无穷的产品之路

本文由 @小乔 原创发布于人人都是产品经理。未经许可,禁止转载。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 看不懂啊

    来自北京 回复
  2. 那如何确定不同元素的向量坐标?

    来自北京 回复
  3. 😎

    来自北京 回复
  4. 不懂编程,不懂数据挖掘,这些就只能止步于理解层面……

    回复
  5. 好生涩啊

    回复
  6. 啊…… 看不懂

    来自四川 回复
    1. 额总之就是基于物与物之间或人与人之间的相似性,通过复杂一点的算法,做出的推荐。我觉得算法究竟是怎样的不必懂,只需要看到算法背后的逻辑就行。

      来自北京 回复
    2. 看到算法层面确实有些看不懂了,请教下,作为产品,在进行智能化产品设计时,对算法不懂的话是不是阻碍比较大?

      来自上海 回复