“天猫精灵”如何为你写诗?人机共创的秘密在这儿-阿里云开发者社区

开发者社区> 技术小能手> 正文

“天猫精灵”如何为你写诗?人机共创的秘密在这儿

简介:
+关注继续查看

今年七夕期间,由阿里巴巴人工智能实验室(A.I.Labs)AI创作团队研发的《天猫精灵为你写诗》(以下简称“为你写诗”),通过它,你可以用AI给心爱的人写一首藏头情诗,还可以进行人机共创的合作。

今天,我们对AI创作团队负责人进行了专访。该团队在A.I.Labs的认知实验室负责探索AI智能创作、深度学习、自然语言理解、智能对话等人工智能技术在智能音箱上的应用。

1054cc93d8cd84a385c567ffb1ee7a7e964f1180

识别上方二维码,可亲身体验~

如何实现古诗创作中的人机共创?

Q:为什么想到从AI写诗这个角度切入,去做人机共创?

A:在文艺创作这件事情上,我们认为最重要的不是智能,人机共创才能将“智能”与“情感”的结合推向一个更高的高度,让创作更具“心智”和“情感”才是更重要的。在人机共创的过程中,机器也可能会越来越多地了解“情感”的表达。为印证人机共创的价值,我们做了“天猫精灵为你写诗”的尝试。

4b1ace53422696e3b4a7d0b6b0539055c86615f9

Q:“为你写诗”人机共创的部分是如何实现的?

A:人机共创的模式是机器为人提供推荐,而不是让人独自去完成修改。例如,诗句生成模型在每一句诗的每一个字都可以提供候选集,还可以通过beam search固定一部分文字生成后序的文字等等。

但是,单句或者单字的修改其实是会影响整首诗的质量的,如果只修改一句,不能对后续诗句做相应的推荐则不能发挥人机共创的优势,针对这个问题我们给出了一个解决方案:

b7a1e70ebec8a884d8b72742c967b70c9c8c60aa

我们在绝句的生成过程中保一个位留了每置诗句的不同表达,然后再选择匹配句子,通过统一的评价模型来衡量不同的佳句组合的质量,从中选择最具品质的作为输出。

Q:如何构建人机共创的评价模型呢?

a6c48079282bb3e27debebc5e881177ca3cb3074

5bdfb1f97ffdae3d52302f8d89fcc3808c162fe3

前序诗句的bigram词袋经过嵌入层之后再经过全链接网络对后一句打分,这个分数可以看作是对每一边的评分,而整诗的评分就是所有边评分个乘积。评分模型可以通过在古诗训练集上学习,同时在使用过程中很容易通过对计算的缓存来加速。

cc0234e542c7b1b8c80dc1c01698a98b26e9d2ca

整个搜索的过程是一个求出最大K路径的问题,每一个路径的打分则通过评分模型完成。搜索过程中,通过剪枝来去除压韵和平仄不相符的路径,最终按照评分排序得到最佳绝句。

这个过程可以从任意一句诗开始,当其中一句诗被修改之后,就可以从它开始重新构建整棵树,然后根据评价模型的结果来推荐后续诗句。

让机器写诗变得更优秀

Q:在写诗这件事上,“为你写诗”如何做到人有我优?

A:从写一句诗到写两句诗的最大挑战在于如何让两句诗的语境相连,也就是说在写第二句诗的时候机器需要知道第一句诗在说些什么,并且承前启后。

语境的延续表现为选择合适的汉字组成合理的诗句,需要解决通顺和达意两个难点,前者可以通过RNN模型解决,后者则需要通过sequence-to-sequence模型来传递前句的意思。

d43f68138aacd73565f5cc9e381a7a1dc3315305

Sequence-to-sequence最早应用于机器翻译领域,而后应用场景拓展到了对话等语言生成任务中。Sequence-to-sequence的基本组成是两个RNN网络:LSTM Encoder网络和LSTM Decoder网络。

Encoder网络的目标是将第一句诗的不同元素都表征成一个实数向量,可以理解为将第一句诗所包含的语义encode到了这些向量中;Decoder网络则更像是一个RNN语言模型,只不过在选取汉字的时除考虑已经写出来的前半句还要考虑Encoder网络的输出。Encoder网络的输出时,通过注意力机制(Attention)来选取前句中的中心意思,以便在生成诗句的时候做到真正的达意。

8559745e1070009e488d96cc8625d37f02a80f0b

我们认为整诗的质量应该是能够通过人机协作共同创作的方式提高的,这和之前的写诗程序有很大的不同。机器的模型再丰富,历史的诗词再高雅,其实都及不上一颗参与其中的真挚的心,所以我们在设计上鼓励用户参与推敲,提供了自由修改诗句的能力。

Q:人机共创的技术应用前景如何?

A:对于语言的理解和生成可以被应用到更广泛的创作场景里。为机器装上“心”,与人协同创作,将为我们人工智能的高峰“文学艺术创作”打开全新的出路,就像AlphaGo的出现,给了职业棋手学习更开天辟地的棋路打开新的空间一样。

567836959049f27f4f1a5d6b156a295b4ce81320

或许不久将来,天猫精灵能成为一个超级输入法,不用你输入每一个想写的字,而是输入一个梗概或者主题,天猫精灵就可以生成一篇对应的文章,再交互式的修改一下就完成了。

AI的价值在于帮助人,不是替代人,人机共创、共赢或许才是未来打开AI的正确方式。


原文发布时间为:2018-08-29

本文作者:人工智能实验室

本文来自云栖社区合作伙伴“阿里技术”,了解相关信息可以关注“阿里技术”。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10071 0
使用NAT网关轻松为单台云服务器设置多个公网IP
在应用中,有时会遇到用户询问如何使单台云服务器具备多个公网IP的问题。 具体如何操作呢,有了NAT网关这个也不是难题。
26787 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
11606 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13879 0
windows server 2008阿里云ECS服务器安全设置
最近我们Sinesafe安全公司在为客户使用阿里云ecs服务器做安全的过程中,发现服务器基础安全性都没有做。为了为站长们提供更加有效的安全基础解决方案,我们Sinesafe将对阿里云服务器win2008 系统进行基础安全部署实战过程! 比较重要的几部分 1.
9157 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
4500 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
7361 0
+关注
技术小能手
云栖运营小编~
7208
文章
9
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载