网站开发团队构成,公关策划是做什么的,wordpress用户注册收不到邮件,想学室内设计在哪里学比较好最近在听Stanford放出来的Stanford CS224N NLP with Deep Learning这门课#xff0c;弥补一下之前nlp这块基础知识的一些不清楚的地方#xff0c;顺便巩固一下基础知识#x1f601;
关于word2vec#xff1a;
1.为什么要把单词表示成向量
一开始人们造了一个类似于词典表…最近在听Stanford放出来的Stanford CS224N NLP with Deep Learning这门课弥补一下之前nlp这块基础知识的一些不清楚的地方顺便巩固一下基础知识
关于word2vec
1.为什么要把单词表示成向量
一开始人们造了一个类似于词典表的东西-wordnet 但是这里面存在一些问题大概有这么几个
例如“proficient”被列为“good”的同义词但这只在某些情境下是正确的。WordNet在某些同义词组中列出了冒犯性的同义词而没有涵盖单词的内涵或适用性。WordNet缺少对单词新含义的收录例如wicked、“badass”、“nifty”、“wizard”、“genius”、“ninja”、bombest等。难以保持最新存在主观性的问题需要耗费大量人力来创建和调整不能用于准确计算单词相似度 再后来就有了one-hot编码 但是嘞用了一段时间以后人们发现这里还是存在一些问题这里教授举了这样一个例子 在网络搜索中的例子中如果用户搜索“西雅图汽车旅馆”我们希望匹配包含“西雅图酒店”的文档。 但是 汽车旅馆 [0 0 0 0 0 0 0 0 0 0 1 0 0 0 0] 酒店 [0 0 0 0 0 0 0 1 0 0 0 0 0 0 0] 这两个向量是正交的。 对于独热向量来说没有自然的相似度概念 提出的解决方案学习将相似度编码在向量中。 更具体的说从 context words 中去学习某个单词的意思这也是word2vec思想的重要部分 所以归纳起来把单词表示成我们想要的这种向量的好处可以概括为以下三个方面 数值表示计算机只能处理数值数据而文本是一种非结构化的数据形式。把单词转化为向量可以将文本转化为数值表示使得计算机可以对其进行处理和分析。这样我们可以利用数值计算的优势如向量运算、相似度计算等。 特征表示将单词转化为向量可以捕捉到单词之间的语义和语法关系。向量空间中的距离和角度可以表示单词之间的相似性和关联性。这样的向量表示可以作为特征输入到各种NLP任务中。通过将单词转化为向量我们可以将文本转化为可计算的特征从而进行更高级的文本分析和处理。如图将单词转化为高维向量以后语义相近的单词挨得比较近。 维度降低传统的文本表示方法如独热编码会将每个单词表示为一个高维稀疏向量其中大部分元素为0。这种表示方法会导致高维度的特征空间浪费存储空间和计算资源。通过将单词转化为低维稠密向量可以实现维度的降低减少存储和计算的开销同时保留了单词之间的语义信息。
2.何为word2vec 课上给的定义Word2vec (Mikolov et al. 2013) is a framework for learning word vectors 按照我的理解Word2Vec是一种用于将单词表示为连续向量的算法他的目标是通过学习单词之间的语义和语法关系将单词嵌入到一个连续的向量空间中
3.具体实现步骤 构建训练样本 Word2Vec模型的训练样本由目标单词和其上下文单词组成。在Skip-gram模型中每个目标单词会与其周围的上下文单词配对在CBOW模型中每个上下文单词会与其对应的目标单词配对。这样可以为每个配对样本创建一对输入和输出。上课给出的例子是从头到尾滑动计算第 t j tj tj个词和第 t t t个词(中心词)同时出现的概率,图示里把 i n t o into into当作中心词 t 2 t2 t2,然后计算其他context word和中心词一起出现的概率 训练模型 使用构建的训练样本和神经网络架构开始训练Word2Vec模型。训练过程中模型的目标是通过最大化或最小化特定的目标函数来优化模型的参数。课堂上举的例子是负对数似然函数。通过迭代优化过程模型逐渐学习到单词的向量表示以捕捉单词之间的语义和语法关系。
表示出目标函数 然后训练
学习到的向量表示 一旦模型训练完成每个单词都会被表示为一个固定长度的向量。这些向量在向量空间中的距离和角度反映了单词之间的相似性和关联性。这些向量可以用于各种NLP任务如计算单词相似度、文本分类、命名实体识别等。