【干货】IRGAN :生成对抗网络在搜狗图片搜索排序中的应用

来源:8层会议室-知乎专栏

https://zhuanlan.zhihu.com/p/31373052

一:背景

2014年,GAN之父Ian Goodfellow在一篇文章《Generative Adversarial Nets》 中提出对抗生成网络(GAN),一时引起轰动。自此之后,许多专家学者投身于Gan理论研究与探索,并在多个领域取得丰硕成果。比较有名的是在图像上的应用,其中以图生图,任务可以简单理解为通过对真实图像进行学习,让计算机生成逼真的图像。还有的学者试图探索Gan在自然语言处理方面的应用,比如以文生文,即文本生成被应用于chatbot,还有以文生图,以图生文等任务场景。

2017年Sigir 一篇《IRGAN: A Minimax Game for Unifying Generative and Discriminative Information Retrieval Models》, 提出了GAN另一种可能的应用,那就是信息检索。信息检索的目的就是针对用户输入的Query,返回给对方一个合适候选文档列表。论文将目前IR领域的研究分为两大流派,一种是经典的思维流派,主要的思想是产生一个用户查询与文档之间的关联分布,并通过建立统计学习模型得到综合打分,给出合适的检索结果。一种是现代流派,现代流派通过利用机器学习思想,将IR任务转化为学习排序任务。可以看到近几年各大排序模型被相继提出,逐渐形成一个体系,笔者另一篇文章《Learning To Rank 研究与应用》中,主要阐述的就是现代流派中主流的检索排序算法。

前面提到的两大流派都有各自的优势,也有各自的缺点。IRGAN的作者做了一种尝试,就是将两种流派思想分别对应到GAN模型学习的生成器与判别器上,试图相互补充。

毕竟是17年Sigir满分论文,还是满怀期待的读了好几遍,也相应的做了一些实验探索,后面将介绍一下对于笔者对于原理的理解以及实践心得。

二:原理

首先关于GAN本身的原理,大致如下面的框图。

下面重点讲下IRGAN的思想。

论文利用GAN思想中的博弈论原理,将任务变换成模型极大极小算法求解问题。假定对于某个查询来说,有一批已经确定符合查询结果的文档列表,暂且称它们为已观测正样本,其实就是有标签数据。对于其他的返回的候选结果,称它们为未观测样本,就是无标签数据。

生成模型作用:从给定的查询候选池中选择最接近已观测样本分布的未观测样本。这里要特别说明一下,其实在GAN的原理里面,生成样本是通过学习已知样本的分布,去真正生成一个样本。而在LTR-GAN任务中,则通过对学习选择那些最优的未观测样本来作为生成样本,也就是说,这个生成的样本本身已经存在,只是之前没有标签而已。这是由排序任务特定场景造成的。

所以生成模型主要的优化目标就是最小化已观测样本与生成样本之间的差距。

判别模型作用:对于给定的样本集合,尽量准确的区分已观测样本与未观测样本。所以优化的目标就是最大化已观测样本和生成样本之间的差距。当然这些未观测样本中可能有正样本,可能有负样本。

所以综合上面两个模型特点,最终的优化目标是:

论文列出了pointwise和pairwise两种情形,区分就是判别器和生成器的目标从针对Query对应的Doc变为了针对Query 对应的Doc pair。因此pairwise的总优化目标为:

其中,o表示真实的非对称二元组,而 o’则表示生成式IR模型生成的二元组。

最终的训练过程如下:

首先预训练一个初始的生成器,在提供的代码里面主要是利用log 排序判别器学习动态负样本抽样。

有了这个预训练的生成器模型作为初始化模型,进行生成器和判别器的迭代训练。若干轮之后,得到最终的模型。最终判别模型和生成模型都可以拿来作为最终排序模型,具体看不同的任务效果。在IR检索任务背景下,判别模型的效果要好一些。

作者还用了小球漂浮的例子说明GAN的排序机制,但我觉得这种比喻反而更让人难懂。

是这样类比的,判别器就像是一个打压工具,生成器就像是水平面,不同样本像是不同浮力的泡泡。在有标签正样本和无标签正样本之间有一条隐形的连接线。判别器试图打压漂浮起来的泡泡,而生成器则给他们各自一个浮力,虽然判别器打压未观测的正样本在水平面以下,但是生成器会尽量保证这些未观测正样本在未观测负样本的上面。

三:实战

最开始是用论文公开的数据集做实验,即半监督数据集,论文中用的数据集大小为784个Query,每个Query 有5个正样本,以及1000个未标注样本。训练集和测试集的比例是4:1。这里说一点,与LTR任务中不同的是,不再对文档进行3分制,或5分制这样区别,而是用了2分制,意思就是打分大于0 的,统一为正样本,小于或等于0 ,以及没标签的的,统一为负样本。

参照着论文里面的数据集构造方式训练了一把。发现最终训练的结果指标与论文出入不大,确实如论文所说,评测指标要超过Lambdamart。

接下来就是利用自己的真实检索数据进行了实验,主要分为四个实验。

第一个实验就是pairwise和pointwise的效果比对。

数据集规模为:

这里要说明下,Tes1 和Test2的区别就是Test1 是Test2的子集,Test1的所有样本都是有标签的,Test2比Test1多了无标签数据,。在我们的检索系统中每个查询返回结果数目都很大,如果全部拿来做训练,会非常耗时,因此采用抽样的策略,首先考虑到top结果的相关性更重要,且比较难以区分,因此这部分无标签是从每个查询返回结果的top中随机抽样500个。

在测试集上的效果为:

最后评测用的模型是判别模型,可以看到在Test1和Test2 上,PairWise效果略好于PointWise,但是发现一个有意思的问题,那就是Lambdamart在两个数据集上出现相反的状态。在Test1这个有监督数据集上,LambdaMart是明显胜出的,在Test2 这个半监督数据集上则落败。

原因就是半监督数据集上将所有无标签数据都当做负样本来对待,而Gan模型就是利用半监督数据去训练的,LambdaMart的训练都是在有监督数据集上进行的,所以Gan在半监督上表现好,而LambdaMart在有监督上表现好。这就涉及到一个问题,即把无标签数据都当做负样本进行评测有没有意义。目前在我这份数据集上来看,这样做肯定是不行的,因为最终的排序效果并不如LambdaMart。

所以分析是否为数据抽样的问题导致,考虑无标签数据都是从top结果中选择的,而top结果有可能一大部分都是正样本,可能导致整个训练方向出现问题。因此,又做了第二个实验,调整抽样策略。

可以看出无标签数据的选择对结果影响比较大,NDCG@5从0.825提升到0.8489。因此选择第三种抽样方式的效果作为GAN模型最终的而效果。

第三个实验:训练LR Pointwise排序模型进行对比。

实验结果:在同等训练集数量情况下,LR ndcg@5达到 0.837

将LR训练集扩大10倍,即由之前的4k Query扩大到4W Query,ndcg@5效果提升到0.8483。

可以看到Gan模型仅用了LR模型 1/10的有标签数据,达到的效果反而略好。

然而这个值仍然比LambdaMart 测试效果0.851 略低,虽然尝试对第三种抽样方式再做多种优化,结果从0.8489 提升到0.850,接近LambdaMart,但没超越。

因此Gan模型在笔者实验条件下未达到预期的效果。

第四个实验:考虑将Gan模型作为一种特征融合策略,加入到LTR训练中。

经实验验证,在Test1上加入Gan特征后,LambdaMart排序效果有显著提升。具体实验细节感兴趣的可以回复交流,不作细讲。

四:结语

Gan在IR上的的试水为这方面的研究者打开了一扇门,虽然几组结论验证IRGAN仍没达到期盼的效果,但是论文提供代码中用到的Gan模型仍是相对简单的,还有很大的优化空间。论文最可贵的是提出的一种排序对抗思想,即将经典流派与现代流派相结合。

特别提示-GAN资料下载:

请关注专知公众号

  • 后台回复“GAN” 就可以获取资料下载链接~

原文发布于微信公众号 - 专知(Quan_Zhuanzhi)

原文发表时间:2017-11-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏SIGAI学习与实践平台

基于内容的图像检索技术综述 传统经典方法

原创声明:本文为 SIGAI 原创文章,仅供个人学习使用,未经允许,不得转载,不能用于商业目的。

2837
来自专栏AI研习社

硅谷网红从基础教深度学习中的数学,视频演示不可错过

Siraj Raval 作为深度学习领域的自媒体人在欧美可以说是无人不知、无人不晓。 凭借在 Youtube 上的指导视频,Siraj Raval 在全世界吸...

5109
来自专栏新智元

Andrej Karpathy 最新演讲:计算机视觉深度学习技术与趋势 (104PPT)

2016年10月18日, 世界人工智能大会技术分论坛,特设“新智元智库院长圆桌会议”,重量级研究院院长 7 剑下天山,汇集了中国人工智能产学研三界最豪华院长阵容...

4048
来自专栏红色石头的机器学习之路

台湾大学林轩田机器学习基石课程学习笔记14 -- Regularization

上节课我们介绍了过拟合发生的原因:excessive power, stochastic/deterministic noise 和limited data。并...

2570
来自专栏新智元

谷歌新 AI 实验室主管 Hugo 深度学习教程:神经网络、CV、NLP 难点解析

【新智元导读】 11月22日,谷歌在蒙特利尔的现有办公室开设了一个全新的深度学习和人工智能研究小组。新团队将作为位于山景城的 Google Brain 团队的远...

3605
来自专栏CreateAMind

通俗|令人拍案叫绝的Wasserstein GAN 及代码(WGAN两篇论文的中文详细介绍)

在GAN的相关研究如火如荼甚至可以说是泛滥的今天,一篇新鲜出炉的arXiv论文Wassertein GAN 却在 Reddit 的 Machine Learni...

1824
来自专栏人工智能LeadAI

从CVPR2017 看多样目标检测

1、导读 When you have trouble with object detection, keep calm and use deep learnin...

4735
来自专栏深度学习与数据挖掘实战

干货|GAN for NLP (论文笔记及解读)

GAN 自从被提出以来,就广受大家的关注,尤其是在计算机视觉领域引起了很大的反响。“深度解读:GAN模型及其在2016年度的进展”[1]一文对过去一年GAN的进...

6114
来自专栏CDA数据分析师

【干货】数据挖掘的10大分析方法

1.C4.5 C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是ID3算法.C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进...

2598
来自专栏人工智能头条

腾讯广点通:基于深度学习的图像语义分析及其应用

4346

扫码关注云+社区

领取腾讯云代金券