个性化推荐算法简单学习总结

个推算法目前应用非常普遍,在电子商务、新闻 、内容运营等都有使用。大家肯定听过类似的段子,在某电商平台搜索了“棺材”之后,平台于是在你视力所及范围推送了各种寿衣、冥币等等产品,于是你只能卧槽,鬼知道经历了什么。那么这些定制化个性化的推荐是如何实现呢?包括你在京东、亚马逊、天猫这些平台购买商品(如图1所示),或者是在诸如知乎、头条等内容平台搜索、查看某些主题内容时候收到的各种类似推送是达成的呢?本文将做简单的介绍,入门学习文章,请不吝赐教。

图1 亚马逊图书推荐结果

一、简单概念

实现诸如“猜你喜欢”“购买该产品的客户也购买了一下这些商品”等推送常用的算法主要是协同过滤(Collaborative Filtering,简称CF)。我们说物以类聚,人以群分,基于某些特点和联系,我们能够实现不同商品、个体之间类别所属和喜好的分类。要实现推荐算法,需要有外部的数据输入,这里可以简单的划分为两种,显示信息反馈和隐式信息反馈两类。

显示信息反馈:用户直接作出的直观的信息反馈,如评分、好评程度、评价留言等信息;

隐式信息反馈:主要是对用户间接作出的行为进行记录,通过设计埋点获取用户行为信息,如浏览时间、点击动作、搜索等。

基于上述数据来源,我们进行推荐算法的实现,通常主要有两类:基于物品(Item Based)的协同过滤算法和基于用户(User Based)的协同过滤算法。借用一张图说明两者的概念,如图2所示。

图2 推荐算法模型

简单的解释:

基于物品——如果我买了《人类简史》这本书,那么我很可能会买《未来简史》,因为两本书比较类似,很可能也符合我的品位和阅读兴趣。

基于用户——我喜欢看王家卫的电影《东邪西毒》,《阿飞正传》等,另一个家伙M喜欢看《堕落天使》《蓝莓之夜》,我和A之间的观影口味有些类似,那么可以考虑将我喜欢看的《东邪西毒》和《阿飞正传》也推荐给M看。

二、相似度计算

通过上面介绍,要实现推荐的一个重要内容就是分析用户或者物品之间的相似度,目前主要有三种方法,分别为欧式距离、皮尔逊相关系数和余弦相似度

欧式距离:比较基础,在中学几何中就接触过,二维问题的计算公式为,n维问题类似方法扩展。

皮尔逊相关系数:统计概念,取值范围为[-1,1],计算公式为,用协方差除以两个变量的标准差。

余弦相似度:引入两个向量,如果余弦值为1说明同向,夹角为0相似度大,反之则反向,计算公式比较简单。通常以矩阵的形式完成整体计算,为对称矩阵,如图3所示。

图3 余弦相似矩阵

三、生成推荐列表

计算了用户之间或者物品之间的相似度之后,接下来就是对用户进行推荐,基本的推荐思路如图4所示。

图4 推荐思路

简单解释:如果我购买了A、B商品,对于其它商品如C、D、E、F,是否向我推荐其它商品依赖于我对其它商品的喜好,所以需要做一个求解和排序,以我对C商品的喜好为例,求解的方式就是“我对C的喜好=我对A的喜好*A与C的相似性+我对B的喜好*B与C的相似性”,是不是有点求解偏导数的感觉,些许类似。其它商品类似,这样对计算出来的结果进行排序然后推荐。

以上就是针对推荐算法的基本内容,更多更深入的推荐算法学习,可参考:推荐算法概览

参考:

1、今日头条是怎么做推荐的——基于用户的协同过滤

2、亚马逊和淘宝的“猜你喜欢“是怎么实现的?

3、推荐算法概览

%1 $ S

发表评论

电子邮件地址不会被公开。 必填项已用*标注