淘宝资深产品经理分享:淘宝的个性化推荐算法

 

互联网技术的高速发展,给我们带来了十足的便利性,回顾整个互联网的发展历程,从PC时代转移到移动互联网时代,从移动互联网时代转向IOT时代,从IOT时代又即将迈入AI时代,这些飞速发展的背后,其实是数据的采集,传输和处理的大变革。

而以我们当下为例,移动互联网技术和智能手机的发展,让采集用户数据的能力变得空前强大,无时无刻,无所不在,而一旦拥有这些数据之后全行业的个性化推荐技术变得更加容易实现,不论是今日头条的,还是淘宝美团的,无疑是这个时代的最大受益者。

不同于个人PC机,手机可以唯一锚定一个具体的自然人,而手机这类私人的专属物品是与其他人很难共用的,那么你手机的型号,在手机上的浏览、交易等行为数据,就具有了极高的分析价值。

从电商平台的角度来讲,个性化推荐技术的本质是将当前最有可能成交的产品优先推荐给消费者,使流量得到更加充分的利用,最大限度的提高转化效率。而推荐技术也随着用户个人数据的不断丰富,在逐渐升级,从最基础的千人一面,慢慢演化到千人千面,下面我就沿着这个演化史给大家具体介绍一下相关的推荐逻辑和模型算法。

NO1.千人一面的逻辑基础和推荐算法

  • 核心逻辑:物以类聚,也即推荐和当前商品相似、相关或其他维度的产品,每个人进来看到的商品推荐其实是完全一致的,俗称千人一面;
  • 使用环境:当前基本没有什么用户数据,但是商品数据丰富到足够支持起所需的推荐逻辑。

1. 根据商品的分类或其他基础属性进行推荐(相似性推荐)

对于某一个商品来说,这是一种替代性的推荐方式,也即用户不想买它的时候,还可以有其他的选择。就比如说用户正在浏览一个斯伯丁的篮球,看完描述之后发现不是自己理想的款式,规格材质不太对,但是在这个单品下方,出现了一个同类型的耐磨材质的篮球,OK!那么这个用户可能就会把这个推荐的篮球带回家。

这个例子中仅仅是依据商品的分类进行推荐,当然我们还可以根据实际情况加入商品的更多基础属性进行加权取值,算最后得分来进行推荐。

主要应用【加权求和法】

也就是选取商品的某些属性,并且针对各种属性的对于用户选择的重要性进行一个主观的评估,然后赋上权值,进行累加计算,得出每种商品和其他商品的相似性,案例如下:

水杯类目中选择三个属性【材质】【样式】【颜色】,其中【材质】重要等级为3,【样式】重要等级为2,【颜色】重要等级为1

  • 商品A(塑料,大肚杯,透明色)
  • 商品B(陶瓷,直筒杯,透明色)
  • 商品C(玻璃,直筒杯,白色)

比对的两个商品每种属性的相似度关系值:

  • 材质是否相同(不同为0,相同为1)
  • 样式是否相同(不同为0,相同为1)
  • 颜色是否相同(不同为0,相同为1)

在根据加权累加的公式,可以得到如下表格

那么之后我们就可以在A商品之后,推荐这个相似度分数比较高的其他同类目下的商品了,当然自身就不需要重复推荐了,以及长期推荐点击量不高的产品,后面可以进行动态优化。

2. 根据商品的被动销售级属性进行推荐(相关性推荐)

根据商品最终在订单中出现的概率来判断商品间的相关性,目前还可以依赖于其他几个维度来参考一同做判断(被同时浏览的几率,被同时加入购物车的几率,被同时购买的几率),以下采取订单中是否通知购买来讲解算法模型,简单解释一下就是想买A的人还可能想买C。

主要应用【置信度】等指标算法

商品的关联性可以通过”置信度“,”支持度“,”提升度“三个指标来衡量。

难度较大的是从一个销售记录集中计算所有商品两两/三三之间的关联性,以下范例以两个商品之间的关联性来讲解。

  1. 计算A→B支持度,购买A还购买B这个组合的订单占所有订单的百分比。
  2. 计算A→B置信度,购买A还购买B这个组合的订单占所有购买A的订单的百分比。
  3. 计算A→B提升度,购买A还购买B的概率同不购买A只购买B商品的概率之商。

那么根据相关度算法,先从所有订单中找出包含A商品的订单个数N1,然后再查询A的所有订单中出现B的个数N2,则置信度X=N2/N1。

总订单为3000单,其中包含A的订单有1200单,B的订单800单,C的订单1500单,D的订单600单,E的订单 1000单

A的1200单中(包含B的有300单,包含C的有600单,包含D的有400单,包含E的有200单)

则C商品对于A的置信度最高,那么就可以优先推荐C商品,买了A商品的人最有可能还去买C,其实通常情况下,我们不可能仅仅单独看置信度这一个指标,三个指标都需要综合起来看,提升度大于1,具有强置信度(30%以上)和较高支持度(10%)的规则可以认为是比较合理靠谱的规则,计算其它2个指标的值就不在此赘述了。

NO2.千人十面的逻辑基础和推荐算法

  • 核心逻辑:人以群分,将有相似的属性,相似行为的用户分为一类人,然后这一类中的人某一个人喜欢A产品,那么其他人也有极大的可能喜欢A产品
  • 使用环境:当前积累了一定的用户数据之后,可以开始试试用这种模式

    1、根据用户基础信息进行推荐

用户注册和后期行为过程中系统可以收集分析出一些固定数据,这类数据是长期稳定的,可以刻画成一些人群特征,我们俗称标签,而整个推荐系统中最牛的位置,也在于标签的大范围深度应用,其中基础标签可能就是年龄标签、性别、收入范围、兴趣爱好、星座、生活区域等,那么标签完全相同的这一类人就极有可能有相同的喜好(一般还会把行为加入一起来判断相似性)

比如一个用户的标签组成为:20—35之间、女性、低收入人群、爱宠人士、双鱼座……,最近刚好购买了一袋X品牌的狗粮,那么则另外一个标签与她相符的人,也可能在某个时间段产生这个需求。

2、根据用户行为数据进行推荐

比如在电商的场景下,常见的用户行为就会有搜索、浏览、咨询、加购、支付、收藏、评价、分享等等,那么通过记录这些用户行为数据,我们就可以对应进行推荐了。

①基于搜索关键词进行推荐

对于一个新注册的买家来购物,这时候大部分数据都全无,咋办?因为这个买家除了具备一些基本的人群属性外,购物行为和购物偏好方面是空的。好,这时候我们可以根据他搜索的关键词来进行跟踪推荐,依据搜索同样关键词的其他用户最后达成的商品成交概率来进行合理推荐。

举个例子:如连衣裙这个产品,在风格上有韩版的、欧美的、田园风格的等等。那么搜索引擎通过分析以前搜索“连衣裙”这个关键词的其他消费者,发现70%以上的消费者最终都购买了“韩版”的,那么韩版就是一个高概率成交风格。所以,展现这一类型的商品在这个新用户面前的。

②基于浏览记录进行推荐

对于淘宝这种大型系统来说,在整个网站中和app中的所有浏览记录的时间脉络,它是全部有记录,完全能够做到判断你在何时看到什么商品,同时浏览的行为背后即代表这关注,表明用户对此商品感兴趣,那么我们完全可以根据这一类商品的相似度进行关联推荐,用户所有浏览行为都是商品推荐的重要依据。

举个例子:每次你搜索并且看完一些宝贝后,关闭淘宝,过一段时间再打开淘宝,你就可以看到在“猜你喜欢”模块中出现之前浏览过的同类商品。

基于购买记录的推荐

其实这是很好理解的,因为你已经购买了,所以这证明了你对产品的认可,甚至是对这个店铺的认可,尤其是在一些比如说衣服、视频、鞋子、宠物用品等复购率较高的商品中。如果你在这个店铺里面买过,那么你在搜索相关的关键词的时候,这个店铺符合要求的商品就会被优先展现(尤其是新上架的商品),方式是:购买过的店铺。

举个例子:淘宝中,你收藏的店铺、浏览过的店铺等等,都会以一种强个性化的方式得到优先推荐,而且还会给你添上标签“购买过的店铺”。在绝大多数类目里面,这种最高级别的推荐都是非常明显的。

喜好度评分、向量余弦公式

基于用户的协同过滤(user-based CF),通过用户对不同类型的商品的喜好度进行评分,然后根据每类商品的喜好度评分构建一个多维向量,使用余弦公式有来评测用户之间喜好度的相似性,基于此将其他相似用户非常喜欢而该用户还没有了解的产品进行推荐。这部分推荐本质上是给用户推荐其他相似用户喜欢的内容,一句话概括:和你类似的人也喜欢这些商品。

关于喜好度的计算,先将用户行为的权值定义清楚,假设定义如下:

  • 搜索权值为1;
  • 点击流量权值为1;
  • 加购权值为2;
  • 咨询权值为1;
  • 完成支付权值为3;
  • 好评权值为2;
  • 分享权值为3;

那么在系统中加入埋点,产生用户行为数据之后,我们将可以获得用户关于某类商品的喜好度具体分值,加权平均后分值区间为【0,13】

在假设商城类仅有5类商品:

  • 对食品类目的商品喜好度(0~13分)
  • 对家居类目的商品喜好度(0~13分)
  • 对玩具类目的商品喜好度(0~13分)
  • 对图书类目的商品喜好度(0~13分)
  • 对游戏类目的商品喜好度(0~13分)

一个用户A:对食品的喜好度为3,对家居的喜好度为1,对玩具的喜好度为4,对图书的喜好度为5,对游戏的喜好度为0,用户A可以用向量表示为

一个用户B:对食品的喜好度为3,对家居的喜好度为4,对玩具的喜好度为5,对图书的喜好度为0,对游戏的喜好度为2,用户A可以用向量表示为

接下来就要使用的【余弦函数】了,这边要和大家解释一下向量的概念(可能很多人高中数学已经忘记了),向量是空间中带箭头的线段,2个向量之间的夹角越小,表明它们的相似度越相近,多个属性的向量表示为

对于用户A的对于所有类目商品的喜好度向量和用户B的向量而言,他们的在多维空间的夹角可以用向量余弦公式计算:

余弦值的值域在【-1,1】之间,0表示完全垂直90°,-1表示夹角180°,1表示夹角为0°,系数越靠近1,向量夹角越小,两件商品的相关性越高,。就刚才用户A和用户B的例子而言,我们可以知道他们的相似度为:

相似度系数推荐说明:

  • 非常相似:0.8—1.0;
  • 比较相似:0.6—0.8;
  • 一般:0.4—0.6;
  • 不太相似:  0—0.4;
  • 完全不相似:-1.0—0;

那么根据这个余弦值的结果,我们会发现用户A和B在商品的喜好度上是比较相似的,所以在给A推荐商品时,我们就可以依照B喜欢的而A却从未浏览过的商品进行推荐,或者是其他B喜欢的商品等。

一、push目标和本质

首先什么是push消息呢?就是淘宝每天给你推送的那一条条消息。

那push的目标是什么呢?

  1. push的目标:新用户的拉新,和老用户的促活,包括流失用户的召回。
  2. push推荐的本质:push是将合适的内容,在合适的时间,合适的场景下,推荐给合适的用户。

所以你每天就会收到很多push消息喽~

二、商品画像和用户画像

这就是一个推荐的过程,我画的非常简单,其实真实的比这个复杂。

产品汪如何向女票解释——淘宝push的个性化推荐

我们想把你可能喜欢的商品推荐给你,就要了解你和商品,所以我们要创建商品画像和用户画像。我们先来说说商品画像,商品画像如下,主要由sku分类和属性特征构成,须对这些特征建立倒排索引。

对于商品画像,商品上下架、库存、价格、评论数等应采取增量更新,商品标题、分类、属性、主图、销量、评论等应采取全量更新。

产品汪如何向女票解释——淘宝push的个性化推荐

我们再来看看用户画像,用户画像就是通过了解你的一些信息,来定义出你这个用户是什么样子的。大概包括以下几个方面。

用户画像如下:

产品汪如何向女票解释——淘宝push的个性化推荐

用户分群:

①在用户画像上,可以分为基本画像和模型画像。基本画像指的是可以直接获得的用户数据,模型画像指的是通过模型学习用户数据得出的模型,如用户流失级别,用户挑剔度等。

②用户的基本信息属于长期画像,在长时间内是不会改变的。如用户的性别,年龄,星座等。对于基本信息不完整的用户,可以对信息完整的用户进行训练,得出不同用户群体的特点。

比如通过分析用户的applist,得出安装哪些app的用户是女性的概率是多少,男性的概率是多少,这样可以对性别缺失的用户进行模型扩散,补上缺失项。

③用户的兴趣爱好可分为长期兴趣和短期兴趣,长期兴趣可通过分析用户历史数据进行积累。比如用户在过去半年经常性的买零食坚果,每次购买在长期兴趣上都会进行一个权重累计。

有一天因为用户受热点事件影响,开始在短期内买零食果脯,则模型应在短期内提高此兴趣点的权重,以便不受长期兴趣的影响而无法提高。

④对于行为特征,消费信息等数据,可设计用户对比度,比如设置用户对比3家同类商品才购买1个为三级,用户对比5家以上相同商品才购买1个是一级。

也可以根据用户点开app频次设计用户流失模型,比如用户1天为打开是流失F级,3天未打开是流失E级,7天未打开是流失C级,一个月未打开是流失A级。

三、推荐策略和算法

我们建立了商品和用户的画像,就要来分析你喜欢什么样的商品,商品如何和你匹配上,这就涉及到了策略和算法。

(1)常用算法

①基于统计学的过滤,如基本信息中的性别,年龄,地域等。

②基于用户的协同过滤。

③基于商品的协同过滤。

④决策树模型等。

(2)推荐策略

①applist:通过读取用户app列表,用app和商品分类进行匹配,了解用户的兴趣点,此策略针对于新用户的兴趣获取,以及老用户的新兴趣挖掘。

②本地化:实时获取用户地理位置,与用户本地天气,城市层级,生活圈,本地热点等结合进行push推送。此策略为的是提升用户感知,增加推送好感。

③通勤场景:在通勤中,用户如属于移动网络状态,push和落地页应减少插图或者多图的比例。此策略为的是考虑用户感受,增加用户好感。

④兴趣试探:对于新用户来说因兴趣爱好信息积累较少,在push推荐时可选取热度高,点击率高,表现好的push进行推送,这样即使用户兴趣不增加,也保证了用户不产生厌恶。

⑤负反馈策略:对于用户看到不点击,以及点击即退出的push,应该有负反馈机制,降低此类push在此用户面前出现的频率或者不再出现。

⑥季节策略:可根据季节,天气,节气变化,针对性的向用户推送具有此类特征的商品。

⑦热点策略:根据近期话题或事件热点,结合相关商品进行推送。

(3)分发排序

①push可以分类型,如通用型,活动型,群体型,个体型,系统型,热点型。并给不同类型的push设定优先级。在推送时高优先级的push优先推送。

②在召回排序时,通过第一层的统计社会学信息过滤,候选集中的push会存在多条,此时可根据以上提到的各策略模型综合的对push进行打分,比如有30个策略模型,可从30个维度按照不同的加权对push进行综合打分,由高到低的进行排序,得分高的优先推送。

③当一天内的推送push数量达到3-5条的上限时,当天即停止推送。

四、push个性化推荐的衡量指标

那么当我们为用户推荐商品之后,如何来看我们的推荐效果呢,这里就需要有衡量的指标。

  1. 短期来看是push拉新数量,和拉新贡献度。
  2. 长期来看,是从推送,点击,到达,浏览,加购,下单,支付,复购整个链条来提高,为最后的GMV负责。

GMV=流量*转化率*客单价。流量=新用户+老用户。

从用户行为路径来看,一条push推送后,经历了,到达,展示,点击,浏览,加购,下单,支付的流程。评价push效果的指标也据此产生。

产品汪如何向女票解释——淘宝push的个性化推荐

五、push优化方向

按照以上指标,我们需要对以上几个方面进行优化。

(1)提升push的到达率

重复发送push:通过服务端重复发送,客户端本地排重来实现到达率优化。

重复发送策略,可以分次分时间间隔发送,如每隔x小时,发送y条push,每天发送z次。

(2)提升push的点击率

  1. 增加push的丰富度。如针对活动和热点事件的全量推送;针对某用户群体的群体推送;针对单个用户历史信息和兴趣爱好的个性化推荐。
  2. 塑造具有吸引力的文案。对于某个push,可以设置多个文案,用ABtest的方法,将同质用户分组,推荐同一个push的不同文案,快速获得点击率高的文案进行全量发送。
  3. push文案设计:应从文案基础,用户感知,用户习惯,形式多样性等方面考虑。具体如下。

文案基础:无错别字,无错误标点。主语突出,无无意义词语冗余。文案完整,或主述对象完整,文案过长可末尾用省略号提示。

形式多样性:图片,文字,表情,提示音等,丰富push形式。

用户感知:比如让用户有参与感的有,含有当地名,@用户。让用户有亲近感的有,熟知人名,电影电视名。以及关于热点热句的文字。

用户习惯:如习惯看半角文案,因为全角文案会有不正规的感觉。

(3)落地页设计

①落地页内容和push内容应该保持一致,相辅相成。

②落地页内容应该突出商品主体,抓住用户眼球。

③对于新用户来说,因使用习惯还未养成,对app了解度也还不够,落地页最好有一定的指引,引导用户理解产品。

(4)Push的频控设计

主要是为了不过度打扰用户。

①push对于每日每个用户的推送条数应该有上限的设置。比如系统消息或者互动消息类的push可以无上限,活动和个性化推荐类的push总量应控制在3-5条。

②push推送的时间段应选择用户的空闲时间,一般分布在早,中,晚,睡前四个时间段。如7-10点,11-14点,17-19点,22-24点

③从长期来看,可以通过模型,算出用户一般每日可接受的push条数,以及单个用户可接受的push条数。

小诺说:好啦,我讲完了~女票说:我脑子嗡嗡的,就听懂个大概。

文章由PM28网编辑,作者:海阁,如若转载,请注明出处:http://www.pm28.com/3475.html欢迎投稿

联系我们

在线咨询:点击这里给我发消息

邮件:403567334@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息