汉语堂|矣晓沅,孙茂松:计算机的诗意 | 机器写诗的背后


_本文原题:矣晓沅 , 孙茂松:计算机的诗意 | 机器写诗的背后
计算机的 诗意
矣晓沅 孙茂松
本文收录于《輶轩使者:语言学家的田野故事》一书
“九歌” · 起点
“西风吹起银河水 , 散作江南万里天 。 ”看到这样诗句 , 您是否会想到它竟不是人类所作 , 而是出自机器人“九歌”之手?
自1956年达特茅斯会议以来 , 人工智能研究者们在国际象棋、围棋、绘画等一个个人类擅长的领域内不断探索着计算机的极限 。 诗歌作为人类语言智慧高度凝练化和艺术化的体现 , 早在上世纪六十年代就进入了国外研究者的视线 。 国内针对中国古典诗歌自动生成的研究兴起于90年代 , 并且在2016年之前 , 已经有了若干个初具功能的自动作诗系统 , 然而效果不尽如人意 。 对于诗歌生成这一任务 , 一方面 , 搜索空间将随着诗字数的增加而指数级增长 。 如对七言律诗 , 诗歌生成的潜在搜索空间规模将达到约2^744 , 远高于围棋所有可能的不同盘面数(2^572) 。 另一方面 , 不同于棋类等竞技项目 , 诗歌创作没有明确的好坏胜负判断规则 。 因此 , 研究计算机诗歌生成对于解析人类文学创作的内在计算机制、开发计算机的创造能力乃至构建更加通用的文本生成模型都有一定的价值 。 于是清华大学自然语言处理实验室(THUNLP)在2016年开始着手诗歌自动生成系统的研究 。
研究伊始 , 我们就为系统取名“九歌” 。 《九歌》是战国时期伟大的诗人屈原的名篇 , 这一命名意在致敬屈原 , 对中国的浪漫主义文学溯源 , 寄托了九歌的起点——起于中国数千年的诗词文化之中;同时 , “九”作为虚数意味“多” , “歌”作为“诗歌”的泛称 , 是我们对系统未来的期许——希望“九歌”能“创作”出很多优秀的诗作 。
从诗中来· 到诗中去
在自动作诗的研究上 , 我们坚持以任务 , 而以非模型为导向 , 即针对诗歌创作的特点和面临的问题 , 借鉴诗歌写作、语言学、心理学等方面的理论 , 设计专门的解决方案和模型结构 。 我们研究的思路从诗中来 , 最终也应用到诗中去 。
团队面临的第一个问题是上下文一致性 。 诗歌属于多行语句构成的篇章级别文本 。 一首诗的不同诗行之间连贯性和一致性是衡量诗歌质量的重要指标之一 。 “一夜扬州月 , 凄凉万里心 。 故乡无限意 , 惆怅暮云阴 。 ”这首机器生成的五言绝句乍看之下文从字顺 , 然而第一句以“月”字点明时间为夜晚 , 第四句却在没有任何合理过渡转折的情况下 , 生成了“暮云” 。 时间与上文的不一致立刻暴露了这首诗为机器而非人所作 。
为了解决这一问题 , 我们从相关的诗歌创作理论中寻求思路 。 在诗歌创作中 , 有“谋篇”之说 。 所谓谋篇即预先对诗词的内容和结构进行布局 , 设计好每一句写什么 , 如何起承转合等 。 已经有相关研究过尝试这种思路 , 但效果有限 。
“谋篇”的路走不通 , 我们转向另一个思路——“意脉” 。 “意脉”的概念可追溯到《文心雕龙》的《章句》篇:“裁文匠笔 , 篇有小大;离章合句 , 调有缓急 , 随变适会 , 莫见定准……故能外文绮交 , 内义脉注 , 跗萼相衔 , 首尾一体 。 ” 这一段论述启示我们 , 在写作中 , 要动态地、灵活地构建出整首诗的骨架主线 , 以此对上下文的内容和主题进行约束 , 做到上下紧密相关 , 意脉连贯 。 同时又要断续离合、荡开笔墨 , 允许一定的自由与发挥的空间 , 不能约束得太死板 。
基于这样的思路 , 我们设计出了显著性线索机制模型 。 “忆昔扬州月 , 于今又一秋 。 故人何处是 , 落叶满汀洲 。 ”这是该模型生成的诗歌 。 诗中第二句生成了“秋” , 点明了季节 , 同时第四句生成与上文一致的“落叶”一词 , 进一步渲染了秋景 。 整首诗的主题和意境都有较好的一致性 。分页标题
我们面临的第二个问题是诗歌写作的“扣题” 。 人类写诗时 , 往往会在脑海中选定一个主题 , 然后围绕该主题展开创作 。 对于自动作诗系统 , 主题一般以用户输入的一个或多个关键词 , 如“春风”、“相思”等来确定 。 现有的系统要么漏生成某个关键词 , 无法很好地表达用户要求的主题;要么把用户给定的关键词直接生搬硬套地嵌入到生成的诗歌中 , 直接露出机器的马脚 。
对于这样的问题 , 我们从心理语言学里得到了一定的启发 。 人的大脑中存在一个名为工作记忆(Working Memory)的模块 。 心理语言学相关理论表明 , 人阅读一篇文章时 , 如果能够把当前看到的句子和存储在工作记忆模块中的内容以及该篇文章的主题联系起来 , 就会觉得这篇文章扣题紧密 , 行文连贯 。
因此我们提出了基于工作记忆模型的诗歌生成方法 , 该方法使用不同的记忆模块存储用户输入的不同关键词和生成的上文内容 。 模型动态地不断读取和更新“自我”的记忆 , 以此来提升扣题的紧密度和灵活度 。
“柳丝无力绾春愁 , 燕子归来恨未休 。 记得当年锦绣楼 。 为君留 , 别后相思泪满眸 。 ”这是我们的模型以“柳色”和“思君”为关键词 , 生成的一首宋词《忆王孙》 。 整首词的主题连贯一致 , 紧密围绕离别和相思展开 , 同时用户输入的关键词的语义也得到了灵活的体现 。
除此之外 , “九歌”研发的过程中还遇到了很多困难 。 不论对待什么样的问题 , 团队在研究思路上一直在向人类的写作模式和创作技法取经 , 从诗中总结规律 , 由诗而思 , 由思而行 。
让机器同人一起追寻 诗意的远方
诗歌自动生成是一个有趣的任务 , 但同时面临着很多挑战和争议 。 “九歌”系统经过了两年的不断研发改进 , 生成诗歌的质量不断提高 , 也曾于2017年登上央视《机智过人》舞台 , 与当代青年诗人比拼诗词创作 。 但同时 , 九歌团队也逐渐意识到机器诗作和人类诗作之间的鸿沟 。 或许诗离不开人 , 我们读的是诗的文字 , 然而脑海中浮现的是一个个具象的诗人及他们的爱恨与忧愁 。 我们希望“九歌”在未来的定位不仅是一个机器“诗人” , 而是一名智能机器“助手”;不是替代人类写诗 , 而是辅助人类 , 尤其初学者进行诗词写作的学习 , 从而为我们中华优秀传统文化的传承和弘扬助力 。
“九歌”目前刚刚迈出了第一步 , 我们将不断进行更加深入的研究和探讨 。 诗在远方 ,“九歌”将携手人类 , 在追求诗意的道路上步履不停 。
附:
“九歌”在线系统链接:
http://jiuge.thunlp.org/
九歌开源代码链接:
https://github.com/THUNLP-AIPoet/

汉语堂|矣晓沅,孙茂松:计算机的诗意 | 机器写诗的背后
本文插图
【汉语堂|矣晓沅,孙茂松:计算机的诗意 | 机器写诗的背后】