GloVe 模型介绍

下面的内容主要来自https://blog.csdn.net/u014665013/article/details/79642083

GloVe的推导

GloVe是基于共现信息来获得词的分布表示的,所以需要统计词的共现对信息。在设定的窗口内,统计中心词\(k\)与其上下文词\(i\)的共现次数\(X_{i,k}\)。那么有
\[
P_{i,k} = \dfrac{X_{i,k}}{X_i}
\]
其中
\[
X_i = \sum_{j}X_{i,j}
\]
作者发现对于任意三个词\(i,j,k\), \[
ratio_{i,j,k} = \dfrac{P_{i,k}}{P_{j,k}}
\]存在以下关系

\(ratio_{i,j,k}\) 单词\(j,k\)相关 单词\(j,k\)不相关
单词\(i,k\)相关 趋近1 很大
单词\(i,k\)不相关 很小 趋近1

GloVe模型要做的就是建模上述关系,因此需要寻找一个函数\(g\),使得
\[
\dfrac{P_{i,k}}{P_{j,k}} = g(v_i, v_j, v_k)
\]
一个较为直观的做法就是
\[
g(v_i,v_j,v_k) = \exp(v_i^Tv_k - v_j^Tv_k) = \dfrac{\exp (v_i^Tv_k)}{\exp(v_j^Tv_k)} = \dfrac{P_{i,k}}{P_{j,k}}
\]
所以,对于任意的词\(i,k\),仅需要使得\(v_i^Tv_k = \log P_{i,k}\)即可,便可得到目标函数
\[
J= \sum_{i,k}^N(v_i^Tv_k - \log P_{i,k})^2
\]
等等,这个方法似乎存在问题,因为\(\log P_{i,k}\) 不等于\(\log P_{k,i}\)但是\(v_i^Tv_j = v_j^Tv_i\),这样需要进行补救一下
\[
\log P_{i,k} = \log(X_{i,k}) - \log(X_i) = v_i^Tv_k
\]
此时引入两个偏置\(b_i, b_j\),
使得
\[
\log(X_{i,k}) = v_i^Tv_k + b_i + b_k
\]
\(\log(X_i)\)被偏置项吸纳。进而,我们的优化目标变为
\[
J = \sum_{i,k}f(X_{i,k})(v_i^Tv_j+b_i+b_k - \log(X_{i,k}))^2
\]
其中\(f(X_{i,k})\)为一个常量,其计算如下
\[
f(x) = \begin{cases}
(x/xmax)^0.75 & x < xmax\\
1 & x \ge xmax
\end{cases}
\]
其作用是某些词频率过高,通常没有多大的意义,比如停用词,所以不能给过高的权重,此处的xmax是一个超参数。

如何理解Global

GloVe 即Global Vectors,如word2vec一样,都有滑动窗口,那么Global体现在哪里?
从上面的推导过程中,我们不难发现,GloVe在参数的训练前,就已经统计好了一个共现矩阵,而这个共现矩阵是全局的,是整个语料的,然后再基于此进行参数学习,而word2vec在参数学习的时候,是局部的,每次只在一个窗口内的学习,只利用到了该窗口内的信息,比如cbow,每次都是基于单个窗口内的上下文词预测中心词。

GloVe词分布式表示的更多相关文章

  1. [DeeplearningAI笔记]序列模型2.8 GloVe词向量

    5.2自然语言处理 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.8 GloVe word vectors GloVe词向量 Pennington J, Socher R, Mannin ...

  2. NLP︱高级词向量表达(一)——GloVe(理论、相关测评结果、R&python实现、相关应用)

    有很多改进版的word2vec,但是目前还是word2vec最流行,但是Glove也有很多在提及,笔者在自己实验的时候,发现Glove也还是有很多优点以及可以深入研究对比的地方的,所以对其进行了一定的 ...

  3. 文本情感分析(二):基于word2vec、glove和fasttext词向量的文本表示

    上一篇博客用词袋模型,包括词频矩阵.Tf-Idf矩阵.LSA和n-gram构造文本特征,做了Kaggle上的电影评论情感分类题. 这篇博客还是关于文本特征工程的,用词嵌入的方法来构造文本特征,也就是用 ...

  4. L25词嵌入进阶GloVe模型

    词嵌入进阶 在"Word2Vec的实现"一节中,我们在小规模数据集上训练了一个 Word2Vec 词嵌入模型,并通过词向量的余弦相似度搜索近义词.虽然 Word2Vec 已经能够成 ...

  5. NLP教程(2) | GloVe及词向量的训练与评估

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www.showmeai.tech/article-det ...

  6. NLP︱词向量经验总结(功能作用、高维可视化、R语言实现、大规模语料、延伸拓展)

    R语言由于效率问题,实现自然语言处理的分析会受到一定的影响,如何提高效率以及提升词向量的精度是在当前软件环境下,比较需要解决的问题. 笔者认为还存在的问题有: 1.如何在R语言环境下,大规模语料提高运 ...

  7. DeepLearning.ai学习笔记(五)序列模型 -- week2 自然语言处理与词嵌入

    一.词汇表征 首先回顾一下之前介绍的单词表示方法,即one hot表示法. 如下图示,"Man"这个单词可以用 \(O_{5391}\) 表示,其中O表示One_hot.其他单词同 ...

  8. DLNg序列模型第二周NLP与词嵌入

    1.使用词嵌入 给了一个命名实体识别的例子,如果两句分别是“orange farmer”和“apple farmer”,由于两种都是比较常见的,那么可以判断主语为人名. 但是如果是榴莲种植员可能就无法 ...

  9. 2.keras实现-->字符级或单词级的one-hot编码 VS 词嵌入

    1. one-hot编码 # 字符集的one-hot编码 import string samples = ['zzh is a pig','he loves himself very much','p ...

随机推荐

  1. 多线程串口通信 MFC CSerialPort

    写在前面: 晚上应该继续完成未写完的代码,但Chrome上打开的标签实在太多了,约30个了,必须关掉一些,所以需要把自己看的整理一下然后关掉.本次主要写点MFC环境下多线程串口通信相关的东西,这包括线 ...

  2. Ubuntu 自动获取ip地址

    $ sudo dhclient -r               //release ip 释放IP$ sudo dhclient                  //获取IP手動使用 DHCP 自 ...

  3. for循环/计算坐标

    for循环计算坐标 webqq里面有类似桌面的各种图标,是绝对定位的,这样可以拖动改变位置,用浮动的话,没法拖动. <!DOCTYPE html> <html lang=" ...

  4. 【Troubleshooting Case】Exchange Server 组件状态应用排错?

    在Exchange 2013中,引入了“服务器组件状态”的概念.服务器组件状态从运行环境的角度提供对组成Exchange Server的组件的状态的精细控制. 日常排错时,常常会把Exchange 服 ...

  5. Python——函数入门(一)

    一.理解函数 举一个例子,当我们需要重复使用一个功能的时候,不可能每次都去复制一次代码,这个时候就需要用到函数了,所谓的函数,简单来说就是给函数取一个名字,当需要用到这个功能的时候,就可以通过这个名字 ...

  6. php的字符转换 & php登入注册界面设计以及源码 & 分离公共部分

    我们在编写的时候总是会出现乱码 https://www.cnblogs.com/mafeng/p/5827215.html php登入注册界面设计以及源码 https://blog.csdn.net/ ...

  7. HTML5 跨文档消息传输

    对窗口对象的message事件进行监听 window.addEventListener("message", function(event) { // 处理程序代码 }, fals ...

  8. Codeforces 517 #B

    http://codeforces.com/contest/1072/problem/B 开始想的只有搜索,时间复杂度$O(4^n)$,明显有问题. 想了半个小时没有思路,然后想到了正难则反,就开始步 ...

  9. 关于上传文件 非ajax提交 得到后台数据问题

    <form name="configForm" id="configForm" method="post" action=" ...

  10. Applied Nonparametric Statistics-lec8

    Ref:https://onlinecourses.science.psu.edu/stat464/print/book/export/html/11 additive model value = t ...