GloVe损失函数的理解
简介
GloVe是一种非常简单快速的训练词向量的算法。与复杂的word2vec相比,其是一个log双线性模型,仅通过一个简单的损失函数就能够得到很好的结果。
其中,vi和vj是i和j的词向量,bi和bj是两个偏差项,f是一个权重函数,N为词汇表大小
但是这个损失函数的意义却不是很直观,这里参照一篇博客写了一下对于这个损失函数的分析
思路
Glove首先会通过设置定义的窗口大小,进行统计得到词的共现矩阵。如Xi,j表示词i和j同时出现的次数。共现矩阵是一个N×N的矩阵
然后我们需要计算一些条件概率
定义
然后我们分析这里的ratio会发现一些规律
所以我们想到,如果能够通过词向量vi,vj和vk得到相似的规律的,那么说明我们的词向量是很不错的。即我们想做的是得到函数g(),使之满足
那么为了使二者尽量想近,对于损失函数,一个直观的想法就是MSE,即
不过这里的计算复杂度是N3,过于复杂,我们需要进一步分析。我们可以开始猜想一下g(vi,vj,vk)是一个什么样的形式,因为其衡量了单词i,j之间的关系,那么我们可以猜想其中含有vi−vj,又因为其中还有对k的关系且最终是一个标量,那么我们假设其存在一个内积,即(vi−vj)Tvk
那么现在我们有
可以看到这里我们和上面的损失函数有点类似了,但是还是缺少一个exp,我们可以加上它看看,即
可以看到,加上exp之后分子分母的形式就完全一样了,我们可以将其一起考虑,即现在只需要满足
两边取对数,我们的损失函数就能够转化为
这个损失函数已经更像一些了,但是还是不太一样。这是因为我们前面是存在一点问题的。根据前面我们有
但是实际上,上面的式子右边是相等的,但左边并不相等(并且对于这个问题来说,我们可以想到target和context其实是可以互换的,所以存在对称),即原有的对称性不满足了。我们需要进一步处理一下。我们将上面(3)的中的条件概率log(Pi,j)展开,得到
这里的log(Xi)是独立于j的,所以可以被吸收进bi变为
这样代价函数就变成了
然后加上词频越高权重越大(共现次数很少的实际上很可能是异常值,并且共现次数少的一般来说含的信息也少)
权重函数

引用
- Pennington J, Socher R, Manning C. Glove: Global vectors for word representation[C]//Proceedings of the 2014 conference on empirical methods in natural language processing (EMNLP). 2014: 1532-1543.
- https://blog.csdn.net/codertc/article/details/73864097
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">
GloVe损失函数的理解的更多相关文章
- 【转载】深度学习中softmax交叉熵损失函数的理解
深度学习中softmax交叉熵损失函数的理解 2018-08-11 23:49:43 lilong117194 阅读数 5198更多 分类专栏: Deep learning 版权声明:本文为博主原 ...
- 【深度学习】一文读懂机器学习常用损失函数(Loss Function)
最近太忙已经好久没有写博客了,今天整理分享一篇关于损失函数的文章吧,以前对损失函数的理解不够深入,没有真正理解每个损失函数的特点以及应用范围,如果文中有任何错误,请各位朋友指教,谢谢~ 损失函数(lo ...
- 深度学习:Sigmoid函数与损失函数求导
1.sigmoid函数 sigmoid函数,也就是s型曲线函数,如下: 函数: 导数: 上面是我们常见的形式,虽然知道这样的形式,也知道计算流程,不够感觉并不太直观,下面来分析一下. 1.1 ...
- Logistic Regression理论总结
简述: 1. LR 本质上是对正例负例的对数几率做线性回归,因为对数几率叫做logit,做的操作是线性回归,所以该模型叫做Logistic Regression. 2. LR 的输出可以看做是一种可能 ...
- [目标检测]YOLO原理
1 YOLO 创新点: 端到端训练及推断 + 改革区域建议框式目标检测框架 + 实时目标检测 1.1 创新点 (1) 改革了区域建议框式检测框架: RCNN系列均需要生成建议框,在建议框上进行分类与回 ...
- 深度学习与计算机视觉系列(3)_线性SVM与SoftMax分类器
作者: 寒小阳 &&龙心尘 时间:2015年11月. 出处: http://blog.csdn.net/han_xiaoyang/article/details/49949535 ht ...
- Paper Reading:word2vec Parameter Learning Explained
论文:word2vec Parameter Learning Explained 发表时间:2016 发表作者:Xin Rong 论文链接:论文链接 为了揭开Word2vec的神秘面纱,不得不重新整理 ...
- CornerNet 算法笔记
论文名称:CornerNet: Detecting Objects as Paired Keypoints 论文链接:https://arxiv.org/abs/1808.01244 代码链接:htt ...
- 目标检测入门论文YOLOV1精读以及pytorch源码复现(yolov1)
结果展示 其中绿线是我绘制的图像划分网格. 这里的loss是我训练的 0.77 ,由于损失函数是我自己写的,所以可能跟大家的不太一样,这个不重要,重要的是学习思路. 重点提示 yolov1是一个目标检 ...
随机推荐
- Python学习——1
我是一名刚入IT行业的小白,目前主要是做网络运维这一块.曾经总是认为我是做网络运维的,学习代码干啥啊?后来就慢慢发现,传统的运维方式让我的效率好像不如别人效率高,关键还TM看别人比我更轻松.每一个网络 ...
- 【转】Android总结篇系列:Activity生命周期
[转]Android总结篇系列:Activity生命周期 Android官方文档和其他不少资料都对Activity生命周期进行了详细介绍,在结合资料和项目开发过程中遇到的问题,本文将对Activity ...
- Linux---基础指令(一)
https://www.linuxprobe.com/chapter-02.html (Linux就要这么学) 一.执行查看帮助命令 date:date命令用于显示及设置系统的时间或日期,格式为“d ...
- Fiddler抓包工具安装与使用
1.Fiddler简介2.Fiddler安装步骤3.Fiddler目录结构4.Fiddler证书配置5.Fiddler录制配置6.Fiddler工作原理7.Fiddler界面详解 1.Fiddler简 ...
- SpringCloud服务注册与发现
1.介绍对于微服务的治理而言,其核心就是服务的注册和发现.在SpringCloud 中提供了多种服务注册与发现组件:Eureka,Consul,Zookeeper.官方推荐使用Eureka. 说明:E ...
- ps修改图片文字
原图(机密内容以打马赛克): 需要修改的地方: 1.去除蓝色的线条, 2.改表格的字体 操作: 1.去线条 放大图片,使用魔棒工具选中蓝色点,调节容差,取消连续,然后填充白色,ctrl+delete ...
- GitHub和Git(待补充)
仓库(Repository):存放项目代码,每个项目对应一个仓库. 收藏(Star) 复制(Fork):克隆并生成新的仓库,from某某.以此为基础修改或应用项目.pull request,源仓库会查 ...
- .NET默认一个客户端对同一个服务器地址同时只能建立2个TCP连接
做一个客户端的测试小程序测试web service的并发处理.开始用async task做,不管创建多少个task,用netstat看同时只有两个tcp连接.以为是async task的问题,改用Ba ...
- jdango
1.jdango的下载 命令行: pip install django ==1.11.18 pip install django ==1.11.18 -i https://pypi.douban.co ...
- el表达式与<c:foreach>标签的联合各种使用方法记录
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><%@ tagl ...