前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Word2vec理论基础——词向量

Word2vec理论基础——词向量

作者头像
Hsinyan
发布2022-06-19 17:56:06
4470
发布2022-06-19 17:56:06
举报

NLP 处理方法

传统:基于规则

现代:基于统计机器学习

  • HMM、CRF、SVM、LDA、CNN …
  • “规则”隐含在模型参数里

我们希望词编码能够做到什么

词编码需要保证词的相似性

我们希望类似青蛙、蟾蜍这些词在词编码之后保持相似性

向量空间分布的相似性

从一个向量从一种语系转化成另一种语系的时候能够保持分布

向量空间子结构

我们希望原始文本信息能够得到保留,例如国王和女王之间的关系和男人与女人之间的关系应是特别接近的,法国和巴黎之间关系与德国和巴黎的关系也是接近的。

最终目标

词向量表示作为机器学习、特别是深度学习的输入和表示空间

在计算机中表示一个词

WordNet

WordNet是由Princeton大学的心理学家,语言学家和计算机工程师联合设计的一种基于认知语言学的英语词典。它不是光把单词以字母顺序排列,而且按照单词的意义组成一个“单词的网络”。它是一个覆盖范围宽广的英语词汇语义网。名词,动词,形容词和副词各自被组织成一个同义词的网络,每个同义词集合都代表一个基本的语义概念,并且这些集合之间也由各种关系连接。

WordNet 存在的问题

  1. 不能分别细节的差别
  2. 需要大量的人为劳动
  3. 主观
  4. 无法发现新词
  5. 难以精确计算词之间的相似度

离散表示:One-hot表示

假设有这么一个语料库

John likes to watch movies. Mary likes too. John also likes to watch football games.

按照这个语料库可以构建出一个词典

{"John": 1, "likes": 2, "to": 3, "watch": 4, "movies'": 5, "also":6, "football": 7, "games": 8, "Mary": 9, "too": 10}

可以看到这个词典里包含了10个单词,每个单词都有一个唯一的索引,在词典的顺序和在句子的顺序没有关联。

John的One-hot表示为

[1,0,0,0,0,0,0,0,0,0]

同理likes的One-hot表示为

[0,1,0,0,0,0,0,0,0,0]

离散表示:Bag of Words

文档的向量表示可以直接将各词的词向量表示加和

John likes to watch movies. Mary likes too.可表示为

[1,2,1,1,1,0,0,0,1,1]

词权重

TF-IDF(Term Frequency - Inverse Document Frequency)

t的IDF weight计算方式为

log(1+\frac{N}{n_t})

其中N为文档总数,n_t为含有词t的文档数

John likes to watch movies. Mary likes too.经过TF-IDF计算后文档向量可表示为

[0.693,1.386,0.693,0.693,1.099,0,0,0,0.693,0.693]
Binary Weighting

只统计是否出现过,出现为1不出现为0,不统计出现次数

John likes to watch movies. Mary likes too.的向量记为

[1,1,1,1,1,0,0,0,1,1]

离散表示:Bi-gram和N-gram

John likes to watch movies. Mary likes too. John also likes to watch football games.

依旧以上面两句作为语料库,为了能够考虑到顺序的影响因素,为2-gram建立索引,得到词典如下

word

index

John likes

1

likes to

2

to watch

3

watch movies

4

Mary likes

5

likes too

6

John also

7

also likes

8

watch football

9

football games

10

John likes to watch movies. Mary likes too.的文档向量可表示为

[1,1,1,1,1,1,0,0,0,0]

John also likes to watch football games.的文档向量可以表示为

[0,1,1,0,0,0,1,1,1,1]

2-gram以每相邻的两个词建立词典,可以考虑到词的顺序对文档的影响,但是这样带来的问题是造成此表的膨胀。

语言模型

判断一句话(词组合)出现的概率
P(w_1,\cdots,w_m)=\prod_{i=0}^mP(w_i|w_1,\cdots,w_{i_1})
Unigram/1-gram

\begin{aligned} \mathrm{P}(\text { Mary likes too }) &=\mathrm{P}(\text { too } \mid \text { Mark, likes }) *\mathrm{P}(\text { likes } \mid \text { Mary })* \mathrm{P}(\text { Mary }) \\ &=\mathrm{P}(\text { too }) *\mathrm{P}(\text { likes })* \mathrm{P}(\text { Mary }) \end{aligned}

Bigram/2-gram

\begin{aligned} \mathrm{P}(\text { Mary likes too }) &=\mathrm{P}(\text { too } \mid \text { Mark, likes }) *\mathrm{P}(\text { likes } \mid \text { Mary })* \mathrm{P}(\text { Mary }) \\ &=\mathrm{P}(\text { too } \mid \text { likes }) *\mathrm{P}(\text { likes } \mid \text { Marry })^{*} \mathrm{P}(\text { Mary }) \end{aligned}

离散表示的问题

  • 无法衡量词向量之间的关系

使用各种度量(与或非、距离)都不合适,太过于稀疏,很难捕捉文本的含义

  • 词表维度随着语料库增长膨胀
  • n-gram词序列随语料库膨胀更快
  • 数据稀疏问题

分布式表示(Distributed representation)

可以用一个词附近的其他词来表示该词

"You shall know a word by the company it keeps——(J. R. Firth 1957: 11)

现代统计自然语言处理中最有创见的想法之一

共现矩阵

Word-Document的共现矩阵主要用于发现主题(topic),用于主题模型,如LSA(Iatent Semantic Analysis)

局域窗中的Word-Word共现矩阵可以挖掘语法和语义信息

  • I like deep learning
  • I like NLP
  • I enjoy flying

window length设为1(一般设置为5~10),使用对称的窗函数(左右window length都为1)

存在的问题

将共现矩阵行/列向量作为词向量

  • 向量维数随着词典大小线性增长
  • 存储整个词典的空间消耗非常大
  • 一些模型如文本分类模型会面临稀疏性问题
  • 模型会欠稳定
SVD降维

为了解决维度过大造成的稀疏性问题,最直接的方法是考虑构造低维稠密向量作为词的分布式表示(25~1000维),使用SVD对共现矩阵向量做降维

存在的问题

  • 计算量随着语料库和词典增长膨胀太快,对X(n\times n)维的矩阵,计算量为O(n^3),而对大型的语料库,n~400k,语料库大小为1~60Btoken
  • 难以为词典中新加入的词分配词向量
  • 与其他深度学习模型框架差异过大

NNLM(Neural Network Language model)

NNLM是word2vec的前身,直接从语言模型出发,将模型最优化过程转化为求词向量表示的过程。

目标函数

L(\theta)=\sum_{i}\log P(w_t|w_{t-n+1},\cdots,w_{t-1})
  • 使用了非对称的前向窗函数,窗长度为n-1
  • 滑动窗口遍历整个语料库求和,计算量正比与语料库大小
  • 概率P满足归一化条件,这样不同位置t处的概率才能相加,即

参考资料

知识图谱之WordNet

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • NLP 处理方法
  • 我们希望词编码能够做到什么
    • 词编码需要保证词的相似性
      • 向量空间分布的相似性
        • 向量空间子结构
          • 最终目标
          • 在计算机中表示一个词
            • WordNet
              • 离散表示:One-hot表示
                • 离散表示:Bag of Words
                  • 词权重
                    • TF-IDF(Term Frequency - Inverse Document Frequency)
                    • Binary Weighting
                  • 离散表示:Bi-gram和N-gram
                    • 语言模型
                      • 判断一句话(词组合)出现的概率
                      • Unigram/1-gram
                      • Bigram/2-gram
                    • 离散表示的问题
                      • 分布式表示(Distributed representation)
                        • 共现矩阵
                        • 存在的问题
                        • SVD降维
                      • NNLM(Neural Network Language model)
                      • 参考资料
                      相关产品与服务
                      NLP 服务
                      NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档