阿里飞猪推荐算法探索实践( 三 )


阿里飞猪推荐算法探索实践

文章插图
 
整个网络结构如上图所示 。我们的四个网络分别对应到图上的y1到y4,另外,我们还有三个相应的损失函数 。比如说从曝光到DAction的概率就是y1×y2,就是两个网络输出结果的乘积,它的label是用户是否发生DAction这样的行为 。同理,购买的概率值就是y1[y2y3+(1−y2)y4],它的label是用户是否发生购买行为 。损失函数就是基于预估值和真实label给定义出来的;我们拿到了Loss1到Loss3后,就可以通过梯度回传的方式,对相应的embedding做一些更新,同时也能得到y1到y4的值 。得到y1到y4之后,pCTR和pCVR也就得到了 。
⑥ ESM^2模型优化思路:
阿里飞猪推荐算法探索实践

文章插图
 
我们可以想想用户在手淘商品详情页上可能发生的行为 。我们可以把这些行为分为两类,一类就是以商品粒度作为最小单元 。比如说用户点击了某商品,这种行为叫宏观行为 。同时还会有微观行为 。比如用户可能会点击商品详情页上的一些控件button,比如点击了和卖家聊天这个button、点击了查看评论这个button等,经过分析,这样的控件点击行为也和我们的购买行为存在一定的强关联性的 。基于这样考虑,我们把模型ESM^2进行了升级,提出了HM^3,该工作发表在SIGIR2021上 。
4. 基于全空间的CVR预估—HM^3模型
阿里飞猪推荐算法探索实践

文章插图
 
HM^3模型的架构和ESM^2模型架构差不太多,只是在宏观行为之前,又引入了一层微观的行为 。并根据引入的微观行为去进一步指导宏观行为的建模,进而间接影响对最终目标购买的建模 。
同样的,微观行为和宏观行为各分为两个互不相交的集合,这样从点击到购买,就进一步拆解成了图中的左上部分 。
那么,针对这个图,接下来该怎么去建模CVR呢?同样的道理,我们把相应路径上的概率标出来,比如从点击到D_Micro节点的概率是y2,相应的从点击到O_Micro节点的概率就定义成1-y2 。另外,我们可以基于y1到y6这6个概率值,定义出四个基于全空间的辅任务 。比如,从曝光到点击,从曝光到D_Micro,从曝光到D_macro,从曝光到购买 。这样,pCVR就等于{y4[y2y3+(1-y2)y5]+y6[y2(1-y3)+(1-y2)(1-y5)]} 。
02飞猪推荐算法探索
接下来对飞猪的推荐算法做一个简要的分享 。
1. 旅行推荐的背景
① 旅行状态下用户生命周期
阿里飞猪推荐算法探索实践

文章插图
 
我们把旅行状态下的用户生命周期分为了四个阶段 。
激发需求
首先要有一个需求的激发 。比如,你身边有朋友向你推荐他去过的某个好玩的地方,那么你也有可能会去,因为你对朋友推荐的那个地方也感兴趣;又或者你在刷抖音、小红书、或一些旅行App时,相关的视频或内容可能也会对你起到种草的作用 。总之,可能会存在多种不同的渠道激发出你的旅行需求 。
行前
当你有了这样的旅行需求之后,接下来要怎么做?大概率会在像飞猪这样的APP上做相应的攻略,这个阶段叫行前 。这个时候你会去找目的地相关的一些酒店,选择相应的出行方式,是坐火车还是坐飞机去?然后你也可能会关注下当地的旅行攻略,比如提前看看当地景点门票啥的 。当你综合考虑了各种信息之后,你会做一个你认为的最优的决策,例如,选择什么样的交通方式,入住当地什么类型的酒店,玩哪些好玩的景点等 。
行中
当你完成上述的行前准备工作后,接下来乘坐相应的交通工具到达了目的地,这时的状态叫做行中 。此时你会更多地关注两方面的内容,一方面就是当地是否还有一些热门的景点是你感兴趣的;另一方面你也可能会关心目的地周边的玩乐等 。这时,如果用户打开飞猪app,我们的推荐算法也会结合你此时正处于行中状态去推荐一些当地热门景点门票或周边玩乐等
行后
行中状态结束之后,就是行后了 。此时,用户会对这次旅行做出相应的反馈,例如,对此次行程是否满意等;同时,如果后续有新的旅行需求被激发,用户又将开启新一轮的旅行周期 。
② 旅行周期中飞猪app的应用
阿里飞猪推荐算法探索实践

文章插图
 
当用户打开飞猪APP时,如果此刻用户的需求特别明确,例如是要订机票、火车票,或酒店等,那么用户会去点击相关的金刚,例如,在金刚内部,通过机票/酒店的搜索等完成用户的需求 。另一方面,如果用户需求不太明确时,他会一直下翻,此时最底部的无穷feeds流猜你喜欢模块,会去承接用户此时偏“逛”的需求 。


推荐阅读