第十二次周报
内容:
毕设内容
NCE & InfoNCE
下周内容:
- cs224n 生成模型
NCE
多分类问题
nlp中常常将语言模型当做一个多分类问题,经过softmax后的概率可以被看做给出上下文c,下一个单词w的条件概率分布
这里进入softmax以前的结果用表示,那么
\(Z(C)\)常被看做”配分函数“或”归一化因子“,单词库大小常常是很大的,因此该项往往很难直接计算。(如果把配分项看做参数学习,会趋向于零完全失效)
回顾极大似然估计:
对\(\theta\)求导:
NCE对于采样的建模
Noise Contrastive Estimation(噪声对比估计)的核心思想就是通过学习数据分布样本和噪声分布样本之间的区别,从而发现数据中的一些特性,将问题转换成了一个二分类问题,分类器能够对数据样本和噪声样本进行二分类。
假设一个特定上下文 的数据分布为 ,从该分布采样的样本为正样本,记,另一个与上下文无关的噪声分布为
,从该分布取出的是负样本,记为 假设现在取出了若干正负样本组成一个混合分布 ,负样本与正样本之比为k(正样本个,负样本个),那么有:
假设标签 (属于哪一个分布)为伯努利分布,那么它的对数似然函数(取负值为交叉熵损失):
目标函数需要除以正样本数目(利用大数定律可以看做是期望):
NCE原理
将目标函数对\(\theta\) 求导:
对于上面两项继续求导:
将上述式子带回目标函数求导结果:
此处存在两个细节:
假设配分项(对于参数很多的神经网络来说,配分项每次求梯度时可看做固定的,我们将 固定为 1 对每个 仍是有效的)。
$
\[\begin{aligned} p_{\theta}(w \mid c) &=\frac{\exp \left(s_{\theta}(w, c)\right)}{\sum_{w^{\prime} \in V} \exp \left(s_{\theta}(w, c)\right)} \\ &=\exp \left(s_{\theta}(w, c)\right)\times \exp \left(\theta_{0}\right)\\ \end{aligned}\]$
上述式子对\(\theta\) 求导只有第一项的内容,因此后面部分看做是1在梯度更新时是有利的。
如此一来:
当\(k\to \infty\)时,\(\frac{k \times q(w)}{p_{\theta}(w, c)+k \times q(w)}\)的极限为1。
实现
实现时:一般正例采样一次,负例采样k次。
InfoNce CPC
https://arxiv.org/abs/1807.03748
任务和目的
CPC(对比预测编码) 就是一种通过无监督任务来学习(编码)高维数据的特征表示(representation),而通常采取的无监督策略就是根据上下文预测未来或者缺失的信息(nlp中早有分布式表示的概念)。 表示根据当前上下文 预测 个时刻后的数据 (假设是像文本、语音中那样的序列数据),可以通过最大化当前上下文 和要未来的数据 之间的互信息来构建预测任务。
其中联合分布本身是intractable的,但是我们可以从入手,这个比例可以被看做密度比(即贝叶斯中的似然比,给定上下文c第k个单词为\(x_{t+k}\)的概率,比一般群体多了多少),分子 就相当于 ,是我们想得到的目标函数;分母 就相当于 ,是用来进行对比的参考分布(噪声)。因此类似NCE,将问题转化为二分类问题:
- 从条件 中取出数据称为“正样本”,它是根据上下文 所做出的预测数据,将它和这个上下文一起组成“正样本对”,类别标签设为 1。
- 将从 中取出的样本称为“负样本”,它是与当前上下文 没有必然关系的随机数据,将它和这个上下文 一起组成“负样本对”,类别标签设为 0。
- 正样本也就是与 间隔固定步长 的数据,根据 NCE 中说明的设定,正样本选取 1 个;因为在 NCE 中证明了噪声分布与数据分布越接近越好,所以负样本就直接在当前序列中随机选取(只要不是那一个正样本就行),负样本数量越多越好。
同样可以按照NCE中的写法:
是一个 socring function ,输出的分数用来量化 在上下文 中匹配性(NCE例子中是神经网络), CPC 文章中用余弦相似度来量化,并且将 定义为 :
写为交叉熵损失,得到:
与互信息的关系
对于互信息的利用一般分为两类:
优化互信息上界(upper bound),一般作为正则项在pretrain使用,优化下游任务(较少)。
Cheng P, Hao W, Dai S, et al. Club: A contrastive log-ratio upper bound of mutual information[C]//International conference on machine learning. PMLR, 2020: 1779-1788.
优化lower bound, 互信息本身是intractable,因此转化为优化lower bound
Poole B, Ozair S, Van Den Oord A, et al. On variational bounds of mutual information[C]//International Conference on Machine Learning. PMLR, 2019: 5171-5180.
InfoNCE是第二种互信息估计,最小化 InfoNCE,也就等价于最大化 和 之间互信息的下限:
与MINE关系
这篇论文中作者还将infoNCE与MINE(另一个互信息估计)做了比较,infoNCE比MINE多了个常数。对于复杂任务,两者效果都很好,但对于简单任务MINE会不稳定。