保险的创意推荐面临的挑战,可以总结为三大类:
第三类是跨行业的创意冷启动。飞猪保险横跨了多个行业,在启动新行业的介入的时候,如何复用已有领域的知识,比如将行业A效果好的一些创意迁移到行业B,也是我们后面要去解决的问题。
再简单介绍一下业界现状。
针对创意数据稀疏问题,我们的解决方案是当新素材上线时在线上做随机曝光。
另外一个问题是跨行业创意冷启动。比如我们发现对于天气事件的因素,不管是在各个行业里,其实大家的偏好都比较相似的,尤其是在汽车票或者火车票业务下,大家的购买习惯很相似,所以一些创意的推荐知识是可以通过刚刚提到的标签化和体系化的理解和标签关联进行迁移的。通过将不同的行业在同一知识体系下进行标签对齐,通过图卷积模型的泛化能力对知识进行一些泛化迁移。
刚刚提到的体系化理解和标准化打标主要分为三块:
一块是在用户侧,我们会去做一些场景和事件的理解;另外一块是在用户的基础属性上去做一些理解;最后是在创意这里,对一些图文的素材进行理解。最后将三者都统一标准化到标签体系之下,有助于帮助后面去建立图的关联关系。
上图为比较显性的图。其中三角符号是用户侧的一些属性,比如女性或者老人;圆形符号是对事件或者上下文的理解进行分类,比如打雷或者是晚间出行;方块符号是素材的分类。
刚刚提到的第三个挑战是样本当中存在反事实的现象,解决该问题我们想到的是用uplift思想,因果推断是用群体在不同的营销素材下的平均转化率去预估个体的偏好。
上图是保险创意图文推荐流程框架。
首先,前文已提到,在创意模块,我们对险种的排序或者价格的排序是不进行干预的,创意图文的排序是作为链路的最后排序逻辑。当用户请求进来时,会做四个理解。事件层面的理解,比如现在是否在下雨;场景理解,比如现在用户是多个人带着小孩,还是带着老人;还有用户基础属性的理解。在素材库也是进行刚刚提到的这种标签化的打标之后,进行素材的标签召回以及后续的素材创意的排序,在排序侧会分出一部分流量去做线上的均匀曝光。
另外一块去做创意优选的工作。创意优选工作分两路:
一路是以图片素材进行召回和粗排,另外一路是以文案的素材进行粗排,最后进行笛卡尔组合出来我们想要的类似创意文案的展示,最后再通过ECUNet去进行优先。
根据刚刚提到的三种解决思路,设计了ECUNet的解决方案。主要分为三个部分:
第一部分是基于事件感知图向量提取,主要是在离线侧进行预训练的过程,去给每个用户侧的信息、上下文信息或者是创意的信息进行图向量的提取;第二部分是自适应的聚类增益网络,这部分解决的问题是结合uplift思想去利用群体智慧解决个体问题;第三部分是将用户和场景、用户事件以及创意三部分的特征,通过图向量提取得到的综合向量去做两两之间的Co-Attention,目的是为了提取他们相互之间的特性,最后去做打分。
异构图的构建主要分两部分:一部分是节点构建,一部分是边构建。
节点构建主要是当用户样本进来之后,可以映射到三类节点:用户节点、事件节点和创意节点。当映射到三类节点之后,可以在节点和节点之间去进行边的构建。
边代表的是a节点因为b的原因导致保险转化的重要性。比如说学生节点a在天气恶劣节点b的权重会高于学生节点a在正常天气节点权重。
根据上述方法,构建了异构图。基于该图,通过比较常规的Nodeembedding去提取每个节点的三个场景的节点表征。
主要是通过图的自监督学习的边预测的任务,loss使用margin-based的lossfunction,最后学习得到的是特定场景的,比如机/火/汽三个场景的节点表征。
但为了迁移不同行业的知识去融合运用到另外的一些场景行业中,我们做了share-domainembedding节点表征学习。比如火车票和汽车票比较相似,如果现在某条用户样本是来自于汽车票,那么火车票的场景的embedding也可以被加权共享给用户去使用。基于这样的假设,做了share-domain的表征学习。主要是将三类场景的节点表征,通过注意力机制的加权去得到specificembedding。
通过这样的EAGTNetwork我们可以提取到三大类的节点表征。每个样本都可以得到三个大类的节点表征后,再类内取平均值,可以得到用户、事件、创意的三个节点表征,最后将用户事件联合表征和每个创意文案联合表征输入到第二部分——自适应的聚类增益网络。
利用群体智慧去预估个体的偏好,流程是以batch内的操作去进行的。在每个batch内,通过可学习的分类器将每个batch内用户分到k个大类里,希望相似的用户可以被分到同一类。在随机样本采样机制的保障之下,可以在内类的用户进行类似创意文案的投票得到内类用户到底对哪些创意文案比较感兴趣。最后用内类群体的喜好去代表个体用户的偏好,之后再对每个样本进行re-lable。比如G1对第三个创意比较敏感,G2对第二个比较敏感,内类的用户都去重新re-lable一次。得到re-lable的样本之后,再进行MLP的预测得到预测值。
我们在Training的LossFunction也进行了一些设计。一共设计了四个LossFunction。
第一个LossFunction是intraloss。主要是在聚类块,为了使得群体分类器能够输出一个非均匀分布的值。从这个公式可以看到我们希望让相似的用户能在某一个类上去得到一个峰值表达,而在其他的类上是比较低的表达。
第二个是用交叉熵做聚类增益网络的Loss。
第三个是全局Loss,也是交叉熵。
最后将三个Loss融合到一起去做一个融合Loss。
从实验数据中可以看到,我们这个网络结构设计之后,在AUC上有一定的提升。其中多视角的网络提升比较明显,其次是增益网络,然后是异构图网络的结构。
我们也在线上去捞了一些Case,可以学习到用户的一些场景侧的东西。比如天气信息或长短图等场景。
在这个工作当中,主要有两方面创新:
事件感知的图提取器:当前业内对于事件感知较少去考虑,尤其是在创意推荐这个模块,我们的工作是比较创新的。通过将一些跨场景的信息,比如用户对某些险种、某些图文的偏好,或者是对于事件在跨场景之间的迁移。同时将这个事件作为一个影响节点,以图的形式将用户和创意进行关系建模。
自适应聚类增益网络:相比较于传统的排序问题,创意推荐是一个Top1的问题,面临着一些因果推断中遇到的反事实的现象。我们通过群体增益学习,也能比较好的缓解。
A1:事件理解这块主要是跟运营进行了合作。我们会在数据当中去挖掘一些,事件它其实有时候是一些不可预知的。可预知的话可以被沉淀成一个标签体系,那不可预知的话就需要我们去做一些异常检测去挖掘。
场景理解,比如在搜索场景是可以通过Query里面的一些意图去分析到用户这次想要去买什么,但是在保险推荐中很难在上下文信息当中获取到用户到底想要买什么保险。因此场景理解更多的是通过推理,首先是一个数据分析洞察,然后再通过一些特征,上面我们可以看到哪些场景之下对用户购买保险或者用户购买创意有一个转化效果,之后再融合到标签体系当中,主要是在标签打标这边去做一些事情。
A2:主要是以推荐的这种形式去做的,多模态在这个工作当中没有体现,我们在别的工作当中有一些工作。Embedding刚刚也提到了主要是比如说一些ID类表征,或者是一些统计的表征,然后这些表征都会在这个图网络里面,最后去进行一个图节点的Embedding。图节点Embedding的一个好处是可以将比如说某一类用户对一些创意文案他是有敏感的,那用户和创意文案之间,可能有一个相似的事情。
A3:关于边,我们主要是去做了一个类似于条件转化概率的处理。比如一个学生节点在天气恶劣情况之下的转化率可能会高一点。有些情况下会去做边的裁剪操作。边的表征学习没有涉及到,这块主要是在节点的学习处理。