神经网络中embedding层作用——本质就是word2vec,数据降维,同时可以很方便计算同义词(各个word之间的距离),底层实现是2-gram(词频)+神经网络

简介:

这涉及到词向量,具体看可以参考这篇文章:Word2vec 之 Skip-Gram 模型,下面只进行简单的描述, 
这里写图片描述

上图的流程是把文章的单词使用词向量来表示。 
(1)提取文章所有的单词,把其按其出现的次数降许(这里只取前5000个),比如单词‘network’出现的次数最多,编号ID为0,依次类推…

(2)每个编号ID都可以使用50000维的二进制(one-hot)表示

(3)最后,我们会生产一个矩阵M,行大小为词的个数50000,列大小为词向量的维度(通常取128或300),比如矩阵的第一行就是编号ID=0,即network对应的词向量。

那这个矩阵M怎么获得呢?在Skip-Gram 模型中,我们会随机初始化它,然后使用神经网络来训练这个权重矩阵 
这里写图片描述

那我们的输入数据和标签是什么?如下图,输入数据就是中间的哪个蓝色的词对应的one-hot编码,标签就是它附近词的one-hot编码(这里windown_size=2,左右各取2个) 
这里写图片描述

就上述的Word2Vec中的demo而言,它的单词表大小为1000,词向量的维度为300,所以Embedding的参数 input_dim=10000,output_dim=300

回到最初的问题:嵌入层将正整数(下标)转换为具有固定大小的向量,如[[4],[20]]->[[0.25,0.1],[0.6,-0.2]]

举个栗子:假如单词表的大小为1000,词向量维度为2,经单词频数统计后,tom对应的id=4,而jerry对应的id=20,经上述的转换后,我们会得到一个M1000×2的矩阵,而tom对应的是该矩阵的第4行,取出该行的数据就是[0.25,0.1]

如果输入数据不需要词的语义特征语义,简单使用Embedding层就可以得到一个对应的词向量矩阵,但如果需要语义特征,我们大可把以及训练好的词向量权重直接扔到Embedding层中即可,具体看参考keras提供的栗子:在Keras模型中使用预训练的词向量

 

摘自:http://blog.csdn.net/jiangpeng59/article/details/77533309

 

补充:

 

接下来我们来看看如何训练我们的神经网络。假如我们有一个句子“The dog barked at the mailman”

  • 首先我们选句子中间的一个词作为我们的输入词,例如我们选取“dog”作为input word;

  • 有了input word以后,我们再定义一个叫做skip_window的参数,它代表着我们从当前input word的一侧(左边或右边)选取词的数量。如果我们设置skip_window=2,那么我们最终获得窗口中的词(包括input word在内)就是['The', 'dog','barked', 'at']。skip_window=2代表着选取左input word左侧2个词和右侧2个词进入我们的窗口,所以整个窗口大小span=2x2=4。另一个参数叫num_skips,它代表着我们从整个窗口中选取多少个不同的词作为我们的output word,当skip_window=2,num_skips=2时,我们将会得到两组 (input word, output word) 形式的训练数据,即 ('dog', 'barked')('dog', 'the')

  • 神经网络基于这些训练数据将会输出一个概率分布,这个概率代表着我们的词典中的每个词是output word的可能性。这句话有点绕,我们来看个栗子。第二步中我们在设置skip_window和num_skips=2的情况下获得了两组训练数据。假如我们先拿一组数据 ('dog', 'barked') 来训练神经网络,那么模型通过学习这个训练样本,会告诉我们词汇表中每个单词是“barked”的概率大小。

模型的输出概率代表着到我们词典中每个词有多大可能性跟input word同时出现。举个栗子,如果我们向神经网络模型中输入一个单词“Soviet“,那么最终模型的输出概率中,像“Union”, ”Russia“这种相关词的概率将远高于像”watermelon“,”kangaroo“非相关词的概率。因为”Union“,”Russia“在文本中更大可能在”Soviet“的窗口中出现。我们将通过给神经网络输入文本中成对的单词来训练它完成上面所说的概率计算。下面的图中给出了一些我们的训练样本的例子。我们选定句子“The quick brown fox jumps over lazy dog”,设定我们的窗口大小为2(window_size=2),也就是说我们仅选输入词前后各两个词和输入词进行组合。下图中,蓝色代表input word,方框内代表位于窗口内的单词。

一文详解 Word2vec 之 Skip-Gram 模型(结构篇)

我们的模型将会从每对单词出现的次数中习得统计结果。例如,我们的神经网络可能会得到更多类似(“Soviet“,”Union“)这样的训练样本对,而对于(”Soviet“,”Sasquatch“)这样的组合却看到的很少。因此,当我们的模型完成训练后,给定一个单词”Soviet“作为输入,输出的结果中”Union“或者”Russia“要比”Sasquatch“被赋予更高的概率。

模型细节

我们如何来表示这些单词呢?首先,我们都知道神经网络只能接受数值输入,我们不可能把一个单词字符串作为输入,因此我们得想个办法来表示这些单词。最常用的办法就是基于训练文档来构建我们自己的词汇表(vocabulary)再对单词进行one-hot编码。

假设从我们的训练文档中抽取出10000个唯一不重复的单词组成词汇表。我们对这10000个单词进行one-hot编码,得到的每个单词都是一个10000维的向量,向量每个维度的值只有0或者1,假如单词ants在词汇表中的出现位置为第3个,那么ants的向量就是一个第三维度取值为1,其他维都为0的10000维的向量(ants=[0, 0, 1, 0, ..., 0])。

还是上面的例子,“The dog barked at the mailman”,那么我们基于这个句子,可以构建一个大小为5的词汇表(忽略大小写和标点符号):("the", "dog", "barked", "at", "mailman"),我们对这个词汇表的单词进行编号0-4。那么”dog“就可以被表示为一个5维向量[0, 1, 0, 0, 0]。

模型的输入如果为一个10000维的向量,那么输出也是一个10000维度(词汇表的大小)的向量,它包含了10000个概率,每一个概率代表着当前词是输入样本中output word的概率大小。

下图是我们神经网络的结构:

一文详解 Word2vec 之 Skip-Gram 模型(结构篇)

隐层没有使用任何激活函数,但是输出层使用了sotfmax。

我们基于成对的单词来对神经网络进行训练,训练样本是 ( input word, output word ) 这样的单词对,input word和output word都是one-hot编码的向量。最终模型的输出是一个概率分布

















本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/bonelee/p/7904495.html,如需转载请自行联系原作者


相关文章
|
2天前
|
存储 安全 网络安全
云端防御:融合云计算与网络安全的未来
【5月更文挑战第11天】 在数字化时代,数据是新的石油,而云计算则是提炼这种石油的超级工厂。随着企业和个人越来越依赖于云服务来存储和处理数据,网络安全的重要性也呈指数级增长。本文将探讨云计算与网络安全的交汇点,分析云服务模型中的安全挑战,并提出一系列创新策略和技术,用以增强信息安全。从身份验证到数据加密,再到入侵检测系统,我们将一探究竟如何在不牺牲性能的前提下,确保云环境的稳固和可信。此外,我们还将讨论未来的趋势和潜在的研究方向,以期打造一个更加安全、可靠的云计算生态系统。
|
6天前
|
机器学习/深度学习 监控 数据可视化
R语言SOM神经网络聚类、多层感知机MLP、PCA主成分分析可视化银行客户信用数据实例2
R语言SOM神经网络聚类、多层感知机MLP、PCA主成分分析可视化银行客户信用数据实例
|
6天前
|
机器学习/深度学习 数据可视化 算法
R语言SOM神经网络聚类、多层感知机MLP、PCA主成分分析可视化银行客户信用数据实例1
R语言SOM神经网络聚类、多层感知机MLP、PCA主成分分析可视化银行客户信用数据实例
|
6天前
|
机器学习/深度学习 数据可视化 算法
SPSS Modeler决策树和神经网络模型对淘宝店铺服装销量数据预测可视化|数据分享
SPSS Modeler决策树和神经网络模型对淘宝店铺服装销量数据预测可视化|数据分享
|
6天前
|
机器学习/深度学习 数据可视化 数据挖掘
R语言软件对房屋价格预测:回归、LASSO、决策树、随机森林、GBM、神经网络和SVM可视化|数据分享
R语言软件对房屋价格预测:回归、LASSO、决策树、随机森林、GBM、神经网络和SVM可视化|数据分享
|
7天前
|
机器学习/深度学习 监控 数据可视化
数据分享|电信行业客户流失预测:KNN、朴素贝叶斯、逻辑回归、LDA/QDA、随机森林、支持向量机、CART、神经网络
数据分享|电信行业客户流失预测:KNN、朴素贝叶斯、逻辑回归、LDA/QDA、随机森林、支持向量机、CART、神经网络
|
12天前
|
监控 安全 网络安全
云端防御:融合云计算与网络安全的未来之路
【5月更文挑战第1天】 随着企业数字化转型的不断推进,云计算已成为现代业务架构的核心。然而,云服务的广泛应用也带来了前所未有的安全挑战。本文将深入探讨在动态、多租户的云环境中,如何通过创新的安全技术和策略来保障数据和资源的安全。我们将分析云计算服务模型与网络安全的关系,探讨当前面临的主要安全威胁,并提出相应的解决方案和管理最佳实践。文章旨在为读者提供一个全面的框架,以理解和应对在云平台上进行业务操作时可能遇到的安全风险。
|
12天前
|
存储 安全 网络安全
云端防御线:融合云计算与网络安全的战略性布局
【4月更文挑战第30天】 随着企业数字化转型的加速,云计算已成为推动业务增长的关键驱动力。然而,云服务的广泛采用也带来了前所未有的安全挑战。本文深入探讨了在动态和复杂的云环境中维护网络安全的关键技术与策略。通过分析云计算服务模型、网络威胁面及信息安全最佳实践,文章旨在为企业构建一个既灵活又坚固的防御体系提供指导,确保在享受云服务带来的便利的同时,有效防范潜在的安全风险。
|
13天前
|
监控 安全 网络安全
云端防御战线:融合云计算与网络安全的未来策略
【4月更文挑战第30天】随着企业数字化转型的加速,云计算已成为支撑现代业务架构的关键平台。然而,云服务的广泛采用也使组织面临前所未有的网络威胁。本文将深入探讨如何在动态且复杂的云环境中实施有效的网络安全措施,确保信息资产的安全与完整性。文中不仅分析了云计算服务模型中存在的安全挑战,还提出了一系列创新的安全策略,包括身份验证、数据加密、访问控制及持续监控等,旨在为读者提供一套全面的网络安全解决方案框架。
|
13天前
|
机器学习/深度学习 数据可视化
R语言逻辑回归、决策树、随机森林、神经网络预测患者心脏病数据混淆矩阵可视化(下)
R语言逻辑回归、决策树、随机森林、神经网络预测患者心脏病数据混淆矩阵可视化