0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

PyTorch教程-15.5。带全局向量的词嵌入 (GloVe)

jf_pJlTbmA9 来源:PyTorch 作者:PyTorch 2023-06-05 15:44 次阅读

上下文窗口中的单词共现可能携带丰富的语义信息。例如,在大型语料库中,“固体”一词与“冰”比“蒸汽”更可能同时出现,但“气体”一词与“蒸汽”一起出现的频率可能高于“冰”。此外,可以预先计算此类共现的全球语料库统计数据:这可以提高培训效率。为了利用整个语料库中的统计信息进行词嵌入,让我们首先重新审视第 15.1.3 节中的 skip-gram 模型,但使用全局语料库统计信息(例如共现计数)来解释它。

15.5.1。Skip-Gram 与全球语料库统计

表示为qij条件概率 P(wj∣wi)词的wj给定的词wi在 skip-gram 模型中,我们有

(15.5.1)qij=exp⁡(uj⊤vi)∑k∈Vexp(uk⊤vi),

任何索引在哪里i载体vi和 ui代表词wi分别作为中心词和上下文词,并且 V={0,1,…,|V|−1}是词汇表的索引集。

考虑词wi可能在语料库中多次出现。在整个语料库中,所有上下文词无论在哪里wi被作为他们的中心词形成一个多重集 Ci允许同一元素的多个实例的单词索引。对于任何元素,其实例数称为其多重性。为了举例说明,假设这个词wi在语料库和上下文词的索引中出现两次 wi作为他们在两个上下文窗口中的中心词是 k,j,m,k和k,l,k,j. 因此,多重集 Ci={j,j,k,k,k,k,l,m},其中元素的多样性j,k,l,m分别为 2、4、1、1。

现在让我们表示元素的多重性j在多重集中 Ci作为xij. 这是单词的全局共现计数wj(作为上下文词)和词 wi(作为中心词)在整个语料库中的同一上下文窗口中。使用这样的全局语料库统计,skip-gram 模型的损失函数相当于

(15.5.2)−∑i∈V∑j∈Vxijlogqij.

我们进一步表示xi上下文窗口中所有上下文词的数量wi作为他们的中心词出现,相当于|Ci|. 出租pij是条件概率xij/xi用于生成上下文词 wj给定的中心词wi, (15.5.2) 可以改写为

(15.5.3)−∑i∈Vxi∑j∈Vpijlogqij.

在(15.5.3)中, −∑j∈Vpijlogqij计算条件分布的交叉熵pij全球语料库统计和条件分布qij模型预测。这种损失也由xi如上所述。最小化(15.5.3)中的损失函数 将使预测的条件分布接近全局语料库统计的条件分布。

虽然通常用于测量概率分布之间的距离,但交叉熵损失函数在这里可能不是一个好的选择。一方面,正如我们在 第 15.2 节中提到的,适当归一化的成本 qij导致整个词汇表的总和,这在计算上可能很昂贵。另一方面,来自大型语料库的大量稀有事件通常由交叉熵损失建模,以分配过多的权重。

15.5.2。手套模型

鉴于此,GloVe模型对基于平方损失的 skip-gram 模型做了三处改动(Pennington et al. , 2014):

使用变量pij′=xij和 qij′=exp⁡(uj⊤vi)不是概率分布,取两者的对数,所以平方损失项是 (logpij′−logqij′)2=(uj⊤vi−logxij)2.

为每个单词添加两个标量模型参数wi:中心词偏差bi和上下文词偏差ci.

用权重函数替换每个损失项的权重 h(xij), 在哪里h(x)在增加的间隔[0,1].

综上所述,训练 GloVe 就是最小化下面的损失函数:

(15.5.4)∑i∈V∑j∈Vh(xij)(uj⊤vi+bi+cj−logxij)2.

对于权重函数,建议的选择是: h(x)=(x/c)α(例如α=0.75) 如果 x

需要强调的是,如果单词wi出现在单词的上下文窗口中wj,则反之。所以, xij=xji. 不像word2vec那样拟合非对称条件概率pij, GloVe 适合对称 logxij. 因此,任何词的中心词向量和上下文词向量在 GloVe 模型中在数学上是等价的。然而在实践中,由于不同的初始化值,同一个词在训练后仍然可能在这两个向量中得到不同的值:GloVe 将它们相加作为输出向量。

15.5.3。从共现概率比解释 GloVe

我们还可以从另一个角度解读 GloVe 模型。使用第 15.5.1 节中的相同符号,令 pij=defP(wj∣wi)是生成上下文词的条件概率wj给予 wi作为语料库中的中心词。表 15.5.1 列出了给定单词“ice”和“steam”的几个共现概率及其基于大型语料库统计数据的比率。

表 15.5.1大型语料库中的词-词共现概率及其比率(改编自 Pennington et al. ( 2014 )中的表 1 )
wk= 坚硬的 气体 时尚
p1=P(wk∣ice) 0.00019 0.000066 0.003 0.000017
p2=P(wk∣steam) 0.000022 0.00078 0.0022 0.000018
p1/p2 8.9 0.085 1.36 0.96

我们可以从表 15.5.1中观察到以下内容:

一句话wk与“冰”相关但与“蒸汽”无关的,例如wk=solid,我们期望更大的共现概率比,例如 8.9。

一句话wk与“蒸汽”有关但与“冰”无关的,例如wk=gas,我们期望更小的共现概率比,例如 0.085。

一句话wk与“冰”和“蒸汽”都相关的,例如wk=water,我们期望共现概率的比率接近 1,例如 1.36。

一句话wk与“冰”和“蒸汽”均无关,例如wk=fashion,我们期望共现概率的比率接近 1,例如 0.96。

可以看出,共现概率的比值可以直观地表达词与词之间的关系。因此,我们可以设计一个三个词向量的函数来拟合这个比例。对于共现概率的比率pij/pik和wi 作为中心词和wj和wk作为上下文词,我们想使用一些函数来拟合这个比率f:

(15.5.5)f(uj,uk,vi)≈pijpik.

在许多可能的设计中f,我们只在下面选择一个合理的选择。由于共现概率的比率是一个标量,我们要求f是标量函数,例如 f(uj,uk,vi)=f((uj−uk)⊤vi). 切换单词索引j和k在(15.5.5)中,它必须认为f(x)f(−x)=1, 所以一种可能性是 f(x)=exp⁡(x), IE,

(15.5.6)f(uj,uk,vi)=exp⁡(uj⊤vi)exp⁡(uk⊤vi)≈pijpik.

现在让我们选择 exp⁡(uj⊤vi)≈αpij, 在哪里α是一个常数。自从pij=xij/xi, 两边取对数后得到 uj⊤vi≈logα+logxij−logxi. 我们可能会使用额外的偏差项来适应 −logα+logxi, 比如中心词偏差 bi和上下文词偏差cj:

(15.5.7)uj⊤vi+bi+cj≈logxij.

用权重测量式(15.5.7)的平方误差,得到式(15.5.4)中的GloVe损失函数。

15.5.4。概括

skip-gram 模型可以使用全局语料库统计信息(例如词-词共现计数)来解释。

交叉熵损失可能不是衡量两个概率分布差异的好选择,尤其是对于大型语料库。GloVe 使用平方损失来拟合预先计算的全局语料库统计数据。

对于 GloVe 中的任何单词,中心词向量和上下文词向量在数学上是等价的。

GloVe 可以从词-词共现概率的比率来解释。

15.5.5。练习

如果的话wi和wj在同一个上下文窗口中同时出现,我们如何利用它们在文本序列中的距离重新设计计算条件概率的方法 pij?提示:请参阅 GloVe 论文 (Pennington等人,2014 年)的第 4.2 节。

对于任何一个词,它的中心词偏向和上下文词偏向在 GloVe 中在数学上是否等价?为什么?

Discussions

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • pytorch
    +关注

    关注

    2

    文章

    808

    浏览量

    13216
收藏 人收藏

    评论

    相关推荐

    构建向量模型相关资料分享

    向量就是向量; 向量的计算应该有意义, 需要尽可能保留原来的语言特征, 把语素编码到连续的、能反映语素间关系的连续的
    发表于 09-17 07:17

    如何构建向量模型?

    如何构建向量模型?
    发表于 11-10 07:43

    Pytorch模型如何通过paddlelite部署到嵌入式设备?

    Pytorch模型如何通过paddlelite部署到嵌入式设备?
    发表于 12-23 09:38

    结合向量和聚类算法的话题演进分析

    话题演进分析主要是挖掘话题内容随着时间流的演进情况。话题的内容可用关键来表示。利用word2vec对75万篇新闻和微博文本进行训练,得到向量模型。将文本流处理后输入模型,获得时间序列下所有词汇
    发表于 11-24 15:44 1次下载

    基于分布式向量的主题分类

    主题分类在内容检索和信息筛选中应用广泛,其核心问题可分为两部分:文本表示和分类模型。近年来,基于分布式向量对文本进行表示,使用卷积神经网络作为分类器的文本主题分类方法取得了较好的分类效果。本文研究
    发表于 12-05 16:19 0次下载
    基于分布式<b class='flag-5'>词</b><b class='flag-5'>向量</b>的主题分类

    基于向量和CRF的领域术语识别方法

    针对基于统计特征的领域术语识别方法忽略了术语的语义和领域特性,从而影响识别结果这一问题,提出一种基于向量和条件随机场(CRF)的领域术语识别方法。该方法利用词向量具有较强的语义表达能力、词语与领域
    发表于 12-09 11:52 1次下载

    关于GN-GloVe嵌入技术详解

    带有这样的偏见的嵌入模型,会给下游的NLP应用带来严重问题。例如,基于嵌入技术的简历自动筛选系统或工作自动推荐系统,会歧视某种性别的候选人(候选人的姓名反映了性别)。除了造成这种明
    的头像 发表于 09-23 09:25 3861次阅读

    wordNet向量和词义

    的每一个位置t,均存在中心c和上下o 4. 使用c和o的向量相似性来计算给定c和o的概率 5.不断调整
    的头像 发表于 11-02 15:16 2959次阅读
    wordNet<b class='flag-5'>词</b><b class='flag-5'>向量</b>和词义

    融合BERT向量与TextRank的关键抽取方法

    结合文档本身的结构信息与外部词语的语义信息,提出一种融合BERT向量与 Textrank的关键抽取方法。在基于网络图的 Textrank方法基础上,引入语义差异性并利用BERT
    发表于 03-21 09:55 18次下载
    融合BERT<b class='flag-5'>词</b><b class='flag-5'>向量</b>与TextRank的关键<b class='flag-5'>词</b>抽取方法

    低频向量优化在短文本分类中的应用

    众多自然语言处理( Natural Language Processing,NLP)任务受益于在大规模语料上训练的向量。由于预训练的向量具有大语料上的通用语义特征,因此将这些
    发表于 05-17 15:37 13次下载

    基于双通道向量的卷积胶囊网络文本分类算法

    基于向量空间模型的文本分类方法的文本表示具有高纬度、高稀疏的特点,特征表达能力较弱,且特征工程依赖人工提取,成本较髙。针对该问题,提出基于双通道向量的卷积胶囊网络文本分类算法。将WordⅤec训练
    发表于 05-24 15:07 6次下载

    PyTorch教程15.5全局向量嵌入(GloVe)

    电子发烧友网站提供《PyTorch教程15.5全局向量
    发表于 06-05 11:01 0次下载
    <b class='flag-5'>PyTorch</b>教程<b class='flag-5'>15.5</b>之<b class='flag-5'>带</b><b class='flag-5'>全局</b><b class='flag-5'>向量</b>的<b class='flag-5'>词</b><b class='flag-5'>嵌入</b>(<b class='flag-5'>GloVe</b>)

    PyTorch教程15.6之子嵌入

    电子发烧友网站提供《PyTorch教程15.6之子嵌入.pdf》资料免费下载
    发表于 06-05 11:02 0次下载
    <b class='flag-5'>PyTorch</b>教程15.6之子<b class='flag-5'>词</b><b class='flag-5'>嵌入</b>

    PyTorch教程-15.6. 子嵌入

    15.6. 子嵌入¶ Colab [火炬]在 Colab 中打开笔记本 Colab [mxnet] Open the notebook in Colab Colab [jax
    的头像 发表于 06-05 15:44 341次阅读

    nlp自然语言处理模型有哪些

    嵌入(Word Embedding) 嵌入是将词汇映射到高维空间的向量表示,使得语义相近的
    的头像 发表于 07-05 09:57 715次阅读