这是一篇linkedin发表的深度迁移学习综述, 里面讲了一些对于search/recommend system中的迁移学习应用. 有不少指导性的方法, 看完后摘录出来
对于ranking方向的TL, 主要有两种transfer方式:
Model transfer
-
对于参数量非常大的预训练模型, Fine-tuning 训练代价比较大, 这里基本没介绍, 不太可行.
-
更适合应用的方式是 multi-task training.(尤其是在多个产品线通过user来联系的场景)
Cross domain: 适用场景为冷启问题(新用户/新场景), 提升accuracy(减少数据稀疏性, 学到更多的健壮特征), 增强用户模型, 主要有下面这几种实现方式
-
Multi-view
-
Partial Model Sharing
-
Partial Representation Sharing
-
instance transfer
这个tutorial里主要介绍了一个selective instance transfer的方法, 主要思路是通过TL+GAN的思想来选择样本, 再通过RL的方法不断优化模型效果. 使用场景是taobao->qingtao的item推荐迁移. 需要有label的source intance和target instance, 通过这个算法来选出source instance的子集用于target domain的模型训练, 从而提升target模型效果.
这个网络主要分成三个部分:
- selector, 这个网络类似于GAN里的generator, 负责从source样本中选出与target相似的样本. 输入就是所有的source样本. 另外还有一个作用是选出可以提升TL module在验证集上
- Discriminator, 判别器, 输入的是source和target样本, 这是个二分类模型. 主要作用是尽可能区分source和target, 同时根据这个网络得到一个immediate reward, 用来指导selector选择.
- TL module, 这个部分的输入是selector选中的样本, 这部分是用来通过验证集来给一个delayed reward来指导selector, 这个module的输入是选中的source数据和target数据, 这里embedding_layer和discriminator是共享的, 上层根据不同的业务场景是不一致的, 比如推荐就可以是2层FC. 文本匹配就是DAM.