目录
核心思想: 用外积来构造嵌入维度之间的pair交互。使用多层CNN来提取交互映射间的高阶交互
1 Introduction
设计CF模型的关键:
- 怎样表示用户和物品
- 怎样基于表示构造他们的交互
指出MF的局限性——使用内积:设想嵌入维度之间是独立的;每个维度对预测结果贡献相同。NCF使用多层MLP代替内积来解决这个局限,有一些模型使用用户和物品嵌入concat+多层MLP,元素对应位置相乘等。本文指出这样的设计也很少对嵌入维度间的交互进行建模。虽然MLP可以理论上可以拟合各种连续函数,但是实际情况下,维度间的交互通常很难被MLP学到。
本文使用外积构造嵌入维度之间的交互,这样的交互映射包含丰富的语义信息,能够帮助后续的非线性函数学习嵌入维度间高阶的交互。
2 Proposed Methods
提出了ONCF框架,并且实现了一个具体化实例,ConvNCF
2.1 ONCF
输入和嵌入
按照本文给的嵌入计算方式,不同field的特征嵌入直接相加得到最终的嵌入,所以嵌入是K维。而不是每个field的嵌入concat,得到field数×K的嵌入??
K,嵌入维度;M,用户特征数量;N,物品特征数量。
交互map
得到K×K的交互map——E。使用外积的好处:
- 包含矩阵分解(只看对角元素)
- 考虑不同嵌入维度之间的相关性,比MF编码了更多信号
- 比concat更有意义,concat保留了嵌入的原始信息,而没有建模任何相关性
[He and Chua, 2017;Beutel et al., 2018]文献表明,对于深度模型适应稀疏数据的问题,显式地对特征嵌入间的交互进行建模很有效,适用concat是次优的。由于E是2D矩阵,可以看做image,就可以使用CV中的先进方法。
隐藏层
目的是从交互映射中提取有用的信号
f 可以是以矩阵为输入,向量为输出的任何函数
预测层
向量为输入,输出预测分
参数空间为 P , Q , θ , w P,Q ,\theta, w P,Q,θ,w,分别为两个嵌入;隐藏层 f 的参数;预测层的参数。
采用BPR损失函数:
对于所有的训练样本对,增大 w w w 都可以扩大 y ^ p o s − y ^ n e g \hat y_{pos}-\hat y_{neg} y^