IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 语言模型和词向量的发展史及其原理 -> 正文阅读

[人工智能]语言模型和词向量的发展史及其原理

语言模型

语言模型

给定一句由 n 个词组成的句子 W= w 1 w_1 w1?, w 2 w_2 w2?,?, w n w_n wn?

计算这个句子的概率 P( w 1 w_1 w1?, w 2 w_2 w2?,?, w n w_n wn?)

或者计算根据上文计算下一个词的概率 P( w 1 w_1 w1?| w 1 w_1 w1?, w 2 w_2 w2?,?, w n ? 1 w_n-1 wn??1)

语言(人说的话) + 模型(完成某个任务)

任务1:

? P(“判断这个词的磁性”),P(“判断这个词的词性”)

任务2:

? “判断这个词的__”

统计语言模型

用统计的方法去解决上述问题

解决任务1:

条件概率的链式法则:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m6DaLooX-1663331346370)(G:\学业\计算生物研究所\自主学习\图神经网络\img\image-20220914211734780.png)]

类似于全概率公式:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JUMWf3S6-1663331346372)(G:\学业\计算生物研究所\自主学习\图神经网络\img\image-20220914212549957.png)]

通过这个链式法则,可以根据每个词出现的概率以及条件概率,得出这句话的概率。

显然任务1中"磁性"的概率更小。

解决任务2:

根据给定词序列,判断下一个词,可以直接计算如下概率,如公式1:

P ( w n e x t ∣ 判断,这个,词,的 ) P(w_{next}|判断,这个,词,的) P(wnext?判断,这个,词,的)

展开得到公式2:

P ( w n e x t ∣ 判断,这个,词,的 ) = c o u n t ( w n e x t ,判断,这个,词,的 ) c o u n t ( 判断,这个,词,的 ) P(w_{next}|判断,这个,词,的) = \frac{count(w_{next},判断,这个,词,的)}{count(判断,这个,词,的)} P(wnext?判断,这个,词,的)=count(判断,这个,词,的)count(wnext?,判断,这个,词,的)?

类似于贝叶斯公式:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D03IQHVi-1663331346373)(G:\学业\计算生物研究所\自主学习\图神经网络\img\image-20220914220311084.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EvuoO7BU-1663331346373)(G:\学业\计算生物研究所\自主学习\图神经网络\img\image-20220914212617354.png)]

其中 w n e x t w_{next} wnext?∈V 表示词序列的下一个词,V 是一个具有 |V| 个词的词典

当V非常大时计算非常困难

n元统计语言模型 n-gram

假设字典 V 中有 “火星” 一词,可以明显发现 “火星” 不可能出现在 “判断这个词的” 后面,因此(火星,判断,这个,词,的)这个组合是不存在的,并且词典中会存在很多类似于 “火星” 这样的词。

进一步,可以发现我们把(火星,判断,这个,词,的)这个组合判断为不存在,是因为 “火星” 不可能出现在 “词的” 后面,也就是说我们可以考虑是否把公式1转化为公式3:
P ( w n e x t ∣ 判断,这个,词,的 ) ≈ P ( w n e x t ∣ 词,的 ) P(w_{next}|判断,这个,词,的)≈P(w_{next}|词,的) P(wnext?判断,这个,词,的)P(wnext?词,的)

公式3就是马尔科夫链的思想:假设 w(next) 只和它之前的 k 个词有相关性,k=1 时称作一个单元语言模型,k=2时称为二元语言模型。

可以发现通过马尔科夫链后改写的公式计算起来将会简单很多,下面我们举个简单的例子介绍下如何计算一个二元语言模型的概率。

其中二元语言模型如公式4所示:
P ( w i ∣ w i ? 1 = c o u n t ( w i ? 1 , w i ) c o u n t ( w i ? 1 ) ) P(w_{i}|w_{i-1}=\frac{count(w_{i-1},w_{i})}{count(w_{i-1})}) P(wi?wi?1?=count(wi?1?)count(wi?1?,wi?)?)

假设有一个文本集合:

“词性是动词”
“判断单词的词性”
“磁性很强的磁铁”
“北京的词性是名词”

对于上述文本,如果要计算 P(词性|的)P(词性|的) 的概率,通过公式4,需要统计 “的,词性” 同时按序出现的次数,再除以 “的” 出现的次数,如公式5所示:

P ( 词性 ∣ 的 ) = c o u n t ( 的 , 词性 ) c o u n t ( 的 ) = 2 3 P(词性|的)=\frac{count(的,词性)}{count(的)}=\frac{2}{3} P(词性)=count()count(,词性)?=32?

上述文本集合是我们自定制的,然而对于绝大多数具有现实意义的文本,会出现零概率问题,例如训练时未出现,测试时出现了的未登录单词

由于零概率问题问题,则会出现概率值为 0 的情况(填空题将无法从词典中选择一个词填入),为了避免 0 值的出现,会使用一种平滑的策略——分子和分母都加入一个非 0 正数,例如可以把公式(4)改为公式6:拉普拉斯平滑
P ( w i ∣ w i ? 1 = c o u n t ( w i ? 1 , w i ) + 1 c o u n t ( w i ? 1 ) + ∣ V ∣ ) P(w_{i}|w_{i-1}=\frac{count(w_{i-1},w_{i})+1}{count(w_{i-1})+|V|}) P(wi?wi?1?=count(wi?1?)+Vcount(wi?1?,wi?)+1?)

评价

? 依赖训练语科、泛化能力差

? 以离散符号为统计单元,无法体现语义相关性

神经网络语言模型NNML

为了预测词向量

NNML通过词向量的距离衡量单词之间的相似度,因此,对于未登录单词,也可以通过相似词进行估计

采用神经网络的方法完成语言模型的两个任务

首先考虑解决第二个问题——根据已知单词,预测下一个单词

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CAqWiS2H-1663331346375)(G:\学业\计算生物研究所\自主学习\图神经网络\img\image-20220914234629837.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WqwHRJdp-1663331346375)(G:\学业\计算生物研究所\自主学习\图神经网络\img\image-20220915002055872.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p70GF1gx-1663331346375)(G:\学业\计算生物研究所\自主学习\图神经网络\img\image-20220915005924472.png)]

在这张图中,输入层shape为1*v,且不需要flatten,需要concat处理

首先根据V中每个input元素的索引i,找到词向量矩阵Q中对应的词向量,置为Ci,将结果拼接成1*(t-1)*v,再经过tanh激活函数,传到softmax层,最终输出为v个合为1的概率向量。

其中,input元素的索引可以使用ont-hot编码,编码为t-1维的向量,通过与Q的矩阵乘法就可以很简单地计算出词向量Ci

具体公式为:y=softmax(U(tanh( ∏ i = 1 t ? 1 \prod_{i=1}^{t-1} i=1t?1? w i w_i wi?Q+b1))+b2)

原作者并没有提出词向量

当矩阵Q的训练效果越来越好时,C就可以取代w成为表示词的向量。

词向量

独热编码One-Hot

如果直接用字符去存储单词,耗费空间很大

独热编码思想:根据单词数量n给出一个n*n的矩阵

可以让计算机认识单词,具有很重要的意义

但如此存储计算出的词与词之间的余弦相似度和点积都为0,也就是无法体现出词与词之间的关联性

Word Embedding(Distributed Representation)

又叫分布式表示/稠密表示

由于独热编码无法表示相关性这一缺陷,很快就被词向量表示取代。在NNLM中的C(wi),就是单词对应的Word Embedding值,也就是词向量。词向量矩阵Q训练好之后,几乎没有空值,计算余弦相似度也几乎不会为0,所以可以保存词与词之间的关联性。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7d5uWhR8-1663331346376)(G:\学业\计算生物研究所\自主学习\图神经网络\img\image-20220915212933940.png)]

一旦得到了词向量,第一个问题也可以直接解决(下游任务)

Word2Vec 模型

为了得到词向量

word2vec模型与NNLM模型很类似,有两种训练方法,但最终目的都是得到Q矩阵,且前向传播并没有加入tanh作为激活函数,因为不需要预测的精度非常高,只要能够将词向量矩阵Q训练出来就可以

在这里插入图片描述

CBOW

核心思想是从一个句子里面把一个词抠掉,用这个词的上文和下文去预测被抠掉的这个词(NNML是根据上文来预测下一个词,没有本质区别,但Word2Vec的主要目的是得到词向量),根据一个output和多个input去训练Q矩阵

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vrTTJcdj-1663331346377)(G:\学业\计算生物研究所\自主学习\图神经网络\img\image-20220916141259126.png)]

背景词需要进行平均池化,将多个词向量池化为1个词向量。

得到的是预测中心词c的概率

∏ t = 1 T P ( w ( t ) ∣ w ( t ? m ) , . . . , w ( t ? 1 ) , w ( t + 1 ) , . . . , w ( t + m ) ) ) \prod_{t=1}^{T}P({w}^{(t)}|{w}^{(t-m)},...,{w}^{(t-1)},{w}^{(t+1)},...,{w}^{(t+m)})) t=1T?P(w(t)w(t?m),...,w(t?1),w(t+1),...,w(t+m)))

Skip-gram

和 CBOW 相反,输入某个单词,要求预测它的上下文单词,根据多个output和一个input去训练Q矩阵。

选定窗口大小长度的字符串,用其中的一个字符去预测剩余的字符。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IKs2rzfQ-1663331346377)(G:\学业\计算生物研究所\自主学习\图神经网络\img\image-20220916140421865.png)]

得到的是预测背景词 u o u_o uo?的概率

∏ t = 1 T ∏ ? m ≤ j ≤ m , j ≠ 0 P ( w ( t + j ) ∣ w ( t ) ) ) \prod_{t=1}^{T}\prod_{-m≤j≤m,j≠0}P({w}^{(t+j)}|{w}^{(t)})) t=1T??mjm,j=0?P(w(t+j)w(t)))

负采样

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NoqwvZ1d-1663331346377)(G:\学业\计算生物研究所\自主学习\图神经网络\img\image-20220916202617684.png)]

缺陷

词向量无法表示多义词(ELMo模型(双向LSTM模型))解决多义词

预训练语言模型的下游任务改造

比如可以根据独热编码(非预训练模型,只是一一对应的表查询)使用Word2Vec预训练好的Q矩阵直接得到词向量,然后选择策略(冻结或者是微调)进行下有任务

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-09-21 00:29:07  更:2022-09-21 00:32:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 22:30:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码