A Neural Probabilistic Language Model,这篇论文是Begio等人在2003年发表的,可以说是词表示的鼻祖.在这里给出简要的译文 A Neural Probabilistic Language Model 一个神经概率语言模型 摘  要 统计语言模型的一个目标是学习一种语言的单词序列的联合概率函数.因为维数灾难,这是其本质难点:将被模型测试的单词序列很可能是与在训练中见过的所有单词的序列都不相同.传统的但非常成功的基于n-gram的方法通过将出现在训练集很短的重…
论文地址:http://www.iro.umontreal.ca/~vincentp/Publications/lm_jmlr.pdf 论文给出了NNLM的框架图: 针对论文,实现代码如下: # -*- coding: utf-8 -*- # @time : 2019/10/26 12:20 import numpy as np import torch import torch.nn as nn import torch.optim as optim from torch.autograd i…
其框架结构如下所示: 可分为四 个部分: 词嵌入部分 输入 隐含层 输出层 我们要明确任务是通过一个文本序列(分词后的序列)去预测下一个字出现的概率,tensorflow代码如下: 参考:https://github.com/pjlintw/NNLM/blob/master/src/nnlm.py import argparse import math import time import numpy as np import tensorflow as tf from datetime imp…
论文链接:http://www.jmlr.org/papers/volume3/bengio03a/bengio03a.pdf 解决n-gram语言模型(比如tri-gram以上)的组合爆炸问题,引入词的分布式表示. 通过使得相似上下文和相似句子中词的向量彼此接近,因此得到泛化性. 相对而言考虑了n-gram没有的更多的上下文和词之间的相似度. 使用浅层网络(比如1层隐层)训练大语料. feature vector维度通常在100以内,对比词典大小通常在17000以上. C是全局共享的向量数组.…
1. NLP问题简介 0x1:NLP问题都包括哪些内涵 人们对真实世界的感知被成为感知世界,而人们用语言表达出自己的感知视为文本数据.那么反过来,NLP,或者更精确地表达为文本挖掘,则是从文本数据出发,来尽可能复原人们的感知世界,从而表达真实世界的过程.这里面就包括如图中所示的模型和算法,包括: ()文本层:NLP文本表示: ()文本-感知世界:词汇相关性分析.主题模型.意见情感分析等: ()文本-真实世界:基于文本的预测等: 显而易见,文本表示在文本挖掘中有着绝对核心的地位,是其他所有模型建构…
主要两个方面 Probabilistic modeling 概率建模,神经网络模型尝试去预测一个概率分布 Cross-entropy作为误差函数使得我们可以对于观测到的数据 给予较高的概率值 同时可以解决saturation的问题 前面提到的线性隐层的降维作用(减少训练参数)     这是一个最初版的神经网络语言模型     选取什么要的loss function,为什么用cross-entropy,为什么不用squared loss呢? 首先 可以看到 cross-entropy更能从数值上体…
前一篇文章  用 CNTK 搞深度学习 (一) 入门    介绍了用CNTK构建简单前向神经网络的例子.现在假设读者已经懂得了使用CNTK的基本方法.现在我们做一个稍微复杂一点,也是自然语言挖掘中很火的一个模型: 用递归神经网络构建一个语言模型. 递归神经网络 (RNN),用图形化的表示则是隐层连接到自己的神经网络(当然只是RNN中的一种): 不同于普通的神经网络,RNN假设样例之间并不是独立的.例如要预测“上”这个字的下一个字是什么,那么在“上”之前出现过的字就很重要,如果之前出现过“工作”,…
5.1循环序列模型 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.5不同类型的循环神经网络 上节中介绍的是 具有相同长度输入序列和输出序列的循环神经网络,但是对于很多应用\(T_{x}和T_{y}\)并不一定相等. 在此节会介绍不同的能够处理不同问题的循环神经网络. 多对多循环神经网络 对于命名实体识别的问题中,RNN的输出和输入序列长度一致--\(T_{x}=T_{y}\). 则在每读一个单词时都输出预测的值\(\hat{y}\) 这是一个典型的多对多的问题. 多对一循环神经网络…
PyTorch 神经网络 神经网络 神经网络可以通过 torch.nn 包来构建. 现在对于自动梯度(autograd)有一些了解,神经网络是基于自动梯度 (autograd)来定义一些模型.一个 nn.Module 包括层和一个方法 forward(input) 它会返回输出(output). 例如,看一下数字图片识别的网络: 这是一个简单的前馈神经网络,它接收输入,让输入一个接着一个的通过一些层,最后给出输出. 一个典型的神经网络训练过程包括以下几点: 1.定义一个包含可训练参数的神经网络…
Colaboratory 是免费的 Jupyter 笔记本环境,不需要进行任何设置就可以使用,并且完全在云端运行.关键是还有免费的GPU可以使用!用Colab训练PyTorch神经网络步骤如下: 1:新建Colab文件 Colab是在Google硬盘上面运行的,所以,需要到Google硬盘上面新建Colaboratory文件,并进行关联,文件是以ipynb结尾的Jupyter笔记本.下面有一些Jupyter笔记本的使用技巧,可以帮你更好的使用这个环境: 直接运行python代码 import r…