文章主要讲述DNN在矩阵分解上的应用,针对传统Matrix Factorization Object公式拟合能力的不足,提出NCF网络框架来学习user-item间的交互。
传统MF的不足
可以认为MF是基于隐式向量的线性模型
文中举了上图的简单例子证明MF的拟合能力不足,基于Jaccard来衡量用户间两两之前的相似度,用户vector $p_4$在右图中便无处安放,这便会产生ranking loss,不过用户向量是五维表示,作者在二维平面里来举例有点不妥当。
NCF框架
这是作者提出的最终网路结构
- 包含两个结构 MLP Layer($Multi-Layer Perceptron$)和 GMF Layer($Generalized Matrix Factorization$), 并对二者进行融合。
- 两个网络拥有独立的Embedding,保证灵活性和表现
- 对user和item vector同时进行了concatenate和multiply操作,特征学习比较全面
代码实现
文章提出的网络结构并不复杂,用keras实现起来很简洁,自己简单实现了一下
|
|
使用movielens进行了简单测试,效果尚可
RMSE | MAE | |
---|---|---|
NeuMF | 0.9433 | 0.7485 |
优点
- 既考虑用户和物品向量的连接,又兼顾二者的交互,模型学习能力更强
- 灵活性,DNN较于传统算法的优势,就是非常方便学习异构数据,这里可以很方便将物品和用户的id Embedding替换为用户和物品属性特征进行学习
参考
- Neural Collaborative Filtering