【持续更新】迁移学习在推荐中的应用

迁移学习在推荐领域的应用


之前在阿里实习的时候课题就是用迁移学习来赋能推荐。
首先谈谈迁移学习是什么——简单来说就是利用源域数据来解决目标域的问题。那为什么要用它——很多时候是因为目标域数据量不够或者效果不好,通过迁移学习,目标域中的数据稀疏和冷启动问题都能得到缓解。
如果对推荐算法有了解话,很快会想到ESSM和MMOE这种多任务学习的算法,确实这也是推荐场景下最广为人知的算法,多任务学习就可以认为是迁移学习的一种。除此之外,最简单的fine-tune结构属于迁移学习。
本文会持续更新我看到的一些文章或者实践,都是用迁移学习的方法提高推荐的效果。

ESMM

MMOE

MOSE

MiNet

《MiNet: Mixed Interest Network for Cross-Domain Click-Through Rate Prediction》

背景

本文做的是跨域推荐。什么叫”跨域“呢?单域也就是”游戏“只推荐”游戏“类的东西,它基于的数据也都是游戏用户本身的东西。跨域是指,我要给“鬼畜区”推荐东西,但是使用的数据不只是鬼畜区自己的,它还包括了”舞蹈区“,”数码区“,”游戏区“等其他域产生的数据。
跨域推荐实际是有一种前提的,就是基于重叠,一部分的特征也好、用户也好、物品也好,能够有一些重叠,通过重叠的部分找到两个域之间的一些关联。
目前的CTR模型主要都是解决单域推荐的问题,比如做广告的ctr预估,就只使用广告的日志来训练模型。然而,广告通常是和一些自然内容一起展示出来的,比如视频,音乐,资讯等,尽管广告的内容和自然内容差异较大,但是用户在自然内容上的浏览行为也可能会对广告点击率预估提供有用的信息,比如一个用户浏览了一些娱乐方面的资讯,那他点击游戏广告的概率就会更高。因此,这就提供了一个使用跨域推荐的机会。

模型

  1. 跨域长期兴趣。这里主要是通过用户的基本属性信息来表示⽤户内在的⻓期兴趣,⽐如20岁左右的男性⽤户可能对体育赛事或者游戏类的资讯或者⼴告⽐较感兴趣。这⾥主要做法是将⽤户ID、⽤户性别、⽤户所在地域、⽤户的⼿机设备等embedding向量进⾏拼接,输出为pu。例如⽤户ID为123,城市为北京,男性⽤户,使⽤苹果⼿机,得到的⻓期兴趣表示为:
    【持续更新】迁移学习在推荐中的应用

  2. 源域短期兴趣。给定一个用户,在每个待预估广告展示之前,用户通常都会与源域的新闻有交互记录。用户交互过得新闻的内容与待预估广告之间有关联关系,则建模用户在源域中的兴趣是很有意义的。在对序列数据进行建模时,文中的item- level attention的方法如下:
    【持续更新】迁移学习在推荐中的应用
    其中,rsi是⽤户点击的第i个新闻的embedding,qt代表⽬标⼴告,pu代表⽤户的⻓期兴趣向量,M代表transfer矩阵,将source domain的向量空间映射到target domain的向量空间。Mrsi = rsi*M

  3. 目标域短期兴趣。这个不言而喻了,就不多阐述了,简单来说就是对用户在目标域的短期行为进行建模
    【持续更新】迁移学习在推荐中的应用

  4. Interest-Level Attention。对于每个目标广告,三种用户兴趣的重要性是不一样的。如果⽬标⼴告和⽤户最近点击的⼴告相似,那么⽤户在⽬标域的短期兴趣则会起到更重要的作⽤,如果⽬标⼴告和⽤户点击过的⾃然结果和⼴告都不相似,则⻓期兴趣则会起到更重要的作⽤。

【持续更新】迁移学习在推荐中的应用
5. 辅助任务。模型还进⼀步加⼊了辅助任务,来辅助⽤户⻓期兴趣的学习,辅助任务也是点击率预估任务,主要通过⽤户的⻓期兴趣来预测⽤户对源域中⾃然结果的点击概率,最后loss加权
【持续更新】迁移学习在推荐中的应用

整体结构如下;
【持续更新】迁移学习在推荐中的应用

思考

故事讲得不错,三种兴趣分别是源长期/源短期/目标短期,使用了两层注意力,还用了辅助任务来帮助学习。辅助任务是现在很常用的一种结构,其实本文这个辅助网络就是师生网络,能够用老师来教学生预估结果。但是文本这个老师网络挺简单的,我理解就是粗排预估结果,不确定有没有更好的设计。