台湾大学深度学习课程 学习笔记 lecture2-2 Word Representation
以下内容和图片均来自台湾大学深度学习课程。
课程地址:https://www.csie.ntu.edu.tw/~yvchen/f106-adl/syllabus.html
函数“
“Meaning”的含义?
怎样表示文字上的语义?
本节课主要讲了两种方法,分别如下:
Knowledge-based representation
这个是传统方法,语言学家们制定了一套 WordNet ,包含了字与字之间的关联。
调用方法:
这种方法有很多局限性。
- 文字会不断地发展
- 主观性较强,不同的人之间有不同的理解
- 工作量比较大
- 字与字之间的相似性很难定义
Corpus-based representation
Atomic symbols
one-hot方法 将所有需计算的文字组成一个向量,给出一个文字,它在向量中的位置标为1,其余都为0,如果 car 在第七个位,则表示方法如下。
但是这种表示方法还是有局限性,如果向量中出现与car具有相关性的 motorcycle, 但是表示这两个单词的向量无论如何进行计算,值都是0,无法体现它们之间的相关性。
为了解决这一问题,想到一种解决方法。car与motorcycle它们相邻的单词(neighbor)如果存在某些关系的话,那么可以认为这两个单词之间具有相关性。
那么如何确定neighbor的范围呢?
下面给出了两种方式,full document 与 windows 。full document可以在同一篇文章中出现过,文章中的文字之间可以根据文章确定一个相关的主题。而windows限定在某个窗口内,可以是几句话或者几个单词之内范围,这种方式可以获得词性等信息。
Neighbor
High-dimensional sparse word vector
Co-occurrence Matrix
设置neighbor窗口为1,将下面三句话根据单词之间neighbor数量转化成矩阵形式。
这样的话,单词所在的向量之间(例如“love”与“enjoy”)的关系就不为0了。
但是这样还是存在一些问题,
- 随着文章字数增加矩阵的大小也会迅速增加;
- 计算量会迅速增加。之前one-hot形式,由于只有一列存在非0数字,所以维度即使再大,计算量也不会增加太多。而现在则不同,每列都有可能有数个非0数字;
- 大部分的有效信息,集中在少数区域。没有有效地“散开”,所以robustness会比较差。
所以就思考能不能降低维度呢?
Low-Dimensional Dense Word Vector
降维dimension reduction
SVD进行降维,如下图,从
这种方法还是有些问题:
- 计算量比较大
- 新增文字后,需要重新进行计算
能直接从资料里学出低维结果,而不是高维学习后再进行降维?
directly learn low-dimensional word vectors
两种方法:word2vec (Mikolov et al. 2013) ,Glove (Pennington et al., 2014)
在以后的课程里会详细讲解,本节课中只做简单介绍。
Word2Vec
下面简单介绍了优势和目标,使用神经网络方法进行训练。当word增加后,相当于增加了训练样本,速度比上面方法快得多。
假设neighbor window为m,
具体
使用深度学习的方法处理,所有word关系同步更新。