真诚的向大家推荐这个UP主,论文讲述的方法清楚,脉络清晰,听君一席话胜读十年书。
论文题目:Representation Learning with Contrastive Predictive Coding
从论文的标题上我们可以看出,本质上是通过predictive feature来预测未来这样一个任务的,通过加入对比学习的手段来学习到一个好的representation。
目录:1. Intuition 2. Contrastive Predictive Coding 3. InfoNCE & Mutual Information Est 4.Results
1. Intuition
首先,出于各种理由,我们总是希望能够学习到一个好的representation。比如predict the feature,这一步也是希望能够帮助我们学习到一个好的representation的手段。对于人而言,对于预测未来几秒内发生的事情(未来几秒内产生的动作)还是比较有信心的。但是以视频来说,计算机必须理解视频中的内容,通过一个好的representation去表达视频中的内容,在此基础之上才可能去预测在未来的几帧内视频画面会发生什么样的变化。
一个好的representation,可以帮助我们更好的预测未来。去理解高维度、低抽象的信息。
为了得到好的representation,我们需要进一步最大化互信息。互信息表示的是两个变量他们能够相互描述的程度。这个值越高就说明我们能够用一个变量更好的表达另一个变量。
原始的信号被切分成一个个小段,每一个时刻的原始信号为,经过一个encoder之后,得到latent representation
,同时还维护了一个auto regressive的model,将之前所有的latent representation记到hidden state中。此处,将hidden state记为C。在t时刻即为
。
此处的预测未来就是指,在t时刻结合,
,预测未来t+1时刻,t+2时刻...的latent representation是什么样的。这样也可以避免直接去预测
这类的高维的信息。所以需要使
能够尽可能多的表达当前信号
。所以我们必须最大化
和
之间的mutual information。
互信息的表达式为:
注意到是一个很高维的变量,通过
直接预测出
来时很难的。且直接这样预测,并不能够直接最大化mutual information(后面会解释为什么)。所以作者提到,此处的预测是预测latent representation在未来的值是多少。
2. Contrastive Predictive Coding
在这一部分我们将介绍作者是如何实现这个预测的。
直接预测
是非常困难的。
所以作者提出,直接使用model去近似mutual information。
将左侧的
看做是概率分布,右侧的
就是待求的随机变量,mutual infomation就是写作了期望的形式,所以我们的model只需要描述
这个概率的分数,然后将batch中的sample求平均,估计出来的就正好是变量的期望,也即是mutual information。
所以主要model满足以下关系:
(只要model能够正比于右侧,则就可以用来建模mutual information)
在本文的实践中,作者使用了log-bilinear model,其表达式为:
其中的w是我们需要学习的参数,w有下标k是因为我们预测不同未来,使用的是不同的参数。
encoder 使用的是GNN,auto-regressive model使用的是GRU。