今日头条机器人:对话、新闻创作 人工智能无所不能了?
摘要: 李磊博士,今日头条科学家、头条实验室总监,原百度美国深度学习实验室少帅科学家。上海交通大学计算机系本科,卡耐基梅隆大学计算机系博士,毕业论文获美国计算机学会SIGKDD最佳博士论文之一。曾于微软研究院
李磊博士,今日头条科学家、头条实验室总监,原百度美国深度学习实验室少帅科学家。上海交通大学计算机系本科,卡耐基梅隆大学计算机系博士,毕业论文获美国计算机学会SIGKDD最佳博士论文之一。曾于微软研究院、Google、IBMTJWatson、加州大学伯克利分校工作。在机器学习和自然语言理解方面于国际顶级学术会议发表论文30余篇,拥有三项美国技术发明专利。机器之心不久前曾对李磊博士进行过专访,主题是准确率更高的问答系统和概率程序语言。
以下是关于机器理解语言演讲全文:
大家下午好!很荣幸有机会在这里和各位专家学者以及同行朋友们交流人工智能在自然语言理解方面可以做到的一些成果。今天我会介绍一下用机器学习怎样来做自然语言的理解,怎样跟人对话、问答以及怎样自动创作新闻;做到这些事情,我们需要哪些机器学习的工具,和哪些基础的算法模块;然后介绍三个方面,分别是对话机器人、问答机器人、自动创作新闻的机器人,具体是通过何种技术来实现的;最后介绍我们如何来实现通用的人工智能,或者说目前的人工智能技术还有哪些挑战以及我的一些思考。
今年年初GOOGLE的DeepMind通过他们的围棋机器人AlphaGO让全世界几乎所有的人都知道,机器学习可以在某些任务上达到甚至超过人类的智力水平。那围棋的机器学习是怎样来实现的?用了两部分的算法,一部分深度学习,另一部分强化学习或者蒙特卡洛树搜索。我后面介绍的内容与深度学习有关。从过去20年或者30年神经网络以及深度学习发展的成功经验里都可以看到,深度学习解决一类问题是非常非常有效的,这一类问题是有监督学习。什么叫有监督学习?就是你给一组数据X,希望对这组数据做一点预测,它是Y,你希望通过机器学习的方法找到从X到Y的映射函数f。
例如我们的输入是一张图片,我们的输出是这张图片的标记,它到底属于哪个类别,是猫还是狗,这是图像分类问题。如果我们的输入是一句中文的语音,输出是一句英文,那从中文到英文同样是一个有监督的学习或者叫机器翻译。第三个例子,我们给一个图片,我们希望生成一段文字来描述这个图片。大家知道我们小的时候会做看图说话,是不是机器也可以做看图说话?同样,这就可以把它建模成一个有监督学习的问题。第四,输入是一段语音,输出是这段语音对应的文字,这个叫语音识别,同样是有监督学习的问题。当然可以把这个问题反过来,输入是一段文字,输出是一段语音,这就是语音合成,同样是一个有监督学习。深度学习在解决这样一类有监督学习的问题时,只要数据充分、模型合适,可以做到非常好。
那么深度学习究竟是如何来做的?深度学习或者人工神经网络最早是从人脑的工作方式得到启发。人脑由非常非常多的神经元组成,每个神经原元都只可以做非常简单的事情,但把这些神经元连接起来就可以做一些比较复杂的事情。
从这里得到启发,我们的人工智能先驱创作了人工神经元。人工神经元同样有一些输入,这个输入经过非常简单的方式加权求和,通过非线性的函数输出一些结果,把很多个这样的神经元组合起来,就可以做一些复杂的事情。
比如说输入是一张图片,要识别这个图片里面带有的数字。这里展示一个单隐层的神经网络。当然也可以增加这个隐层的数量,可以把网络的识别能力不断提升。
这些深度学习跟今日头条有什么关系?今日头条是一家为用户提供信息资讯的分享阅读平台。整个环节当中有三部分非常重要,包括高质量的内容怎么创作出来,这些内容怎样分发给感兴趣的用户、读者读了这些文章、看了这些视频之后怎样去鼓励他们围绕这些内容进行讨论和交流。这三方面的核心技术都需要人工智能。
我今天会介绍这三个方面中的两方面,包括内容创作以及内容讨论——我们怎样做机器人来跟人去讨论以及做机器人自动创作。
我们要处理的问题主要是语言问题,和之前讲的图象问题有很大的区别,图象的输入是固定大小的,而语言的问题就比较复杂,一句话可长可短。这样带来一个问题,怎样处理变长的输入。我们创作的深度学习模型最基础的就是要能够处理可变长的输入,最基本的想法就是增加记忆单元。在这个模型里面有一些单元专门负责记录历史信息,它能够记住较长时间内的信息,对未来做预测。
循环神经网络(Recurrent Neural Networks)
比如说这里有一个非常简单的循环神经网络模型,它的输入是X1、X2、X3、X4,每个输入都是一个向量,和传统卷积神经网络不同的地方就是它的输出部分或者影像量的那部分,h在这里,每个h不仅跟当前的位置输入有关,还跟前面一个输入有关,这样可以把历史信息结合进来,这是最简单的形式。还有稍微复杂的一个形式叫GatedRecurrentUnit(GRU),像人脑学习加入了一些开关,可以选择性对信息做记忆和遗忘。比如加入了一个开关叫ResetGate,对信息做选择性记忆,另外还有一个开关控制输出,可以控制哪些部分是之前一个时刻之前一个位置留下来的信息,哪些信息需要保留到下一个位置。
通过这些带有记忆单元的神经网络,就可以构建出自动对话的机器人。比如说这里我展示了一部分我们的机器人可以做的对话。
我们的机器人不仅可以跟人闲聊,还可以对用户说的一些新闻做出带有感情色彩的评判,甚至我们的机器人对于很长很长的输入,也可以做出比较准确的回应。这里有一段很有名的电影台词,机器也可以很好的回应。
到底怎么生成这些对话中的回应?这里有一个简单的演示:从循环神经网络出发,给它一个初始状态,黄色的部分是它的初始状态,从这个初始状态出发生成下一个状态,从当前隐含的信息出发可以去预测出当前这个位置需要输出哪个文字。有了文字之后,我们再把这个文字信息作为下一个字需要输入的需要信息输入进去,综合起来从第一个字生成第二个字生成第三个字生成第四个字,直到生成句子结束为止。
学习,可以,输入,一个,我们