您当前的位置:首页 > 电脑百科 > 程序开发 > 算法

阿里“推荐系统”背后的算法介绍

时间:2019-11-04 10:30:12  来源:  作者:
阿里“推荐系统”背后的算法介绍

 

 

导读 : 随着阿里巴巴 App里 “ 为你推荐 ” 模块在全链路里地位的不断提升,“为你推荐”已经不再是一个单一的商品推荐渠道,它开始扮演更多的角色。在大促期间,沉淀出一些很好的营销场景,如:榜单、必买清单,主题市场以及发现好货等。我们希望营销场景作为卡片的形式插入到现有的为你推荐里,一方面是为这些场景分发流量,一方面是希望提高整体的坑位曝光收益。今天,我们就来探秘如何插入这些营销场景卡片。

前言

在阿里巴巴 APP 的“为你推荐”中,目前要插入的营销场景都是商品集合类型的,我们现阶段关注的核心是 IPV相关指标,故定义曝光收益作为我们的效果衡量指标,其计算公式如下:

曝光收益=

阿里“推荐系统”背后的算法介绍

 

在只有商品推荐的情况下,这个衡量指标其实就是 PV_CTR。

 

阿里“推荐系统”背后的算法介绍

 

 

阿里“推荐系统”背后的算法介绍

 

图1 阿里巴巴 APP 首页为你推荐场景效果图

问题与方法

现有的资源,各个卡片业务方提供了商品与卡片的映射关系,为你推荐推荐出来的商品,那么在商品推荐里如何去插入这些营销场景卡片呢?

迭代前的状态

按一定的概率随机挂载一种卡片到推荐的商品上。 这种粗暴的做法,直接导致曝光收益下降。 因为完全不去考虑卡片的承接能力以及用户对卡片的偏好强度,指标会下降是很明显的,但快速累积了初始数据。

弱个性化

我们定义了一个卡片质量分以及用户偏好分,最终一个商品是否要变成卡片以及变成哪种卡片不再是按设定概率随机挂载,而是通过图2的式子来挂载。

 

阿里“推荐系统”背后的算法介绍

 

图2 卡片选择公式

于此同时不再简单地利用业务方提供的商品-卡片关系,而是从业务方提供的商品-卡片对集合中进行筛选,一个商品每种卡片类型下可能会映射有该类型多个卡片,通过卡片质量分来筛选,同时离线计算好用户卡片形态的偏好分。 上述二者每天同步到iGraph 中,在线调度的时候,在商品推荐结果上,依据图2公式对能触发卡片的商品进行卡片挂载选择。 同时,进行卡片的展示间隔控制,卡片与卡片之间至少有一定数量的商品,这样避免卡片堆积,从而进一步提高效果。 这种方法,相比迭代前,曝光收益提高了3.23%,但相比不出卡片的基准桶,依旧是下降的。 我们还对图2公式进行一系列的变种实验,但收效甚微。

机器学习模型

给用户推荐的商品中,某些商品有 N 种卡片可以挂载,那么挂载哪个卡片用户点击的概率最高呢? 这就是我们的模型需要学习,这个可以转化为一个 CTR 预估问题。 按预估出来的 CTR 值排序,取 top1,但最终展示还有一定规则需要遵守,下文会阐述。

■ 样本和特征

从为你推荐的数据里抽取可以挂载卡片的商品的曝光点击数据作为训练样本。

特征分成三个部分,用户特征、触发品特征、卡片特征,商品形态作为一种特殊的卡片形态。 我们选用了85个特征作为模型输入,包括各种实数特征(62个)、Categorical 特征(19个)和交叉特征(4个): 实数特征主要是用户、触发品、卡片维度的一些统计特征。 例如,某个商品(触发品)在为你推荐平台上的 CTR、不同形态下的 CTR 的统计值。

而对部份 Categorical 特征,我们采用对其进行embedding 处理再输入模型。

■ 召 回

基于为你推荐最终的商品推荐结果,去我们筛选好的商品-卡片集合召回候选集合,即 item2item2card。 商品与卡片之间的映射关系,目前只是简单地采用了上述的卡片质量分,而没有考虑商品与卡片之间的关系,卡片整体承接效果好,不代表在某个触发品的情况下,承接效果也好。 故此考虑增加 item2theme 的方式,theme 表示 item-card。 我们直接利用多天卡片曝光点击数据,触发品(item)-卡片(card)对直接作为一个 item 实体看待,采用 SWING 算法进行构建。 线上 AB,增加这一路召回,相比没有这路召回的,曝光收益增加0.79%。

■ 排序 模 型

我们选择了 WDL(Wide & Deep Model)模型,迭代过程中我们也尝试了DCN(Deep & Cross Network)。 线上 AB,二者曝光收益差距很小,DCN 相比WDL 也就+0.03%,最终我们选择 DCN 模型进行全量。 模型训练目前采用 XTensorflow 每天定时训练并推送到 RTP。

 

阿里“推荐系统”背后的算法介绍

 

 

阿里“推荐系统”背后的算法介绍

 

图3 左图是 WDL,右图是 DCN

■ 效果

效果其实是由两部分因子构成,为你推荐层面上的精准分发,以及卡片的内部效果。 卡片内部若效果糟糕,其实会进一步降低用户再次点击此类卡片的欲望,也就影响着上游分发。

目前策略相比弱个性化,曝光收益相对+6.77%,人均点击商品数相对+18.60%; 相比单纯的商品推荐,曝光收益相对+1.58%,人均点击商品数相对+0.01%。

系统流程

线上调度

为你推荐原有的商品推荐决定着整体商品顺序,而卡片排序模型则决定着哪些商品挂载什么卡片,最终结合规则(沿用弱个性化时期的卡片间隔策略),决定最终卡片展示的位置。 图4是一个调度的流程示意,囊括上述的弱个性化,以及现在的机器学习。

 

阿里“推荐系统”背后的算法介绍

 

图4 调度流程示意(含弱个性化和机器学习模型)

卡片兜底与冷启动

如果单次请求最终结果里有卡片类型缺失,对于缺失的卡片类型,按设定的概率,每种卡片最高出一个,间隔策略也影响着最终兜底的情况,如果没合适的坑位,则不会出。 这样同时保证卡片兜底和冷启动,又增加了卡片多样性,让用户有机会看到其他类型卡片。

未来的工作

现在的模型,可以说只是卡片选择器,没有做到整体去考虑商品和卡片顺序。 卡片选择器目前只是对为你推荐层面上的曝光点击进行建模,基于我们的目标应该是要考虑卡片内部的点击,这块可以进一步优化。 同时未来打算把现有的商品推荐结果作为一路召回,卡片选择器作为卡片一方的召回,下游训练一个混合排序模型来做整体排序。



Tags:推荐系统   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
2021 年,字节跳动旗下产品总 MAU 已超过 19 亿。在以抖音、今日头条、西瓜视频等为代表的产品业务背景下,强大的推荐系统显得尤为重要。Flink 提供了非常强大的 SQL 模块和有状态计算模块。目前在字节推荐场景,实时简单...【详细内容】
2021-10-25  Tags: 推荐系统  点击:(29)  评论:(0)  加入收藏
今天,要和大家推荐一个Go 编写的开源推荐系统——Gorse。 Gorse 旨在成为一个通用的开源推荐系统,可以快速引入各种在线服务。通过将商品、用户和交互数据导入 Gors...【详细内容】
2021-08-02  Tags: 推荐系统  点击:(104)  评论:(0)  加入收藏
Hello,大家好,欢迎来到“自由技艺”的知识小馆,今天我们来聊一聊推荐算法。在广告、电商、信息流分发等业务场景中,推荐算法发挥着至关重要的作用,好的推荐算法能够把用户牢牢抓...【详细内容】
2021-06-08  Tags: 推荐系统  点击:(135)  评论:(0)  加入收藏
推荐系统自诞生之日起就是为解决海量物料如何高效分发给海量用户,一套高效的算法流程就是推荐系统的核心。如今火热的各类机器学习、深度学习、强化学习等都可以在推荐系统中...【详细内容】
2021-04-27  Tags: 推荐系统  点击:(251)  评论:(0)  加入收藏
推荐系统是一种信息过滤技术,通过从用户行为中挖掘用户兴趣偏好,为用户提供个性化的信息,减少用户的找寻时间,降低用户的决策成本,让用户更加被动地消费信息。推荐系统是随着互...【详细内容】
2021-04-09  Tags: 推荐系统  点击:(319)  评论:(0)  加入收藏
有幸参与了几个业务推荐系统搭建的全流程,本文将从实际经验出发,为大家解构如何从从零搭建推荐系统,希望跟大家能够相互交流,如有错误之处烦请指正。...【详细内容】
2020-09-30  Tags: 推荐系统  点击:(67)  评论:(0)  加入收藏
电影推荐系统 demo 界面推荐系统[1](Recommender System,RS)能够根据用户的偏好主动为用户推荐商品或项目。它通过用户的历史数据来发掘用户兴趣偏好,从而将用户可能感兴趣的物...【详细内容】
2020-09-18  Tags: 推荐系统  点击:(127)  评论:(0)  加入收藏
推荐系统介绍自从1992年施乐的科学家为了解决信息负载的问题,第一次提出协同过滤算法,个性化推荐已经经过了二十几年的发展。1998年,林登和他的同事申请了“item-to-item”协同...【详细内容】
2020-09-15  Tags: 推荐系统  点击:(177)  评论:(0)  加入收藏
在数字化革命和AI赋能的大背景下,推荐场景逻辑越来越复杂,推荐细分场景越来越丰富,对业务迭代和效果优化的效率有了更高的要求。推荐系统业务和技术在传统架构支撑下自然堆砌,变...【详细内容】
2020-09-07  Tags: 推荐系统  点击:(86)  评论:(0)  加入收藏
用户画像往往是大型网站的重要模块,基于用户画像不仅可以实现个性化推荐,还可以实现用户分群、精准推送、精准营销以及用户行为预测、商业化转化分析等,为商业决策提供数据支持...【详细内容】
2020-09-02  Tags: 推荐系统  点击:(121)  评论:(0)  加入收藏
▌简易百科推荐
前言Kafka 中有很多延时操作,比如对于耗时的网络请求(比如 Produce 是等待 ISR 副本复制成功)会被封装成 DelayOperation 进行延迟处理操作,防止阻塞 Kafka请求处理线程。Kafka...【详细内容】
2021-12-27  Java技术那些事    Tags:时间轮   点击:(1)  评论:(0)  加入收藏
博雯 发自 凹非寺量子位 报道 | 公众号 QbitAI在炼丹过程中,为了减少训练所需资源,MLer有时会将大型复杂的大模型“蒸馏”为较小的模型,同时还要保证与压缩前相当的结果。这就...【详细内容】
2021-12-24  量子位    Tags:蒸馏法   点击:(11)  评论:(0)  加入收藏
分稀疏重建和稠密重建两类:稀疏重建:使用RGB相机SLAMOrb-slam,Orb-slam2,orb-slam3:工程地址在: http://webdiis.unizar.es/~raulmur/orbslam/ DSO(Direct Sparse Odometry)因为...【详细内容】
2021-12-23  老师明明可以靠颜值    Tags:算法   点击:(7)  评论:(0)  加入收藏
1. 基本概念希尔排序又叫递减增量排序算法,它是在直接插入排序算法的基础上进行改进而来的,综合来说它的效率肯定是要高于直接插入排序算法的;希尔排序是一种不稳定的排序算法...【详细内容】
2021-12-22  青石野草    Tags:希尔排序   点击:(6)  评论:(0)  加入收藏
ROP是一种技巧,我们对execve函数进行拼凑来进行system /bin/sh。栈迁移的特征是溢出0x10个字符,在本次getshell中,还碰到了如何利用printf函数来进行canary的泄露。ROP+栈迁移...【详细内容】
2021-12-15  星云博创    Tags:栈迁移   点击:(22)  评论:(0)  加入收藏
一、什么是冒泡排序1.1、文字描述冒泡排序是一种简单的排序算法。它重复地走访要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地...【详细内容】
2021-12-15    晓掌柜丶韶华  Tags:排序算法   点击:(16)  评论:(0)  加入收藏
在了解golang的map之前,我们需要了解哈希这个概念。哈希表,又称散列表(Hash table),是根据键(key)而直接访问在内存储存位置的数据结构。也就是说,它通过计算出一个键值的函数,将...【详细内容】
2021-12-07  一棵梧桐木    Tags:哈希表   点击:(14)  评论:(0)  加入收藏
前面文章在谈论分布式唯一ID生成的时候,有提到雪花算法,这一次,我们详细点讲解,只讲它。SnowFlake算法据国家大气研究中心的查尔斯·奈特称,一般的雪花大约由10^19个水分子...【详细内容】
2021-11-17  小心程序猿QAQ    Tags:雪花算法   点击:(24)  评论:(0)  加入收藏
导读:在大数据时代,对复杂数据结构中的各数据项进行有效的排序和查找的能力非常重要,因为很多现代算法都需要用到它。在为数据恰当选择排序和查找策略时,需要根据数据的规模和类型进行判断。尽管不同策略最终得到的结果完...【详细内容】
2021-11-04  华章科技    Tags:排序算法   点击:(40)  评论:(0)  加入收藏
这是我在网上找的资源的一个总结,会先给出一个我看了觉得还行的关于算法的讲解,再配上实现的代码: Original author: Bill_Hoo Original Address: http://blog.sina.com.cn/s/bl...【详细内容】
2021-11-04  有AI野心的电工和码农    Tags: KMP算法   点击:(36)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条