IRGAN:A Minimax Game for Unifying Generative and Discriminative Information Retrieval Models
https://arxiv.org/pdf/1705.10513.pdf
论文阅读笔记:
https://www.cnblogs.com/liaohuiqiang/p/9694277.html
https://blog.csdn.net/molong1208/article/details/78080161
IRGAN
- 可以利用GAN的思想,把两种检索模型结合起来,克服它们的缺点。如下图所示。
- 以生成式检索模型作为生成器,输入query,我们选取相关的document,构成数据对,作为生成数据。
- 以判别式检索模型作为判别器,用一个打分score来表示判别器的判别能力,判别器越能区分生成数据和真实数据(即输入生成数据时输出0,输入真实数据时输出1),则判别能力越强。
- 根据生成器生成的固定数据和真实数据,训练判别器。然后固定判别器,训练生成器使得判别器的判别能力最小化(即输入生成数据时也输出1)。这样完成一次博弈,迭代多次博弈不断训练。

- 从GAN到IRGAN:IRGAN就是把GAN的技术用到信息检索中,IRGAN和GAN的不同点在于IRGAN生成器是输入query然后从已有的document中选取,而GAN是用随机噪音进行生成的。因为IRGAN生成的数据是离散的(需要对documents进行采样),所以需要使用基于策略梯度的强化学习来训练生成器。
公式
- 最小化最大化:前面提到,整个训练就是生成器和判别器博弈的过程,如下图中的式子,先进行一个最大化训练一个判别能力强的判别器,然后做一个最小化来训练一个能骗过判别器的生成器。不断迭代这个过程。

- JS散度:对式子进行最大化后(训练判别器)得到的这个式子其实是一个JS散度,衡量生成数据和真实数据的分布。然后对JS散度进行最小化(训练生成器)就可以使生成数据逼近真实数据。

- 训练判别器:最大化这个式子,使用sample的方法,发现其实就是一个逻辑回归的二分类问题。

- 训练生成器:因为IRGAN里面最后是从document池中进行采样,可能softmax概率改变一点点,采样的结果并不会产生变化,这样难以进行梯度的传递更新,所以使用基于策略梯度的强化学习来训练。

- 目标函数的改进:训练生成器的时候,考虑到目标函数在一开始下降地比较慢,做了一下修改。于是最后得到的策略梯度也发生了变化,奖赏项变成了判别器输出的log,这也很直观,强化学习要让奖赏越来越大,这里刚好就是让判别器的输出越大越好(接近1,让判别器以为生成的数据是真实的)。后面考虑到log使得训练不稳定,于是把log也去掉了。最后为了让奖赏有正有负,做了一个乘2减1的修正。

实验
如下几个图所示,其中s(x)表示生成器和判别器的公式。



IRGAN:A Minimax Game for Unifying Generative and Discriminative Information Retrieval Models的更多相关文章
- 论文笔记:IRGAN——A Minimax Game for Unifying Generative and Discriminative Information
2017 SIGIR 简单介绍 IRGAN将GAN用在信息检索(Information Retrieval)领域,通过GAN的思想将生成检索模型和判别检索模型统一起来,对于生成器采用了基于策略梯度的强 ...
- MongoDB启动报错:Unrecognized option: storage try 'mongod --help' for more information(已解决)
问题说明: 今天在使用配置文件方式启动MongoDB时,一直启动失败,报错显示:Unrecognized option: storage try 'mongod --help' for more in ...
- 论文阅读:Single Image Dehazing via Conditional Generative Adversarial Network
Single Image Dehazing via Conditional Generative Adversarial Network Runde Li∗ Jinshan Pan∗ Zechao L ...
- LOJ2537:[PKUWC2018]Minimax——题解
https://loj.ac/problem/2537 参考了本题在网上能找到的为数不多的题解. 以及我眼睛瞎没看到需要离散化,还有不开longlong见祖宗. ——————————————————— ...
- Loadrunner在场景中添加多个负载机报错:Action.c(38): Error -26488: Could not obtain information about submitted解决方法
Error -26488: Could not obtain information about submitted file "E:\.jpg": _stat32 rc=-1, ...
- hive: insert数据时Error during job, obtaining debugging information 以及beyond physical memory limits
insert overwrite table canal_amt1...... 2014-10-09 10:40:27,368 Stage-1 map = 100%, reduce = 32%, Cu ...
- 泡泡一分钟:Robust and Fast 3D Scan Alignment Using Mutual Information
Robust and Fast 3D Scan Alignment Using Mutual Information 使用互信息进行稳健快速的三维扫描对准 https://arxiv.org/pdf/ ...
- GAN(Generative Adversarial Nets)的发展
GAN(Generative Adversarial Nets),产生式对抗网络 存在问题: 1.无法表示数据分布 2.速度慢 3.resolution太小,大了无语义信息 4.无reference ...
- 机器学习&数据挖掘笔记_20(PGM练习四:图模型的精确推理)
前言: 这次实验完成的是图模型的精确推理.exact inference分为2种,求边缘概率和求MAP,分别对应sum-product和max-sum算法.这次实验涉及到的知识点很多,不仅需要熟悉图模 ...
随机推荐
- 微信小程序 - 分包加载(预下载)
开发者可以通过配置,在进入小程序某个页面时,由框架自动预下载可能需要的分包,提升进入后续分包页面时的启动速度.对于独立分包,也可以预下载主包. 配置方法 预下载分包行为在进入某个页面时触发,通过在 a ...
- 批量删除SQL数据库中的所有表【笔记】
use OTRJiraDB GO ) begin SELECT @sql='drop table ' + name FROM sysobjects WHERE (type = 'U') ORDER B ...
- 解决Visio复制绘图时虚框变实框的问题
参考:http://www.educity.cn/help/653700.html 问题好像是,在VISIO里只要虚线框的大小超过一个界限,拷贝之后就会变成实线框. 解决办法是修改注册表:[运行reg ...
- ReactNative踩坑日志——函数绑定this
ES6语法定义的函数没有自动绑定this,所以在函数中使用了 this.xxx 就会报错,因为没有把类实例等this传进函数中. 有两种方法绑定this: 法1:在构造函数中为其他函数绑定this c ...
- Java生成XML文件与XML文件的写入
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6651643.html 既然能在代码中解析XML文档获取数据,当然也能通过代码动态生成XML文档了. 与解析X ...
- Linux日志文件utmp、wtmp、lastlog、messages
1.有关当前登录用户的信息记录在文件utmp中:==who命令 2.登录进入和退出纪录在文件wtmp中:==w命令 3.最后一次登录文件可以用lastlog命令察看: 4.messag ...
- tensorflow serving 编写配置文件platform_config_file的方法
1.安装grpc gRPC 的安装: $ pip install grpcio 安装 ProtoBuf 相关的 python 依赖库: $ pip install protobuf 安装 python ...
- ArrayDeque源代码分析
1. 体系结构 了解特性,先看下体系结构: 如上所看到的,知道其支持 序列化,克隆,迭代器操作,队列特性.详细实现 除了实现以上接口外,扩展AbstractCollection 抽象类. 2. 应用场 ...
- C#正则表达式匹配HTML中的图片路径
最近的项目中有个关于网页取图的功能需要我自己开发,那就是用正则表达式来匹配图片标签. 一般来说一个 HTML 文档有很多标签,比如“<html>”.“<body>”.“< ...
- 读书笔记——spring cloud 中 HystrixCommand的四种执行方式简述
读了<Spring Cloud 微服务实战>第151-154页, 总结如下: Hystrix存在两种Command,一种是HystrixCommand,另一种是HystrixObserva ...