Fork me on GitHub

基于事件感知的聚类增益网络在飞猪保险创意排序的应用

以下文章来源于 https://zhuanlan.zhihu.com/p/610086218

导读: 本文将分享飞猪在基于事件感知的聚类增益网络方面的一些工作。

文章包括以下四大部分:

  1. 背景介绍

  2. 保险创意推荐的挑战

  3. 解决方案

  4. 实验和分析


分享嘉宾|李旭琦 阿里巴巴 算法工程师

编辑整理|王露露 沃尔玛

出品社区|DataFun


01/背景介绍


提到创意,大家首先会想到广告创意,其实保险的创意推荐也是广告创意的垂直应用产品。



计算广告解决的问题是,在特定的语义下,为特定的用户选择相应的广告去匹配最佳的创意图文。在辅营保险推荐模块下,语境指的就是用户正在购买机票或者火车票的一些上下文信息;在搜索场景下,语境是指搜索引擎里面的一些查询词;用户相关的信息指用户的基础信息,比如年龄性别等;广告就是保险商品,酒店美妆等量级为 N 的商品;创意图文数量为 N*M 的量级。计算广告面临的挑战在于:在复杂的约束条件下,大规模优化和搜索问题。

本文主要讲的是创意图文的推荐,广告的选择和排序不做考虑,接下来介绍一下飞猪保险是如何运用创意推荐的。



首先,在 OTP 行业中,旅游保险作为辅营业务目前已经是比较重要的商业化收入来源。在保险推荐当中,除了产品推荐和价格推荐之外,创意推荐已经作为非常重要的个性化推荐模块使用。比如在填写个人信息的时候,可以看到一些组件,下拉收银台的时候也会看到弹窗。

--

02/保险创意推荐的挑战



保险的创意推荐面临的挑战,可以总结为三大类:

一类是数据稀疏,包括用户的数据稀疏和创意的数据稀疏。创意的数据稀疏指的是由于运营或者是 UI 同学会迭代创意,或者是由于季节性的原因去上下架一些创意,所以在线上的曝光创意并不是均匀分布的。另外,由于旅行、保险和创意是低频的交易行为,我们很少能拿到三块相关的购买数据,比如用户的个人历史购买数据。同时由于保险是辅营商品,不像搜索可以明确知道用户的购买意图。在创意理解和用户理解之间也缺少统一结构化的体系。

第二类是样本数据反事实。每个用户只能看到唯一的创意文案,也就是只能看到创意 A 或者 B。不能在同时间段、同时间点,对同个用户曝光多个创意。

第三类是跨行业的创意冷启动。飞猪保险横跨了多个行业,在启动新行业的介入的时候,如何复用已有领域的知识,比如将行业 A 效果好的一些创意迁移到行业 B,也是我们后面要去解决的问题。



再简单介绍一下业界现状。

广告创意分为两个大类的算法:一类是上下文无关的一些算法 ,比如 Epsilon 贪心,或汤普森采样,以及阿里妈妈同学做的一些比较优雅的 E&E 算法,如贝叶斯线性回归相关的;另一类是上下文相关的算法,把用户和上下文信息作为推荐加入进去。

解决数据稀疏问题,主要使用 Cross-domain learning 解决两个问题,两个相关的任务,使用丰富数据域内的数据去解决稀缺数据域内的问题,以及联合多个域内的数据去解决各个域内的问题。



为了解决三个挑战,我们团队提出了一些解决思路:

首先从数据洞察当中可以看到,我们对个体用户的创意历史偏好数据比较稀疏,但对于群体用户其实是可以进行一些刻画的。比如从数据当中可以看到,老年人更喜欢跟家庭有关的描述;当出发日面临恶劣天气的时候,机票行业对类似天气预报的素材比较敏感。那我们就可以把思路从个体用户的数据转化到如何把群体、相关事件以及创意这三块进行统一的理解,以及在关联打标后做群体推荐。在体系化理解之后,将三者建立因果关系图可以解决一部分个体用户数据稀疏问题。

针对创意数据稀疏问题,我们的解决方案是当新素材上线时在线上做随机曝光。

另外一个问题是跨行业创意冷启动。比如我们发现对于天气事件的因素,不管是在各个行业里,其实大家的偏好都比较相似的,尤其是在汽车票或者火车票业务下,大家的购买习惯很相似,所以一些创意的推荐知识是可以通过刚刚提到的标签化和体系化的理解和标签关联进行迁移的。通过将不同的行业在同一知识体系下进行标签对齐,通过图卷积模型的泛化能力对知识进行一些泛化迁移。



刚刚提到的体系化理解和标准化打标主要分为三块:

一块是在用户侧,我们会去做一些场景和事件的理解;另外一块是在用户的基础属性上去做一些理解;最后是在创意这里,对一些图文的素材进行理解。最后将三者都统一标准化到标签体系之下,有助于帮助后面去建立图的关联关系。



上图为比较显性的图。其中三角符号是用户侧的一些属性,比如女性或者老人;圆形符号是对事件或者上下文的理解进行分类,比如打雷或者是晚间出行;方块符号是素材的分类。



刚刚提到的第三个挑战是样本当中存在反事实的现象,解决该问题我们想到的是用 uplift 思想,因果推断是用群体在不同的营销素材下的平均转化率去预估个体的偏好。

--

03/解决方案



结合刚提到的三类思路的解决方案,我们提出了网络结构的模型设计。首先定义问题:输入是用户的信息、上下文的信息以及创意文案的结构化信息,去做广告创意的排序打分,再去选择打分最高的创意对用户进行输出。



上图是保险创意图文推荐流程框架。

首先,前文已提到,在创意模块,我们对险种的排序或者价格的排序是不进行干预的,创意图文的排序是作为链路的最后排序逻辑。当用户请求进来时,会做四个理解。事件层面的理解,比如现在是否在下雨;场景理解,比如现在用户是多个人带着小孩,还是带着老人;还有用户基础属性的理解。在素材库也是进行刚刚提到的这种标签化的打标之后,进行素材的标签召回以及后续的素材创意的排序,在排序侧会分出一部分流量去做线上的均匀曝光。

另外一块去做创意优选的工作。创意优选工作分两路:

一路是以图片素材进行召回和粗排 ,另外一路是以文案的素材进行粗排,最后进行笛卡尔组合出来我们想要的类似创意文案的展示,最后再通过 ECUNet 去进行优先。


1. 整体结构 ECUNet



根据刚刚提到的三种解决思路,设计了 ECUNet 的解决方案。主要分为三个部分:

第一部分是基于事件感知图向量提取 ,主要是在离线侧进行预训练的过程,去给每个用户侧的信息、上下文信息或者是创意的信息进行图向量的提取;第二部分是自适应的聚类增益网络 ,这部分解决的问题是结合 uplift 思想去利用群体智慧解决个体问题;第三部分是将用户和场景、用户事件以及创意三部分的特征,通过图向量提取得到的综合向量去做两两之间的 Co-Attention,目的是为了提取他们相互之间的特性,最后去做打分。


2. EAGT:构建异构图



异构图的构建主要分两部分:一部分是节点构建,一部分是边构建。

节点构建主要是当用户样本进来之后,可以映射到三类节点:用户节点、事件节点和创意节点。当映射到三类节点之后,可以在节点和节点之间去进行边的构建。

代表的是 a 节点因为 b 的原因导致保险转化的重要性。比如说学生节点 a 在天气恶劣节点 b 的权重会高于学生节点 a 在正常天气节点权重。



根据上述方法,构建了异构图。基于该图,通过比较常规的 Node embedding 去提取每个节点的三个场景的节点表征。



主要是通过图的自监督学习的边预测的任务,loss 使用 margin-based 的 loss function,最后学习得到的是特定场景的,比如机/火/汽三个场景的节点表征。

但为了迁移不同行业的知识去融合运用到另外的一些场景行业中,我们做了 share-domain embedding 节点表征学习。比如火车票和汽车票比较相似,如果现在某条用户样本是来自于汽车票,那么火车票的场景的 embedding 也可以被加权共享给用户去使用。基于这样的假设,做了 share-domain 的表征学习。主要是将三类场景的节点表征,通过注意力机制的加权去得到 specific embedding。



通过这样的 EAGT Network 我们可以提取到三大类的节点表征。每个样本都可以得到三个大类的节点表征后,再类内取平均值,可以得到用户、事件、创意的三个节点表征,最后将用户事件联合表征和每个创意文案联合表征输入到第二部分------自适应的聚类增益网络。



利用群体智慧去预估个体的偏好,流程是以 batch 内的操作去进行的。在每个 batch 内,通过可学习的分类器将每个 batch 内用户分到 k 个大类里,希望相似的用户可以被分到同一类。在随机样本采样机制的保障之下,可以在内类的用户进行类似创意文案的投票得到内类用户到底对哪些创意文案比较感兴趣。最后用内类群体的喜好去代表个体用户的偏好,之后再对每个样本进行 re-lable。比如 G1 对第三个创意比较敏感,G2 对第二个比较敏感,内类的用户都去重新 re-lable 一次。得到 re-lable 的样本之后,再进行 MLP 的预测得到预测值。



多视角的注意力网络,主要的目的是通过三次 Co-attention 机制可以把用户和事件、事件和创意以及用户和创意两两向量之间的内在相关兴趣提取出来,作为重要的特征去进行预测。



我们在 Training 的 Loss Function 也进行了一些设计。一共设计了四个 Loss Function。

第一个 Loss Function 是 intra loss。主要是在聚类块,为了使得群体分类器能够输出一个非均匀分布的值。从这个公式可以看到我们希望让相似的用户能在某一个类上去得到一个峰值表达,而在其他的类上是比较低的表达。

第二个是用交叉熵做聚类增益网络的 Loss

第三个是全局 Loss,也是交叉熵。

最后将三个 Loss 融合到一起去做一个融合 Loss

--

04/实验和分析



我们的 Dataset 一部分是工业界的,收集来自于飞猪的 Dataset。另外一部分是天池广告创意公开的数据集。



我们也去跟业内的广告创意的排序算法,以及一些用户兴趣和跨场景学习的 Baseline 进行了比较,Metrics 主要是 AUC。



从实验数据中可以看到,我们这个网络结构设计之后,在 AUC 上有一定的提升。其中多视角的网络提升比较明显,其次是增益网络,然后是异构图网络的结构。

我们也在线上去捞了一些 Case,可以学习到用户的一些场景侧的东西。比如天气信息或长短图等场景。



我们也在线上做了一些实验,相比较于 Base2 随机模型,提升了10% ,相比较于刚刚提到的广告创意 HPM 模型,提升了 5%

--

05/总结与展望



在这个工作当中,主要有两方面创新:

**事件感知的图提取器:**当前业内对于事件感知较少去考虑,尤其是在创意推荐这个模块,我们的工作是比较创新的。通过将一些跨场景的信息,比如用户对某些险种、某些图文的偏好,或者是对于事件在跨场景之间的迁移。同时将这个事件作为一个影响节点,以图的形式将用户和创意进行关系建模。

**自适应聚类增益网络:**相比较于传统的排序问题,创意推荐是一个 Top1 的问题,面临着一些因果推断中遇到的反事实的现象。我们通过群体增益学习,也能比较好的缓解。

--

06/问答环节


Q1:如何做到事件理解和场景理解?

A1:事件理解这块主要是跟运营进行了合作。我们会在数据当中去挖掘一些,事件它其实有时候是一些不可预知的。可预知的话可以被沉淀成一个标签体系,那不可预知的话就需要我们去做一些异常检测去挖掘。

场景理解,比如在搜索场景是可以通过 Query 里面的一些意图去分析到用户这次想要去买什么,但是在保险推荐中很难在上下文信息当中获取到用户到底想要买什么保险。因此场景理解更多的是通过推理,首先是一个数据分析洞察,然后再通过一些特征,上面我们可以看到哪些场景之下对用户购买保险或者用户购买创意有一个转化效果,之后再融合到标签体系当中,主要是在标签打标这边去做一些事情。

Q2:创意文案是先做了什么形式的 Embedding?

A2:主要是以推荐的这种形式去做的,多模态在这个工作当中没有体现,我们在别的工作当中有一些工作。Embedding 刚刚也提到了主要是比如说一些 ID 类表征,或者是一些统计的表征,然后这些表征都会在这个图网络里面,最后去进行一个图节点的 Embedding。图节点 Embedding 的一个好处是可以将比如说某一类用户对一些创意文案他是有敏感的,那用户和创意文案之间,可能有一个相似的事情。

Q3:异构图网络中有对边的特殊处理吗?是否区分了不同类型的边?学习过程中是否涉及对边的表征学习和处理?

A3:关于边,我们主要是去做了一个类似于条件转化概率的处理。比如一个学生节点在天气恶劣情况之下的转化率可能会高一点。有些情况下会去做边的裁剪操作。边的表征学习没有涉及到,这块主要是在节点的学习处理。

Q4:事件文案的时效性如何?

A4:事件文案还是偏人工。因为今年在保险行业发生了比较多的事件,我们也会去看一下在每个事件之下,有多久的影响周期。大概的周期会是在一个星期到两个星期左右,所以这块的时间周期也会控制在这个范围之内。

关于文案的时效性,我们去将文案去做一个强规则绑定。比如前段时间刚刚过去的中秋,如果我们有中秋文案的话,那这个文案只会在中秋的这段时间才会生效。比如你的出发时间在中秋的这个时间段,或者是你购买的时间是中秋这个时间段,才会被召回出来,其他时间肯定不会召回出来。

今天的分享就到这里,谢谢大家。


分享嘉宾


**


本文地址:https://www.6aiq.com/article/1677567600733
本文版权归作者和AIQ共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出