POSO方法的实际应用和分析思考

技术

冷启系列

近期在实际业务中通过对POSO应用和改进,取得了显著的效果。前一篇《 用户冷启POSO论文详读 》详细介绍了POSO方法, 包括其原理的推导过程,和不同模型的结合。 本文将接着上一篇,继续分享POSO的实际应用过程,包括: (1) 遇到的一些问题,(2) 对应的改进,(3) 效果的分析,(4) 其它一些思考。


目录

  • 3 实际应用
  • 3.1 实现细节
  • 3.1.1 gate激活函数
  • 3.1.2 输出期望
  • 3.2 gate优化
  • 3.2.1 gate网络
  • 3.2.2 field-wise or bit-wise
  • 3.2.3 gate输入
  • 3.2.3.1 特征均衡性
  • 3.2.3.2 特征多维度
  • 3.2.4 gate作用模块
  • 3.2.4.1 task模块
  • 3.2.4.2 attention模块
  • 3.2.5 gate梯度
  • 3.2.6 gate和MMoE的区别
  • 3.3 冷启和非冷启用户效果对比
  • 3.4 attention中的query

3 实际应用

我在工作中应用POSO的一些尝试和思考,大多是论文中没有提及的,也是大多数论文的风格,很少提到在实际应用中的一些落地经验和思考。

3.1 实现细节

POSO的代码实现很简单,只需要把对应gate的输出和模型已有输出按位相乘即可。

3.1.1 gate激活函数

POSO中gate的输出层的激活函数使用sigmoid。不同于一般gate输出会使用softmax,这种情况往往是输出维度少且需要归一化,如MMoE中task的对expert的gate。POSO中维度多,使用softmax容易导致权重集中到某些维度,这在《多目标模型结构-MMoE和实际应用思考》分析过,也容易造成每个维度的权重小,模型难学的问题。Sigmoid函数输出在0-1之间,和权重输出的要求相符,且各个维度独立,不受其他维度影响。

3.1.2 输出期望

模型中使用POSO的每层的输出,由gate输出和原有输出按位相乘,由于gate输出是经过sigmoid函数得到,其期望为0.5,因此层输出的期望也会相应缩小一倍,为了保持输出期望和原有保持一致,在按位乘后, 再乘以2,以解决期望缩放的问题

3.2 gate优化

POSO的核心在于gate的使用,实现不同,带来的效果存在很大的差异。我在具体应用过程中,对于gate做了一些优化尝试,有些有效果,有些没有明显效果。

3.2.1 gate网络

实际应用过程中,gate的网络学习的效果好坏,对整个模型效果有非常关键的作用。大多数论文在应用gate时,网络非常简单,一般是使用一层线性变化,然后接softmax或sigmoid输出。这时候gate的非线性能力弱,如果模型需要学习复杂的函数,这时候线性能力往往不够, 需要加强gate的非线性,以提高gate网络的能力,减小模型学习难度

在POSO应用过程中,gate仅使用一层线性变换,带来的效果微弱,不显著。 通过使用一层非线性变换,增加gate网络的非线性,模型带来的线上效果显著提升。

3.2.2 field-wise or bit-wise

POSO中的个性化gate可以作用于任何层,对于field-wise还是bit-wise的探索,仅限于embedding到第一层dense层这部分。

除去embedding层之外的其它层,实际含义已经消失,不存在field的概念,均使用bit-wise按位相乘,而embedding层输入给第一层dense层,embedding存在field的概念,在输入到dense层之前,是按field-wise对其相乘,还是bit-wise对其相乘,其中涉及到field信息和模型容量两个方面对模型的影响。

使用field-wise相乘,可以保留embedding的field信息,需要的参数量少,因此模型容量小,而使用bit-wise相乘,需要的参数量大,模型容量增加,两者对模型的影响来自不同方面。实验结果表明, 使用field-wise效果更好,虽然相比bit-wise的模型容量减小,但其底层保留的field信息量,可以弥补模型容量带来的损失。

3.2.3 gate输入

根据论文的思路,gate的输入是用户个性化编码相关的特征,其核心在于 需要体现用户的差异性

3.2.3.1 特征均衡性

对于非均衡分布的特征,最直观的想法则是类似是否新用户、用户活跃度之类的特征。

  1. 用户活跃度

我最初使用用户活跃度特征,没有明显效果,这里的问题可能和用户活跃度特征与用户真实活跃情况之间的gap,也就是用户活跃度的特征表达准确性的问题,而对于这类没有标准答案的特征,其准确性也很难评判,要修正特征计算也没有标准,因此换一种思路,利用uid特征。

  1. uid

使用uid特征时,我最初担心冷启用户的uid特征没学好,将其作为gate输入,模型不好学,但实验证明,我的担心是多余的,这里我的分析是, uid没学好也是一种信息,模型可以顺利捕捉到这种信息。 gate输入使用uid的效果很明显,带来了显著的线上提升。

  1. uid+用户基础信息

在应用POSO时,我还没有体会到非均衡特征的重要性,因此在gate输入为uid取得效果之后,想进一步在gate输入中加入用户基础信息,以增加模型结构对用户的个性化响应,但效果不仅没有加强,反而削弱了。

这里就体现出gate输入中,特征在总体样本中非均衡分布的重要性。

这是从宏观层面讲,而从模型具体运作角度分析,我对gate经过sigmoid在embedding层的输出做了分析,发现加入用户基础信息后, 多个维度的输出均趋向饱和,相当于这些维度已经学不出区分度。 根据此,再对gate输入的uid和基础信息的norm做分析,发现基础信息的norm是uid的norm的几个数量级,因此采用了两种思路缓解gate输出饱和的问题。

一种思路是对基础信息, 在gate输入中新学embedding,不和主网络共享 。另一种思路是 对gate输入使用Layer normlization ,两种方法对gate输出的饱和度均有所缓解,但离线训练auc始终没有gate仅使用uid高,因此就没有进行线上对比,有兴趣的朋友可以上线试一试。

在gate中使用用户基础信息,预期是想让模型学到不同基础画像用户群的个性化响应,但从实际效果看,加上均衡分布的特征后,会减弱非均衡特征所表征的个性化信息编码能力,从而导致效果变差。

3.2.3.2 特征多维度

在gate输入为非均衡特征的思路下,其不仅仅局限于用户侧,对作者侧也是可行的。用户有冷启问题,作者也有冷启问题,而且作者冷启对于内容消费场景的生态,是非常重要的。

在这种思路下,对gate的输入新增作者id,实际没有带来收益。而其他同事在另一个数据量大很多的场景,取得了相应的收益。

在gate输入中新增作者id,相当于增加了模型的学习维度,只有uid时只需要学对于用户的个性化响应,而增加作者id时,既需要学用户侧,也需要学作者侧,假设用户数量为M,作者数量为N,则 模型需要学的个性化响应数量级从M增加到M*N,模型学习难度增加

另一个场景取得效果, 和该场景数据量有关 ,数据量决定了模型的天花板。在我这个场景下,当前的数据量可能还无法支撑模型学习多维度的个性化响应,之后数据量增加到一定阶段,可以尝试。

除了数据量层面,在gate层面也可以做对应的调整,可以加强gate网络的能力,多引入一层非线性操作,这种思路也需要线上验证。

3.2.4 gate作用模块

gate可以作用于多层和多个模块,在实际使用过程中,可根据具体需要而定。

3.2.4.1 task模块

我在实际应用时,基础模型为share-bottom的多目标结构,仅针对于share bottom层做了POSO操作,而task层没有。

这种实现进行了实验对比, 在task层也加上POSO操作后,提升非常微弱,相比于新增的参数量,收益非常小, 聊胜于无,因此最终并未在task层作用。这和论文中提到的, POSO希望通过原始特征而非二手加工后的特征来加强个性化, 是吻合的。特征到task层时,经过了多层的提取,得到的是更高级的表征,其作用效果不如在底层粗糙特征时。

3.2.4.2 attention模块

attention模块也可使用POSO,我这里没有进行尝试,依据我对自己业务的仅有经验,在attention部分使用POSO,收益会非常微弱,因此就没有投入精力进行,有兴趣的朋友可以试一试。

3.2.5 gate梯度

快手在实现的时候,对gate的输入stop了梯度,相当于让模型在学习过程中,让gate适应主网络。

根据MMoE的经验,不stop梯度,天花板更高,但面临网络学习过程不稳定的问题。在POSO里,不stop梯度对模型学习难度的增加,会比MMoE更大,很大概率会出现,因为模型更难学而比stop梯度的时候,效果更差。有兴趣的朋友可以试一试。

3.2.6 gate和MMoE的区别

MMoE中也有gate,虽然两者都是学权重,但有本质差异。

MMoE的gate是学task对expert的权重,本质是学不同task的样本的重要性,是一个预期稳定的分布,因此 同一个task的不同样本,其gate分布越稳定,某种程度表示模型收敛得越好

POSO的gate是学网络参数对用户的响应,本质是学网络的个性化,是一个预期需要体现差异性的分布,因此 不同样本,其gate分布差异越大,某种程度表示模型学得越好

3.3 冷启和非冷启用户效果对比

POSO的使用,不仅对冷启用户有效果,对非冷启用户也有效果,论文中也提到了这点。这得益于模型本身的设计,其效果是模型结构对用户的个性化响应,因此不管用户是冷启还是非冷启,利用POSO都可以使模型结构产生个性化的响应。

两者效果对比,之所以冷启用户效果明显,是因为 冷启用户效果提升的空间大 ,而非冷启用户的空间小,类似于从90分到100分和从20分到60分的难度差异。

3.4 attention的query

快手使用的attention是multi-head的形式,其输入是用户行为历史除外的所有特征。我在POSO相关工作中并未对attention的query调整,而是在另一个工作中,在attention的query中加入用户基础信息特征,线上有相应的收益,但因为一些其他的原因,并未上线。

在attention的query中加入用户的一些相关特征,为什么会有效果?

这里主要和用户兴趣表征有关系。对单个用户单次推荐而言,query中不管增加user的什么信息都不影响其结果,因为对这个用户而言,query是确定的,不存在差异;但对多个用户或者用户的多次请求而言,则有差异了,因为用户的兴趣表征发生了变化。

通过在query中增加一些用户侧的信息,可以 利用基础信息的泛化,补充一些用户兴趣 ,尤其在历史行为序列长度短的情况下,用户的历史有限,表达出的兴趣也有限,而 通过具有相同特征的用户的兴趣补充,可以捕捉到由于长度限制而没有表达出来的用户兴趣。

下一篇将继续分享多目标主题之loss方向。

Reference

POSO: Personalized Cold Start Modules for Large-scale Recommender Systems https://arxiv.org/abs/2108.04690.


交流群:点击“联系作者”--备注“研究方向-公司或学校”

欢迎|论文宣传|合作交流

往期推荐

[NIPS'22「牛津+剑桥」利用迁移学习在异构空间中估计干预效果

2022-10-30

picture.image](https://mp.weixin.qq.com/s?__biz=MzkxNjI4MDkzOQ==&mid=2247493091&idx=1&sn=6fe840a1036a900f774510f67ad0e8d7&chksm=c150e6e7f6276ff1452ccedc9dc71630f9974a5db2bbe000feac1bf63f4f16d2ae7838a88d3c&scene=21#wechat_redirect)

[ICLR'23 LightGCL: 简单而有效的图对比学习推荐系统

2022-10-30

picture.image](https://mp.weixin.qq.com/s?__biz=MzkxNjI4MDkzOQ==&mid=2247493091&idx=2&sn=a46863ae97ccb97cc526a64a41f48cb6&chksm=c150e6e7f6276ff17996f4e880095f2ddd5fc52edaa40d2bcd63463cff264431d3fd304baea1&scene=21#wechat_redirect)

[深度点击率预估模型的过拟合现象剖析

2022-10-22

picture.image](https://mp.weixin.qq.com/s?__biz=MzkxNjI4MDkzOQ==&mid=2247493033&idx=1&sn=fbd1bcfce23d48bfc49845a1a1ed563c&chksm=c150e6adf6276fbb26efb8ae2d52deed5f007d52f0684dc64c1ab4641158154d6ff29edf4194&scene=21#wechat_redirect)

[「阿里」SCI:基于子空间学习的个体干预效果(ITE)估计方法

2022-10-15

picture.image](https://mp.weixin.qq.com/s?__biz=MzkxNjI4MDkzOQ==&mid=2247493011&idx=1&sn=0dfe62d281be621844cd8535139e4eb0&chksm=c150e697f6276f8105d8ad010845356ace70215a11a4d5b9e16ad8606f00e00ed5342a3460f5&scene=21#wechat_redirect)

picture.image

长按关注,更多精彩

picture.image

0
0
0
0
关于作者

文章

0

获赞

0

收藏

0

相关资源
边缘计算在视频直播场景的应用与实践
视频直播作为当前视频行业的核心场景之一,对于高清化、实时性、交互性要求较高,需要强大算力保障用户流畅观看与互动体验。本次分享主要从视频直播场景需求切入,介绍基于边缘计算的视频直播场景方案及其架构、应用与实践。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论