人工智能应用——词汇与语句的表达
一、实验目的
- 熟悉深度语义向量的原理,表现和意义;
- 掌握使用word2vec等深度语义工具计算词汇的语义向量;
- 掌握通过池化的方式获取句子的语义向量;
- 熟悉深度语义向量的简单应用。
二、实验内容与记录
-
预处理数据并使用word2vec等工具计算词汇语义向量。
计算联合国会议记录词向量:
相关代码:
-
编写向量相似性判断逻辑,根据相似性判断结果调优工具参数。
改变window大小,当window=3时,输出0.66。
相关代码:
-
找满足类似于 king – male + female = queen这样的关系的词汇。
国王-王子+公主=王后
白天-太阳+月亮=夜里 -
根据词汇语义向量计算句子语义向量
三、实验分析和总结
- Word2Vec是语言模型的一种,它是从大量文本预料中以无监督方式学习语义知识的模型,被广泛地应用于自然语言处理中。
- Word2Vec是用来生成词向量的工具,而词向量与语言模型(例:统计语言模型、N-gram模型、神经概率语言模型)有着密切的关系。《A Neural Probabilistic Language Model》中较早的提出将word表示一个低秩的向量,而不是one-hot。
- Wrod2Vec对词典D中的任意词w,指定一个固定长度的实值向量v(m)∈Rm, v(w) 就称为 w 的词向量,m为词向量的长度。
- Wrod2Vec主要包含两种模型:连续词袋模型(CBOW)和跳字模型(skip-gram)。
四、思考题
- 查阅资料,思考如何计算词组的语义向量,简述思路。
① 输入层(Input layer):目标单词上下文的单词(这里显示三个),每个单词用ont-hot编码表示,为[1 * V]大小的矩阵,V表示词汇大小;② 所有的ont-hot矩阵乘以输入权重矩阵W,W是[V * N]大小的共享矩阵,N是指输出的词的向量维数;③ 将相乘得到的向量 ([1 * V] 的ont-hot矩阵乘上[V * N]的共享矩阵W) 相加,然后求平均作为隐层向量h, 大小为[1 * N];④ 将隐层向量h乘以输出权重矩阵W’,W’是[N * V]大小的共享矩阵;
⑤ 相乘得到向量y,大小为[1 * V],然后利用softmax激活函数处理向量y,得到V-dim概率分布;
⑥ 由于输入的是ont-hot编码,即每个维度都代表着一个单词,那么V-dim概率分布中,概率最大的index所指代的那个单词为预测出的中间词。
⑦ 将结果与真实标签的ont-hot做比较,误差越小越好,这里的误差函数,即loss function一般选交叉熵代价函数。
以上为CBOW生成词向量的全过程。如果我们只是想提取每个单词的向量,那么只需要得到向量y就可以了,但训练过程中要去做预测并计算误差,去求得输入权重矩阵W和输出权重矩阵W’。