CS224n 笔记2-词向量表示:Word2vec(一)

本文涉及的产品
NLP自然语言处理_高级版,每接口累计50万次
NLP自然语言处理_基础版,每接口每天50万次
NLP 自学习平台,3个模型定制额度 1个月
简介: CS224n 笔记2-词向量表示:Word2vec(一)

1. 单词含义的表示


我们如何表示一个单词的意思


下面是意思的定义:

  • 用词语,语句表示的想法或观点
  • 人们使用词汇,符号来表达的想法
  • 在一篇文章和艺术品表达的观点
    最常见的意思语言学表现形式:
  • 符号⟺被标记的观点或者事物= 含义


我们如何在表示可用的单词意思


常见的答案是:使用一个分类系统,例如想WordNet一样,分类系统包含了上义词关系和同义词集合。


70.png


我们这种离散表示(discrete representation)方法的缺点


  • 单词数量非常多但是忽视了单词之间的细微差别
    例如同义词:


adept, expert, good, practiced, proficient, skillful?


  • 不能及时更新新单词:


wicked, badass, nifty, crack, ace, wizard, genius, ninja


  • 具有主观性
  • 需要人工创建和调整
  • 很难准确地计算出单词相似性
    绝大数基于规则和统计学建立的NLP工作将单词当作最小单位(atomic symbols):hotel, conference, walk
    但是在向量空间中,单词可以表示为具有1个1和很多0的one-hot向量:


71.png


这是一种局部表示(localist representation)


从符号(symbolic)到分布式表示(distributed representations)


符号表示存在自身的一些问题,比如对于web搜索:

  • 如果我们搜索[Dell notebook battery size],我们可能得到含有“Dell laptop battery capacity”的文档
  • 如果我们搜索[Seattle motel],可能匹配到含有“Seattle hotel”的文档。
    但是


72.png


查询和文档向量是正交的,所以one-hot向量不能体现出单词的相似性。

因此,我们需要找到一种可以直接用向量编码含义的方法。


基于分布相似性的表示方法


从上下文中推断一个单词的含义


73.png


下面是现代统计自然语言处理(NLP)最成功的思想之一:


74.png


通过向量定义单词的含义


通过为每个单词类型构建一个密集的向量,我们可以预测其上下文中出现的其他单词。


这些其他单词也是用向量表示,并且是可递归调整的。


学习神经网络词嵌入的基本思想


定义一个可以预测中心词上下文的模型:


75.png


所示函数:


76.png


其中,在一个很大语料库的不同位置获取上下文(不同的t),不断调整词向量以将损失最小化。


直接学习低维词向量


这种方法不是新颖的,下面是相关的研究论文和深度学习方法:

  • Learning representations by back-propagating errors
    (Rumelhart et al., 1986)
  • A neural probabilistic language model (Bengio et al., 2003)
  • NLP (almost) from Scratch (Collobert & Weston, 2008)
  • A recent, even simpler and faster model:
    word2vec (Mikolov et al. 2013) àintro now


2. Word2Vec的主要思路


一句话总结:


“在每个单词和单词上下文之间进行预测”


  • 两个算法:
  1. Skip-Gram(SG)
    通过给出的中心词来预测上下文(假设单词之间相互独立)
  2. 连续词袋模型(CBOW)
    从上下文中预测中心词(目标词)
  • 两个优化的训练方法:
  1. Hierarchical softmax
  2. Negative sampling(负采样)


Skip-Gram


77.png

相关文章
|
1月前
|
机器学习/深度学习 数据采集 自然语言处理
如何使用 Word2Vec 模型进行情感分析?
【10月更文挑战第5天】如何使用 Word2Vec 模型进行情感分析?
|
2月前
|
机器学习/深度学习 自然语言处理 Python
|
机器学习/深度学习 自然语言处理 算法
深度学习基础入门篇10:序列模型-词表示{One-Hot编码、Word Embedding、Word2Vec、词向量的一些有趣应用}
深度学习基础入门篇10:序列模型-词表示{One-Hot编码、Word Embedding、Word2Vec、词向量的一些有趣应用}
深度学习基础入门篇10:序列模型-词表示{One-Hot编码、Word Embedding、Word2Vec、词向量的一些有趣应用}
|
机器学习/深度学习 自然语言处理 运维
Word2Vec:一种基于预测的方法
Word2Vec:一种基于预测的方法
292 0
|
自然语言处理 数据可视化 数据处理
基于gensim实现word2vec模型(附案例实战)
基于gensim实现word2vec模型(附案例实战)
912 1
基于gensim实现word2vec模型(附案例实战)
|
机器学习/深度学习 自然语言处理 算法
Word2Vec原理以及实战详解
Word2Vec原理以及实战详解
|
机器学习/深度学习 存储 人工智能
文本深度表示模型——word2vec&doc2vec词向量模型
NLP 中最直观,也是到目前为止最常用的词表示方法是 One-hot Representation,这种方法把每个词表示为一个很长的向量。这个向量的维度是词表大小,其中绝大多数元素为 0,只有一个维度的值为 1,这个维度就代表了当前的词。
文本深度表示模型——word2vec&doc2vec词向量模型
|
机器学习/深度学习 存储 数据采集
词向量word2vec(图学习参考资料1)
词向量word2vec(图学习参考资料1)
|
机器学习/深度学习 自然语言处理
CS224n 笔记2-词向量表示:Word2vec(二)
CS224n 笔记2-词向量表示:Word2vec(二)
120 0
CS224n 笔记2-词向量表示:Word2vec(二)
|
机器学习/深度学习 自然语言处理 算法
Word2Vec教程-Skip-Gram模型
这篇教程主要讲述了Word2Vec中的skip gram模型,主要目的是避免普遍的浅层介绍和抽象观点,而是更加详细地探索Word2Vec。现在我们开始研究skip gram模型吧
492 0
Word2Vec教程-Skip-Gram模型