打字猴:1.70054053e+09
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
1700540568
1700540569 问题来了,如果d连续,我们沿用原GANs的套路没问题,对每个qn,生成K个文档,用近似估计每个qn下的损失函数,损失函数对dk的梯度会回传给生成dk的生成器。但是,如果d离散,损失函数对d是没有梯度的,我们拿什么传给生成器呢?
1700540570
1700540571 强化学习中的策略梯度方法揭示了期望下损失函数的梯度的另外一种形式[42]。我们用JG(qn)表示给定qn下损失函数的期望,即:
1700540572
1700540573
1700540574
1700540575
1700540576 (13.25)
1700540577
1700540578 我们暂不用蒙特卡洛采样(即采样样本之和的形式)去近似期望,而是直接对期望求梯度
1700540579
[ 上一页 ]  [ :1.70054053e+09 ]  [ 下一页 ]