cs224n-2017-notes1
这个课程一介绍nlp的基础概念开始,今天所面临的的困难,然后讨论了单词用数字向量表示的的概念,最后我们讨论单词向量的比较好的方法。
1 Introduction to natural language processing
开始什么是nlp
1.1 what is so sprcial about NLP
什么是人类的语言呢,人类的语言的组织是为了更好的表达人类意思的,并且不由任何物理的形式产生。所以它不同于视觉以及其他任何机器学习的任务。
大部分单词是实体的表达符号,例如单词‘rocket’是指火箭这个概念,通过扩展可以指定火箭一个实例,当然也有很多例外,当我们用单词来表达一种信号,例如:Whoompa,依据与此,语言符号可以表达为几种方式:声音,手势,写等等,通过连续的信号传递给大脑(他们的编码使用连续的方式进行的),
1.2 Example of tasks
nlp共有几种不同级别的任务,从语音识别到语义解释和,nlp的目标是设计一种算法能够让计算机理解自然语言,例子任务如下:
easy:
spell checking
关键词搜索
寻找同义词
medium 中度困难
Parsing information from websites, documents, etc.
Hard
Machine Translation (e.g. Translate Chinese text to English)
• Semantic Analysis (What is the meaning of query statement?)
• Coreference (e.g. What does "he" or "it" refer to given a document?)
• Question Answering (e.g. Answering Jeopardy questions).
1.3 How to represent words?
第一个所有任务的共同点就是怎么对单词进行表示作为模型的输入 ,早期的工作并没有把单词作为基础元素,为了在许多nlp任务中表现更好,首先需要单词之间的相似和不同的意思的概念。用词向量能够很好地表示这个任务(用距离公式等)。
2 Word vector
对应于评估了13000000单词,他们之间都没有关系吗,猫,酒店到旅馆。我不这样认为,我们编码每一个单词变成一个向量,来表示这个单词在‘word’空间中的一个point。这是许多原因的最重要的,最重要的是我们的直觉是一定存在some N-dimensional空间能够满足编码所有的语言单词,每一个维度应该表示一些含义,例如语义维度可能表示时态(过去vs现在vs未来),计数(单数vs负数),性别(女性vvs 男性)。
首先,深入一种词向量也是最简单的,one-hot-vector,把每一个单词表示为,其他全为0,只有一个存在于单词中的为1,在这个概念里V就是词汇表的大小。这样单词的编码就会如下形式:
我们表示的一个单词是一个完全独立的实体(entity),正如之前说的,这种单词表示没有任何相似概念,例如下例子:
,由此可以知道这种表示方式没办法表达词语之间的相似性。
3 SVD Based Method
对于这类方法,寻找word embedding(),首先循环一个巨大的数据集,计算单词共现计数在some form 矩阵X,然后在X上执行奇异值分解得到USV的 分解。然后利用U的每一行数值作为word embedding,接下来就讨论一下X的选择。
3.1 Word -Document Matrix
第一次尝试,猜想经常在同一个文档中出现的单词,他们之间由related,例如 ‘banks’,‘bonds’(债券),‘stocks’,‘money’etc,经常性的一起出现,但是‘banks’,‘"octopus",’(章鱼),‘banana’不会经常性的出现在一起,我们利用这种事实构建一个word-document 矩阵X,是以下的形式出现: