参与李泽南

智能春联新玩法:AI「刷脸」生成的春联效果如何?

目前,用户可在百度APP、网易新闻等渠道获取智能春联H5的入口,体验两种智能春联定制模式。

在 1 月 28 日小年夜的晚会上,百度推出的智能春联工具正式上线了。基于人脸识别自然语言处理人工智能技术,这项技术可以凭借用户的人脸特性,为你生成充满创意的个性化春联。当然用户也可在这个小工具中输入名字、甚至任何一段话,获取属于自己的专属春联。

链接:http://news.163.com/special/test_smart_spring2018/

让我们看看人工智能生成春联的效果如何。首先,猫的图片是不被认可的,百度的 AI 可以识别图片中是否为人脸。

于是我们上传了一张人的图片。

我们找到了一张百度 AI 技术生态部总经理喻友平的照片

上传照片生成的对联

在智能春联的背后,是计算机视觉自然语言处理等 AI 技术。据介绍,百度通过先进的视觉技术让 H5 具有刷脸能力,通过其中的人脸检测、属性分析和人脸融合等,可对图片中的人脸进行检测,分析人脸对应的年龄、性别、颜值、微笑指数、是否佩戴眼镜等信息,并通过以一个词语概括人脸的特性;进而将图片中的人脸,与指定模板图中的人脸进行融合,得到新的图片。这些技术的难度在于,需要对各种角度的人脸进行检测,并且能够提取人脸的五官特征,以便能够生成与原始人脸相似,但也和模板人脸神似,且毫无违和感的新图片。

对联生成的关键词扩展技术和对联生成系统背后的运行机制是什么样的?我们从百度工程师那边了解到,具体流程图如下:

线上系统流程图

关键词扩展技术: 关键词扩展技术主要用于解决语义扩展问题,正如所有深度学习问题面对的问题一样,不在训练语料中出现的字或者词很容易造成生成结果不理想。在这里,百度引入了语义相似度匹配技术,将输入串同对联中的词计算相似度,用最相似的词替换原始输入串,例如:咏春 -> 武术,当红->流行等。这样既能满足语义层面最大程度的匹配,又能确保生成的对联符合要求。线上系统为了满足大规模服务的要求,系统会离线将常用词提前算好候选,直接使用缓存查询的方式最快的完成语义扩展。对于那些低频词,还是保留原样输入到对联生成系统中。

对联生成系统:包含关键词生成上联,上联生成下联和上下联生成横批等功能,具体流程如下:

根据输入串,首先判别此串是否为人名,如果为人名,需要对串进行截断,三字名截取最后两个字,二字名,去掉姓,将名在对联分词数据中查询,找到包含这个字且频次最高的词,若无结果,则简单的将名重复,形成两字输入。否则不对串做任何处理 

对输入串切字,挨个字输入深度学习序列到序列模型,使用模型输出当作上联。在最终实现中,我们发现如果任由模型产出而不加任何限制,会出现大量重复,例如:春光 -> 春光无限春光无,这种重复在 7-9 字春联中十分影响整体效果,所以研究人员在解码过程中加入了重复限制,只允许一个字重复,且最多重复两次,加完限制后效果:春光 -> 春光无限江山秀。

在这里,研究人员采用基于 RNN 的 encoder-decoder 框架进行序列建模

根据上联智能生成下联。上联生成下联时,也是使用了一个深度学习序列到序列模型,将上联的挨个字输入,产出下联。类似于上联,下联生成的过程中同样会有很多不确定因素。首先最大的问题是,单纯依靠模型,上下联的字数会不同;其次上下联对应字的对仗会不工整;最后生成下联的时候也会出现字重复问题。在解码过程中,系统首先会确保在模型生成字数未达到要求时 (即同上联字数相同),解码不会终止。其次,百度根据大量春联语料统计出每个字可能对仗的候选,在解码时,如果输入的字有候选,那我们只预测候选字的概率,否则预测整个词表中所有字的概率。这在一定程度上会缩短解码时间,提升产品并发性能。最后对于重复字,不同于上联的处理流程,下联只能在上联重复字对应的位置上重复,其余位置均不能重复。例如:春草满庭吐秀,花花遍地迎春->春草满庭吐秀,神州遍地迎春。

智能横批生成。产生上下联之后,会根据相似度选择最合适的横批。首先将上下联和候选横批进行分词,其次 Jaccard Distance 来计算最相似的横批,按照得分从高到低排序,选择分数最高的横批。正如 Jaccard Distance 公式所示,很容易出现分子为 0,对于这类情形,在这里会随机选择一个横批,确保春联的完整性。

离线系统:包括语料收集与预处理、平仄处理、模型训练和语义扩展四部分。具体流程图如下:

离线系统流程图

对联语料收集与预处理:通过定点网站的挖掘和人工收集,过滤掉字数不符合的对联 (上联和下联长度保证 7-12 个字)。使用黄反策略,识别出劣质对联。对上联进行分词,只保留词长度在 2-4 个字之间的上联,形成词 => 上联的匹配对,并对其分字作为关键词生成上联的候选训练语料。如春联为「百花齐放春光好」,生成的训练语料则为「百花 => 百花齐放春光好」。上联生成下联的模型候选语料为一组对联分字之后的结果。

平仄处理:对联的一大特点就是平仄协调,为了能让模型学习到平仄关系,我们可以从候选语料中只挑选了满足平仄的对联作为训练语料。具体做法为:对于上联和下联的最后一个字,查拼音表,如果上联最后一个字为第三或第四声,下联最后一个字为第一或第二声,则保留这幅对联,否则删除这条训练数据。对于多音字,在这里取其常用发音。

模型训练:不同于平常深度学习序列到序列模型使用分词后的结果作为输入,百度的程序采用基于字的序列模型,这样做的原因在于,对联中上下联对仗工整,并且每个位置上的字都有对仗关系。其次,在对联上切词很容易切出单字这会造成词表巨大,反而不利于训练。因为春联数据规模不大,为了防止过拟合,在这里加入了 dropout,early stop 等策略,增加验证的频率,来选取最优的模型。

语义扩展:如上文所述,为了提升对联效果,减少训练集合中未出现的字对于模型的影响,模型会离线计算出常用词同训练集中切词后词 (长度在 2-4 个字之间) 的相似度。在相似度计算部分,模型使用了 simnet 框架进行语义匹配计算。考虑到最长可能会输入 4 个字,模型也将成语进行了提前计算,从百度百科中抓取下来 4 字词语,根据词条类别判断,只保留类别为词汇的那些。由于四字成语具有不同的形式,例如:兴高采烈 (ABCD),高高兴兴 (AABB),大吉大利 (ABAC),考虑到训练语料中会将成语切分开,对于 ABCD 型成语,模型将成语分成 AB 和 CD 分别同对联中的词算相似度,再将结果合并,只保留得分高的结果;对于 AABB 型成语,模型只计算 AB 的语义相似度;ABAC 型只计算 BC 的语义相似度。

产业自然语言处理计算机视觉面部识别百度
1
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

人脸识别技术

广义的人脸识别实际包括构建人脸识别系统的一系列相关技术,包括人脸图像采集、人脸定位、人脸识别预处理、身份确认以及身份查找等;而狭义的人脸识别特指通过人脸进行身份确认或者身份查找的技术或系统。 人脸识别是一项热门的计算机技术研究领域,它属于生物特征识别技术,是对生物体(一般特指人)本身的生物特征来区分生物体个体。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

过拟合技术

过拟合是指为了得到一致假设而使假设变得过度严格。避免过拟合是分类器设计中的一个核心任务。通常采用增大数据量和测试样本集的方法对分类器性能进行评价。

查询技术

一般来说,查询是询问的一种形式。它在不同的学科里涵义有所不同。在信息检索领域,查询指的是数据库和信息系统对信息检索的精确要求

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

序列到序列技术

百度机构

百度(纳斯达克:BIDU),全球最大的中文搜索引擎、最大的中文网站。1999年底,身在美国硅谷的李彦宏看到了中国互联网及中文搜索引擎服务的巨大发展潜力,抱着技术改变世界的梦想,他毅然辞掉硅谷的高薪工作,携搜索引擎专利技术,于 2000年1月1日在中关村创建了百度公司。 “百度”二字,来自于八百年前南宋词人辛弃疾的一句词:众里寻他千百度。这句话描述了词人对理想的执着追求。 百度拥有数万名研发工程师,这是中国乃至全球最为优秀的技术团队。这支队伍掌握着世界上最为先进的搜索引擎技术,使百度成为中国掌握世界尖端科学核心技术的中国高科技企业,也使中国成为美国、俄罗斯、和韩国之外,全球仅有的4个拥有搜索引擎核心技术的国家之一。

http://home.baidu.com/
推荐文章
暂无评论
暂无评论~