GAN的新领域
最近BIGGAN又让GAN火了一把。可惜在NLP领域GAN的用途很有限,主要原因还是GAN不适用于离散空间里的语言问题。话虽如此,还是有些创新性非常强的论文。在它们当中,兼具很好的实用性的就是SIGIR2017的满分论文IRGAN。IRGAN不仅利用强化学习,创造性的解决了GAN在离散领域的适用问题,而且也如同GAN在其他领域一般,给IR(Information Retrieval)带来了研究范式的改变。关于GAN和MLE的根本性的不同,推荐这篇总结。
IRGAN
IR(Information Retrieval)有两大流派:生成式和判别式。前者是根据query来生成意义相关的词语(document),后者是主流,通过机器学习来计算相关度 r = f ( q , d ) r=f(q, d) r=f(q,d)。 q q q指query, d d d指document。
IRGAN的好处是能够把二者结合起来。GAN的生成器可以负责产生document(严格讲这不是一个generative的模型,这里的产生应该换成选择,后面会解释),判别器能够计算relevance(即r)
生成模型
生成模型即 p θ ( d ∣ q , r ) p_{\theta}{(d|q,r)} pθ(d∣q,r),用来产生(选择)相关文档。它的目标是尽可能逼近真实分布 p t r u e ( d ∣ q , r ) p_{true}{(d|q,r)} ptrue(d∣q,r)。和在图像领域的生成模型不同,这里的模型实际上是选择出不同的文档来。这样做的原因也是由语言问题的根本性质所决定的:和图像领域不同,NLP根本上是个离散的问题,我们不可能通过微小的改变某个embedding的维度来得到另外一个词语。所以像图像领域的Generator一样去生成sample并不合适。
但是这也带来一个根本性的问题,就是如何优化生成模型?因为我们通过离散的方式选择出新的文档,无法像传统的GAN一样直接通过梯度下降来优化Generator。作者给出的答案是强化学习。
判别模型
判别模型要找到 f ϕ ( q , d ) f_{\phi}{(q,d)} fϕ(q,d),用它来把正确的配对 ( q , d ) (q,d) (q,d)从错误的配对 ( q , d ) (q,d) (q,d)中区分开来。 f ϕ ( q , d ) f_{\phi}{(q,d)} fϕ(q,d)仅仅是一个binary classifier,它的值取决于 ( q , d ) (q,d) (q,d)的相关性。
GAN
上述放在一起,目标函数如下:
J G ∗ , D ∗ = min θ max ϕ ∑ n = 1 N E d ∼ p t r u e ( d ∣ q n , r ) [ l o g D ( d ∣ q n ) ] + E d ∼ p θ ( d ∣ q n , r ) [ l o g ( 1 − D ( d ∣ q n ) ) ] \displaystyle J^{G^{*},D^{*}} = \min_{\theta}\max_{\phi}{\sum_{n=1}^{N}{E_{d\sim p_{true}{(d|q_n,r)}} {[logD(d|q_n)]} + E_{d\sim p_{\theta}{(d|q_n,r)}} {[log(1-D(d|q_n))]}}} JG∗,D∗=θminϕmaxn=1∑NEd∼ptrue(d∣qn,r)[logD(d∣qn)]+Ed∼pθ(d∣qn,r)[log(1−D(d∣qn))]
生成器希望产生出足以欺骗判别器的样本,而判别希望总是能正确的真实样本和生成样本区分出来。
这里的条件概率 p t r u e ( d ∣ q n , r ) p_{true}{(d|q_n, r)} ptrue(d∣qn,r) 指在给定查询 q n q_n qn和相关度r的情况下,产生文档d的概率(即文档d为真的概率)。这里因为进行查询的user固定,故隐去user的信息。
另外 D D D可以很简单的用sigmoid函数来表达:
D ( d ∣ q ) = σ ( f ϕ ( d , q ) ) = exp ( f ϕ ( d , q ) ) 1 + exp ( f ϕ ( d , q ) ) D(d|q) = \sigma(f_{\phi}{(d,q)}) = \frac{\exp(f_{\phi}{(d,q)})}{1 + \exp(f_{\phi}{(d,q)})} D(d∣q)=σ(fϕ(d,q))=1+exp(fϕ(d,q))exp(fϕ(d,q))
它用来估计文件 d d d和给定查询 q q q相关的概率。
算法
生成器和判别器这两个模型可以分别进行迭代计算,下面看看细节。
最优化判别模型
ϕ ∗ = arg max ϕ ∑ n = 1 N ( E d ∼ p t r u e ( d ∣ q n , r ) [ log ( σ ( f ϕ ( d , q n ) ) ] + E d ∼ p θ ∗ ( d ∣ q n , r ) [ log ( 1 − σ ( f ϕ ( d