19 Nov

更别致的词向量模型(三):描述相关的模型

几何词向量

上述“月老”之云虽说只是幻想,但所面临的问题却是真实的。按照传统NLP的手段,我们可以统计任意两个词的共现频率以及每个词自身的频率,然后去算它们的相关度,从而得到一个“相关度矩阵”。然而正如前面所说,这个共现矩阵太庞大了,必须压缩降维,同时还要做数据平滑,给未出现的词对的相关度赋予一个合理的估值。

在已有的机器学习方案中,我们已经有一些对庞大的矩阵降维的经验了,比如SVD和pLSA,SVD是对任意矩阵的降维,而pLSA是对转移概率矩阵$P(j|i)$的降维,两者的思想是类似的,都是将一个大矩阵$\boldsymbol{A}$分解为两个小矩阵的乘积$\boldsymbol{A}\approx\boldsymbol{B}\boldsymbol{C}$,其中$\boldsymbol{B}$的行数等于$\boldsymbol{A}$的行数,$\boldsymbol{C}$的列数等于$\boldsymbol{A}$的列数,而它们本身的大小则远小于$\boldsymbol{A}$的大小。如果对$\boldsymbol{B},\boldsymbol{C}$不做约束,那么就是SVD;如果对$\boldsymbol{B},\boldsymbol{C}$做正定归一化约束,那就是pLSA。

但是如果是相关度矩阵,那么情况不大一样,它是正定的但不是归一的,我们需要为它设计一个新的压缩方案。借鉴矩阵分解的经验,我们可以设想把所有的词都放在$n$维空间中,也就是用$n$维空间中的一个向量来表示,并假设它们的相关度就是内积的某个函数(为什么是内积?因为矩阵乘法本身就是不断地做内积):
\[\frac{P(w_i,w_j)}{P(w_i)P(w_j)}=f\big(\langle \boldsymbol{v}_i, \boldsymbol{v}_j\rangle\big)\tag{8}\]
其中加粗的$\boldsymbol{v}_i, \boldsymbol{v}_j$表示词$w_i,w_j$对应的词向量。从几何的角度看,我们就是把词语放置到了$n$维空间中,用空间中的点来表示一个词。

因为几何给我们的感觉是直观的,而语义给我们的感觉是复杂的,因此,理想情况下我们希望能够通过几何关系来反映语义关系。下面我们就根据我们所希望的几何特性,来确定待定的函数$f$。事实上,glove词向量的那篇论文中做过类似的事情,很有启发性,但glove的推导实在是不怎么好看。请留意,这里的观点是新颖的——从我们希望的性质,来确定我们的模型,而不是反过来有了模型再推导性质

机场-飞机+火车=火车站

点击阅读全文...

20 Aug

随着NLP的发展,像Word2Vec、Glove这样的词向量模型,正逐渐地被基于Transformer的BERT等模型代替,不过经典始终是经典,词向量模型依然在不少场景发光发热,并且仍有不少值得我们去研究的地方。本文我们来关心一个词向量模型可能有的疑惑:词向量的维度大概多少才够?

先说结论,笔者给出的估算结果是
\begin{equation}n > 8.33\log N\label{eq:final}\end{equation}
更简约的话可以直接记$n > 8\log N$,其中$N$是词表大小,$n$就是词向量维度,$\log$是自然对数。当$n$超过这个阈值时,就说明模型有足够的容量容纳这$N$个词语(当然$n$越大过拟合风险也越大)。这样一来,当$N=100000$时,得到的$n$大约是96,所以对于10万个词的词向量模型来说,维度选择96就足够了;如果要容纳500万个词,那么$n$大概就是128。

点击阅读全文...

10 Oct

变分自编码器 = 最小化先验分布 + 最大化互信息

这篇文章很简短,主要描述的是一个很有用、也不复杂、但是我居然这么久才发现的事实~

《深度学习的互信息:无监督提取特征》一文中,我们通过先验分布和最大化互信息两个loss的加权组合来得到Deep INFOMAX模型最后的loss。在那篇文章中,虽然把故事讲完了,但是某种意义上来说,那只是个拼凑的loss。而本文则要证明那个loss可以由变分自编码器自然地导出来。

过程

不厌其烦地重复一下,变分自编码器(VAE)需要优化的loss是
\begin{equation}\begin{aligned}&KL(\tilde{p}(x)p(z|x)\Vert q(z)q(x|z))\\
=&\iint \tilde{p}(x)p(z|x)\log \frac{\tilde{p}(x)p(z|x)}{q(x|z)q(z)} dzdx\end{aligned}\end{equation}
相关的论述在本博客已经出现多次了。VAE中既包含编码器,又包含解码器,如果我们只需要编码特征,那么再训练一个解码器就显得很累赘了。所以重点是怎么将解码器去掉。

其实再简单不过了,把VAE的loss分开两部分

点击阅读全文...

18 Nov

[欧拉数学]黎曼ζ函数

欧拉数学的魅力在于,它运用类比的方法,把各个看似毫无关联的领域联系了起来,生动而巧妙地得出了正确的结果。他对$\frac{1}{1^2}+\frac{1}{2^2}+\frac{1}{3^2}+\frac{1}{4^2}+...=\frac{\pi^2}{6}$的计算便是一个典型的例子。虽然论证过程未必严谨,但是那“神奇”的推导已经令我们拍案叫绝,而且往往发人深思。这种效果通常是严格论证难以实现的,它不仅给予我们答案,而且还给予了我们启迪:新的思想,新的方向;有时,它还揭示了各个学科之间内在而深刻的联系。下面我们来观察一下数论中的“黎曼ζ函数”和“金钥匙”!

黎曼ζ函数指的是:
$$\xi (s)=\sum_{n=1}^{\infty} \frac{1}{n^s}=\frac{1}{1^s}+\frac{1}{2^s}+\frac{1}{3^s}+\frac{1}{4^s}+...$$
本来s应该是一个实数,但是将复分析引入数论后,将s推广至复数具有更大的研究价值。

点击阅读全文...

18 Mar

指数函数及其展开式孰大孰小?

在x>0时,指数函数$f(x)=e^x$与幂函数$h_n (x)=1+x+\frac{x^2}{2!}+\frac{x^3}{3!}+...+\frac{x^n}{n!}$孰大孰小?

对于已经学习了微积分的朋友来说,这道题目是很简单的,甚至$f(x) > h_n (x)$可以说是“显然成立的”(因为$e^x$展开式接下来的无穷项都是正数)。但是,这道题目出在了2012年的广州一模理科数学中,就显得不那么简单了,得用初等的方法来证明它。而笔者最近养成了一个习惯,拿到一张数学试卷,不是先做选择题,而是先做最后一题。所以在参加广州一模时,先花了半个小时把最后一题(即本题)解决了。下面是我想到的三种解法。

一、数学归纳法

点击阅读全文...

16 Apr

采样定理:有限个点构建出整个函数

假设我们在听一首歌,那么听完这首歌之后,我们实际上在做这样的一个过程:耳朵接受了一段时间内的声波刺激,从而引起了大脑活动的变化。而这首歌,也就是这段时间内的声波,可以用时间$t$的函数$f(t)$描述,这个函数的区间是有限的,比如$t\in[0,T]$。接着假设另外一个场景——我们要用电脑录下我们唱的歌。这又是怎样一个过程呢?要注意电脑的信号是离散化的,而声波是连续的,因此,电脑要把歌曲记录下来,只能对信号进行采样记录。原则上来说,采集的点越多,就能够越逼真地还原我们的歌声。可是有一个问题,采集多少点才足够呢?在信息论中,一个著名的“采样定理”(又称香农采样定理,奈奎斯特采样定理)告诉我们:只需要采集有限个样本点,就能够完整地还原我们的输入信号来!

采集有限个点就能够还原一个连续的函数?这是怎么做到的?下面我们来解释这个定理。

任意给定一个函数,一般来说我们都可以将它做傅里叶变换:
$$F(\omega)=\int_{-\infty}^{+\infty} f(t)e^{i\omega t}dt\tag{1}$$
虽然我们的积分限写了正负无穷,但是由于$f(t)$是有限区间内的函数,所以上述积分区间实际上是有限的。

点击阅读全文...

1 Jan

SPACES:“抽取-生成”式长文本摘要(法研杯总结)

法研杯”算是近年来比较知名的NLP赛事之一,今年是第三届,包含四个赛道,其中有一个“司法摘要”赛道引起了我们的兴趣。经过了解,这是面向法律领域裁判文书的长文本摘要生成,这应该是国内第一个公开的长文本生成任务和数据集。过去一年多以来,我们在文本生成方面都有持续的投入和探索,所以决定选择该赛道作为检验我们研究成果的“试金石”。很幸运,我们最终以微弱的优势获得了该赛道的第一名。在此,我们对我们的比赛模型做一个总结和分享。

比赛榜单截图

比赛榜单截图

在该比赛中,我们跳出了纯粹炼丹的过程,通过新型的Copy机制、Sparse Softmax等颇具通用性的新方法提升了模型的性能。整体而言,我们的模型比较简洁有效,而且可以做到端到端运行。窃以为我们的结果对工程和研究都有一定的参考价值。

点击阅读全文...

6 Jul

生成扩散模型漫谈(二):DDPM = 自回归式VAE

在文章《生成扩散模型漫谈(一):DDPM = 拆楼 + 建楼》中,我们为生成扩散模型DDPM构建了“拆楼-建楼”的通俗类比,并且借助该类比完整地推导了生成扩散模型DDPM的理论形式。在该文章中,我们还指出DDPM本质上已经不是传统的扩散模型了,它更多的是一个变分自编码器VAE,实际上DDPM的原论文中也是将它按照VAE的思路进行推导的。

所以,本文就从VAE的角度来重新介绍一版DDPM,同时分享一下自己的Keras实现代码和实践经验。

多步突破

在传统的VAE中,编码过程和生成过程都是一步到位的:
\begin{equation}\text{编码:}\,\,x\to z\,,\quad \text{生成:}\,\,z\to x\end{equation}

点击阅读全文...