您的位置 首页 php

聊天机器人训练的建模

作者 | 洪嘉臻 吴家莹 松泽亚矢(台北卫理女子中学)

指导老师 | 洪美珠 李函燊

来源 | 本文获授权转载自上海《数学教学》2020年第9期,在此感谢!

*本文为台北卫理女子中学在第五届国际数学建模挑战赛(IMMC)2019中华赛A题的获奖论文,通过数学建模的方法完成对一款“零起点”聊天机器人的训练.赛题原文见于

IMMC 2019中华赛秋季赛A题(简述):

大赛提供了一个聊天机器人的训练平台,以及一个算法未知的聊天机器人模型.在训练平台上可以和机器人对话,以及互动 (change键、like键)的方式训练机器人,观察、测试机器人的表现后,通过数学建模来设计训练的方法、训练的数据,逐步让聊天机器人的表现优化.希望聊天机器人可以针对大赛提供的人工智能简史短文,和使用者进行英文文本的对谈。

1 摘要

人工智能从1940年图灵的构想,到21世纪逐步可以看到实现的可能,在人类各项活动中,我们都可预见人工智能会有更多的参与。在这些应用中,聊天机器人是目前最容易看到的人工智能,它能针对特殊的主题,用文字提供我们所需的信息,这项应用也呼应着当初图灵测试的想法。

我们称所训练的聊天机器人为“浅蓝”,假设“浅蓝”的问答范围仅限竞赛提供的《人工智能发展的简史》这篇文章,并且仅供文本内的数据检索。

机器学习理论中的监督式学习是我们参考的训练模板,因此我们整理出文本每段的摘要,并改写成问答句,做为训练目标及训练材料。

接着利用词袋模型(Bag-of-words model)将训练材料编码,通过TF-IDF(Term frequency-Inverse document frequency,其内涵在文后“建立模型”中解释)统计方法,找出关键词,以供训练参考,并以此作为检验训练有效性的指标。

我们的训练目标是:“浅蓝”能够针对文本找出正确关键词并回答出相关人、事、时、地、物,同时降低非相关关键词的敏感度.我们对训练好的“浅蓝”,做三次不一样的测试,并在每次测试前后持续训练它,以求提高解答准确性。

测试一:使用与训练材料不同的问句,测试“浅蓝”是否正确抓到关键词,是否完全不做答案更正.接着针对测试一的结果加强训练 “浅蓝”抓关键词的精准度。

测试二:检查精准度是否有提升,“浅蓝” 响应错误,会使用change键更改答案,因结果不如预期,所以又有了测试三。

测试三:经由校正,并经过更进一步的训练,“浅蓝”有明显进步,回答的正确率有七成。

根据数据分析结果,“浅蓝”对部分文件的行为具有一致性,且回应了我们预设的摘要重点.而且在我们的测试中发现,人类的语言与机器语言都有高频虚词出现.在机器人几次训练后,部分文件的TF-IDF值明显上升,可见我们模型的分析结果与训练改进是有效的。

由于训练数据不够丰富,若是问句里另外改变句型,也会让“浅蓝”无法顺利地正确回答.若能有更多的时间,我们还能做更多次测试,提升相关系数,找到适合的预测方法,从而能够掌握机器人的对应行为,让我们能更有效率地修正训练方法。

我们来不及完成让“浅蓝”拥有人性,因此在使用者的体验方面欠缺.我们可以在之后的训练素材中增加常用的动词,使其对于日常招呼语也能有所回应,可使得浅蓝的使用接口更具人性,更温暖亲切。

2 问题简介

聊天机器人(chatbot)是可以使用对话和文字与我们沟通的计算机程序.在现今人工智能的时代,已开发出许多种类的聊天机器人,在电子商务平台不难见这样的辅助程序,让消费者能更容易与商家建立沟通的管道。

机器并没有大脑,要如何建构才能使它们拥有类似人类思考的能力呢?人工智能之父―图灵,认为人类的思考过程可被机械化,以现今发现来说,也是可被数学模型化的.若是能够将人类的语言,通过适当的转换输入给聊天机器人,再根据相关性的计算,逐步调整机器的表现,相信根据这些理论,总有一天,我们真的无法分辨在屏幕后方的是人还是机器。

在这次的竞赛中,我们小试身手,利用主办单位提供的平台,训练出能够针对《人工智能发展简史》的聊天机器人―“浅蓝”.希望今后能设计出一套模型,可以找到合适的训练数据及训练方法,并能够分析“浅蓝”的知识、语言能力、社交技巧,记录其成长的过程。

3 假设

(1)使用者只会问有关人工智能简史的内容,只能通过训练来增加“浅蓝”的字词.

理由:比赛办法及训练平台的限制。

(2)“浅蓝”背后的运算应该是个多对一的函数模型。

理由:经过测试,提出相同或是类似的问句,“浅蓝”几乎是回答相同的答案。

(3)“浅蓝”只能回答检索类型的问答题,无法回答比较。

理由:经过测试,“浅蓝”只针对第一个侦测到的关键词作反应。

(4)针对《人工智能发展简史》这篇文章,我们以段为单位做分析,并省略了第一段。

理由:因为每段的内容相关性不高,可视为独立的文件.此外第一段以问句的方式展开内容,与数据检索能力无关。

4 训练流程:

图1

根据机器学习理论,我们可以让“浅蓝”从一个给定的训练数据集中学习而得出一个函数关系。

当使用者给予提问时,“浅蓝”可以根据这个函数预测结果,给出答案.其中的训练资料就是我们从《人工智能发展简史》中节录出的问答句,再通过不一样的提问方式,让“浅蓝”能有不一样的输人值,训练者再根据“浅蓝”的答案,给予不一样的标记(change:更正答案,like:答得良好)。

流程图1说明:

(1)制作训练资料:从文本中做出摘要,写出关键问句。

(2)分析训练资料:通过词袋模型将训练数据编码,再使用TF-IDF分析出关键问句字词。

(3)监督式学习:利用change键,让“浅蓝”学会关键问句的正确答案。

(4)增强式学习:针对关键问句替换掉一些字词后,“浅蓝”有时会答错的情况,通过平台analyse的分析,让我们知道“浅蓝”是抓到哪个关键词,再用change或like逐步调整“浅蓝”的表现。

(5)测试内容:

测试一:使用与训练材料不同的问句,测试“浅蓝”是否正确抓到关键词,是否完全不做答案更正.接着针对测试一的结果加强训练 “浅蓝”抓关键词的精准度。

测试二:检查精准度是否有提升,“浅蓝” 响应错误,会使用change键更改答案,因结果不如预期,所以又有了测试三。

测试三:经由校正,并经过更进一步的训练,“浅蓝”有明显进步,回答的正确率有七成。

(6)分析:再使用TF-IDF分析出测试结果的关键词。

(7)训练前后相关性分析:比较TF-IDF 分析出测试结果的关键词。

5 建立模型

先简介一下我们将使用的相关理论及工具:

(1)自然语言处理

自然语言处理(Natural Language Processing, 缩写作NLP)是人工智能和语言学领域的分支学科,其认知和理解是让计算机把输入的语言变成有意义的符号和关系,然后根据目的再处理。

(2)词袋模型

词袋模型(Bag-of-words model)是用于描述文本(由许多文件和主题构成)的一个简单数学模型,也是常用的一种文本特征提取方式。词袋模型将一篇文件看作是一个“装有若干个词语的袋子”,只考虑词语在文件中出现的次数,而忽略词语的顺序和句子的结构,比如一个文件如下:

Mary likes flowers and likes painting

我们将此文件以词袋模型写成一个集合,此集合元素以词语和它在文件中出现的次数构成的序对表示,如:{(Mary,1),(likes,2),(flowers,1), (and,1),(painting,1)}。

有了此模型,我们可以把文件做很大的简化,但还需要保留必要的主题讯息。

(3)通常一个文件中可能出现过多的停止词(stop words),如:is, the,……这些词语可能会大量出现但不一定环绕主题,由于出现次数通常过多,是一种高频的停止词,我们在建立模型时可以先纳入计数,不过建构词典时,可以忽略。

(4) TF-IDF是用来找出一篇文章中,可以代表这篇文章的关键词的方法,我们用关键数据来提取《人工智能发展简史》这篇文本中哪些是关键语词(依照TF-IDF为指标),从而设计与机器人的对话,再从机器人的回应套用我们默认的模型,去分析其相关性,以此作为模型的修正.本文把《人工智能发展简史》这篇“文本”分成九个段落, 每一个段落为一“文件”(Document)。

首先,解释我们将使用的工具名词.TF-IDF(词频一逆文文件频率)(Term frequency-Inverse document frequency)算法是一种统计方法,用以评估一字词对于一个档集或一个语料库中的其中一份文档的重要程度.字词的重要性随着它在文档中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降.该算法在数据挖掘、文本处理和信息检索等领域得到了广泛的应用,如从一篇文章中找到它的关键词。

TF-IDF的主要思想是:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类.所以在计算TF-IDF之前,必须先处理另外两个数据,词频,TF(Term Frequency)与文件频率DF(Document Frequency). TF表示词语在文件中出现的频率;DF表示含该词语的文件数在全部文件数中的比值.而IDF (Inverse Document Frequency)的计算方法为, 其中为该语词出现的文件数,而等式的右边是考虑=0的情况. 接着,计算TF-IDF就是将该词语的词频与逆文件频率相乘,得到一个重要指标。

对于如何获取一篇文本的关键词,我们可以计算这篇文本出现的所有名词的TF-IDF值, TF-IDF越大,则说明这个名词对这篇文章的区分度就越高,取TF-IDF值较大的几个词,就可以当做这篇文本的关键词.计算流程可参考图2。

图2

我们希望利用TF-IDF检查训练机器人是否达到我们提供的摘要的对应数据,以及预期达到每个文件的关键词语有一致性.接下来我们把每一次测试机器人之应答,依此模型整理成数据。

6 求解与实作过程

将文本分为九个文件(段落,依照文本的粗体标题),并从这九个文件中 ,选出九个摘要,建立九个涵盖各词语的文件,接着写下九个词袋模型. 我们以文本的文件1做词袋模型的示范如下:

图3 模型测试流程图

文件1的摘要:

Artificial Intelligence

Artificial intelligence (Al), sometimes called machine intelligence, is intelligence demonstrated by machines, in contrast to the natural intelligence displayed by humans and other animals.

文件1的词袋模型:

Artificial Intelligence

{(artificialintelligence,1),(intelligence,3),(machine,2),(sometimes,1), (called,1), (demonstrated,1), (by,2), (in,2), (contrast,1), (to,1), (the,1), (natural,1), (displayed,1), (humans,1), (and,1), (other,1), (animals,1)}.

将上述文件整理成词袋模型,并对每个词语出现的次数列表与标记序号,若有许多文件一起整理,就能建构成包含许多词语的词典(Vocabulary).如我们在第一个文件中撷取出摘要,建立词袋模型后,计算出(测试前)TF、DE. IDF和TF-IDF,完成列表(见表1)。

由上表可以看出第一个文件中词频最高的词语是“intelligence”,而其TF-IDF为0. 2840 相对其他词语是较高的,因此第一个文件我们选出的摘要中,”intelligence”是关键词语,并可以在文本中明显区分出重要性.我们预设,在测试机器人对谈中,希望能够在响应方面也有相对的高指标,表示机器人能够响应到我们所表达的重点。

然后,因为我们总共将Al简史的文本切割成九份文件,所以对应测试(聊天机器人)前的九个词典与其他指针数据.我们测试前九个文件中,TF-IDF指数较高(相对每个文件)的词语,作一个列表如下(表2):

由表2可知,在测试前我们建立的摘要与对应的模型中,文件一、二、三、四、五、八都有明显的关键词语出现,而文件六、七、九则出现许多相同TF-IDF的词语,我们推测这三个文件(段落)叙述的重点应相对其他文件较弱。

接着我们将测试分成三种:

(a)第一种是以建立模型摘要的角度与机器人对话一次,得到TF-IDF指数较高的数据,我们将其整理如表3:

(b)第二种是训练后,再与机器人对话一次,得到TF-IDF指数较高的数据,我们将其整理如表4:

我们发现测试一和测试二在文件七和九的TF-IDF皆出现0,我们推测在测试前文件七与九的摘要本身重点不足或是占整篇文本主要思想较弱,我们推论文件七与九为不重要的文件。

(c)第三种是训练后,再与机器人对话一次,得到TF-IDF指数较高的数据,我们将其整理如表5:

从测试三可以看到,文件一到四与测试前的关键词语较一致,而文件七在测试三有别于测试一和二。

最后,我们训练测试了三次后,将各测试得到的九个TF-IDF指标分别与测试前TF-IDF 的数据比较,得到相关系数,如下:

可见三次训练后分别与测试前的相关系数从负相关到正相关。

而三组测试彼此之间的相关系数:

观察出测试一与测试二的相关系数高达 0. 8,可能是因为都是由同一位小组成员测试,想出来的问句相异度不高,所以相关系数较高。

7 模型讨论

关于优化部分,我们采取策略:

(1)降低敏感度的策略,使用许多都含有相同的词的问句,但是要求“浅蓝”做出不一样的回答。

例:

Q: Tell me about Alan Turing?

Q: Tell me about the first Al winter?

Q: Tell me about Deep Blue?

(2)当“浅蓝”无法辨别相似性较高的关键词时,通过反复的问答,提高“浅蓝”的正确率。

例:

Q: What’s AGI?

A: AI is…

校正

Q: What’s AGI?

A: Al is…(使用change更改答案)

Q: What’s Al?

A: Al is…

Q: Do you know AGI?

A: Al is…(使用change更改答案)

Q: Do you know AGI?

A: AGI is…

根据上段的模型实作与重复测试,得到关于此模型的讨论如下:

(1)在选取摘要时可能会导致词频一逆文件词频(TF-IDF)数值的改变,所以若时间允许,可选择另一版本的摘要,仍测试模型,增加对照机会,观察是否能有更好的数据来训练机器人。

(2)本命题提供的文本(Al简史)篇幅不长,建立模型前,原先设定以计算词频向量 (term counting vector)与逆文件频率向量(term frequency-inverse document frequency vector),利用矩阵乘法呈现,但考虑文本数不够且可能维度过大以及运算上的复杂,因此将Al简史分成九个文件进行模型检测。

(3)在三个测试的数据(机器人响应)中,可以发现与测试前我们的各文件TF-IDF数值高的语词对应,有文件一、二、三、六、八,其中文件八TF-IDF数值高的为came和after,相对其他文件重要性较低.而文件七在测试一与二中TF-IDF取为0,因为在回应的文件中没有出现次数,不过在测试三中有0.2的数值.在前两次测试后,我们原本推测是文件切割的不够细(可能有其他重点漏掉),在训练几次后,第三次的响应针对文件七有了数值可参考。

(4)在三次测试后,我们发现文件九的 TF-IDF值为0,因此推测机器人在辨识AGI 时,一直辨识为AI。

(5)文件六的部分,三次测试都保持与测试前数据的一致性.我们推测它就像日常用语中出现频率较高的虚词。

8 结论

针对此模型,我们认为如果能再测试多次并有机会修整模型(包含训练机器人与重整摘要),并且数据能够足够完整的话,预期能够做函数拟合,希望能有预测行为并可对机器人设定目标,还在适合的拟合下清楚地给予变量,调整机器人达到我们想要的表达。

参考文献

[1]陈玉混,汤晓鸥.人工智能基础(高中版)[M].上海:华东师范大学出版社, 2018.

文章来源:智云一二三科技

文章标题:聊天机器人训练的建模

文章地址:https://www.zhihuclub.com/150984.shtml

关于作者: 智云科技

热门文章

网站地图