推荐系统之Co-action Network理解与实践

billy
billy
billy
8
文章
0
评论
2020-12-2213:12:00 评论 1,398 1864字
摘要

在推荐系统中,Co-action指多个特征相互关联,共同影响最终输出,同时共同影响最初的输入。基于端到端Embedding+NN这种典型的推荐深度模型训练结构,以用户最近阅读关键词和文章关键词这两个特征为例,模型会学习出现在这两个特征下面的所有特征值的embedding。

在推荐系统中,Co-action指多个特征相互关联,共同影响最终输出,同时共同影响最初的输入。基于端到端Embedding+NN这种典型的推荐深度模型训练结构,以用户最近阅读关键词和文章关键词这两个特征为例,模型会学习出现在这两个特征下面的所有特征值的embedding。embedding输入全连接+多层非线性映射NN网络,显然这两个特征已经在NN层被隐性的交叉了,同时这种隐性的交叉随着梯度后向传播会影响原始特征值embedding的更新,这里已经出现了Co-action现象。由于隐性的交叉参与方太多(在输入层为全部输入特征的embedding),不能保证合适的匹配信息能够很好的被NN网络利用和学习,很自然的想到可以在数据当中增加交叉特征或者在NN层显性地对相关特征进行交叉,前者最终会对交叉特征值学习单独的embedding,后者没有增加交叉特征的embedding,只是交叉效果会反作用到原始特征的embedding学习之上,这里Co-action现象就很明显了。

Co-action现象使得预设的目标不能很好的达成,个人前期在实践当中也尝试过不少NN层面的交叉结构,大多效果不符合预期,NN层面的交叉,如果不涉及到独立交叉特征embedding的学习,就是伪交叉。当然我们做了不少手工交叉特征工程工作,线上也取得了不少收益,但是将特征交叉工作放到数据层面的问题也很明显,一个是特征离散化后的交叉特征值会急剧膨胀,存储、训练和serving的成本和压力会增大很多,二是大部分交叉特征值非常稀疏,这部分特征值embedding的学习非常困难,其实这部分特征值在后面可能根本就利用不到甚至在模型保存阶段就被过滤掉了,但是由于Co-action作用,可能使得这部分特征参与训练后对模型整体的影响为负。

推荐排序深度模型演进及特征与模型关系思考 一文当中,有提到模型层面的很多工作可以由特征工程替代,比如将用户的行为按时间做更细粒度的划分,可以刻画用户行为时间与用户兴趣的关系,将用户对不同Item行为的频率作为特征,可以刻画用户行为频率与用户兴趣的关系,将Item主要特征和用户历史行为Item特征交叉,可以直接刻画用户行为与Item的联系,将DIN或者DIEN想要达成的目的转化为特征作为信息输入是可行的。反过来,特征工程层面的工作其实在模型层面也是可以完成的,比如FM就可以模拟两两特征交叉的工作,而且FM从数学层面上将交叉的理论也给完备了。DNN模型做特征层面的交叉理论上就差点意思了,只能泛泛地从最终目标上去理解DNN模型,那就是通过梯度下降方法更新embedding和NN参数,使得模型输出和实际值的差距最小,所以这就无法在NN层面从理论上处理Co-action问题。

想想我们做特征交叉目的以及希望避免的问题,前者是希望学习独立的交叉特征的embedding,后者是希望避免特征稀疏性,这不就是FM解决了的问题吗?那么如何将DNN与FM结合起来,显然不是DeepFM,因为DeepFM也存在严重的Co-action问题,需要思考一种新的方式将两者进行结合,这也是阿里提出的CAN模型 [3] 的核心。参考Google提出的NIS模型变长embedding思想 [2],结合既有的训练框架,只需在待交叉的特征既有embedding的基础上开辟一组新的embedding空间,这组embedding主要服务于特征交叉。说白了,就是将想要交叉的特征embedding维度变长,分一部分出来用于特征交叉的前后向传播,至于这部分embedding如何做交叉,可以是文章[2]中所述的待交叉特征embedding分别作为input和参数构成MLP的形式,也可以是直接输入MLP的形式,也可以是内积、外积的形式,个人觉得差别不是很大。我选择直接将待交叉特征的embedding输入小的MLP网络,这种方式够简洁优雅,不用对输入做升阶处理,也不用做复杂的reshape处理。

在我们的业务中,可以选择的交叉特征有"用户最近阅读关键词-文章关键词、用户最近阅读的文章类别-文章类别、用户最近正面反馈的类别-文章类别、用户最近阅读的文章ID-文章ID"等,在非常粗糙的一版实现中,已经显示出一定的离线收益,对于我这种不怎么热衷于手工特征工程的人来说,这会是特征交互的一条新路吗?还是比较期待的!

End.爱数据网专栏作者:billlee专栏名称:推荐系统工业实践专栏简介:介绍工业界最前沿的推荐系统架构、模型及相关实战指南个人公众号:比尔的新世界

  • 我的微信公众号
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: