前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CS224N 课程笔记之一:词向量(上)

CS224N 课程笔记之一:词向量(上)

作者头像
口仆
修改2020-08-17 17:53:38
4440
修改2020-08-17 17:53:38
举报

1 自然语言处理简介

1.1 自然语言处理的特殊性

从处理的对象来看,NLP 与其他机器学习任务有很大区别:NLP 处理的对象是人类语言,而人类的语言是一种特定的用于传达意义的系统,并不由任何形式的物理表现产生,大部分词语只是一个表达某种意义的符号。语言通过各种方式编码(语音、手势、写作等),以连续信号的形式传输给大脑。

1.2 任务类型

NLP 的目标是设计算法来让计算机“理解”自然语言,以执行某些任务。这些任务可以划分为不同的难度等级,举例来说:

简单难度

  • 拼写检查
  • 关键词搜索
  • 同义词寻找

中等难度

  • 从网站、文档中解析信息

困难难度

  • 机器翻译
  • 语义分析
  • 指代消解
  • 智能问答

1.3 如何表示词语

所有 NLP 任务的第一个议题就是如何表示词语以将其作为模型的输入。当前常见的做法是使用词向量来表示词语,下面将对各种不同的词向量技术进行介绍。

2 传统词向量

3 基于 SVD 的方法

3.1 词语-文档矩阵

下面给出一个例子:该语料库由 3 个句子组成,且窗口大小设置为 1:

  1. I enjoy flying.
  2. I like NLP.
  3. I like deep learning.

按上述方法得到的矩阵为:

3.3 将 SVD 应用到共现矩阵

下面两张图给出了 SVD 的求解过程:

  • 使用 SVD 分解共现矩阵:
  • 通过选择前 k 个奇异向量减少维度:

3.4 存在的问题

基于 SVD 的方法虽然减小了维数,但是存在很多的问题:

  • 矩阵维数经常变化(随语料库变化)
  • 矩阵非常稀疏(因为大部分词语不存在共现)
  • 计算复杂度是平方级的(执行 SVD)
  • 需要一些技巧来处理词语频率间的极度不平衡

针对上述问题,可以采取如下的解决方案:

  • 忽略一些功能性词语(如 the、he、has 等)
  • 使用一个有坡度的窗口(即基于词语之间的距离设置不同的共现权重)
  • 使用皮尔逊相关性(中心化的余弦相似度)替代原始计数,并将负数置为 0

接下来,我们会介绍一种能更优雅地解决上述诸多问题的方案:基于迭代的方法。

4 基于迭代的方法:Word2vec

基于迭代的方法通过迭代逐渐学习词语的共现关系,而非基于 SVD 的方法那样一次性直接获取所有词语的共现关系。训练的过程是:设置一个目标函数,基于某种更新规则进行迭代,不断优化目标函数,最终学习得到词向量。

本节将介绍其中一种方法:Word2vec。Word2vec 是一个软件包,实际包括:

两种算法:CBOWskip-gram

  • CBOW 的目标是基于上下文预测中心词
  • Skip-gram 的目标是基于中心词预测上下文

两种训练方法:negative samplinghierarchical softmax

  • negative sampling 通过采集负样本定义目标函数
  • hierarchical softmax 通过一个高效的树结构计算所有词语的概率来定义目标函数

4.1 语言模型

word2vec 可以理解为是语言模型的副产物,语言模型用于计算一个词语序列的概率。如果这个序列是合理的(语义和语法上),其概率就会比较高,否则输出的概率就会比较低。该概率用数学公式可以表示为:

上述两种模型都过于理想化,实际情况下一个词语的出现概率受到更多因素的影响。下面将介绍如何通过模型学习这些概率。

4.2 CBOW

第一种方法是给定一个单词的上下文,来预测或生成该单词,该模型称为连续词袋模型(CBOW)。

4.2.3 学习方法

4.3 Skip-Gram

另一种方法是给定一个中心词,去预测或生成周围的词语,该模型被称为 Skim-Gram 模型

4.3.3 学习方法

在构建 skip-gram 模型的目标函数时,使用了贝叶斯假设(即条件独立假设):给定中心词的情况下,所有输出词语都完全独立。因此,代价函数如下:

4.5 Hierarchical Softmax

另一种优化代价函数计算的方法是 hierarchical softmax。在实际应用中,hierarchical softmax 对低频词的效果更好,而负采样对常用词和低维词向量的效果更好。

Hierarchical softmax 使用一个二叉树来表示词典中的所有词语。每个叶子节点都是一个词语,从根节点到叶子节点的路径唯一:

5 思维导图

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 口仆 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 自然语言处理简介
    • 1.1 自然语言处理的特殊性
      • 1.2 任务类型
        • 1.3 如何表示词语
        • 2 传统词向量
        • 3 基于 SVD 的方法
          • 3.1 词语-文档矩阵
            • 3.3 将 SVD 应用到共现矩阵
              • 3.4 存在的问题
              • 4 基于迭代的方法:Word2vec
                • 4.1 语言模型
                  • 4.2 CBOW
                    • 4.2.3 学习方法
                  • 4.3 Skip-Gram
                    • 4.3.3 学习方法
                  • 4.5 Hierarchical Softmax
                  • 5 思维导图
                  相关产品与服务
                  NLP 服务
                  NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档