刚才说的是对话,没有上句的输入比较简单。如果有上句的输入,怎么生成合理回应?同样用循环神经网络,会对前一句来建模,把上句输入的每个字变成一个向量,把这个向量综合起来处理,最后整句话变成一个向量表示,这个向量就作为我们下句生成回应的循环神经网络的输入,再用前一页讲到的方法来生成第一个字第二个字第三个字,通过这样的方式来生成。
我之前还提到,我们的机器人不仅能够生成这样的对话,它还能够带有感情色彩,那感情色彩是怎样出现的?我们对这个模型加入了额外的激励,这个额外的激励就是情感激励。我们希望这个对话是高兴的、开心的或者愤怒的或者悲伤的,我们可以给它加上额外的激励,这个额外激励加上去之后,它生成的内容就会带有特定的感情色彩。刚才提到的还只是会闲聊的机器人,但他也不能够回答一些带有知识性的问题。 自动问答机器人
第二个我要讲的是怎么样来做一个模型,让它能够回答一些知识类的问题。知识如何表示才能让计算机理解,我们需要表示成结构化的方式。例如围绕贝克汉姆这个人物,把知识表示成图,图里面每个结点是一个实体,实体之间、结点之间有一些边相连,这些边代表了关系。比如说贝克汉姆的出生地是Leytonstone,我们把这些知识表达成三元组的形式,有它的主体、关系以及客体构成。
机器怎样自动回答问题?要问贝克汉姆是在哪里出生的,为了回答这个问题,我们就要从知识库里面找到相应的三元组知识,j2直播,这条知识是<DavidBeckham,PlaceOfBirth, Leytonstone>,从而找出答案Leytonston。为什么让电脑回答这样的问题非常非常难?首先我们的语言是非常复杂的,同样一个意思可以有多种问法。比如我们可以问奥巴马总统在哪里出生的?也可以问奥巴马总统出生地是哪里。同样的意思但有不同的问法,这是语言的多样性和复杂性。第二个难点是歧义,同样的名字在我们的知识库里面会有很多个实体很有同样的名字,比如我们问迈克尔乔丹是谁,可能大家首先想到的是打篮球的迈克尔乔丹,但问机器学习领域的人会想到机器学习的大神迈克尔乔丹。这是指代的歧义性带来的挑战。第三个难点是由我们的数据稀疏性所带来。我们的知识海量,即使经过我们的三元组筛选之后也有2200万,这是在GOOGLE的FreeBase上得到的数据。我们一共有十万标注好的问答对,但要通过十万的标注数据回答2200万里面的问题,这是一个非常难的问题。
最近我们做了一个CFO系统,是一个基于深度学习的系统,它可以回答一些比较难的问题。比如说问HarryPotter在哪里上的学?大家知道Hogwarts魔法学校,还有上魔法学校之前的一个小学不是很多人知道,但是机器可以回答出来。通过我们的评测,在由Facebook做的公开数据集上,我们的系统准确率达到了75.7%,相对之前由Facebook做的最好系统最好的结果是62.9%,也就是说我们已经比之前最好的系统要高了十几个百分点。这是怎么实现的?如何来做问答机器人?
举个例子,拿到一个问题,Who created the character Harry Potter。首先要识别这个问题里面的关键实体是哪个。Harry Potter。第二步,识别这个问题问的究竟是什么样的关系,Character_Created_By,找到了这两个才能从知识库里面找到相应的答案。
我们通过序列标注的深度学习模型来对各种可能的实体打分,通过我们的模型就会发现David beckham问到的实体概率最大。我们通过另外一个类似的模型,这个模型里面有双向的循环神经网络,通过叠加多层的双向循环神经网络对我们的输入问题建模,最后对这个向量来预测到底实体库里面哪个实体跟这个问句是对应的,哪个关系跟这个问句是对应的。最后会发现这个问题问的实体是Harry Potter,这样把实体找出来,把答案也找出来。 奥运会你看到的新闻可能是机器人写的 (责任编辑:本港台直播) |