作者:豆腐心_suile | 来源:互联网 | 2023-09-25 17:56
Table of Contents
- 一. 自然语言概述
- 1.1 自然语言可以做什么
- 1.2 为什么需要深度学习
- 二.语言模型
- 2.1 语言模型简介
- 2.2 语言模型实例
- 2.3 语言模型参数数量
- 三. 词向量
- 四. 神经网络模型
- 五. Hierarchical Softmax
- 5.1 哈夫曼树
- 5.2 Sigmoid函数
- 5.3 CBOW
- 5.4 Skip-gram
- 5.5 Negative Sampling
- 参考:
一. 自然语言概述
1.1 自然语言可以做什么
- 拼写检查、关键词搜索
- 文本挖掘(产品价格、日期、时间、地点、人名、公司名)
- 文本分类
- 机器翻译
- 客服系统
- 复杂对话系统
1.2 为什么需要深度学习
二.语言模型
2.1 语言模型简介
机器翻译:
拼写纠错:
智能问答:
2.2 语言模型实例
我今天下午打篮球
p(S)=p(w1,w2,w3,w4,w5,…,wn)
=p(w1)p(w2|w1)p(w3|w1,w2)...p(wn|w1,w2,...,wn-1)
p(S)被称为语言模型,即用来计算一个句子概率的模型
语言模型存在哪些问题呢?
p(wi|w1,w2,...,wi-1) = p(w1,w2,...,wi-1,wi) /p(w1,w2,...,wi-1)
- 数据过于稀疏
- 参数空间太大
假设下一个词的出现依赖它前面的一个词:
p(S)=p(w1)p(w2|w1)p(w3|w1,w2)...p(wn|w1,w2,...,wn-1)
=p(w1)p(w2|w1)p(w3|w2)...p(wn|wn-1)
假设下一个词的出现依赖它前面的两个词:
p(S)=p(w1)p(w2|w1)p(w3|w1,w2)...p(wn|w1,w2,...,wn-1)
=p(w1)p(w2|w1)p(w3|w1,w2)...p(wn|wn-1,wn-2)
I want english food
p(I want chinesefood)=P(want|I)
×P(chinese|want)
×P(food|chinese)
2.3 语言模型参数数量
假设词典的大小是N则模型参数的量级是 O(Nn)
三. 词向量下面是一些词语:
expect代表的是我们常见的向量,例如取值范围[-1,1]
右边图我们可以看到 是单词在向量空间中的分布情况,例如 had has have语义比较接近,所以在向量空间中也距离也是比较接近的。
词意相近的词:
词向量与语言的关系:
左边是英语,后面是西班牙语
我们可以看到即便语言不同,词向量空间所处的位置不变
四. 神经网络模型
五. Hierarchical Softmax
5.1 哈夫曼树
5.2 Sigmoid函数
5.3 CBOW
输入层:
是上下文的词语的词向量,在训练CBOW模型,词向量只是个副产品,确切来说,是CBOW模型的一个参数。训练开始的时候,词向量是个随机值,随着训练的进行不断被更新)。
投影层:
对其求和,所谓求和,就是简单的向量加法。
输出层
输出最可能的w。由于语料库中词汇量是固定的|C|个,所以上述过程其实可以看做一个多分类问题。给定特征,从|C|个分类中挑一个。
5.4 Skip-gram
5.5 Negative Sampling
参考:
- https://study.163.com/course/introduction.htm?courseId=1003590004#/courseDetail?tab=1