清华大学矣晓沅:“九歌”——基于深度学习的中国古典诗歌自动生成系统

本文主要是介绍清华大学矣晓沅:“九歌”——基于深度学习的中国古典诗歌自动生成系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

640?wx_fmt=png

授权自AI科技大本营(ID:rgznai100)

本文共2714字,建议阅读6分钟。
本文为你介绍清华自然语言处理与社会人文计算实验室的自动作诗系统——“九歌”及其相关的技术方法和论文。


[ 导读 ]近年来人工智能与文学艺术的结合日趋紧密,AI 自动绘画、自动作曲等方向都成为研究热点。诗歌自动生成是一项有趣且具有挑战性的任务。在本次公开课中, 讲者将介绍清华自然语言处理与社会人文计算实验室的自动作诗系统,“九歌”,及其相关的技术方法和论文。


分享嘉宾:


矣晓沅,清华大学计算机系在读硕士, 导师为孙茂松教授。主要从事自然语言处理、文本生成方向的研究。研究工作在IJCAI、CoNLL、EMNLP等会议发表。


公开课回放地址:

http://www.mooc.ai/open/course/545?=Leiphone


分享主题:“九歌”——基于深度学习的中国古典诗歌自动生成系统


分享提纲:


  • 任务背景及“九歌” 作诗系统简介

  • 基于显著性上下文机制的诗歌生成

  • 基于工作记忆模型的诗歌生成

  • 基于互信息的无监督风格诗歌生成


我们将其分享内容整理如下:


人工智能的概念提出不久后,许多科学家试图将人工智能与日常生活相结合。在 NLP 领域,我们熟悉的有机器翻译、专家系统和对话系统,而诗歌属于人类语言中高度凝练,高度艺术化的体现,几十年以前便有科学家试图让 AI 具备创作诗歌的能力。

关于自动诗歌生成,我们的应用主要体现在:


  • 娱乐场景——老百姓可以轻易通过诗意的方式去表达自己的情感;

  • 诗词教育——了解诗词中的关键词、意象、押韵等元素是如何在诗词中起作用的。

  • 文学研究——实验中关于词频、意象之间的关系的发现,能给文学研究一定的启发作用。

  • 启发其他类型文本的生成(歌词、小说……)。


诗歌的特点是形式上高度凝练、简洁、节奏感强、语义丰富,因此我们认为它是自动分析、理解和生成文本的理想切入点。


关于自动诗歌的生成,业界的研究主要经历了三个阶段:


640?wx_fmt=png


我们实验室是在 2016 年初开始做这件事情的,我们的九歌系统采用了最新的深度学习技术,结合多个为诗歌生成专门设计的不同模型,基于超过 30 万首的诗歌进行训练学习,能够产生集句诗、绝句、藏头诗、宋词等不同体裁的诗歌。


640?wx_fmt=png


下面我会给大家介绍九歌系统背后的几个重要模型:


基于显著性上下文机制的诗歌生成


第一个模型被称作“基于显著性上下文机制的诗歌生成”,在这之前,针对中国古典诗歌自动生成的一些工作在新颖性、韵律和关键词插入有了显著提升,然而在上下文关联性方面还有所欠缺。前期的试验中,我们发现这也是自动诗歌生成系统的硬伤部分。


640?wx_fmt=png


以这首诗为例子,诗歌主要以"春风"为关键词,通过 2016 的某个模型进行生成后,我们发现上下文的连贯性非常差。明明前两句描述的是比较和煦的景色,后两句却突然转变成比较悲怆的边塞风格。也就是说,前半部分与后半部分的主题、风格和内容完全不一致,而且中间也缺乏必要的过渡,关联性较差。


为什么模型会出现这样的问题呢?我们认为是因为之前的模型存在两种不合理的假设。


第一种是认为一首诗的生成过程中,历史信息可以被一个单独的历史向量存储和利用。


640?wx_fmt=png


简单来说,就是每生成一句诗,便将这句诗的句向量压缩到历史向量中,以此类推,不停更新历史向量然后生成诗句。


这个假设会带来很多问题:


  • 单独的向量的 capasity 并不高,无法将大量的句子和语义给保存下来。

  • 语义较好的词和无明确语义的词(如停用词等)被混到了一起。


第二种不合理的假设认为 seq2seq 机制可以从一个无限长的历史序列里探索和利用历史信息。


640?wx_fmt=png


这种假设的好处是可以有区分性地选择历史信息,忽略虚词。然而随之而来的问题是,当诗词的句子数过多时,比如以某宋词的第十五句作为例子,那么就需要将前面的十四句先拼成很长的序列作为输入,这将导致性能的大幅下降。


针对以上提到的两项问题,我们提出了 salient clue 机制,通过机制实现更优质的上下文捕捉。我们的内部设计逻辑是忽略句子里语义表现较差的部分,如虚词、停用词等,从而选择语义明确的部分来形成历史向量,来指导下文的生成。


更多关于 salient clue 机制的运作原理,请回看视频 00:13:25 处:

http://www.mooc.ai/open/course/545?=Leiphone


640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png


无论是在自动评测还是人工评测上,我们的结果与之前的模型相比,效果有了显著的提升。


640?wx_fmt=png


在人工评测的部分,加了 style 的诗歌在"诗意"环节的表现较差,这是因为被强制控制风格以后,最终生成的用词多样性也会变差。


640?wx_fmt=png


左边是风格的人工评测识别矩阵,对角线上的数字越大,说明我们的风格控制准确率越高,可以看到,我们的结果在 70%—90% 之间。右边是另一项人工评测结果,目的是要检测模型选择的字是否靠谱,我们请了一些专家进行人工挑字,与模型进行对比,结果显示重合率在 50% 左右,有了明显的提升。


由于模型较基础,所以存在的问题不少:


  • 字词的选择较生硬;

  • 诗歌流畅性与诗意性受到影响。


基于工作记忆模型的诗歌生成


这个模型借鉴了认知心理学的原理——"工作记忆"。


人们认为怎样的文章才具备连贯性呢?当读者读到一个新的句子时,如果这个句子能和存储在读者大脑工作记忆中的内容,或者文章的主题与大意建立关联,那么读者就认为新读到的这个句子和上文是连贯的。


有鉴于此,我们便提出了"工作记忆模型",该模型整体由三种不同的 Memory 组成:


一、 Topic Memory


640?wx_fmt=png


支持输入多个关键词,可以将用户输入的词单独保存在模型里,这里主要起的是约束诗歌整体主旨的角色。由于是独立保存,所以对关键词的输入顺序不做要求,是一项对用户非常友好的行为。


二、 History Memory


640?wx_fmt=png


与之前提到的 salient clue 机制相类似。


三、 Local Memory


640?wx_fmt=png


主要保存诗歌的前一个句子,因为中国古典诗歌的相邻句子往往有非常强的关联性。


更多关于工作记忆模型的运作机制,请回看视频 00:27:25 处:

http://www.mooc.ai/open/course/545?=Leiphone

 640?wx_fmt=png

640?wx_fmt=png

  640?wx_fmt=png

640?wx_fmt=png


我们的实验分别生成了律诗、宋词和歌词,实验结果与不同模型相比,都有了很大的提升。


640?wx_fmt=png


这是一张 perplexity 图,纵轴是 perplexity,横轴是诗歌的句子数目,不同颜色的线则表示 History Memory 的槽数。


640?wx_fmt=png


一首诗歌的句子数目越多,整体的 perplexity 就越大,因为句子数目越多,上下文的关联性越难被确认,导致不确定性越大。同时我们还发现,History Memory 的槽数越多,perplexity 就越小,不确定性也随着变小。


640?wx_fmt=png

640?wx_fmt=png


模型的成功之处,在于提升了读取词的可解释性和表达的灵活性。


基于互信息的无监督风格诗歌生成


针对第一篇文章工作中存在的风格控制问题,我们又做了一项「基于互信息的无监督风格」的工作。众所周知,中国古诗具有不同的风格表达,其中三个最有代表性的分别是:边塞、闺怨和山水田园。


我们希望我们的模型可以做到以下几个要求:


  • 给出一个关键词,就能生成不同风格的诗歌。

  • 通过无监督的方式实现这个功能。

  • 生成的诗在其他指标上尽量减少损失或者没有损失(流畅性、通顺性……)


更多关于无监督风格生成模型的运作机制,请回看视频 00:36:17 处:

http://www.mooc.ai/open/course/545?=Leiphone


640?wx_fmt=png640?wx_fmt=png640?wx_fmt=png640?wx_fmt=png


实验中我们设置了 10 种不同的风格,每种风格分别生成一组诗,最后我们统计诗歌的词频。 


640?wx_fmt=png


右边是人类评测的结果,对角线越明显,说明风格的识别率越高。一下生成十种风格的诗歌,还能取得这么高的识别率,说明实验的结果非常好。


640?wx_fmt=png


以上是生成的一些诗歌例子。


最后,欢迎大家前往试用我们的系统,多多给我们提宝贵的意见,后续我们会根据大家的反馈持续改进我们的系统。


系统地址:https://jiuge.thunlp.cn//


640?wx_fmt=jpeg

640?wx_fmt=jpeg

这篇关于清华大学矣晓沅:“九歌”——基于深度学习的中国古典诗歌自动生成系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/901636

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

跨国公司撤出在华研发中心的启示:中国IT产业的挑战与机遇

近日,IBM中国宣布撤出在华的两大研发中心,这一决定在IT行业引发了广泛的讨论和关注。跨国公司在华研发中心的撤出,不仅对众多IT从业者的职业发展带来了直接的冲击,也引发了人们对全球化背景下中国IT产业竞争力和未来发展方向的深思。面对这一突如其来的变化,我们应如何看待跨国公司的决策?中国IT人才又该如何应对?中国IT产业将何去何从?本文将围绕这些问题展开探讨。 跨国公司撤出的背景与

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

AI一键生成 PPT

AI一键生成 PPT 操作步骤 作为一名打工人,是不是经常需要制作各种PPT来分享我的生活和想法。但是,你们知道,有时候灵感来了,时间却不够用了!😩直到我发现了Kimi AI——一个能够自动生成PPT的神奇助手!🌟 什么是Kimi? 一款月之暗面科技有限公司开发的AI办公工具,帮助用户快速生成高质量的演示文稿。 无论你是职场人士、学生还是教师,Kimi都能够为你的办公文

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设