导读: 个性化投放的"无人驾驶"平台何以自动化支持上千个场景的千人千面投放?商家、运营、小二,我们如何做到极致赋能和提效?面对旅行场景下用户需求低频、行为稀疏,特别是在营销活动大促期间,用户量迅速增长,用户的冷启动问题更加严峻,如何提高冷启动用户的推荐效果成为关键。另外,面对旅行场景下的丰富多样的的货品需求依赖关系,我们如何来组织和呈现给用户?阿里飞猪个性化推荐团队将通过本文,为大家带来旅行场景下的个性化营销平台揭秘。
主要分享内容包括:
背景
个性化营销平台架构
个性化营销平台算法
01 背景介绍
飞猪专注于在旅行场景。个性化营销团队承接飞猪日常场景和会场场景,我们会给用户呈现千人千面的个性化投放。
1. 日常场景
飞猪 App 上有众多页面。上图最左的首页界面中,上方是 Banner,下方是猜你喜欢。由首页的入口可以进入各频道页,包括周边游、飞猪门票、旅游度假等。各频道页有不同的投放模块,这些全都由个性化营销平台承接。
2. 会场场景
每年的双十一、六一八、五一、春运、暑促等会场中,个性化营销团队承接各场景模块,包括主会场、全部会场、目的地会场、一些榜单会场等。
3. 挑战和难点
面对众多页面和众多模块,个性化营销存在如下几点挑战和难点:
投放页面和模块多样化;
投放物料多种异构数据源;
运营干预配置多样化;
如何统一个性化投放模型来赋能提效。
02 个性化营销平台架构
个性化营销平台架构的设计主要包括以下内容:
1. 场景抽象
我们首先对上节讲到的日常场景和会场场景进行场景抽象,抽象出的场景包括:入口、单 Tab 场景、多 Tab 场景、胶囊、主题榜单、单物料投放、多物料混投、LBS 推荐、周边推荐和实时热榜等。
入口:点击后可直接进入商品详情页,我们认为不是入口,否则我们定义为入口;
单物料投放:只投放一种物料,如只投放商品或只投放酒店;
多物料混投:投放页面可能有出现商品、酒店、门票、POI 等多种物料;
LBS 推荐:基于用户定位的推荐。
2. 功能抽象
个性化营销平台可以投放的物料包括:商品、酒店、内容、玩法、目的地、商圈、主题、榜单、店铺、优惠券、景点、POI 等。
投放的功能包括:召回、排序、加权、打散、定坑。
召回:常规的个性化召回、弱个性化召回、冷启动召回、热门召回、触发式召回;
排序:综合考虑多个维度,如点击率 CTR、成交量 GMV、人气、销量、距离等;
加权:为赋能运营,对爆款或者新品给予一定的扶持;
打散:保证呈现结果多样化;
定坑:基于某些营销目的,针对爆款、热品给用户进行定向的前置推送。
3. 链路抽象
我们将链路抽象为 6 个模块:产品运行端、选品平台、场景管理平台、个性化投放平台、前端、用户。
产品运营端:运营端基于自身的行业理解,根据规则选品,为选品平台筛选出商品池 、酒店池等,并配置场景管理平台的投放规则;
选品平台:生成选品 ID 后提供给场景管理平台,将物料采取实时加离线的方式同步到个性化投放平台;
场景管理平台:将投放规则和选品数据同步到个性化投放平台,接收个性化投放平台返回的个性化结果;
个性化投放平台:基于选品池和投放规则,给出千人千面的个性化结果返回场景管理平台;
前端:接收场景管理平台的结果,将内容呈现给用户。
4. 个性化投放
本节我们将介绍个性化投放平台如何构建人货匹配的个性化方案。图中从下向上依次是离线和在线处理过程。
离线处理会基于用户历史行为数据,对用户和物料进行建模。
在线处理首先进行用户理解和实时的上下文分析,目的是更精准的人货实时匹配,即个性化召回。物料召回后平台会进行匹配和排序,匹配和排序之间会有流量调控,目的是对新品 、爆款、尖货等给予一定的扶持。排序结果会结合运营的投放规则进行更加精准的重排序最终呈现给用户。
5. 用户建模
用户建模过程如图所示,从最底层往上依次是:实时公共层、实时特征层、用户表达层和实时服务层,其中用户表达层是我们的核心工作。
实时公共层:收集用户行为数据并落盘;
实时特征层:进行特征预处理,对用户行为数据进行结构化、标准化和聚合化,对宝贝建立关联,生成模型需要的特征表达,如用户 LBS 状态特征、商品认知标签特征、页面模块统计特征等;
用户表达层:基于实时特征层的原始特征进行加工、提纯、聚合,生产用户的特征表达,包括:用户长短期偏好、用户实时意图、用户需求预测、用户行程、层次主题兴趣;
实时服务层:平台在该层对外输出服务,输出的功能主要包括:用户状态查询、实时 trigger 查询、用户意图向量、用户兴趣向量、用户行程向量、用户画像标签,其中向量为隐式表达,用户画像标签为显式表达。
6. 全域流量调控
全域流量调控过程如图所示,从最底层往上依次是:实时流计算中心、调控商品配置中心、 PID 调控中台 。
实时流计算中心:监控飞猪、手淘、支付宝三端的实时行为,根据实时日志流获取不同物料不同粒度下的实时 PV,不同物料包括:不同 item 、不同类目、不同目的地、不同卖家;
调控商品配置中心:主要由运营来参与,运营在日常或会场中需 要对一些爆款商品做一定的流量扶持,如热门的目的地,热门的行业,运营基于曝光流量和实时 PV 决策 是否给予更多的流量,算法方也会给予一个相应的建议,比如有的买家销量高人气高,算法会相应的提高权重,运营结合算法的策略在平台进行配置;
PID 调控中台:使用一个改进的 PID 算法,通过小时任务更新、分钟任务更新和误差计算更新生成能够影响个性化流量推荐的调控因子,该调控因子作用在个性化场景上,具体来说作用在匹配阶段和排序阶段,最终影响页面上物料投放的流量。
整体的流量调控结果反应在实时调控看板上,可以及时做到自适应的反馈和流量调整。
7. 整体方案
整体方案集成如图所示,从最底层往上依次是:数据后台、个性化营销中台、业务前台。
数据后台:用户分层、商品分层、玩法标签体系、用户标签体系、人货场匹配;
个性化营销中台:营销能力矩阵、营销算法技术、数字化营销、全域流量调控
业务前台:基于营销中台,提供运营平台、营销触达、平台导购。
03 个性化营销平台算法
下面我们将介绍飞猪个性化营销平台算法:
用户 session 理解
用户冷启动技术
旅游玩法标签体系建设
1. 用户 session 理解
① 背景
旅行场景下,用户兴趣可能来源于多方面:用户基础属性、用户群体属性、用户实时兴趣、用户周期兴趣、用户长期兴趣。
用户基础属性:年龄、性别、购买力、地理属性等,其中地理属性包括用户所在地是几线城市,用户是在老家还是新的工作地等。
用户群体:用户是白领或学生,用户朋友圈的组成等。
本次我们会重点介绍用户实时兴趣的挖掘,也就是用户 session 理解。
用户 session 中会有以下行为:首页、搜索、商品页、收藏、加购、购买。完整的 session 从进入首页直到完成购买,期间可能发生若干次搜索、商品页、收藏、加购行为。但是常见 session 并不完整,往往未完成购买就会退出 APP。针对不同的 session,我们会进行 session 理解。
② 用户行为网络抽象
用户行为 session 中产生一次点击 Item 的行为,有很多附加关系可以利用,这种附加关系可以用异构图的形式表现[1]。
用户侧可以构成一张关系图:提交 Query 、加购商品,收藏景点等,用户还会有一些自身的属性 ,如年龄性别等。
Item 侧也可以构成关系图:以门票为例,门票即一个景点,景点旁可能有酒店、景点本身有一些玩法元素,景点可能有专车接送之类的服务元素。
③ 用户行为构建图网络
我们根据上节的抽象,构建了用户行为网络。具体来说,我们将用户到商品的行为抽象为一个网络结构图,采取了 GraphSAGE[2]的做法,训练主要节点的 Embedding。主要节点有用户、商品、POI。用户本身有一些属性,如年龄、LBS、购买力等也会作为附加节点和主要节点建立边。
训练评测:MRR 接近 0.96,loss 低于 0.15。
离线评测:取 HIT@20 这个指标,User 命中率不高,可能因为 User 链特别大,整体数据稀疏导致。对 Item 和 POI 的命中率都较高,Item 约为 0.88,POI 约为 0.65。
④ 用户行为 session 表达
基于上节介绍的用户行为 session 中的节点向量表达,我们进而构建用户行为 session 的表达[3]。我们首先检索与当前 session 有协同信息的邻居 session。 邻居检索:根据当前 session 有哪些 item,粗筛出有相同 item 的 session,再根据最大覆盖原则选出自身有多个 item 和当前 session 相同的邻居 session。
当前 session 的通过 long-term 加 short-term 方式学习到当前表达:
long-term:attention 机制
short-term:当前 session 最近一次行为过的 item 的节点的 embedding
由 long-term 和 short-term 一起经过一个全连接生成当前表达
邻居 session 通过 global encoder 加 local encoder 方式学习邻居表达:
global encoder:每个邻居 session 通过 GRU 生成表达
local encoder:所有邻居 session 做一个聚合
邻居表达通过 Guided Attention with Time-aware 机制经当前表达指导提出取协同表达后,当前表达和协同表达通过 Co Attention 机制学习到最终表达。离线在 item 集上评测,HIT@20 约为 0.6,POI 上约为 0.49。
2. 用户冷启动技术
① 背景
我们将近最近 3 月没有任何行为的用户划分为冷启动用户 ,冷启动用户在飞猪、淘宝、支付宝三端占比都很高。用户的行为稀疏或者无任何行为,使得推荐系统无法有效捕捉到用户的真实兴趣,特别是在大促期间,用户量迅速增长,用户的冷启动问题更加严峻。
② 基于层次主题知识的召回
营销场景上沉淀了⼤量运营根据行业知识精⼼选品后的数据域,这些数据域划分的 topic 涉及多个维度 ( 类⽬、玩法、POI、⽬的地、销量、热度等 ) 且具有层次性,不同层次代表了⽤户不同的购买心智。
以图中右侧为例,从 level 1 中可以获得用户对于类目的偏好,从 level2 中可以获得用户对于不同玩法的偏好。我们在不同层次学习用户不同的购买心智,通过不同数据域的偏好去映射得到用户可能偏好的一些宝贝。
航旅背景下,目的地是重点考虑的维度。同一区域的用户,朋友、亲属关系往往比较集中,分布比较一致,同⼀区域的⽤户偏好具有⼀定相似性这一现象更加明显。
我们据此提出 U2Htopic2I:
选取一批飞猪的活跃用户 ,根据活跃用户的点击、收藏、加购行为得出一个用户对层次主题的偏好打分,考虑到航旅背景的特点,我们对用户的行为加入了时间衰减因子,最终得到一个偏好主题库;
将冷启动用户的区域性映射到偏好主题库上,从而召回用户可能偏好的主题,以及偏好主题下对应的宝贝信息。
U2Htopic2I 存在的问题:
时间衰减过于严格,导致近期⾏为的 topic 权重过⼤,并且该权重很难人工去调节;
对于冷启动⽤户的 topic 挖掘维度过于单 ⼀,没有充分利⽤到⽤户的属性信息。
我们据此提出 Attr2Htopic2I:通过模型去学习⽤户属性到 topic 偏好的映射关系,对⾏为稀疏的⽤户或⽆⾏为⽤户, 根据⽤户的属性信息关联到⽤户的偏好。
Attr2Htopic2I 同样是选取一批飞猪活跃用户,与 U2Htopic2I 不同在于,通过模型去预测历史活跃用户对层次主题的偏好。通过冷启动用户的属性集,将其映射到偏好主题库上,从而召回用户可能感兴趣的宝贝。
用户侧我们提取用户的静态信息,因为对冷启动用户而言,我们只能利用到用户的基本属性,如年龄、性别、区域信息、购买力等。层次主题一侧我们提取层次主题的标签信息,如人群、品牌、目的地区域、玩法等。
用户历史行为过的层次主题的数据量极大,为使模型更好地学习用户的层次主题偏好我们采取如下方式构造样本空间,增大正负样本的差异性:
正样本:用户最近行为过,且点击率比较高的层次主题;
负样本:最近曝光较多,但用户没有产生点击的样本。
线上测试结果显示,U2Htopic2I 在淘宝端带来了 2 个点的提升,Attr2Htopic2I 在 U2Htopic2I 的基础上,在淘宝端带来 4 个点的提升,效果明显。
③ 基于用户跨域映射的召回
背景: 三端稀疏⾏为⽤户占⽐33.9% ( fliggy )、69.0% ( taobao )、65.8% ( alipay ),仅采⽤飞猪本场景数据难以覆盖这么⼤⽐例的冷启动⽤户。
思想: 跨领域特征映射,将⽤户在淘宝的⾏为特征向量映射到飞猪⾏为特征向量。
数据有效性和想法可行性:
飞猪用户和手淘用户的交集比例很高;
手淘端的部分宝贝行为和航旅宝贝具有一定的关联性,如一个用户近期在手淘端有沙滩鞋、沙滩裤、泳装等行为,我们认为该用户可能有海滨度假的需求,当他来到飞猪端时,我们就给他投放相应的宝贝。
模型构造:
通过在淘宝和飞猪两端⾏为都丰富的⽤户,学习⼀个 user embedding 映射函数,将三个领域间的知识迁移[4]。用户在淘宝端的用户画像,除了用户的点击收藏加购外,我们引入了对于航旅场景下非常重要的用户 LBS 行为序列信息。用户飞猪端行为序列生成飞猪侧向量表达,用户在手淘端的行为序列、LBS 属性和用户属性信息生成手淘端向量表达。上述两个表达共同输入一个两层的全连接网络,学习到 user 的 embedding。
训练时,我们选取在飞猪端和淘宝端都有行为的交集用户。线上召回时,我们把冷启动用户在手淘端的行为序列、用户属性和 LBS 信息输入网络,得到一个隐藏层的 embedding,作为用户在飞猪端的用户画像。根据隐藏层的 embedding,计算其与宝贝 embedding 向量的相似度,召回飞猪端与其相似度最高的 top@N 的宝贝。
上面的方法在飞猪端带来 1 到 2 个百分点的 uctr 提升,在淘宝端带来了 2 个百分点的 uctr 提升。但是同时也存在以下几个问题:
淘宝域知识使⽤不充分:忽视了⽤户的群体特性对⽤户的影响,以及商品之间的共性;
迁移过程粗糙:淘宝域的⽤户特征与⻜飞猪域⽤户特征空间不⼀致,直接映射带来的 gap 较⼤;
建模局限性:训练损失与在线召回⽅式⼀致性较低;
⽤户局限性:⽤户必须在淘宝端有⾏为。
④ 基于异构关系的冷启动建模
我们将用户与用户、用户与宝贝、宝贝与宝贝之间这种不同的关系称为异构关系[5]。
旅行具有群体性:
群体⽤户与⽬标⽤户具有⼀定的相似性,群体⾏为代表了⽬标⽤户的兴趣⽅向;
群体⽤户最近⾏为过的商品⼀定程度上反应了最近商品的热度趋势,防⽌为冷启动⽤户召回⼤量冷⻔商品。
训练阶段:
筛选出一批淘宝和飞猪双端的活跃用户,将活跃用户在淘宝端的用户行为序列和 LBS 信息通过聚类得到 user group;将 user group 最近行为过的历史宝贝和目标宝贝组成一个 item group,通过这种方式引入了用户与用户、用户与宝贝以及宝贝与宝贝之间的异构关系;分别将这两个 group 输入 attention 网络中,学习目标用户和 user group 之间的相似度,目标宝贝和 item group 之间的相似度,再分别加上用户侧的 side information 以及宝贝侧的 side information;再分别经过一个全连接网络,得到 user embedding 和 item embedding;最后计算 embedding 向量之间的相似度。
生成阶段:
将冷启动用户在淘宝端的行为序列、LBS 信息及 user 侧的属性信息输入网络;得到模型⽬标输出隐层 user embedding 以及 item embedding;利用 user embedding 和 item embedding 对冷启动用户进行召回,返回 top@N 的宝贝推荐。
我们进一步介绍 user group 和 item group 的构建。
user group:
关联性:根据⽤户的淘宝⾏为及 lbs 信息聚类得到 user group,判断 user group 最近行为过的宝贝是否与目标宝贝是同一主题,或者看 user group 行为过的宝贝是否在目标宝贝 i2i 可召回列表中;
实效性:优先使⽤⽤户的近期⾏为。
item group:
由 user group 内的⾏为商品构成,增加 item group 与⽬标商品的关联性
离线评估,我们从真实点击数据对比中看出,叶子类目及目的地相同的比例达到 69%,完全命中的比例达到 1%。上图右侧我们列举了几个线上真实召回的案例,如用户在淘宝端行为过潜水镜、沙滩鞋,我们则召回了关于海岛、潜水方面的宝贝,用户在淘宝端行为过防滑鞋套,我们据此召回了雪乡相关的宝贝。
3. 旅游玩法标签体系建设
我们将分为 4 个方面介绍玩法标签体系建设:玩法标签生产与挖掘、玩法标签树建设、玩法标签树挂载、玩法标签的应用。
① 玩法标签挖掘与生产
难点和挑战: 数据覆盖更全面、更准确,同时精细化地绑定到宝贝上。
玩法标签的挖掘与生产的迭代过程:
基于⽂本内容分析的 TF-IDF 算法抽取关键词
基于⽂本⽹络结构 TextRank 算法抽取核⼼词
基于深度⽹络模型 TextCNN 意图关键词⽣成
主要思想: 基于⽂本分类的思想,基于商品⽂本信息,预测商品的关键词兴趣点
主要⼯作:
样本构建:对商品的⽂本信息预处理,提取候选词序列,label 为⽤户搜索词
模型选择:TextCNN 分类模型
⽹络结构:词 embedding->卷积层->池化层->……->全联接->softmax 层->输出
数据⼈⼯评测
② 统一的玩法标签树体系
在挖掘和生产了大量符合用户感知的玩法标签后,我们需要构建全⾯的,层级的,有旅⾏特⾊的统⼀玩法标签树体系。我们借助行业运营的经验与知识,构建了自由的航旅玩法标签树,其中涉及了美食、⼈⽂、交通、住宿等 16 个⼀级标签,叶子结点则包括冲浪、滑雪等具体玩法。
③ 玩法标签的挂载
在构建好玩法标签树之后,我们需要将标签准确的挂载到宝贝之上。一个宝贝可以拥有多个玩法标签,玩法标签挂载本质上是一个多标签问题,我们将其拆解为多个二分类问题。飞猪团队最初采取传统的机器学习方法。我们取得了玩法标覆盖占⽐90.21%、 商品覆盖占⽐92.12%、 商品⼈⼯评测准确率 88%的结果。传统方法存在标签信息利用不充分的问题,人工评测准确率依然有可提高的空间。
传统方法将挂载过程拆成 3 个部分,f0 是学习文本关键词的 embedding,f1 是抽象出整个文本的 embedding,f2 是一个挂载模型,全程都没有利用到标签信息。
我们采用 LEAM[6] 算法:学习 word 和 label 在同⼀空间内的 embedding,利⽤text 和 label 的相关性构建⽂本表示,提高挂载准确率。
我们将玩法标签准确挂载在宝贝上后,可以有如下应用:
将飞猪常⽤的场景数据结构化沉淀出玩法标签
将这些结构化数据之间通过玩法标签建⽴关联匹配关系
玩法标签圈⼈、圈品投放
玩法主题⽣产、按场景玩法主题组织的投放
在实际的搜索界面,我们的标签会作为 market-in set 展示。
进一步,我们希望在时空的场景下,结合玩法进行更深层次的应用。我们会基于用户历史行为数据,得到宝贝每一天的点击、收藏、加购,宝贝的目的地等信息,并且宝贝已挂载相应的玩法标签。我们进一步借助时序分析的方法,得到该宝贝在什么时间、什么地点、什么玩法是最热门的,从而更好的服务用户在时间、空间、玩法三个维度辅助用户出行。
04 参考文献
[1]. Zhao, Jun, et al. “IntentGC: a Scalable Graph Convolution Framework Fusing Heterogeneous Information for Recommendation.” Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. 2019.
[2]. Hamilton, Will, Zhitao Ying, and Jure Leskovec. “Inductive representation learning on large graphs.” Advances in neural information processing systems. 2017.
[3]. Lv, Yang, Liangsheng Zhuang, and Pengyu Luo. “Neighborhood-Enhanced and Time-Aware Model for Session-based Recommendation.” arXiv preprint arXiv:1909.11252 (2019).
[4]. Wang, Xinghua, et al. “Cross-domain recommendation for cold-start users via neighborhood based feature mapping.” International Conference on Database Systems for Advanced Applications. Springer, Cham, 2018.
[5]. Hu, Liang, et al. “Hers: Modeling influential contexts with heterogeneous relations for sparse and cold-start recommendation.” Proceedings of the AAAI Conference on Artificial Intelligence. Vol. 33. 2019.
[6]. Wang, Guoyin, et al. “Joint embedding of words and labels for text classification.” arXiv preprint arXiv:1805.04174 (2018).
今天的分享就到这里,谢谢大家。
作者介绍:
弘轶,阿里飞猪算法专家
于 2015 年 4 月加入阿里巴巴,曾负责手淘多个核心业务场景的个性化推荐算法研发和优化工作,自 2018 年 7 月转岗到飞猪个性化团队后,在旅行特色化的个性化推荐场景中持续迭代和升级平台化推荐能力,打磨并沉淀出了一套通用的个性化营销平台工具,全面赋能运营小二,目前平台自动化支持飞猪上千个业务场景的个性化推荐。
寻潇,阿里飞猪算法工程师
研究生学历,毕业于电子科技大学计算机科学与工程学院。2018 年 7 月加入阿里巴巴,负责飞猪通用个性化推荐平台的搭建与优化,平台承接飞猪所有营销大促,为飞猪整体 GMV 的提升产生深远影响;在用户冷启动方面有着长期与深入的研究,结合最新研究技术并加以改进,极大改善了冷启动用户的推荐效果。
溪怀,阿里飞猪算法工程师
于 2019 年 7 月入职阿里巴巴,参与建设飞猪个性化标签体系建设,和流量调控等个性化营销平台工具,全面赋能运营小二,以及个性化推荐。
本文来自 DataFunTalk
原文链接:
评论