推荐系统论文11月组队学习

Neural Collaborative Filtering

神经网络协同过滤

PRELIMINARIES

 用深度学习模型重新审视矩阵分解模型

推荐系统论文11月组队学习_第1张图片

deep crossing模型的介绍中提到,embedding层主要作用是将稀疏向量转换成稠密向量。最终的Scoring层就是将用户隐向量和物品隐向量进行内积操作后得到相似度,相似度 就是对评分的预测,

        在实际使用矩阵分解来训练和评估模型的过程中,往往会发现模型处于欠拟合的状态。

推荐系统论文11月组队学习_第2张图片

 内积的局限性例子,p4和p1最接近,然后是p3,最后是p2;但是p4和p1靠近之后,会改变p2、p3对于p4的相似性,距离与真正相似性不符合。解决这个问题的一个方法就是增大隐表示的维度,但是会破坏模型的泛化性(个人认为就是造成过拟合),本文通过使用DNN来学习交互函数来解决这个限制。

推荐系统论文11月组队学习_第3张图片

NeuralCF 用“多层神经网络+输出层”的结构替代了矩阵分解模型中简单的内积操作。这样做的收益是直观的,一是让用户向量和物品向量做更充分的交叉,得到更多有价值的特征组合信息:二是引入更多的非线性特征让模型的表达能力更强 

推荐系统论文11月组队学习_第4张图片

 原始的矩阵分解使用“内积”的方式让用户和物品向量进行交互,为了进一步让向量在各维度上进行充分交叉,可以通过“元素积”( element-wise product,长度相同的两个向量的对应维相乘得到另一向量)的方式进行互操作,再通过逻辑回归等输出层拟合最终预测目标。NeuralCF 中利用神经网络拟合互操作函数的做法是广义的互操作形式。在介绍 PNN模型、Deep&Cross 模型的章节中,还会介绍更多可行的互操作形式。

再进一步,可以把通过不同互操作网络得到的特征向量拼接起来,交由输出层进行目标拟合。

paddle学习

负采样概念

负采样,顾名思义,就是从一堆负样本中采样出一部分负样本,用于模型的训练。之所以不采用所有的负样本,主要是为了降低模型的训练复杂度。在负采样过程中,有几个问题需要重点考虑:(1)这么多负样本中,到底需要采出哪一部分负样本呢,需要采出多少才合适呢?换句话说就是,如何保证负样本的质量?(2)还有考虑采样效率问题,比如需要采出多大数量的负样本?

在推荐系统中,用户喜欢的物品我们认为是正样本,用户不喜欢物品我们认为是负样本。而一般情况下,我们很难收集到负样本,且正样本占整个样本集又很少,所以为了更好地训练模型,我们需要进行负采样,而且从中采出一部分负例来协助模型的学习,提高模型的性能。需要注意的是,在推荐系统中,还有一个概念叫伪负样本。我们一般假设与用户交互过的物品属于正样本,未交互过的都是负样本。但是这个假设还是比较强的,用户未购买过的物品并不一定是不喜欢的,也有可能是因为用户没看到,或者是用户在未来会发生交互。这类样本我们称为伪负样本。因此,就有对应的问题需要考虑,如何避免、减少这些伪负样本的影响呢

Hitrate

召回率recall,也称为真阳率、命中率(hit rate)
反映分类器或者模型正确预测正样本全度的能力,增加将正样本预测为正样本,即正样本被预测为正样本占总的正样本的比例。值越大,性能performance越好

NDCG

NDCG的全称是:Normalized Discounted Cumulative Gain(归一化折损累计增益)

Discounted Cumulative Gain: 考虑排序顺序的因素,使得排名靠前的item增益更高,对排名靠后的item进行折损。

IDCG=最好排列的DCG

所以NDGC使用DCG/IDCG来表示,这样的话,NDCG就是一个相对值,那么不同query之间就可以通过NDCG值进行比较评估。

你可能感兴趣的:(组队学习,学习,人工智能,深度学习)