[GloVe]论文实现:GloVe: Global Vectors for Word Representation*

简介: [GloVe]论文实现:GloVe: Global Vectors for Word Representation*

一、完整代码

稍后补充

二、论文解读

2.1 当前存在的两种word2vec模型

word2vec的两个主要处理方法:

1) Matrix Factorization Methods,如潜在语义分析(LSA)

2) Shallow Window-Based Methods,如CBOW和Skip-gram

    目前,这两个模型方法都存在明显的缺陷。虽然像LSA这样的方法很有效地利用了统计信息,但它们在单词类比任务上做得相对较差,这表明了一个次优的向量空间结构。像skip-gram这样的方法可能在类比任务上做得更好,但它们很少利用语料库的统计数据,因为它们训练的是单独的局部上下文窗口,而不是全局共现计数。

    而GloVe能结合两种优点,通过只训练词共现矩阵中的非零元素,而不是训练整个稀疏矩阵或大型语料库中的单个上下文窗口,有效地利用了统计信息。产生了一个具有有意义的子结构的向量空间;

2.2 GloVe的原理

2.2.1 构建词共现矩阵

    与LSA利用word和top构建词共现矩阵不同的是,GloVe利用的是word和word构建的词共现矩阵,实现原理很简单,利用Shallow Window-Based Methods 即n-gram构建词共现矩阵,接下来我们开始下一步的推导;

2.2.2 定义和推导

    首先我们定义词共现矩阵为 X,其 Screenshot_20240510_111220.jpg 表示为 Screenshot_20240510_111334.jpg 中出现的次数;定义 Screenshot_20240510_111442.jpg 即所有词包含 Screenshot_20240510_111524.jpg 出现的次数之和;最后定义 Screenshot_20240510_111615.jpg ,表示 Screenshot_20240510_111524.jpg 出现在包含 Screenshot_20240510_111524.jpg 的上下文出现次数的可能性;


从图中我们可以看出,虽然k在ice和steam出现的概率不高,但是两者的概率的比值根据k值都有一定的变化,再根据k为solid或者gas的结果中我们可以看出,solid大于1对应分子,gas小于1对应分母;再从water和fashion两个与solid和gas几乎无相关的词的值在1附近可以看出,该比率能更好地区分相关单词和不相关单词;


    在这里我们定义 Screenshot_20240510_111524.jpg 和   Screenshot_20240510_111955.jpg 这两个词的词向量为 Screenshot_20240510_112240.jpg ,随便定义一个映射函数,包含 Screenshot_20240510_112024.jpg ,不需要在意是怎么映射的;


Screenshot_20240510_102956.jpg

然后由于向量空间本质上是线性结构,所以最自然的方法是利用向量差。即可以把 Screenshot_20240510_112422.jpg 转化为 Screenshot_20240510_112602.jpg ,即

Screenshot_20240510_103109.jpg

再可以看到减数和被减数分别代表着分子和分母,然而分子和分母之间又有一个k与他们联系起来,这里我们可以再进行转化一下,把   Screenshot_20240510_112738.jpg ,即   Screenshot_20240510_103211.jpg 在这里就结束了吗?不!我们还给这个函数添加一个新的功能

Screenshot_20240510_103520.jpg

得到

Screenshot_20240510_103604.jpg

由于需要满足这个新功能的函数只有指数函数则定义 Screenshot_20240510_103707.jpg ,则有

Screenshot_20240510_103821.jpg 从自由度的角度来解释由于公式 Screenshot_20240510_103919.jpg 其中   Screenshot_20240510_104021.jpg 的值是否固定不影响   Screenshot_20240510_104152.jpg 的关系,我们可以把其看作一个常数,通过对称性,我们可以把其值表示为

  Screenshot_20240510_104251.jpg

同时要注意到词共现矩阵肯定会出现0元素,所以我们需要进行一下优化,有

  Screenshot_20240510_104407.jpg

到这一步其实还有一个缺陷:会出现一些无意义的词共现程度非常大,所以我们需要加强一下出现词少的权重,减弱一下出现词多的权重;定义函数如下

  Screenshot_20240510_104601.jpg

在这里我们需要定义两个参数 Screenshot_20240510_104643.jpg Screenshot_20240510_104806.jpg

最后我们定义损失函数如下:

Screenshot_20240510_104852.jpg

一般来说我们把 Screenshot_20240510_104943.jpg 分别固定为100和0.75;

2.2.3 与其他模型的关系

其他模型一般是使用softmax进行分类,即要求

  Screenshot_20240510_105127.jpg (

达到最大;这样我们就可以定义其损失函数为

Screenshot_20240510_105226.jpg

不懂可以考虑一下: Screenshot_20240510_105330.jpg  ,在这里又可以通过 Screenshot_20240510_105448.jpg Screenshot_20240510_105525.jpg 转化为

Screenshot_20240510_105647.jpg

其中 Screenshot_20240510_105739.jpg 表示 Screenshot_20240510_105826.jpg 出现在包含 Screenshot_20240510_105922.jpg 的上下文出现次数的可能性; Screenshot_20240510_110045.jpg 可以写为 Screenshot_20240510_110206.jpg ,不同的模型主要差别显示在了这里, Screenshot_20240510_110304.jpg 都有 Screenshot_20240510_110404.jpg 出现在包含   Screenshot_20240510_110508.jpg 的上下文出现次数的可能性的意思,则应该输出一个平方项,于此同时   Screenshot_20240510_110603.jpg j ) 是负数,可以把负号给去掉,则应该使其平方和尽可能的小,则可以表示为

Screenshot_20240510_110704.jpg 为了简化计算有 Screenshot_20240510_110808.jpg 再根据优化,减弱出现次数多的权重,加强出现次数少的权重,最后我们可以得到

Screenshot_20240510_110910.jpg

三、过程实现

稍后补充

四、整体总结

GloVe是一种新的全局对数双线性回归模型的无监督学习,在单词类比、单词相似度和命名实体识别任务上优于其他模型(2014年之前)。


目录
相关文章
|
机器学习/深度学习 算法
大模型开发:什么是过拟合和欠拟合?你如何防止它们?
机器学习中,过拟合和欠拟合影响模型泛化能力。过拟合是模型对训练数据过度学习,测试集表现差,可通过正则化、降低模型复杂度或增加训练数据来缓解。欠拟合则是模型未能捕捉数据趋势,解决方案包括增加模型复杂度、添加特征或调整参数。平衡两者需通过实验、交叉验证和超参数调优。
3042 0
|
存储 人工智能 编解码
阿里云GPU云服务器深度评测:算力怪兽如何重塑AI与图形处理的未来?
在AI与高性能计算需求激增的今天,传统CPU已难满足“暴力计算”需求。阿里云GPU云服务器依托NVIDIA顶级显卡算力,结合专为GPU优化的神行工具包(DeepGPU),为深度学习、科学计算、图形渲染等领域提供高效、弹性的算力支持。本文全面解析其产品优势、工具链及六大真实应用场景,助你掌握AI时代的算力利器。
阿里云GPU云服务器深度评测:算力怪兽如何重塑AI与图形处理的未来?
|
8月前
|
自然语言处理 算法 测试技术
大模型应用:基于本地大模型的中文命名实体识别技术实践与应用
本文探讨了基于本地部署的大模型在命名实体识别(NER)任务中的应用优势。通过通用领域中文NER和医疗领域专用NER两个典型案例,展示了本地大模型在数据安全、响应速度和识别精度方面的显著优势。通用领域采用RoBERTa模型在CLUENER2020数据集上微调,可识别10类实体;医疗领域基于BERT架构的专用模型,在CMEEE数据集上训练,准确识别疾病、症状等医疗实体。本地部署不仅满足合规要求,还能通过领域自适应提升专业文本识别效果,为各行业智能化转型提供可靠技术方案。
727 14
|
10月前
|
机器学习/深度学习 人工智能 编解码
CVPR 2022!经典论文!稳定扩散模型(Stable Diffusion)背后的革命性技术:隐空间扩散模型
CVPR 2022经典论文《High-Resolution Image Synthesis with Latent Diffusion Models》提出隐空间扩散模型(LDM),通过在低维隐空间进行扩散,显著降低计算成本,实现高效高分辨率图像生成,成为Stable Diffusion的核心技术,推动文生图普及。
780 0
CVPR 2022!经典论文!稳定扩散模型(Stable Diffusion)背后的革命性技术:隐空间扩散模型
|
开发者 索引
HarmonyOS使用系统图标
HarmonyOS图标符号是系统内置的图标资源库,开发者可通过SymbolGlyph和SymbolSpan组件高效引用图标资源,简化开发流程并确保应用与系统设计风格一致。通过`$r('sys.symbol.resource_name')`访问系统图标资源,支持调整大小、颜色、粗细、渲染策略及动效。更多示例和学习资料详见官方文档和教程。
1330 2
HarmonyOS使用系统图标
|
机器学习/深度学习 数据采集 人工智能
实战FastText构建中文
FastText是由Tomas Mikolov团队于2016年推出的高效文本分类与词向量训练工具,作为Word2Vec的优化版本,其具备以下优势:训练速度快,比传统深度学习模型快多个数量级;支持大规模数据,可处理数十亿词汇;内置n-gram特征处理,简化文本预处理流程;资源消耗低,适合普通硬件运行。本文通过点评数据的二分类任务,展示了从数据下载、清洗、模型训练到评估的完整实践流程,验证了FastText在中文意图分类中的高效性与实用性。
1034 0
|
数据采集 Web App开发 JavaScript
Python爬虫解析动态网页:从渲染到数据提取
Python爬虫解析动态网页:从渲染到数据提取
|
Python
Pycharm中VCS找不到check out from Version Control选项原因及绑定用户github
Pycharm中VCS找不到check out from Version Control选项原因及绑定用户github
1615 0
Pycharm中VCS找不到check out from Version Control选项原因及绑定用户github
|
人工智能 自然语言处理 物联网
llama factory 从数据集起步 跑通 qwen系列开源生成式大模型 微调
`dataset_info.json` 文件用于管理 llama factory 中的所有数据集,支持 `alpaca` 和 `sharegpt` 格式。通过配置此文件,可以轻松添加自定义数据集。数据集的相关参数包括数据源地址、数据集格式、样本数量等,支持 Hugging Face 和 ModelScope 两个平台的数据集仓库。针对不同格式的数据集,提供了详细的配置示例,如 `alpaca` 格式的指令监督微调数据集、偏好数据集等,以及 `sharegpt` 格式的多模态数据集等。今天我们通过自定义数据集的方式来进行qwen2.5_14B_instruct模型进行微调
8972 7