收藏 分享(赏)

词向量、word2vec、sense2vec与相关应用.pdf

上传人:陈琪琪 文档编号:46944 上传时间:2018-08-01 格式:PDF 页数:47 大小:9.28MB
下载 相关 举报
词向量、word2vec、sense2vec与相关应用.pdf_第1页
第1页 / 共47页
词向量、word2vec、sense2vec与相关应用.pdf_第2页
第2页 / 共47页
词向量、word2vec、sense2vec与相关应用.pdf_第3页
第3页 / 共47页
词向量、word2vec、sense2vec与相关应用.pdf_第4页
第4页 / 共47页
词向量、word2vec、sense2vec与相关应用.pdf_第5页
第5页 / 共47页
点击查看更多>>
资源描述

1、词向量与相关应用 七月在线 寒小阳 2017年03月25日 NLP常见任务 ! ! ! ! ! ! ! NLP处理方法 ! 传统: 基于规则 ! 现代:基于统计机器学习 “ HMM, CRF, SVM, LDA, CNN “ “规则”隐含在模型参数里 词编码需要保证词的相似性 简单 词/短语 翻译 左:英语 右:西班牙语 ! 向量空间分布的相似性 向量空间子结构 V King- V Queen+ V Women= V Man V Paris- V France+ V German= V Berlin最终目标:词向量表示作为机器学习、特别是深度学 习的输入和表示空间 在计算机中表示一个词 动物

2、胎生 有毛 弹跳性好 体型小 宠物 吃肉 会发声 猫! 漂亮 多姿 靓丽 好看 俊俏 迷人 标志 端庄 美丽 上位词 同义词 问题: 1. 不能分辨细节的差别 2. 需要大量人为劳动 3. 主观 4. 无法发现新词 5. 难以精确计算词之间 的相似度 离散表示: One-hot表示 John likes to watch movies. Mary likes too. John also likes to watch football games. 语料库 词典 “John“: 1, “likes“: 2, “to“: 3, “watch“: 4, “movies“: 5, “also“: 6

3、, “football“: 7, “games“: 8, “Mary“: 9, “too“: 10 One-hot表示 John: 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 likes: 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 too : 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 词典包含10个单词,每个 单词有唯一索引 在词典中的顺序和在句子 中的顺序没有关联 离散表示:Bag of Words 1, 2, 1, 1, 1, 0, 0, 0, 1, 1 1, 1, 1, 1, 0, 1, 1, 1, 0, 0 # 文档的向量表示可以直接将各词

4、的词向量表示加和 John likes to watch movies. Mary likes too. John also likes to watch football games. # 词权重 $ TF-IDF (Term Frequency - Inverse Document Frequency) $ Binary weighting 0.693, 1.386, 0.693, 0.693, 1.099, 0, 0, 0, 0.693, 0.693 N: 文档总数, n t : 含有词t的文档数 词t的IDF weight 1, 1, 1, 1, 1, 0, 0, 0, 1, 1 短文

5、本相似性,Bernoulli Naive Bayes 信息检索 词在文档中的顺序没有被考虑 离散表示:Bi-gram和N-gram 为2-gram建索引: “John likes”: 1, “likes to”: 2, “to watch”: 3, “watch movies”: 4, “Mary likes”: 5, “likes too”: 6, “John also”: 7, “also likes”: 8, “watch football”: 9, “football games“: 10, John likes to watch movies. Mary likes too. 1,

6、1, 1, 1, 1, 1, 0, 0, 0, 0 John also likes to watch football games. 0, 1, 1, 0, 0, 0, 1, 1, 1, 1 优点:考虑了词的顺序 缺点:词表的膨胀 语言模型 P(Mary likes too) = P(too | Mark, likes) * P(likes | Mary) * P(Mary) = P(too) * P(likes) * P(Mary) # 一句话 (词组合) 出现的概率 Unigram/1-gram Bi-gram/2-gram P(Mary likes too) = P(too | Mark

7、, likes) * P(likes | Mary) * P(Mary) = P(too | likes) * P(likes | Marry) * P(Mary) 离散表示的问题 # 无法衡量词向量之间的关系 酒店 宾馆 旅舍 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 各种度量(与或非、距离) 都不合适 # 词表维度随着语料库增长膨胀 # n-gram词序列随语料库膨胀更快 # 数据稀疏问题 太稀疏,很难捕捉文本的含义 分布式表示 (Distributed re

8、presentation) 红色的大型卡车 黄色的中型SUV 紫色的小型电动车 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 memory unit 1 memory unit 2 memory unit 3 需要的记忆 单元数 颜色20 型号3 车型30 X X = 颜色记忆单元20 型号记忆单元3 车型记忆单元30 分布式表示 分布式表示 (Distributed representation) “!“#$%?$;$ 用一个词附近的其他词来表示该词 现代统计自然语

9、言处理中最有创见的想法之一。 banking附近的词将会代表banking的含义 共现矩阵 (Cocurrence matrix) Word - Document 的共现矩阵主要用于发现主题(topic),用于 主题模型,如LSA (Latent Semantic Analysis) 局域窗中的Word - Word 共现矩阵可以挖掘语法和语义信息 A$B$(5)1$-114$(1,*5*C8$ A B$(5)1$DEF8$ A B$1*G“/$H/5*C8$ +5*-“+$(1*C0(一般设为=;I) 使用对称的窗函数(左右+5*-“+$(1*C0$共现矩阵:Word - Word A$B$

10、(5)1$-114$(1,*5*C8$ A B$(5)1$DEF8$ A B$1*G“/$H/5*C8$存在的问题 向量维数随着词典大小线性增长 存储整个词典的空间消耗非常大 一些模型如文本分类模型会面临稀疏性问题 构造低维稠密向量作为词的分布式表示 (251000维)! 模型会欠稳定 # 将共现矩阵行(列)作为词向量 SVD降维 # 最直接的想法:用SVD对共现矩阵向量做降维 SVD降维 SVD降维的问题 # 计算量随语料库和词典增长膨胀太快,对X(n,n)维 的矩阵,计算量O(n3)。 而对大型的语料库, n400k,语料库大小160B token # 难以为词典中新加入的词分配词向量 #

11、 与其他深度学习模型框架差异大 NNLM (Neural Network Language model) # 直接从语言模型出发,将模型最优化过程转化为 求词向量表示的过程 目标函数 # 使用了非对称的前向窗函数,窗长度为n-1 # 滑动窗口遍历整个语料库求和,计算量正比于语料库大小 # 概率P满足归一化条件,这样不同位置t处的概率才能相加,即 用神经网络来实现概率P NNLM:结构 (N-1)个前向词:one-hot表示 采用线性映射将one-hot表 示投影到稠密D维表示 输出层:Softmax 各层权重最优化:BPSGD 词典维数V,稠密词向量表示维数D C矩阵是投影矩阵,也是稠密词向量

12、表示 NNLM的计算复杂度 N * D + N * D * H + H * V 每个训练样本的计算复杂度: 一个简单模型在大数据量上的表现比复杂模型在少数据量上的表现会好 word2vec: CBOW (连续词袋) % 无隐层 % 使用双向上下文窗口 % 上下文词序无关 (BoW) % 输入层直接使用低维稠密表示 % 投影层简化为求和(平均) 目标函数 CBOW:层次Softmax W=“足球”时的相关记号示意图 使用Huffman Tree 来编码输出层的词 典 只需要计算路径上 所有非叶子节点词 向量的贡献即可 计算量降为树的深 度 V = log_2(V) # Sigmoid函数 # n

13、(w,j+1)=ch(n(w,j) 是选择函数,表明只选择从根节点到目 标叶节点路径上的内部节点 # n(w,j):Huffman数内部第j层的节点 # ch(n(w,j):n节点的child节点 CBOW:层次Softmax P(w|context(w): 一个正样本,V-1个负样本,对负样本做采样 CBOW:负例采样 NEG(w)是w的负样本采样子集 损失函数:对语料库中所有词w求和 是context(w)中词向量的和 是词u对应的一个(辅助)向量 CBOW:负例采样 词典中的每一个词对应一条线段,所有词组成了0,1间的剖分 组成了0, 1间的剖分 将0, 1划分为M=108等分,每次随机

14、生成一个1, M-1间的整数, 看落在那个词对应的剖分上。 实际使用中取counter(w)(3/4)效果最好 Word2Vec: Skip-Gram模型 # 无隐层 # 投影层也可省略 # 每个词向量作为log-linear模 型的输入 目标函数: # 概率密度由Softmax给出 Word2Vec: 存在的问题 # 对每个local context window单独训练,没有利用包 含在global co-currence矩阵中的统计信息 # 对多义词无法很好的表示和处理,因为使用了唯一 的词向量 词嵌入可视化: 公司 CEO 词嵌入可视化: 词向 词嵌入可视化: 比较级和最高级 词嵌入效

15、果评估: 词类比任务 19544个类比问题 “Athens is to Greece as Berlin is to _?” “Bigger is to Big as Greater is to _?”词嵌入效果评估: 词相似度任务 SVD:只保留出现 次数最大的1万个 词,记为 SVD-S: SVD-L: 词嵌入效果评估: 作为特征用于CRF实体识别 NER任务 437,905个离散特征 额外的50维连续特征 使用CRF模型训练 GloVe与Word2Vec对比 GloVe随着迭代次数增加,精度提升 Word2Vec未使用类似迭代次数的Epoch,用Negative Samples模拟 总结

16、 离散表示 One-hot representation, Bag Of Words Unigram语言模型 N-gram词向量表示和语言模型 Co-currence矩阵的行(列)向量作为词向量 分布式连续表示 Co-currence矩阵的SVD降维的低维词向量表示 Word2Vec: Continuous Bag of Words Model Word2Vec: Skip-Gram Model 工具google word2vec 地址 # https:/ # 墙内用户请戳https:/ 安装步骤 # git clone https:/ # cd word2vec/src # Make # 试

17、试./demo-word.sh 和./demo-phrases.sh 工具gensim 工具gensim 工具gensim中文处理案例 数据下载,训练与测试的代码详情见 https:/ Word2vec+CNN做文本分类 论文详见Convolutional Neural Networks for Sentence Classification http:/arxiv.org/abs/1408.5882 Theano完成的代码版本: https:/ TensorFlow改写的代码版本: https:/ 添加分词和中文词向量映射之后,可用于中文文本分类(情感分析) 作业 仿照以下案例,构建新闻数据集上的新闻词向量 https:/ 搜狗全网新闻语料地址: http:/ sense2vec 用Spacy和word2vec结合,完成sense2vec https:/ 多义性:word2vec遇到的问题 word2vec模型的问题在于词语的多义性。比如duck这个单词常见的含义有 水禽或者下蹲,但对于 word2vec 模型来说,它倾向于将所有概念做归一化 平滑处理,得到一个最终的表现形式。 我们结合上下文和标签,会有更好的处理结果 感谢大家! 恳请大家批评指正!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 网络技术 > 热门技术

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报