CFGAN--基于生成对抗神经网络的协同过滤推荐

欢迎关注个人微信公众号,大大大碗面,不定期分享AI论文解读和开发技术,互联网小白,轻喷~

在这里插入图片描述
本文发表在2018年的CIKM。在文章中,作者提出了一种新颖的基于生成对抗神经网络的协同过滤推荐技术,可以获得更高的推荐系统准确性。具体地;文章通过一系列方法解决了传统IRGAN存在的问题,同时针对协同过滤也进行了优化。

协同过滤推荐

协同过滤(Collaborative Filtering),是推荐算法中最为经典的类型。它通常解决以下问题:m个物品,n个用户的数据,只有部分用户和部分数据之间是有评分数据的,其它部分评分是空白,此时我们要用已有的部分稀疏数据来预测那些空白的物品和数据之间的评分关系,找到较高评分的物品推荐给用户,如下图表示:

可以将其转换成矩阵表示:

一般来说,协同过滤推荐分为三种类型。第一种是基于用户(user-based)的协同过滤,第二种是基于项目(item-based)的协同过滤,第三种是基于模型(model based)的协同过滤,我们就列举基于用户的协同过滤进行说明:

基于用户(user-based)的协同过滤主要考虑的是用户和用户之间的相似度,只要找出相似用户喜欢的物品,并预测目标用户对对应物品的评分,就可以找到评分较高的若干个物品推荐给用户。

协同过滤的缺点:

  • 数据的稀疏性:一个大型的推荐系统一般具有大量的物品(Item,Location等),用户可能买到的物品就非常少,不同用户之间买的物品重叠性较低,这样会导致无法找到一个用户的偏好相似用户。

  • 算法的复杂度较高:算法空间复杂度和时间复杂度随着用户和物品数量的增加而增加,不适合处理大量数据。

生成对抗神经网络

生成对抗神经网络(GAN:Generative Adversarial Networks)是Goodfellow在2014年提出来的,其主要灵感来自于博弈论中零和博弈的思想,应用到深度学习神经网络上来说,就是通过生成模型G(Generator)和判别模型D(Discriminator)不断博弈,进而使G学习到数据的分布,广泛应用于图像、自然语言处理领域。

  • 生成模型

以随机噪声或类别之类的控制变量作为输入,一般用多层神经网络实现,其输出为生成的样本数据,这些样本数据和真实样本一起送给判别模型进行训练,让生成的数据尽可能与真实数据相似,最小化判别模型的判别准确率。

  • 判别模型

是一个二分类器,判定一个样本是真实的还是生成的,一般也用神经网络实现,训练目标是最大化判别准确率,即区分样本是真实数据还是由生成模型生成的。当这个样本被判定为真实数据时标记为1,判定为来自生成模型时标记为0。

  • 训练过程

在训练时,两个模型不断竞争,从而分别提高它们的生成能力和判别能力随着训练的进行,生成模型产生的样本与真实样本几乎没有差别,判别模型也无法准确的判断出一个样本是真实的还是生成模型生成的,此时的分类错误率接近0.5,系统达到平衡,训练结束。

IRGAN

2017年SIGIR一篇《IRGAN: A Minimax Game for Unifying Generative and Discriminative Information Retrieval Models》,提出了GAN在信息检索领域的应用方式。信息检索的目的是针对用户输入的Query,返回给对方一个合适候选文档列表,如下图展示:

问题定义

假定我们又一些列的query{q1,…qN}并且有一系列的文档document结合{d1,…dM},对于一个特定的query,我们有一系列标记的真实相关的文档,但是这个数量是远远小于文档总数量M的。query和document之间潜在的概率分布可以表示为条件概率分布 p t r u e ( d ∣ q , r ) p_{true}(d|q,r) p

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值