码迷,mamicode.com
首页 > 其他好文 > 详细

【论文阅读】From Word Embeddings To Document Distances

时间:2020-06-05 19:29:41      阅读:69      评论:0      收藏:0      [点我收藏+]

标签:问题   for   距离   下界   好的   equal   多个   ISE   目标   

论文介绍的WMD(Word Mover‘s Distance)是一个基于词嵌入(word embedding)计算两个文本的距离。

本文跳过词嵌入的介绍,直接进入WMD的实现过程。

 

词的相似性

假设我们有一个包含$n$个词的词典库,用word2vec训练好的这$n$个词的矩阵为:

$$X \in R^{d*n} \tag{1}$$

矩阵$X$中的第$i$列,$x_i$是一个$d$维向量,表示第$i$个单词的词向量。

这样两个词之间的相似性可以通过词向量之间的欧氏距离(Euclidean distance)来表示:

$$c(i, j) = |||x_i - x_j||_2 \tag{2}$$

这里,第$i$个词和第$j$个词之间的相似性记为$c(i, j)$,即等于两者的词向量$x_i$和$x_j$之间的欧氏距离。

 

文本间距

对于一篇文本,我们可以用归一化的nBOW(normalized bag-of-words)向量$d$表示:

$$d = (d_1, d_2, \cdots, d_i, \cdots, d_n) \tag{3}$$

$$d_i = \frac{c_i}{\sum_{j=1}^{n} c_j} \tag{4}$$

现在有两篇文本,它们的nBOW表示分别为$d$和$d‘$。

对于文本之间的距离度量,我们先定义一个矩阵$T \in R^{n*n}$,按照我自己的理解,矩阵$T$中一项$T_{ij}$按是$d$中的第$i$个词有多大的可能转换到$d‘$中的第$j$个词(原文: Let  $T ∈ R^{n×n}$ be a (sparse) flow matrix where $T_{ij} ≥ 0$ denotes how much of word $i$ in $d$ travels to word $j$ in $d‘$)。

为了使$d$全部翻译成$d‘$,需要满足一下条件,输出流$\sum_j T_{ij} = d_i$,输入流$\sum_i T_{ij} = d_j‘$

我们可以这样定义两个文本之间的距离:$d$中的每一个词与$d‘$中的每一个词的之间的相似性的加权和:即

$$\sum_{i,j} T_{ij} c(i, j)$$,找出文本之间距离最小的值,即是我们的最优解。

\begin{align*}
& \min_{T \geq 0} \sum_{i,j} T_{ij} c(i, j) \\
& s.t. \,\,\,\,\,\, \sum_{j=1}^n T_{ij} = d_i \,\, \forall i \in \{1, \cdots, n\} \\
& \sum_{i=1}^n T_{ij} = d_j‘ \,\, \forall j \in \{1, \cdots, n\} \tag{5}
\end{align*}

 

快速计算文本间距

理论由于WMD的最优问题的时间复杂度是$O(p^3 log p)$,这里$p$表示$d$中有多个词,重复不计。

因为对计算大文本间的WMD距离需要的时间是非常大,所以,有必要采取一些trick,近似得到我们要计算的目标。 

WCD

我们知道,一个文本$d$可以用nBOW向量表示,$d = (d_1, d_2, \cdots, d_i, \cdots, d_n)$,向量中的第$i$个词可以用词库中第$i$个词在这个文本中出现次数与文本总词数(去除停用词)之比。

由word2vec得到词向量矩阵$X = (x_1, x_2, \cdots, x_i, \cdots, x_n)$,其中$x_i$表示词库中第$i$个词的词向量。

那么$d_i * x_i$表示这个本文中第i个词的词向量的加权($d_i$)表示。

所以,文本$d$可以用向量$Xd = \sum_i d_i x_i$表示。

定义$||Xd - Xd‘||_2$为两个文件的WCD(Word centroid distance)。

由三角形不等式(https://en.wikipedia.org/wiki/Triangle_inequality#Generalization_to_higher_dimensions),知对于$p-norm$有

$${||x||}_p = {(\sum_{i=1}^n {|x_i|}^p)}^{1/p} \tag{6}$$

当$p=2$时,$p-norm$表示的是欧氏距离。

对于WMD,我们有:

\begin{align*}
\sum_{i=1, j=1}^n T_{ij} c(i,j)
&= \sum_{i=1, j=1}^n T_{ij} {||x_i - x_j‘||}_2 \\
&= \sum_{i=1, j=1}^n {||T_{ij}(x_i - x_j‘)||}_2 \\
&\geq {||\sum_{i=1, j=1}^n T_{ij}(x_i - x_j‘)||}_2 \\
&= {||sum_{i=1}^n {(\sum_{j=1}^n T_{ij}) x_i} - sum_{j=1}^n {(\sum_{i=1}^n T_{ij}) x_j}||}_2 \\
&= {||\sum_{i=1}^n {d_i x_i} - \sum_{j=1}^n {d_j‘ x_j‘}||}_2 \\
&= {||Xd - Xd‘||}_2 \tag{7}
\end{align*}

所以,WCD是WMD的下界,时间复杂度是$O(dp)$,可以通过WCD近似得出WMD。

 

RWMD

为了进一步提升WMD的下界,我们可以通过放松下WMD计算的约束条件,论文中给出的是放弃约束$\sum_{i=1}^n T_{ij} = d_j‘ \,\,\, \forall i \in \{1, \cdots, n\}$

同时定义$T_{ij}^{\ast}$

$$T_{ij}^{\ast} = \begin{cases}
& d_i,  \text{ if } j = argmin_j c(i,j) \\
& 0,  \text{ otherwise }
\end{cases} \tag{8}$$

所以有

\begin{align*}
\sum_{i,j} T_{ij} c(i, j)
&\geq \sum_{j} T_{ij} c(i, j^{\ast}) \\
&= c(i, j^\ast ) \sum_{j} T_{ij} \\
&= c(i, j^\ast ) d_i \\
&= \sum_j T_{ij}^{\ast} c(i, j) \tag{9}
\end{align*}

未完待续... ...

【论文阅读】From Word Embeddings To Document Distances

标签:问题   for   距离   下界   好的   equal   多个   ISE   目标   

原文地址:https://www.cnblogs.com/clementcj/p/13041760.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!