本文重点在第三部分“词嵌入”及对Word2vec的介绍,前面的知识主要用于小白对词表示和一些定义、名称的理解,和对一些方法不足的思考。

一、词表示

1.1 词表示的定义

词表示是一种将自然语言中的词转换为机器可理解含义的过程

其中意思(meaning)的定义 (Webster Dictionary) • The thing one intends to convey especially by language • The logical extension of a word

1.2 词表示的目标

计算词与词的相似度 • WR(Star) ≃ WR(Sun) • WR(Motel) ≃ WR(Hotel)

推测词与词的关系 • WR(China) − WR(Beijing) ≃ WR(Japan) - WR(Tokyo) • WR(Man) ≃ WR(King) − WR(Queen) + WR(Woman) • WR(Swimming) ≃ WR(Walking) − WR(Walk) + WR(Swim)

如何表示词的意思,使得机器可以理解?

1.3 过去的一些词表示方法

1.3.1 使用相关词集合,如同义词或上位词来对一个词进行表示

  • 例如:WordNet是一个包含同义词和上位词的词典

同义词/上位词表示的不足:

  • 丢失语义上的细微差别:(“proficient”, “good”) 只在某些特定的上下文中为同义词

  • 无法获得单词的新含义 :Apple (水果 → IT公司) ,Amazon (森林 → IT公司)

  • 具有一定的主观性

  • 数据稀疏

  • 需要人工标注或更新

1.3.2 One-hot表示

  • 将单词视为离散的符号,用单词的ID或one-hot表示,例如:

One-hot表示的不足

  • 维度太高。

  • ,所有向量都互相正交,通过one-hot表示无法计算词与词的相似度

1.3.3 上下文词表示 (Distributional Representation)

  • 核心思想:一个词的意义应通过经常出现在其周围的词进行表示

  • 基于统计学的自然语言处理中成功的想法之一

  • 例如:使用上下文来表示单词stars

  • 共现统计

  • 词嵌入

接下来进行共现统计,基于计数的分布式词表示:

基于计数的分布式词表示其实也有一些细节上的不同:

  • Term-Term矩阵:矩阵中的数表示一个词出现在另一个词周围的次数

  • Term-Document矩阵:矩阵中的数表示一个词出现在某文档中的次数

Term-Term矩阵 (共现矩阵)

矩阵中的数表示一个词出现在另一个词周围的次数