Oxford"/>
Oxford
Natural Language Processing Course Offered by Oxford University
1. Problem Raising
Naive representation: one hot vectors among vocabulary.
“You shall know a word by the company it keeps.” – J.R. Firth
Richer representations expressing semantic similarity
Idea: produce dense vector representations based on context/use of words, using approaches:
count-based, predictive, and task-based.
2. Count-based methods
When we want to define a representation of target word, we use the words within the context of it as a context based representation for it. Then use a metric to measure the distance/similarity of two words.
Embedding层就是以one hot为输入、中间层节点为字向量维数的全连接层!而这个全连接层的参数,就是一个“字向量表”!从这个层面来看,字向量没有做任何事情!它就是one hot,别再嘲笑one hot的问题了,字向量就是one hot的全连接层的参数!
那么,字向量、词向量这些,真的没有任何创新了吗?有的,从运算上来看,基本上就是通过研究发现,one hot型的矩阵相乘,就像是相当于查表,于是它直接用查表作为操作,而不写成矩阵再运算,这大大降低了运算量。再次强调,降低了运算量不是因为词向量的出现,而是因为把one hot型的矩阵运算简化为了查表操作。这是运算层面的。思想层面的,就是它得到了这个全连接层的参数之后,直接用这个全连接层的参数作为特征,或者说,用这个全连接层的参数作为字、词的表示,从而得到了字、词向量,最后还发现了一些有趣的性质,比如向量的夹角余弦能够在某种程度上表示字、词的相似度。
Personal Understanding
我们已经拥有了一个naive的词向量表达方式,那就是one-hot的方法:构造一个词典,这个词典里面有 k k <script type="math/tex" id="MathJax-Element-7">k</script> 个单词,那么就用
但是这样子构成的单词有缺点:1. word vector过于稀疏。2. 不能表示出上下文的context信息。因此要想办法对它改进。
举例
有一个词典,有六个字 我喜欢计算机 那么计算机的 one-hot matrix 表示就为
⎡⎣⎢⎢⎢⎢⎢⎢⎢000100000010000001⎤⎦⎥⎥⎥⎥⎥⎥⎥ [ 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 ] <script type="math/tex; mode=display" id="MathJax-Element-9"> \left[\begin{matrix}0 & 0 & 0 \\0 & 0 & 0 \\0 & 0 & 0 \\1 & 0 & 0 \\0 & 1 & 0 \\0 & 0 & 1 \end{matrix}\right] </script>该如何改进呢?想通过某种方式将它变换为:
每一行作为一种改进版本的,比one-hot表示法优秀的word vector表示法,它所蕴含的词法和上下文信息更加丰富。
方法一:Count-based
这是一种handcrafted办法,通过手动设定的window宽度和直接数的办法来提取上下文信息。它的形式是离散的,类似于强化学习中的马尔可夫过程。
方法二:Neural embedding model
下面的东西其实都不需要,直接看这个博客=10&fps=1
讲解一:
严格来讲,神经网络都是有监督的,而Word2Vec之类的模型,准确来说应该是“自监督”的,它事实上训练了一个语言模型,通过语言模型来获取词向量。所谓语言模型,就是通过前n个字预测下一个字的概率,就是一个多分类器而已,我们输入one hot,然后连接一个全连接层,然后再连接若干个层,最后接一个softmax分类器,就可以得到语言模型了,然后将大批量文本输入训练就行了,最后得到第一个全连接层的参数,就是字、词向量表,当然,Word2Vec还做了大量的简化,但是那都是在语言模型本身做的简化,它的第一层还是全连接层,全连接层的参数就是字、词向量表。
讲解二 Word Level Semantics:
输入是上下文中的词从嵌入矩阵E中提取的词向量,将它们求和(称为投影层,projection),然后直接通过连接到输出层做softmax,输出层的维度为词汇表Vocabulary的大小,每一维代表中某个wi作为中心词的概率。(以负对数似然作为损失函数)
Skip-gram模型由于涉及的参数少,因此计算速度同样非常快,相似的改进有position-specific projections等,在计算效率和结构化程度上平衡。
Conclusion: The heart of Count-based method is the notion of embedding matrix, then we make this method generic via DL.
Reference: A Comprehensive Introduction to Word Vector Representations.
更多推荐
Oxford
发布评论