CS224N Lecture 1

CS224N Lecture 1

NLP with Deep Learning - Lecture 1 - Introduction and Word Vectors

Lecture Plan

  • The course
  • Human language and word meaning
  • Word2vec introduction
  • Word2vec objective function gradients
  • Optimization basics
  • Looking at word vectors

How do we represent the meaning of a word?

Definition:meaning

  • 一个词、词组等表示的概念
  • 一个人想用语言、符号等来表达的想法
  • 被表达在作品、艺术等方面的思想

理解意义的最普遍的语言方式(linguistic way) : 语言符号与语言符号的意义的转化

How do we have usable meaning in a computer?

Common NLP solution: WordNet, 一个包含同义词集和上位词(抽象-具体关系"is a" relationships) synonym sets and hypernyms 的列表的辞典

Problems with resources like WordNet

  • 作为一个资源是很好的,但忽略了细微差别 (例如proficient被列为good的同义词。但这只在某些上下文中是正确的。)
  • 缺少单词的新含义 (难以持续更新,例如 wicked, badass, nifty, wizard, genius, ninja, bombest)
  • 主观的
  • 需要人类劳动来创造和调整
  • 无法计算单词相似度

Representing words as discrete symbols

在传统的NLP中,我们把词语看作离散的符号: hotel, conference, motel —— a localist representation。单词表示成独热向量(one-hot vectors),向量维度=词汇数量(如500,000)。

\[motel = [0\;0\;0\;0\;0\;0\;0\;0\;0\;0\;1\;0\;0\;0\;0]\] \[hotel = [0\;0\;0\;0\;0\;0\;0\;1\;0\;0\;0\;0\;0\;0\;0]\]

Problem with words as discrete symbols

所有向量是正交的。对于独热向量,没有关于相似性概念,并且向量维度过大。(例如:如果用户搜索"Seattle motel",我们想匹配包含"Seattle hotel"的内容,独热向量并没有相似性概念)

Solution:

  • 使用类似 WordNet 的工具中的列表,获得相似度,但会因不够完整而失败
  • 学习在向量本身中编码相似性

Representing words by their context(上下文)

  • Distributional semantics :一个单词的意思是由经常出现在它附近的单词给出的
    • "You shall know a word by the company it keeps" (J. R. Firth 1957: 11)
    • 现代统计NLP最成功的理念之一
  • 当一个单词 \(w\) 出现在文本中时,它的上下文是出现在其附近的一组单词(在一个固定大小的窗口中)。
  • 使用 \(w\) 的许多上下文来构建 \(w\) 的表示

Word vectors

我们为每个单词构建一个密集的向量,使其与出现在相似上下文中的单词向量相似,使用向量点积来衡量相似性

词向量word vectors有时被称为词嵌入word embeddings或词表示word representations,它们是分布式表示distributed representation

Word meaning as a neural word vector – visualization

Word2vec: Overview

Word2vec (Mikolov et al. 2013)是一个学习单词向量的框架
Idea:

  • 我们有大量的文本 (corpus means 'body' in Latin.)
  • 固定词汇表中的每个单词都由一个向量表示
  • 文本中的每个位置 \(t\),其中有一个中心词 \(c\) 和上下文(“外部”)单词 \(o\)
  • 使用 \(c\)\(o\) 的词向量的相似性来计算给定 \(c\)\(o\) 的概率 (反之亦然)
  • 不断调整词向量来最大化这个概率

例如窗口大小 \(j=2\) 时的 \(P(w_{t+j}|w_t)\) 计算过程,center word 分别为 into 和 banking


Word2vec: objective function

对于每个位置 \(t=1,...,T\), 在大小为 \(m\) 的固定窗口内预测上下文单词,给定中心词 \(w_t\)

\[Likelihood=L(\theta)=\prod\limits_{t=1}^{T}\prod\limits_{-m \le j \le m \\ \;\;\;\;j \ne 0}P(w_{t+j}|w_t;\theta)\]

推荐阅读