1700540519
百面机器学习:算法工程师带你去面试 05 IRGAN: 生成离散样本
1700540520
1700540521
1700540522
1700540523
场景描述
1700540524
1700540525
Reddit论坛上有一篇Goodfellow发表的帖子:“GANs have not been applied to NLP because GANs are only defined for real-valued data… The gradient of the output of the discriminator network with respect to the synthetic data tells you how to slightly change the synthetic data to make it more realistic. You can make slight changes to the synthetic data if it is based on continuous numbers. If it is based on discrete numbers,there is no way to make a slight change.”
1700540526
1700540527
大意是说,最初设计GANs是用来生成实值数据的,生成器输出一个实数向量。这样,判别器对实数向量每维都产生一个梯度,用作对模型参数的微小更新,持续的微小更新使得量变引起质变,最终达到一个非常好的解。可是,如果生成器输出离散数据,诸如:搜索引擎返回的链接,电商网站推荐的手机,那么梯度产生的微小更新就被打破了,因为离散样本的变化不是连续而是跳跃的。举个例子,灯光亮度是一种连续型数据,可以说把灯光调亮一些,也可以说把灯光调亮一点,还可以说把灯光调亮一点点,这都可操作;但是,从买苹果转到买橙子,你不能说买橙子一些,一点或者一点点(见图13.17)。将GANs用来生成离散数据,不是一件简单的事情,但是生活中很多时候,我们遇到的就是各型各色的离散型数据。
1700540528
1700540529
1700540530
1700540531
1700540532
图13.17 离散数据
1700540533
1700540534
让我们想象一个信息检索的场景:给定一个查询词,系统返回与查询词相关的若干文档。现在,我们有一批用户点击数据,记录用户在某查询词下点击哪些文档。用户的反馈告诉我们哪些是正样本,为了训练识别正负样本的有监督模型,我们还需负样本,即与查询词不相关或者看似相关实则无关的样本。通常做法是在全部文档集上随机负采样,一个查询词的正样本集与全体文档集比简直沧海一粟,所以随机采得的文档碰巧是正样本的概率很小。但这会遇到一个问题,随机负采样的结果往往太简单,对模型构不成难度。我们想尽量制造易混淆的例子,才能让模型的学习能力达到一个新水平。因此,我们不能在全集做负采样,必须在与查询词含义接近或貌似接近的地带负采样。一个新问题是,这种有偏采样下,采到正样本的概率大大增加,我们不能简单地认为随机采样结果都是负样本。怎么办呢?2017年的一篇论文提出了解决办法,称之为IRGAN[41]。
1700540535
1700540536
知识点
1700540537
1700540538
离散样本,信息检索,负采样,策略梯度
1700540539
1700540540
问题 用GAN产生负样本。
1700540541
1700540542
难度:★★★★★
1700540543
1700540544
我们想借助GANs解决上面问题,设计一种制造负样本的生成器,采样一些迷惑性强的负样本,增大对判别模型的挑战。查询词表示为q,文档表示为d。请描述一下你的设计思路,指出潜在的问题及解决方案。请问:训练到最后时,生成模型还是一个负样本生成器吗?
1700540545
1700540546
分析与解答
1700540547
1700540548
我们把全集上随机选负样本的方法,看成一种低级的生成器,该生成器始终是固定的,没有学习能力。我们想设计一个更好的有学习能力的生成器,可以不断学习,生成高质量的负样本去迷惑的判别器。实际上,在GANs的设计理念里,“负样本”的表述不准确,因为生成器的真正目标不是找出一批与查询词不相关的文档,而是让生成的模拟样本尽量逼近真实样本,判别器的目标是发现哪些样本是真实用户的点击行为,哪些是生成器的伪造数据。“正负”含义微妙变化,前面与查询词相关或不相关看成正或负,现在真实数据或模拟数据也可看成正或负。
1700540549
1700540550
1700540551
在信息检索的场景下,我们遵循GANs的MiniMax游戏框架,设计一个生成式检索模型pθ(d|q)和一个判别式检索模型。给定q,生成模型会在整个文档集中按照概率分布pθ(d|q)挑选出文档dθ,它的目标是逼近真实数据的概率分布ptrue(d|q),进而迷惑判别器;同时,判别模型试图将生成器伪造的(q,dθ)从真实的(q,dtrue)中区分出来。原本的判别模型是用来鉴别与Query相关或不相关的文档,而在GAN框架下判别模型的目标发生了微妙变化,区分的是来自真实数据的相关文档和模拟产生的潜在相关文档。当然,最终的判别模型仍可鉴别与Query相关或不相关的文档。我们用一个MiniMax目标函数来统一生成模型和判别模型:
1700540552
1700540553
1700540554
,
1700540555
1700540556
(13.23)
1700540557
1700540558
1700540559
其中。这是一个交替优化的过程,固定判别器,对生成器的优化简化为:
1700540560
1700540561
1700540562
.
1700540563
1700540564
(13.24)
1700540565
1700540566
1700540567
[
上一页 ]
[ :1.700540518e+09 ]
[
下一页 ]