任务六-简单神经网络

文本表示:从one-hot到word2vec

One-Hot编码,又称为一位有效编码,主要是采用位状态寄存器来对个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候只有一位有效。

在实际的机器学习的应用任务中,特征有时候并不总是连续值,有可能是一些分类值,如性别可分为“male”和“female”。

Word2vec,为一群用来产生词向量的相关模型。这些模型为浅层双层的神经网络,用来训练以重新建构语言学之词文本。网络以词表现,并且需猜测相邻位置的输入词,在word2vec中词袋模型假设下,词的顺序是不重要的。

训练完成之后,word2vec模型可用来映射每个词到一个向量,可用来表示词对词之间的关系。该向量为神经网络之隐藏层。

Word2vec依赖skip-grams或连续词袋(CBOW)来建立神经词嵌入。Word2vec为托马斯·米科洛夫(Tomas Mikolov)在Google带领的研究团队创造。该算法渐渐被其他人所分析和解释。

词袋模型:离散、高维、稀疏

词袋模型(英语:Bag-of-words model)是个在自然语言处理和信息检索(IR)下被简化的表达模型。此模型下,一段文本(比如一个句子或是一个文档)可以用一个装着这些词的袋子来表示,这种表示方式不考虑文法以及词的顺序。最近词袋模型也被应用在电脑视觉领域。[1]
词袋模型被广泛应用在文件分类,词出现的频率可以用来当作训练分类器的特征。

分布式表示:连续、低维、稠密。word2vec词向量原理并实践,用来表示文本

走进FastText

fastText是一个用于学习由Facebook的AI研究实验室创建的文字嵌入和文本分类的库。该模型允许创建无监督学习或监督学习算法以获得单词的向量表示。

FastText的原理

它就是一个softmax线性多类别分类器,分类器的输入是一个用来表征当前文档的向量;模型的前半部分,即从输入层输入到隐含层输出部分,主要在做一件事情:生成用来表征文档的向量。那么它是如何做的呢?叠加构成这篇文档的所有词及n-gram的词向量,然后取平均。叠加词向量背后的思想就是传统的词袋法,即将文档看成一个由词构成的集合。

利用FastText模型进行文本分类

参考

word2vec1:word2vec 中的数学原理详解(一)目录和前言 - peghoty - CSDN博客

word2vec2:word2vec原理推导与代码分析-码农场

word2vec中的数学原理详解(四)基于 Hierarchical Softmax 的模型:word2vec 中的数学原理详解(四)基于 Hierarchical Softmax 的模型 - …

fasttext1:GitHub - facebookresearch/fastText: Library for fa…

fasttext2:GitHub - salestock/fastText.py: A Python interface…

fasttext3 其中的参考:fastText源码分析以及使用 — 相依

A Neural Network Playground

iOSDevLog wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!