CS224N笔记——词向量表示
目录
Word meaning
Word2vec introduction
Word2vec目标函数的梯度
Word meaning
如何表示一个词的词义?
在韦氏词典中meaning的词义为:
(1)用单词、短语等表示的想法;
(2)人们想要通过单词、符号等表示的想法;
(3)在写作、艺术等作品中表达的思想。
如何用计算机处理词义?
最常用的方法:用分类资源来处理词义,如果是英语,最著名的分类资源是WordNet,能够查询一类东西的上位词(熊猫-肉食动物-哺乳动物-物体)和同义词(good:honorable,respectable)
离散化表征的问题
同义词资源很多但会遗漏大量的细微差别,例如:good的一组同义词是adept,expert,good,practiced,proficient,skillful,但会遗漏一些新词(不太可能持续更新到同义词集中),例如:wicked,badass,nifty,crack,ace,wizard,genius,ninja。
人们往同义词集里加什么词是一个非常主观的选择,也需要大量人力多年的努力,同时很难对词汇的相似性给出准确的定义。
几乎所有的基于规则和统计的NLP研究都使用了原子符号来表示单词,例如使用one-hot编码来表示单词。
从符号化到离散化表征
如果使用one-hot编码,查询向量和文档向量正交,他们之间没有天然的近似含义
可以建立词汇之间一套完全独立的相似性关系,或者探索一种直接的方法,一个单词编码表示的含义是可以直接阅读的,在这些表示中,就可以看出相似性,我们要做的就是构造这些向量,然后做一种类似求解点积的操作,这样就可以让我们了解词汇之间有多少相似性。
基于分布相似性的表征
只需通过观察某个词汇出现的上下文,并对这些上下文做一些处理来得到大量表示这个词汇含义的值。
例如下面这句话:
就可以用banking的上下文中的词来表示banking的含义。
词义是由向量形式定义的
给每一个单词构造一个密集型向量,让它可以预测目标单词所在文本的其他词汇。
学习神经网络词嵌入的通用方法
定义一个模型,根据中心词汇预测它上下文词汇(context)出现的概率,其损失函数为,这里的-t表示围绕在t中心词周围的其他单词。在大型语料库的各个地方t重复这样的操作,调整词汇表示,从而使损失最小化。
Word2vec introduction
word2vec尝试去做的最基本的事情就是利用语言的意义理论,来预测每个单词和它上下文的词汇。
两个用于生成词向量的算法:Skip-gram(跳词模型),CBOW(连续词袋模型)
两个效率中等的训练方法:Hierarchical softmax(层序softmax),Negative sampling(逆采样)
Skip-gram
Skip-gram在每一个估算步都取一个词作为中心词汇,预测它一定范围内的上下文的词汇。这个模型将定义一个概率分布,即给定一个中心词汇,某个单词在它上下文中出现的概率。选取词汇的向量表示,让概率分布值最大化。
word2vec细节
定义一个“半径”m,然后从中心词汇开始,到距离为m的位置,来预测周围的词汇。然后在多处进行多次重复操作,选择词汇向量,以便让预测的概率达到最大。
目标函数:J`
就是词汇的向量表示,也是每个词汇的向量表示的唯一参数。
根据由单词向量构造而成的中心词汇来得出其上下文单词的概率分布:
其中,c(中心单词)和o(输出单词)分别代表单词在词汇表空间中的索引以及它的类型,是索引为o的单词所对应的向量,是中心词汇对应的向量。
利用Softmax模型确定相应的概率分布,选取两个向量的点积,将它们转换成Softmax形式。
点积
首先求两个单词向量的点积,这种求积类似于一种粗糙衡量相似性的方法,两个向量的相似性越大,那么这个点积就越大。
Softmax:将数值转换成概率的标准方法
最终的Skip-gram模型
:中心词汇,是一个one-hot向量
:所有中心词汇的表示组成的矩阵
:中心词汇的表示
:存储上下文词汇的表示
然后进行中心词汇和上下文表示的点积和Softmax操作。
训练模型:计算所有的向量梯度
将模型中所有的参数都放进一个大的向量里。对每个单词,都有一个d维的小向量,不管它是中心词汇还是上下文词汇,同时有一个包含V个单词的单词表,每一个单词都有一个代表上下文的词向量和一个代表中心词汇的词向量,这个向量的总长度就是2dV。
然后进行优化,通过改变这些参数让模型的目标方程J`最大化。
Word2vec目标函数的梯度
推导中心词的梯度:
其中利用到了链式法则和对向量求偏导数的公式:
CS224N笔记——词向量表示相关推荐
- 【NLP】CS224N课程笔记|词向量I: 简介, SVD和Word2Vec
NewBeeNLP原创出品 公众号专栏作者@Ryan 知乎 | 机器学习课程笔记 CS224N课程笔记系列,持续更新中 课程主页: http://web.stanford.edu/class/cs2 ...
- cs224n第二讲:简单的词向量表示:word2vec, Glove
第二讲:简单的词向量表示:word2vec, Glove How do we represent words? 在处理所有NLP任务的时候,我们首先需要解决非常重要的一个问题(可能是最重要的):用什么 ...
- 斯坦福大学深度学习与自然语言处理第三讲:高级的词向量表示
斯坦福大学在三月份开设了一门"深度学习与自然语言处理"的课程:CS224d: Deep Learning for Natural Language Processing,授课老师是 ...
- 【NLP CS224N笔记】Assignment 1 - Exploring Word Vectors
作业来源:https://github.com/xixiaoyao/CS224n-winter-together 1. 写在前面 这篇文章是CS224N课程的第一个大作业, 主要是对词向量做了一个探索 ...
- CS224n笔记13 卷积神经网络
为什么80%的码农都做不了架构师?>>> 本文由码农场同步,最新版本请查看原文:http://www.hankcs.com/nlp/cs224n-convolutional-n ...
- CS224N笔记 Lecture1: Introduction and Word Vectors
0 目录 教学目标 人类语言和词义(word meaning) Word2vec介绍 Word2vec目标函数梯度 优化方法 1 教学目标 了解有效的现代深度学习方法 首先学习基础知识,然后学习一些N ...
- 第2章 词向量表示 GloVe word2vec skip-gram CBOW
第2章 词向量表示 GloVe word2vec skip-gram CBOW 1 如何在模型中表示文本数据? 1.1 独热编码(one-hot encoding) 1.2 分布式表示(distrib ...
- CS224n笔记3 高级词向量表示
本文转自:http://www.hankcs.com/nlp/cs224n-advanced-word-vector-representations.html 这节课从传统的基于计数的全局方法出发,过 ...
- 【CS224n】2斯坦福大学深度学习自然语言处理课程笔记——词向量、词义和神经分类器
Natural Language Processing with Deep Learning 课程笔记2 1. 词向量和word2vec 2. 优化基础知识 3. 我们能否通过计数更有效地抓住词义的本 ...
- cs224n第二讲词向量表示:word2vec
1.如何表示一个单词的含义? 定义单词的含义:语言学方式上单词的含义是一种指代,指代世界上的某些具体事物(该单词的指代物,denotations).字典含义: 在计算机中使用有用的单词含义:使用像Wo ...
最新文章
- SQL Server DB Link相关
- UVa489 - Hangman Judge
- Android 下 APK 捆绑器的实现
- 【网络】解决‘ipconfig不是内部或外部命令,也不是可运行的程序
- 低版本Eclipse如何快速设置黑色主题
- tensorboard ckpt pb 模型的输出节点_算法工程化系列——模型固化
- MFC 改变控件字体大小
- c语言函数指针学习心得,c语言 函数指针 学习C语言笔记
- MATLAB--基本绘图函数
- python计算复合材料层合板ABD刚度矩阵、预测层合板强度
- java怎么求传递闭包_利用定义求解传递闭包的关系矩阵
- 求最小公倍数的三种方法
- 2018年迎春杯复赛入围名单(三年级)
- 【MySQL】MySQL常用SQL关键字
- 果园节水灌溉能否实现远程智能控制
- 这篇文章能让你明白经验模态分解(EMD)——基础理论篇
- Intellij Idea远程调试小记
- 牧场上的草泥马(游荡的奶牛)
- Cpp环境【POJ3069】【Vijos2995】 萨鲁曼的大军 Saruman's Army
- Markdown格式
热门文章
- Unity3d发布webplayer 部署到IIS
- jQuery MVC 科室异步联动
- Arcgis 如何将大量数据转换成csv导出
- linux boot 空间不足,解决Ubuntu 提示boot分区空间不足办法
- Boost.Python.ArgumentError: Python argument types in错误解决及Boost安装配置
- 一款APP其实就是各种SDK的集合体
- mongodb查询分页优化(二)
- ajax获取inputname值,jQuery - 获取ajax POST的表单值
- mysql数据库sql注入原理_如何SQL注入的原理和SQL注入的基础
- python去掉最高分和最低分_【Excel】去掉一个最高分,一个最低分,求平均