美文网首页
NLP学习2-词向量和词义

NLP学习2-词向量和词义

作者: efffffff | 来源:发表于2020-06-27 23:48 被阅读0次

探索词义和词向量

B站视频地址 https://www.bilibili.com/video/BV1s4411N7fC?p=2

词向量表示

复习下上一篇文章中的词向量https://www.jianshu.com/p/a0755b865dd9

词向量是每个单词对应的稠密向量表示,是从稀疏的表示之中转换而来。
每个词向量的表示都包含两部分uv

优化算法

使用优化算法最小化前一篇文章提到的损失函数。

梯度下降

使用\alpha来表示下降速度
\theta^{new} = \theta^{old} - \alpha\nabla_{\theta}J(\theta)

随机梯度下降

因为梯度下降里\nabla_{\theta}J(\theta)是使用了全部数据集的计算结果,但数据集非常庞大时,使用全部数据集就很耗时,所以将大的数据集分为一个个bitch,来进行训练,可以加快训练的速度。
这种方式叫做随机梯度下降SGD

词向量和随机梯度下降

因为在训练词向量时,使用的输入是稀疏矩阵。所以在运算时会包含很多的0,。这个时候如果像正常的稠密矩阵进行梯度更新的话,会存在很多的无效更新。所以在词向量的训练上,可以在更新梯度时只更新输入非0的维度,减少同一时间的运算数量,减少内存使用加快更新速度。

两个主要算法

Skip-grams(SG)算法

给定中心词去预测outside词

Continuous Bag of Words(CBOW)

给定context词,预测中心词

HW2-负采样(Negative Sampling)

由于使用了softmax进行计算概率,但是如果词空间较大时,计算成本较高。
所以使用一种二元回归模型,将中心词和上下文词给一个比较高的权重,其他的噪音词汇给较低的权重。然后去最大化目标
J(\theta) = \frac{1}{T} \sum_{t=1}^TJ_t(\theta)

使用sigmod去使用单个的概率替换softmax,比softmax的计算量要小。对于中心词和上下文词,最大化
J(\theta) = \log \sigma(u_o^Tv_c) + \sum_{i=1}^k\mathbb{E}_{j\sim P(w)}[\log \sigma(-u_j^Tv_c)]
对于随机采样的噪音词汇,最小化。
J_{neg-sample}(o, v_c, U) = -\log \sigma(u_o^Tv_c) -\sum_{i=1}^k\log \sigma(-u_j^Tv_c)

通过对采样算法的控制,可以提高低频词汇被采样的概率,提高对低频词汇的训练性能。

基于窗口的计数统计

特点

  1. 随词空间大小而增长
  2. 维度非常高
  3. 里面的大部分空间是稀疏的
  4. 健壮性和输入的词空间大小有关

降维

SVD,奇异值分解

变种

COALS 模型

  1. 加权采样
  2. 设置频率上限
  3. 使用相关性代替计数

计数统计和概率预测的对比

计数 预测
代表模型 LSA, HAL / COALS, Hellinger-PCA Skip-gram/CBOW, NHLM, HLBL, RNN
训练速度快 依赖语料库大小
统计学的有效应用 在统计学上不具备有效性
擅于捕捉词的相似性 在其他任务上也可以改进生成性能
计数的大小和重要性不成比例 可以捕捉词的复杂相似性

使用共现频率来作为概率的权重和目标

GloVe,假设X是共现矩阵,则可以根据共现矩阵的定义,如果词向量的值符合预期的话,那么,通过词向量出的共现概率应该接近于共现矩阵。
w_i * w_j = \log P(i|j)
J=\sum_{i,j=1}^Vf(X_{ij})(w_i^T\tilde{w_j} + b_i + \tilde{b_j}-\log X_{ij})
函数f(X_{ij})是一个类似于min(max(0, x), 1),存在上下限,避免高频词汇的扰动。

如何评估词向量

内在评估

  1. 评估一个特定中间的子任务
  2. 计算速度
  3. 帮助理解系统
  4. 在真实统计简历前,无法确定是否真的有效

外在评估

  1. 评估真实任务
  2. 可以花大量事件计算准确率
  3. 使用一个更好的子系统替换,就会提高性能

相关文章

  • NLP学习2-词向量和词义

    探索词义和词向量 B站视频地址 https://www.bilibili.com/video/BV1s4411N7...

  • NLP讲座2:词向量和词义

    1. 复习:word2vec的主要思想 遍历整个语料库的每个单词 使用单词向量预测周围的单词 更新向量,以便您可以...

  • NLP笔记 - 词向量

    学习词向量的笔记 词向量 or word2vec,一种NLP中对词语的特征表示。由于one-hot会产生维度灾难,...

  • NLP词向量

    词的向量表征,也称为word embedding,词向量是自然语言处理中常见的一个操作,是搜索引擎、广告系统、推...

  • opennmt-tf 关键术语说明

    1. 词嵌入向量WordEmbedding 定义:词嵌入向量(WordEmbedding)是NLP里面一个重要的概...

  • NLP(1)——词向量

    前言:深度学习网络rnn能解决有序的问题,我们就生活在这样一个有序的世界。比如时间,音乐,说话的句子,甚至一场比赛...

  • NLP-词向量

    利用语料学习时,首先要解决的问题-将某个词转化为词向量 word2vec工具 英语约1300万词,词向量可以用一个...

  • 使用的词向量

    腾讯AILAB词向量:https://ai.tencent.com/ailab/nlp/embedding.htm...

  • Bert学习

    深度学习在NLP领域的发展 一、词向量历史 1.1 第一阶段: Word embeddignd Word 2Vec...

  • 词向量技术-从word2vec到ELMo

    本文关键词:NLP、词向量、word2vec、ELMo、语言模型 0. 前言 "词和句子的嵌入已成为所有基于深度学...

网友评论

      本文标题:NLP学习2-词向量和词义

      本文链接:https://www.haomeiwen.com/subject/utkbfktx.html