前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CS224n 笔记2-词向量表示:Word2vec1. 单词含义的表示2. Word2Vec的主要思路3. 更多Word2Vec细节4 .梯度的推导5. 损失/目标函数相关推荐阅读

CS224n 笔记2-词向量表示:Word2vec1. 单词含义的表示2. Word2Vec的主要思路3. 更多Word2Vec细节4 .梯度的推导5. 损失/目标函数相关推荐阅读

作者头像
致Great
发布2018-04-11 16:49:52
1.3K0
发布2018-04-11 16:49:52
举报
文章被收录于专栏:程序生活程序生活

1. 单词含义的表示

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

下面是意思的定义:

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

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

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

我们这种离散表示(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向量:

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

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

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

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

查询和文档向量是正交的,所以one-hot向量不能体现出单词的相似性。 因此,我们需要找到一种可以直接用向量编码含义的方法。

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

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

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

通过向量定义单词的含义

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

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

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

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

所示函数:

其中,在一个很大语料库的不同位置获取上下文(不同的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

3. 更多Word2Vec细节

对于每个单词(从1到T),我们预测窗口半径大小为m的上下文词汇。 目标函数:最大化预测中心词的上下文概率。

其中θ表示我们需要优化的所有参数。

目标函数-objective function

  • 术语:Loss function = cost function = objective function
  • 通用的概率分布损失:交叉熵损失(Cross-entropy loss)

Softmax函数:将RV映射到概率分布的标准函数

下面是Skip-Gram的示意图:

4 .梯度的推导

目标函数:

以下面计算概率的公式:

具体的推导过程:

5. 损失/目标函数

梯度下降

-首先, 为了对整个训练数据最小化J(θ),需要计算出所有窗口的梯度

  • 更新每个参数θ
  • 步长为α
  • 对于所有参数θ的矩阵表示:

批梯度下降(Vanilla Gradient Descent Code)

对于一个简单二元凸函数,下面轮廓线显示了目标函数变化:

随机梯度下降法

上面方法有以下弊端:

  • 语料库非常大,具有40B的字符和窗口
  • 每次参数更新需要等待很长时间
  • 对于神经网络的效果很差 所以我们采用下面的方法:

相关推荐阅读

  • NLP Research Lab Part 1: Distributed Representations
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.09.25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 单词含义的表示
    • 我们如何表示一个单词的意思
      • 我们如何在表示可用的单词意思
        • 我们这种离散表示(discrete representation)方法的缺点
          • 从符号(symbolic)到分布式表示(distributed representations)
            • 基于分布相似性的表示方法
              • 通过向量定义单词的含义
                • 学习神经网络词嵌入的基本思想
                  • 直接学习低维词向量
                  • 2. Word2Vec的主要思路
                    • Skip-Gram
                    • 3. 更多Word2Vec细节
                      • 目标函数-objective function
                        • Softmax函数:将RV映射到概率分布的标准函数
                        • 4 .梯度的推导
                        • 5. 损失/目标函数
                          • 梯度下降
                            • 批梯度下降(Vanilla Gradient Descent Code)
                              • 随机梯度下降法
                              • 相关推荐阅读
                              相关产品与服务
                              NLP 服务
                              NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档