Тёмный

RNN模型与NLP应用(6/9):Text Generation (自动文本生成) 

Shusen Wang
Подписаться 29 тыс.
Просмотров 14 тыс.
50% 1

下节课 机器翻译: • RNN模型与NLP应用(7/9):机器翻译与...
这节课的主要内容是Text Generation (自动文本生成)。我们训练一个文本生成器,用来自动生成文本。
课件:github.com/wan...
文本生成器代码:François Chollet 的书 Deep Learning with Python 第8.1节。
相关视频:
1. 数据处理: • RNN模型与NLP应用(1/9):数据处理基础
2. 词嵌入: • RNN模型与NLP应用(2/9):文本处理与词嵌入
3. Simple RNN: • RNN模型与NLP应用(3/9):Simpl...
4. LSTM: • RNN模型与NLP应用(4/9):LSTM模型
5.RNN的改进: • RNN模型与NLP应用(5/9):多层RNN...
6. 文本生成: • RNN模型与NLP应用(6/9):Text ...
7. 机器翻译: • RNN模型与NLP应用(7/9):机器翻译与...
8. Attention: • RNN模型与NLP应用(8/9):Atten...
9. Self-Attention: • RNN模型与NLP应用(9/9):Self-...

Опубликовано:

 

16 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 48   
@sciab3674
@sciab3674 2 месяца назад
谢谢,讲的很详细
@totoro_r1668
@totoro_r1668 2 года назад
感谢你清晰又简洁地讲解!果断订阅。期待以后出可以跟老师一起写码建模的课
@rayren481
@rayren481 4 года назад
反复听了好多遍,非常受用,感谢
@maxxxwan
@maxxxwan 9 месяцев назад
温故而知新。看到三种抽样策略的第二种,按概率随机抽样得到下一个字符。其实可以设置一个阈值,只抽样高于这个阈值的概率值的字符,这样就不会生成语法错误的句子了,也兼顾了生成的多样性。
@yixunye2777
@yixunye2777 Год назад
讲得太好了❤简练高效,这才是教学视频该有的样子。 想请问下:现在主流的中文文本生成是用词向量吗?如果是,那最后的softmax不得有大几万甚至十万以上的维度?这么高的维度需要处理吗,怎么处理的
@ddp4775
@ddp4775 3 года назад
讲得太清晰了,谢谢。还有,加油!
@mollyyaw1234
@mollyyaw1234 4 года назад
Y should be 1x57 vector after one-hot encoding right?
@sddsvnxingyu1506
@sddsvnxingyu1506 3 года назад
谢谢老师,感激!!!我会努力的!
@jokerren3395
@jokerren3395 4 года назад
讲的真的好有用,反复看了!
@weiyan2361
@weiyan2361 3 года назад
王老师,请问训练的时候,您的例子里面是每句话用的60个字符,去预测下一个字符,但是在生成任务阶段,您选用的是用18个字符,依次生成后面的文本。 我的疑问是:训练阶段和生成输入序列长度不一样没关系吗?虽然RNN都是一个字符一个字符依次进入,但训练阶段,是看完60个字符后进行预测,但是生成阶段却只看了18个字符就要进行预测字符了
@ShusenWang
@ShusenWang 3 года назад
1. 训练和预测时候序列长度可以不一样。RNN的参数只跟x和h大小有关,跟序列长度无关。训练好的RNN可以用在任意长度的序列上。 2. 我后面的例子只是用来讲解的,不是真正实验生成的。
@weiyan2361
@weiyan2361 3 года назад
@@ShusenWang 非常感谢您的回答
@caiyu538
@caiyu538 Год назад
为啥不直接选概率最大的前几个 还需要用temperature去处理一下 感觉画蛇添足
@wasserbewirtschaftung8222
@wasserbewirtschaftung8222 4 года назад
感谢感谢
@jarorkwong8042
@jarorkwong8042 3 года назад
有个问题,做文本生成的时候,输入的序列中每一个元素都是一个character的character vector,这里为什么不使用词向量呢?如果使用词向量的话,h(t)输出的context vector不就包含Context的意境了么?然后把h(t)的输出嫁接到SoftMax层上去,得到词汇表中每个词出现的概率分布,做幂变换之后随机选下一个词。(当然,在最后的SoftMax维度太高,因为是词汇表的维度V,可以使用Hierarchical SoftMax进行优化)使用词向量的效果会不会比使用字向量的生成效果好呢?
@jarorkwong8042
@jarorkwong8042 3 года назад
先使用通用语料预训练词向量矩阵,然后比如创作莎士比亚的作品,再用莎士比亚的作品训练几十个Epochs,然后再递归生成第t个词
@ShusenWang
@ShusenWang 3 года назад
你说的没错~不过教学得做简化,不然很多学生理解不了。
@hw226
@hw226 4 года назад
王老师有个问题请教,在predict the next char您介绍的三种方法中,第一种和第三种有什么不同,第三种经过指数运算后不是把大的概率变的更大吗,不是跟第一种一样的吗?
@ShusenWang
@ShusenWang 4 года назад
第一种是最极端的情况,最大的等于1,其余等于0。第三种没这么极端。
@fzzying
@fzzying 4 года назад
这么几次听下来感觉RNN就是一个forecasting的模型,不知道工业界有没有用它来预测比如广告流量
@jiehu6323
@jiehu6323 3 года назад
有用,但有一个问题是训练数据基于已有的历史记录,很难预测新的事件(训练数据以外)的事情。当然符合同一个分布的预测里预测结果是比较理想的。
@bibiworm
@bibiworm 3 года назад
王老师,关于这节课,我有几个问题。 1. 我对每个block的input 也就是x_t, output也就是hidden state h_t, cell state 也就是c_t 长什么样子 还是比较混乱。就拿老师讲的这个例子来说,视频的19:35分钟,input x_0是"the cat sat on the"文字的矩阵形式,也就是18x57的矩阵(假设dictionary的dimension是57)。output h_0是一个57维的向量,代表空格。c_0是什么样子呢?然后下一轮 input x_1是“he cat sat on the_“的矩阵形式,计算c_1, h_1的时候除了要考虑x_1还要考虑 h_0. c_1长什么样子呢?以此类推。 2. 一个batch size是128的话,那每个batch的ltsm就是128个block? 第13:53分钟, 3. batch_size 和 hidden state h 的dimension都是128,这是巧合么? 4. x可以理解成为128x60x57维度的matrix么,因为这里batch size = 128. 谢谢。
@ShusenWang
@ShusenWang 3 года назад
1. Input x0不是the cat sat on the,而是 “t”。 x1是 "h",x2是"e"。。。。 h0和c0都是全零向量。
@ShusenWang
@ShusenWang 3 года назад
2. 不是。batch size 意思是每次做训练用 128 句话,每句话有 t=60 个字符。RNN运行 t=60 轮。让 batch size等于 1 也可以,但是不能很好利用 GPU的算力。 3. 巧合。可以不一样。 4. 对的。
@bibiworm
@bibiworm 3 года назад
@@ShusenWang 明白了,非常感谢。
@bibiworm
@bibiworm 3 года назад
@@ShusenWang 明白了,非常感谢。
@小罗在硅谷
@小罗在硅谷 4 года назад
为什么不对每个英文单词做one hot encoding 呢?是不是因为unique英文单词太多,会导致embedding矩阵超大?如果是这样的话,在中文自动生成的应用中,对中文汉字做embedding不是也会有一样的问题吗?
@ShusenWang
@ShusenWang 4 года назад
当然可以是每次生成一个单词。Embedding矩阵很大,所以需要训练数据足够大。中文汉字也就几千个,而英文常用单词有上万个,还不算name entity。
@az8134
@az8134 3 года назад
@@ShusenWang 老师请问如果我想用LSTM做text generation,每个token都是一个词,embedding因该怎么pre train呢?
@ShusenWang
@ShusenWang 3 года назад
@@az8134 可以用现成的词向量,比如glove embeddings
@az8134
@az8134 3 года назад
@@ShusenWang 多谢老师
@xinyuanwang5184
@xinyuanwang5184 3 года назад
王老师,最近在学习文本分类的方向。可以推荐一些NLP领域比较好的学术会议吗?谢谢
@ShusenWang
@ShusenWang 3 года назад
ACL, COLING, ICLR, ...
@xinyuanwang5184
@xinyuanwang5184 3 года назад
@@ShusenWang 谢谢🙏
@hzliang7457
@hzliang7457 4 года назад
感谢,请问文本片段长度必须一样吗?
@ShusenWang
@ShusenWang 4 года назад
训练的时候需要,因为要把数据存储成Tensor的形式。
@hzliang7457
@hzliang7457 4 года назад
@@ShusenWang 我理解的是只要一个batch内的数据片段长度一样就行了
@ShusenWang
@ShusenWang 4 года назад
@@hzliang7457 理论上来说是这样。但是DL的框架要求整个数据集是对齐的。
@hzliang7457
@hzliang7457 4 года назад
@@ShusenWang 好的,谢谢王老师
@shanewang1696
@shanewang1696 4 года назад
@@hzliang7457 我觉得你这个理解是对的,因为有不少情况你对一个batch做padding & packing就行了
@HenyJone
@HenyJone 4 года назад
请问示例代码有吗
@ShusenWang
@ShusenWang 4 года назад
文本生成器代码:François Chollet 的书 Deep Learning with Python 第8.1节。书pdf可以在网上下载到。
@HenyJone
@HenyJone 4 года назад
请问中文的怎么自动生成?
@ShusenWang
@ShusenWang 4 года назад
其实完全一样道理。把汉字用one-hot,再作Embedding。输出层还是softmax,输出概率,通过概率抽样汉字。
@ximoyan
@ximoyan 4 года назад
求老師公眾號或網站
@ShusenWang
@ShusenWang 4 года назад
sorry,没有公众号之类的
@boshengding4674
@boshengding4674 4 года назад
建议用pytorch做展示可能会好一点?现在很多人入门都是用pytorch
Далее
RNN模型与NLP应用(2/9):文本处理与词嵌入
16:12
НИКИТА ПОДСТАВИЛ ДЖОНИ 😡
01:00
RNN模型与NLP应用(3/9):Simple RNN模型
20:50
Просмотров 20 тыс.
Neural Networks Explained from Scratch using Python
17:38
How are holograms possible? | Optics puzzles 5
46:24