当前位置: 首页 > news >正文

自然语言处理(24:(第六章4.)​seq2seq模型的应用)

系列文章目录

第六章 1:基于RNN生成文本      

第六章 2:seq2seq模型的实现

第六章 3:seq2seq模型的改进     

第六章 4:seq2seq模型的应用 


文章目录

目录

系列文章目录

前言

一、聊天机器人

二、算法学习

三.自动图像描述

总结


前言

seq2seq 将某个时序数据转换为另一个时序数据,这个转换时序数据的框架可以应用在各种各样的任务中,比如以下几个例子。

• 机器翻译:将“一种语言的文本”转换为“另一种语言的文本”

• 自动摘要:将“一个长文本”转换为“短摘要”

• 问答系统:将“问题”转换为“答案”

• 邮件自动回复:将“接收到的邮件文本”转换为“回复文本”

像这样,seq2seq可以用于处理成对的时序数据的问题。除了自然语言 之外,也可以用于语音、视频等数据。有些乍一看不属于seq2seq的问题, 通过对输入输出数据进行预处理,也可以应用seq2seq。本节将简单介绍几个使用seq2seq 的应用。如果大佬们能由此感受到seq2seq的潜力和乐趣,那就再好不过了。


一、聊天机器人

聊天机器人是人和计算机使用文本进行对话的程序,现在已经被用于 Facebook、Twitter等各种各样的服务中。 毫无疑问,聊天机器人可以使用seq2seq。因为对话是由“对方的发言” 和“本方的发言”构成的,可以理解为是将“对方的发言”转换为“本方的 发言”的问题。也就是说,如果有对话文本数据,seq2seq就可以学习它。 另外,聊天机器人也可以用在实用场景中。进行了将基 于seq2seq的聊天机器人应用于IT帮助台的实验,并展示了它成功解决有关VPN接入问题的例子。这里,我们将其中的一部分对话翻译成中文。

从上图中可知,机器(聊天机器人)很好地解决了问题,遇到VPN接入问题的人被引导到了能解决该问题的URL。当然,它只能解决与IT帮助台相关的问题,无法泛化。但是,基于对话获取答案或者线索,这一点非常实用,应用范围很广。实际上,这样的服务(简易版)已经可以在若干网站上看到。(现在的大模型就比这个强,但是我们依然不要神话大模型。

二、算法学习

本章进行的seq2seq实验是加法这样的简单问题,但理论上它也能处理 更加高级的问题,比如下图所示的Python代码

源代码也是用字符编写的时序数据。我们可以将跨行的代码处理为一条语句(将换行视为换行符)。因此,可以直接将源代码输入seq2seq,让 seq2seq 对源代码与目标答案一起进行学习。 上述包含for语句和if语句的问题不太容易解决。不过,即便是这样的问题,也可以在seq2seq框架内处理。通过改造seq2seq的结构,可以让这样的问题能够被解决。(现在的大模型可以解决大部分,但是它依然只是辅助作用,不要神话

三.自动图像描述

到目前为止,我们只看了处理文本的seq2seq的应用示例,除了文本之 外,seq2seq 还可以处理图像、语音等类型的数据。本节我们来看一下将图 像转换为文本的自动图像描述(image captioning)

自动图像描述将“图像”转换为“文本”。如下图所示,这也可以在 seq2seq 的框架下解决。

上图是我们熟悉的网络结构。实际上,它和之前的网络的唯一区别在于,编码器从LSTM换成了CNN,而解码器仍使用与之前相同的网络。仅通过这点改变(用 CNN替代LSTM), seq2seq就可以处理图像了。 这里补充说明一下上图中的CNN。此处,CNN对图像进行编码, 这时CNN的最终输出是特征图。因为特征图是三维(高、宽、通道)的, 所以需要想一些办法让解码器的LSTM可以处理它。于是,将CNN的特征图扁平化到一维,并基于全连接的Affine层进行转换。之后,再将转换后的数据传递给解码器,就可以像之前一样生成文本了。(你用的图像识别文字之类的就是这么个原理)


总结

这一章我们探讨了基于RNN的文本生成。实际上,我们只是稍微改动了一下上一章的基于RNN的语言模型,增加了文本生成的功能。在本章后半部分,我们研究了seq2seq,并使之成功学习了简单的加法。seq2seq模型拼接了编码器和解码器,是组合了两个RNN的简单结构。但是,尽管 seq2seq 简单,却具有巨大的潜力,可以用于各种各样的应用。 另外,本章还介绍了改进seq2seq的两个方案——Reverse和Peeky。 我们对这两个方案进行了实现和评价,并确认了它们的效果。下一章我们将继续改进seq2seq,届时深度学习中最重要的技巧之一Attention将会出现。 我们将说明Attention的机制,然后基于它实现更强大的seq2seq。

相关文章:

  • 卸载360壁纸
  • Android开发:support.v4包与AndroidX
  • AI Agent拐点已至,2B+2C星辰大海——行业深度报告
  • nextjs使用02
  • MySQL在线DDL操作指南
  • 安全框架SpringSecurity入门
  • Window C++ Postmortem Debugger
  • opencv(C++)图像的读写、翻转、绘制、鼠标事件
  • 源码分析之Leaflet中control模块Control基类实现原理
  • Vue2 通过 Object.defineProperty 对哪些数组进行了特殊处理?
  • C语言中的内存管理:掌握动态分配的技巧
  • 雪花算法生成的主键存在哪些问题,为什么不能使用自增ID或者UUID做MySQL的主键
  • git 对比两种优化方法的性能
  • MySQL主从复制(二)
  • Go语言入门指南:从语法基础到核心特性解析
  • 【C++】mapset使用与实战 OJ题
  • ABAP RANGE表 OPTION 运算符 SIGN
  • 无人机数据链技术及运行方式详解!
  • python生成并绘制各种类型声音噪声
  • xfreerdp 的使用
  • 气候资讯|4月全球前沿气候科学研究&极端天气气候事件
  • 浙商银行外部监事高强无法履职:已被查,曾任建行浙江省分行行长
  • 我国成功发射卫星互联网低轨卫星
  • 全球前瞻|王毅赴巴西出席金砖外长会,加拿大迎来“几十年来最重要大选”
  • 美大学建“私人联盟”对抗政府:学校已存在300年,特朗普才上任3个月
  • 王一博赛车故障退赛冲上热搜,工作室回应:下次再战