微软亚洲研究院副院长周明AI对联预测年龄为32岁

(雷锋网出品) 对联的传统源远流长。写对联需要很高的文学素养。它不仅在意境上要求整洁、匀称,还表达了辟邪消灾、迎吉祥、受祝福的美好愿望。但对现代人来说,由于对传统文学的不熟悉,对楹联缺乏实践,楹联变得困难。

但在人工智能技术普及的今天,已经有人尝试克服对联的困难。其中最著名、最有文采的是微软亚洲研究院的对联系统,由微软亚洲研究院副总裁周明开发,可以通过这种交互方式随意修改对联和横批。如下图所示,仅仅一对“千河千河一月”就可以匹配“万里无云,万里天”。

地址:

但在新颖性和个性化方面,不如新兴的百度春联系统。百度开发的对联系统有刷脸对联、隐藏头对联等系统。如下图,以人工智能为题眼,AI给出的对联。

打开手机:

不仅可以刷脸生成对联,还可以预测和合成20岁的容貌。雷锋网用李飞飞医生的照片试了一下,在下方的滚动区可以清晰的看到每一步的文字。结果显示,预测年龄为32岁,AI给外貌打80分。另外,生成的李医生20多岁的照片也相当年轻(* ̄︶ ̄)。

当然,还有去年非常流行的个人版AI对联。设计师是王斌,毕业于黑龙江大学计算机专业,本科毕业于英国莱斯特大学计算机专业。从测试结果来看(如下图),也利用了一般的对联效应~

对联地址:

雷锋网介绍,这款AI的训练是基于深度学习seq2seq模型,使用TensorFlow和Python3.6,代码开源,可以打开以下GitHub地址下载开源代码尝试训练。此外,用于训练的数据集来自博主冯崇璞_李微斋三叶的新浪博客,总共包含超过70万对联。

开源代码:

训练数据集:

因此,想要自己写春联,又忍不住大动作的人,可以使用以上任何一种AI系统来制作自己的春联。

AI对联背后的技术

关于AI对联所使用的技术,微软周明曾在自己的博客中写过这样一段话:“我设计了一个简单的模型,把对联的生成过程看成是一个翻译过程。给定一个上联,根据单词Correspondence和单词对应关系,生成大量的选中词和候选词,得到一个从左到右相互关联的词图,然后根据动态规划算法找到最佳下行。

从上面的文字我们可以知道,AI对联使用了一系列的机器翻译算法。不同于不同语言之间的翻译,给定上层链接,AI对于下层链接来说是同种语言之间的翻译。

这意味着对联系统的水平直接取决于机器翻译系统的发展。

机器翻译的起源可以追溯到1949年,当时的主流技术是基于规则的机器翻译。最常见的做法是直接根据字典逐字翻译,但这种翻译方法确实不是很有效。在“规则学派”战败后,日本京都大学的长尾诚教授提出了一种基于例句的机器翻译,即只要有足够多的例句,即使有不完全匹配的句子,例句也可以进行比较,只要替换不 同一个词的翻译就行了。但这种方法并没有引起太大的轰动。

在 1993 年发表的论文《机器翻译的数学理论》中,提出了五种基于词的统计模型。主要思想是将翻译视为一个概率问题。虽然这种翻译方式在当时很流行,但确实掀起了一场革命。这是 2014 年深度学习的兴起。

2016年,谷歌正式宣布所有统计机器翻译下架,神经网络机器翻译占据上风,成为现代机器翻译的绝对主流。具体来说,目前市面上的AI对联基本都是通过seq2seq模型的基于attention机制的序列生成任务来训练的。seq2seq 模型也称为 Encoder-Decoder。

关于这个模型 AI 技术评论之前已经详细写过一篇文章,还没有理解的读者,请点击这里“完全图解 RNN, RNN Variants, Seq2Seq, Attention Mechanism”阅读。

现在我们也将关键部分总结如下: Encoder-Decoder 结构首先将输入数据编码为上下文向量 c:

有很多方法可以得到 c。最简单的方法是将编码器的最后一个隐藏状态分配给 c。也可以对最后一个隐藏状态进行变换得到c,也可以变换所有隐藏状态。

得到c后,用另一个网络解码。这部分网络结构称为解码器。具体方法是将c作为之前的初始状态h0输入到Decoder中:

另一种方法是使用 c 作为每个步骤的输入:

由于这种Encoder-Decoder结构不限制输入输出的序列长度,因此应用范围非常广泛。

注意力机制

在Encoder-Decoder结构中,Encoder将所有输入序列编码成一个统一的语义特征c,然后解码。因此,c必须包含原始序列中的所有信息,其长度成为限制模型性能的瓶颈。比如在机器翻译的问题中,当待翻译的句子很长时对联广告代码 自动适应,ac可能存储不了那么多信息,这会导致翻译准确率下降。

Attention 机制通过每次输入不同的 c 来解决这个问题。下图是带有Attention机制的Decoder:

每个 c 都会自动为当前的 y 选择最合适的上下文信息输出。具体来说,我们使用 aij 来衡量 Encoder 中第 j 阶段的 hj 与解码的第 i 阶段之间的相关性。最后,Decoder中第i阶段输入的上下文信息ci来自于所有hj到aij的加权和。以机器翻译为例(将中文翻译成英文):

输入序列是“我爱中国”,因此,Encoder中的h1、h2、h3、h4可以看成是“我”、“爱”、“中文”” ,“国家”代表信息,翻译成英文时,第一个上下文c1应该和“I”这个词最相关,所以对应的a11比较大,对应的a12、a13、@ >a14比较小,c2应该和“爱”关系最大,所以对应的a22比较大。最后一个c3和h3、h4关系最大,所以a3的值3、a34比较大。

到目前为止,关于 Attention 模型,我们只有最后一个问题,那就是:这些权重 aij 是从哪里来的?

其实aij也是从模型中学到的,其实和Decoder第i-1阶段的隐藏状态和Encoder第j阶段的隐藏状态有关。

同样以上面的机器翻译为例,a1j的计算(箭头表示h’和hj同时变换):

a2j的计算:

a3j的计算:

以上就是用Attention计算Encoder-Decoder模型的全过程。

关于解码器和编码器

解码器和编码器使用的网络结构在深度学习时代大多使用卷积网络(CNN)和循环网络(RNN),但是谷歌提出了一种新的架构Transformer也可以用作解码器和编码器。

注:Transformer 最初由论文《Attention is All You Need》提出,并逐渐取代 RNN 成为 NLP 中的主流模型。现在是 Google Cloud TPU 推荐的参考模型,包括 Google 为自家 TPU 宣传的 Bert 就是 Transformer 模型。总体而言,它在 NLP 任务上的表现优于前两个神经网络。

这完全颠覆了以往的概念,不使用CNN和RNN对联广告代码 自动适应,使用更少的计算资源,取得比之前结构更好的效果。

Transformer 具有以下特点:提出使用注意力机制直接学习源语言的内部关系和目标语言的内部关系,1. 使用 RNN 在丢弃前学习;假设,提出的多头注意力机制有点类似于 CNN 中的多通道概念;3.。单词的位置用不同频率的 sin 和 cos 函数编码。

机器翻译任重道远

从对联来看,目前的机器翻译仍有很大的改进方向。比如前段时间上海流行的一副对联,“莫言禄远秋雨”。我们用微软对联系统输入后,没有任何回应。这个问题是由算法和数据集引起的。

但是,如果我们把这个上部的链接输入到王斌版的对联系统中,就会得到“远望云山春风”的下部链接。下联虽有,但意境与上联有很大不同:“墨言路远秋雨”字面意思是近代三文人,意境是“不必说“路漫漫秋雨,路空寂”,AI赋予的下对联不仅在意境上没有呼应,也不符合字面意思。

从内部看豹,可以看出目前机器翻译存在一些问题,正如AI技术评论从百度获悉的:“目前主要采用端到端序列生成的模型自动写春联和诗歌,普通用户。生成的春联或诗歌也很好读,也是一种不错的感觉。

从专业的角度来看,其实还有很大的提升空间。例如,现有的模型都是基于语料库学习生成的,而收集到的春联通常包含有限的词汇,生成的春联具有一定的同质性。内容创新需要不断提升。其次,机器有时会生成一些不合理的内容,对生成内容的理解也值得深入挖掘。”

从宏观的角度到整个机器翻译层面,不同语言之间的机器翻译还有很多技术难点需要攻克,比如词序混乱、词义不准确等。

当前算法和计算能力的发展确实可以解决一些具体的困难,但是机器翻译的研究应该在以下三个方面取得突破:大规模上下文,而不是孤立的句子处理;基于理解而不是停留在句法分析的层面;高度专业化和专业化。

参考:

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论