DL4NLP---第二讲(上)
来源:互联网 发布:招商证券理财软件下载 编辑:程序博客网 时间:2024/05/17 00:04
斯坦福大学深度学习与自然语言处理第二讲:词向量 | 我爱自然语言处理
第二讲:简单的词向量表示:word2vec, Glove(Simple Word Vector representations: word2vec, GloVe)
推荐阅读材料:
- Paper1:[Distributed Representations of Words and Phrases and their Compositionality]]
- Paper2:[Efficient Estimation of Word Representations in Vector Space]
- 第二讲Slides [slides]
- 第二讲视频 [video]
以下是第二讲的相关笔记,主要参考自课程的slides,视频和其他相关资料。
如何来表示一个词的意思(meaning)
- 英文单词Meaning的定义(来自于韦氏词典)
- the idea that is represented by a word, phrase, etc.
- the idea that a person wants to express by using words, signs, etc.
- the idea that is expressed in a work of writing, art, etc.
在计算机中如何表示一个词的意思
- 通常使用类似Wordnet的这样的语义词典,包含有上位词(is-a)关系和同义词集
- panda的上位词,来自于NLTK中wordnet接口的演示
- good的同义词集
语义词典存在的问题
- 语义词典资源很棒但是可能在一些细微之处有缺失,例如这些同义词准确吗:adept, expert, good, practiced, proficient,skillful?
- 会错过一些新词,几乎不可能做到及时更新: wicked, badass, nifty, crack, ace, wizard, genius, ninjia
- 有一定的主观倾向
- 需要大量的人力物力
- 很难用来计算两个词语的相似度
One-hot Representation- 传统的基于规则或基于统计的自然语义处理方法将单词看作一个原子符号:hotel, conference, walk
- 在向量空间的范畴里,这是一个1很多0的向量表示:[0,0,0,0,…,0,1,0,…,0,0,0]
- 维数:20K(speech)–50K(PTB)–500K(big vocab)–13M(Google 1T)
- 这就是”one-hot”表示,这种表示方法存在一个重要的问题就是“词汇鸿沟”现象:任意两个词之间都是孤立的。光从这两个向量中看不出两个词是否有关系:
Distributional similarity based representations
- 通过一个词语的上下文可以学到这个词语的很多知识
- 这是现代统计NLP很成功的一个观点
如何使用上下文来表示单词
- 答案:使用共现矩阵(Cooccurrence matrix)X
- 2个选择:全文还是窗口长度
- word-document的共现矩阵最终会得到泛化的主题(例如体育类词汇会有相似的标记),这就是浅层语义分析(LSA, Latent Semantic Analysis)
- 窗口长度容易捕获语法(POS)和语义信息
基于窗口的共现矩阵:一个简单例子- 窗口长度是1(一般是5-10)
- 对称(左右内容无关)
- 语料样例
- I like deep learning.
- I like NLP.
- I enjoy flying
存在的问题
- 规模随着语料库词汇的增加而增加
- 非常高的维度:需要大量的存储
- 分类模型会遇到稀疏问题
- 模型不够健壮
解决方案:低维向量- idea: 将最重要的信息存储在固定的,低维度的向量里:密集向量(dense vector)
- 维数通常是25-1000
- 问题:如何降维?
方法1:SVD(奇异值分解)- 对共现矩阵X进行奇异值分解
Python中简单的词向量SVD分解
- 语料:I like deep learning. I like NLP. I enjoy flying
- 打印U矩阵的前两列这也对应了最大的两个奇异值
用向量来定义单词的意思:
- 在相关的模型中,包括深度学习模型,一个单词常常用密集向量(dense vector)来表示
Hacks to X
- 功能词(the, he, has)过于频繁,对语法有很大影响,解决办法是降低使用或完全忽略功能词
- 延展窗口增加对临近词的计数
- 用皮尔逊相关系数代替计数,并置负数为0
- +++
词向量中出现的一些有趣的语义Pattern- 以下来自于: An improved model of semantic similarity based on lexical co-occurence
使用SVD存在的问题
- 对于n*m矩阵来说计算的时间复杂度是o(mn^2) 当 n
0 0
- DL4NLP---第二讲(上)
- DL4NLP---第二讲(上)
- DL4NLP---第一讲
- DL4NLP---第三讲
- DL4NLP---第一讲
- DL4NLP---第三讲
- AJAX培训第二讲:使用AJAX框架(上)
- 第二讲 基础知识(1)
- java第二讲(随笔)
- springboot系列(第二讲)
- 【Metal API 教程:第二讲】编写Metal Shader并渲染3D模型(上)
- 第二讲
- 第二讲
- 初学css第二讲(css选择器)
- 2天玩转单反相机(第二讲)
- 读书笔记(第二讲)primitive type
- Java第二讲(由浅到深)
- 优化屏障(Optimization barrier)第二讲
- C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Cpp.Platform.targets 64 5
- 标志位寄存器与CF、OF标志位的区分
- C# 学习网站整理
- ClassLoder(类加载器)与JDBC的调用
- 2016搜素基础1006
- DL4NLP---第二讲(上)
- java socket 服务器代码 自动接收文件并存储服务器
- oracle常用语句总结
- Java读写properties配置文件
- 11.2 练习题
- STM3216位IO口操作的一些教训
- JDBC的分页查询
- ECSHOP仿淘宝商品评论现金奖励功能
- Prime Path (bfs)POJ