本文是一篇关于多任务学习的文章。里面的设计思路非常值得借鉴,也更符合我们的直观理解。在实践中确实带来了不错的效果。
大多数现有的推荐系统仅利用一种类型的用户行为数据,例如电子商务中与转化率的业务关键绩效指标(KPI)直接相关的购买行为。除了关键的行为数据外,作者认为其他形式的用户行为也提供了有价值的信号,如浏览、点击、向购物车添加产品等。为了向用户提供质量建议,应适当考虑它们。
为了充分利用多个行为数据中的信号,作者基于多任务学习框架进行联合优化,将一个行为的优化视为一项任务。
在两个真实数据集上进行的大量实验表明,NMTR显著超出了根据单行为数据和多行为数据设计的艺术推荐系统的状态。进一步的分析表明,对多个行为进行建模对于为很少交互的稀疏用户提供推荐特别有用。
背景
大多数现有的推荐系统只会用到用户单一类型的行为数据,例如在电子商务中的我们可能只会使用到用户购买的行为数据。但是我们认为其他类型的用户行为数据也可以提供非常有价值的信号,例如单击,加购等。本文对此提出了一种新的解决方案NMTR(Neural Multi-Task Recommendation)来学习用户的多行为数据。
在现有的诸多模型中, 大家都尝试挖掘用户的其他行为数据,例如ESMM等,用到了用户的点击行为来辅助我们CVR等任务的学习; 本文所述的方法在很多实践中也都有所验证,例如Zohar Komarovsky的博客中也谈到了类似的实践经验。
这篇文章的核心思想是:
- 采用MTL的方式从用户的多行为数据中进行建模;
- 为了捕捉用户的行为关系,采用级联(Cascaded way)的方式进行构建;
问题定义
输入:目标行为的用户产品交互数据;其他行为的交互数据;
输出:估计用户与产品之间的交互概率;
模型框架
该模型的核心框架如下:
1. Embedding共享层
很诸多问题一样,此处我们共享Embedding层, 我们令和分别表示用户和商品的one-hot特征向量,于是我们的embedding层就是:
2. 分开的交互函数
我们使用交互函数来表示第 th 行为,用户与物品在第 th 行为上的交互为:
3. 级联预测
多个用户行为之间存在顺序关系,不是独立的。为了将这种顺序关系描述到当前模型中,我们将不同行为的预测级联得到:
其中表示商品在第个行为的bias; 表示第个行为的交互函数。
4. 目标函数
我们最终优化的目标函数如下:
实验
实验部分主要回答以下三个问题:
- NMTR和推荐系统目前最流行的方法比是否可以获得更好的效果?
- 这些辅助行为如何影响NMTR的效果?
- NMTR是否可以帮助我们解决数据稀疏的问题(即:提升对于交互信息较少的用户的推荐效果)?
NMTR的实验效
从上面的图上,我们发现NMTR在HR@K和NDCG@K的效果是最好的,NMTR-GMF和NMTR-NeuMF比NMTR-MLP要更好。
和最佳的单行为的baseline NeuMF,NMTR的效果在Beibei数据集上的效果在HR上要好了9.01%,在NDCG的数据集上要好了6.72%。
辅助行为的影响
一个直观的方法是:一个直观的实验是在我们使用的数据集中随机抽取辅助行为,同时保持目标行为(即购买)的完整性。
从以上结果,我们发现:
- 增加view的数据可以获得比carts更好的结果; (carts中带有非常多和购买相似的信息)
- 只使用50%的cart和view的交互,我们发现性能比前两个实验差。具体地,(购买,50%购物)的性能比只使用购买要差,而(购买,50%观看)比只使用购买要好。主要有两个原因。一方面,视图是反映用户偏好的最弱信号,视图的总数非常大,使得部分视图数据的缺失是可以接受的。因此,一些视图记录的缺失不会对结果造成太大的影响。另一方面,车辆记录的随机缺失会带来一些噪音。
数据稀疏的影响
- 当用户购买的数据变得越加稀疏,NMTR-NeuMF推荐的效果相较于其他的模型下降更慢;
- NMTR可以缓解数据稀疏的问题
概括
本文阐述了对多个用户行为建模的一种方法,目前这种级联的方式在很多公司CTR/CVR相关的Cotrain模型上也都取得了不错的效果。这种将相关任务的输出作为下一个任务的输入的方式在很多搜索推荐的博客中也有提及,是非常不错的一种建模方式。
文章出处登录后可见!