嘿,记得给“机器学习与推荐算法”添加星标
炼丹笔记·干货
本文是一篇多任务学习的文章, 里面的设计思路非常值得借鉴,也较为符合我们的直观理解,实践中也确实带来了不错的效果。
大多数现有的推荐系统只会用到用户单一类型的行为数据,例如在电子商务中的我们可能只会使用到用户购买的行为数据。但是我们认为其他类型的用户行为数据也可以提供非常有价值的信号,例如单击,加购等。本文对此提出了一种新的解决方案NMTR(Neural Multi-Task Recommendation)来学习用户的多行为数据。
在现有的诸多模型中, 大家都尝试挖掘用户的其他行为数据,例如ESMM等,用到了用户的点击行为来辅助我们CVR等任务的学习; 本文所述的方法在很多实践中也都有所验证,例如Zohar Komarovsky的博客中也谈到了类似的实践经验。
本文的核心思想就是:
问题定义
我们令 来表示用户和商品的R种行为交互矩阵,每个矩阵都是 的, 其中 表示用户的个数, 表示商品的个数, 其中,
现实生活中,很多行为存在顺序关系,例如点击 -> 加购 -> 支付, 我们假设:
其中 是我们最终需要优化的行为目标。例如在电商中的购买行为,而其它的行为则可以是:点击,加购等等。
输入:目标行为的用户商品交互数据; 其他行为的交互数据 ;
输出:预估用户 和商品 的交互概率;
模型框架
模型的核心框架如下:
跟诸多问题一样,此处我们共享Embedding层, 我们令 和 分别表示用户 和商品 的one-hot特征向量,于是我们的embedding层就是:
其中 和 表示用户和商品的embedding矩阵。
我们用 表示第 个行为的交互函数, 用户 和商品 在第 个行为上的交互为:
其中 表示sigmoid函数,将我们的输出转变为概率.
用户的多个行为之间是存在顺序的联系的,并非是独立的, 为了将这种序列关系刻画到目前的模型中,我们将不同的行为的预测级联起来得到:
其中 表示商品 在第 个行为的bias; 表示第 个行为的交互函数。
我们使用 来控制第 类行为的影响。此外,为了方便调参,我们令 。TUI
实验部分主要回答下面三个问题:
NMTR的实验效果
从上面的图上,我们发现NMTR在HR@K和NDCG@K的效果是最好的,NMTR-GMF和NMTR-NeuMF比NMTR-MLP要更好。
和最佳的单行为的baseline NeuMF,NMTR的效果在Beibei数据集上的效果在HR上要好了9.01%,在NDCG的数据集上要好了6.72%。
辅助行为的影响
一种直觉的做法是:一个直观的实验是随机抽样我们使用的数据集中的辅助行为,同时保持目标行为(即购买)的完整性。
从上面的结果来看,我们发现:
数据稀疏性的影响
本文阐述了对多个用户行为建模的一种方法,目前这种级联的方式在很多公司CTR/CVR相关的Cotrain模型上也都取得了不错的效果。这种将相关任务的输出作为下一个任务的输入的方式在很多搜索推荐的博客中也有提及,是非常不错的一种建模方式。
由于公众号试行乱序推送,您可能不再准时收到机器学习与推荐算法的推送。为了第一时间收到本号的干货内容, 请将本号设为星标,以及常点文末右下角的“在看”。