Sequence Models(2): NLP & Word Embedding

栏目: 编程工具 · 发布时间: 5年前

内容简介:Sequence Models的第二部分,主要讲了因为 最近有个面试 我在忙着进行面试前的准备,所以这部分内容就只是简单地描述一下。

Sequence Models的第二部分,主要讲了 自然语言处理词嵌入 (Word Embedding) 的内容(其实只讲了Word Embedding)。

因为 最近有个面试 我在忙着进行

虽然可能并没有什么用但是准备这个行为本身能令人心安所以在努力进行所谓的

面试前的准备,所以这部分内容就只是简单地描述一下。

1. Word Representation

对词进行向量表示,也就是对每个单词进行特征提取。词的每一个维度可以看做是 一个不好直接解释的特征

什么叫 好解释 的特征呢,比如说,我手动定义了两个维度:性别,高贵。现在有两个词 ‘皇后’ 与 ‘农妇’,那么很显然能推理出:一个好的词向量表示,两者在 性别 特征上的取值一定是相似的,但是在 高贵 特征上的取值前者会大于后者。

比如 皇后 这个词的向量表示为$h_1 = (0.98, 0.98)$,那么 农妇 的词向量更有可能是类似$h_2=(0.95, 0.02)$之类的情况。每个词的第一个维度表示这个单词在性别上的取值(具体地:男性取-1,女性取1,中性或物品取0),而第二个维度表示这个单词高贵的程度。

而词向量的表示因为是根据算法 自行学习 出来的,所以在每一个维度上的特征并没有上面的:chestnut:这么好解释,有时候单词A在第n个维度取值是$a$,而单词B在第n个维度取值是$b$,我们只能从两者的相对距离来判断这两个单词在这个维度上的相似性,而无法通过一个类似 性别 或者 高贵 的词来解释它。

一个好的词向量还有一个特征,就是可以进行归纳推理。简单来说,假设我们有词向量$v_{\mathrm{man}},v_{\mathrm{woman}},v_{\mathrm{king}},v_{\mathrm{queen}}$,有以下公式成立:

但是,正是由于词向量是算法根据语料自行学习出来的,导致了词向量会出现偏见(prejudice),比如说:

这里把女性类比为一个homemaker,显然是带有歧视与偏见的,但是这个词向量是自行学习的,怎么手动进行纠正呢?这是NLP中一个有意思的领域,叫 除偏(Debiasing)

2. Learning Word Embedding

学习词向量表示的算法被称为 word2vec ,顾名思义就是把word变成vector的形式,其核心就是使用一个滑动窗口,每次读取一个固定长度序列中的字符串片段,进行统计学习后使用softmax进行归一,比较经典word2vec算法的有以下几种:

  • skip-gram:窗口内随机选择单词作为(context, target)对,使用交叉熵作为损失函数进行softmax训练。
  • CBOW(Continuous Bag-of-Words):输入是某一个特征词的上下文相关词所对应的词向量,而输出是当前词对应的词向量,同样输出到所有词的softmax概率。
  • GloVe:考虑了基于统计的词向量模型能够充分利用全局信息,但对词汇之间的信息关系把握不充分,而基于神经网络的模型对无法充分利用全局统计信息而考虑的。

3. Softmax 训练开销很大

  1. 使用分层softmax,类似于一个决策树;
  2. 使用负采样来降低每次计算全局数据的开销。

4. Sentiment Classification

情感分析。给定评论(文字),映射到一个五分类输出,表示对某个餐厅/服务的评价星级。

使用预训练的大语料上的embedding matrix $E$。

  1. 对所有word的embedding结果进行sum(+avg),使用softmax映射到五分类。问题:没有考虑order与语义依赖。(lacking in good taste, good service, good…。好多good!)
  2. 放入RNN单元,转换成第一讲 中的 many-to-one 问题。

5. Debiasing

上面Q1中消除偏见稍微具体的描述。具体有以下三个步骤:

  1. Identify Bias Direction
  2. Neutralize
  3. Equalize

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C语言进阶

C语言进阶

牟海军 / 机械工业出版社 / 2012-7 / 59.00元

C语言是编程语言中的一朵奇葩,虽已垂垂老矣,但却屹立不倒,诞生了数十年,仍然是最流行的编程语言之一。C语言看似简单,却不易吃透,想要运用好,更是需要积淀。本书是一本修炼C程序设计能力的进阶之作,它没有系统地去讲解C语言的语法和编程方法,而是只对C语言中不容易被初学者理解的重点、难点和疑点进行了细致而深入的解读,揭露了C语言中那些鲜为普通开发者所知的秘密,旨在让读者真正掌握C语言,从而编写出更高质量......一起来看看 《C语言进阶》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换