博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
神经网络语言模型NNLM
阅读量:5313 次
发布时间:2019-06-14

本文共 913 字,大约阅读时间需要 3 分钟。

NNLM(Neural Network Language Model)

神经网络语言模型对理解word2vec模型有很大的帮助, 包括对后期理解CNN,LSTM进行文本分析时有很大的帮助.

 

模型训练数据

是一组词序列w1…wT,wt∈V。其中 V 是所有单词的集合(即训练预料中的词构成的词典), 词向量把n-gram的离散空间转换为连续空间.

概率函数

$f(w_{t},w_{t-1},...,w_{t-n+2}, w_{t-n+1})=p(w_{t} | {w_{1}}^{t-1})$

在这个模型中,可分为特征映射和计算条件概率分布两部分:

1.  一个 |V|×m映射矩阵C,每一行表示某个单词的特征向量,是m维,共|V|列,即|V|个单词都有对应的特征向量在C中

2.通过一个函数 g (g 是前馈或递归神经网络)将输入的词向量序列(C(wt−n+1),...,C(wt−1)) 转化为一个概率分布,即该函数$p(w_{t} | {w_{1}}^{t-1})$是来估计,其中i有|V|种取值。如果把该网络的参数记作ω,那么整个模型的参数为 θ = (C,ω)。我们要做的就是在训练集上使下面的目标似然函数最大化.

 

目标函数:

 

神经网络语言模型的网络结构图:

 

网络结构:

从下往上依次是:

输入层:window窗口中上下文的每个词one-hot向量

投影矩阵: 紫色虚线表示词语通过投影矩阵Matrix C对词进行映射

投影矩阵也是稠密词向量, 词典维数V,稠密词向量表示维数D

1*|V|*|V|*m = 1*m

 

神经网络输入层: 为经过投影矩阵映射后的词向量的拼接, 输入向量大小为窗口上下文词的数量乘以定义的词向量的长度

神经网络隐藏层: 加激活函数tanh等进行非线性映射

输出层:softmax做归一化,保证概率和为1.

  $p(w_{t}|w_{t-1},...,w_{t-n+2}, w_{t-n+1}) = \frac{ e^{y_{w_{t}}} }{ \sum_{i}^{ }e^{y_{i}} }$

 

 

转载于:https://www.cnblogs.com/xmeo/p/7463946.html

你可能感兴趣的文章
数论小常识
查看>>
centos下升级mysql5.5.47到5.7.14操作过程
查看>>
为git配置ssh
查看>>
.NET MVC 学习笔记(三)— MVC 数据显示
查看>>
Thinkphp5 iis环境下安装报错400 500
查看>>
查看appPackage和appActivity的多种方法
查看>>
.net实现网易云音乐下载
查看>>
python之enumerate函数:获取列表中每个元素的索引和值
查看>>
SDWebImage的实现原理与底层结构拆解
查看>>
Think Python - Chapter 10 - Lists
查看>>
ubuntu 用管理员身份进入系统
查看>>
蓝牙通信第1篇:搜索蓝牙设备
查看>>
GNU Parallel指南
查看>>
字符串逆序输出,冒泡,二分查找
查看>>
(转)【Unity Shaders】Alpha Test和Alpha Blending
查看>>
Compass Card Sales(模拟)
查看>>
dt dl列表布局
查看>>
LeetCode 628. Maximum Product of Three Numbers (最大三数乘积)
查看>>
Sqlserver 数据交互(将数据库A表A中的数据插入到数据库B中的表B)
查看>>
LeetCode 40. Combination Sum II (组合的和之二)
查看>>