文摘
自动任务分类是一个私人助理系统的核心部分,广泛应用于智能手机和平板电脑等移动设备。尽管许多行业领导者提供自己的私人助理服务,自营的内部结构和实现不知名的公众。在这项工作中,我们通过真正的实现和评估显示,可以实现自动任务分类为移动设备通过使用支持向量机算法和众包。训练我们的任务分类器,我们收集的训练数据集通过众包使用亚马逊的土耳其机器人平台。我们的分类器分类一段英语句子译成32预定义的任务之一,经常要求在使用个人移动设备。评价结果表明预测精度高的分类器从82%到99%不等。通过使用大量的众包数据,我们也说明训练数据规模之间的关系和我们的任务分类器的预测精度。
1。介绍
人工智能和机器学习在信息技术时代,已获得了高度的关注,我们看到越来越多的应用在我们的日常生活中。特别是,许多行业领导者已经开发和引进了一流的基于人工智能的应用程序(1- - - - - -5]。这些应用程序包括个性化内容推荐和私人助理服务(3- - - - - -7]。
许多先进的私人助理服务严重依赖自然语言理解(NLU)人机交互(8- - - - - -10]。也有很多系统都是基于touch-driven互动(11,12]。如今,许多机器可以与人类某种程度的智慧,他们都是人工智能的核心算法和自然语言处理。
自然语言理解的有许多尚未解决的问题,和自动分类的问题自然语言输入一个合适的任务或类别就是其中之一。许多研究者和行业领导者提出各种算法和方法来解决问题8,9,13- - - - - -20.]。这些研究和开发活动后导致各种私人助理服务,如苹果的Siri,现在谷歌谷歌,亚马逊的Alexa。
然而,私人助理服务提供的行业领导者是专有的,和他们的内部结构和实现不知名的公众。他们不断更新和改进在过去的几年中,我们相信他们的实现是高度复杂的和复杂的许多不同的组合算法和最先进的技术。因此,我们问自己以下的问题:“是否有可能实现一个个人助理系统,简单是由一个著名的机器学习算法的应用和个人众包数据?“通过回答这个问题,我们希望我们的工作促使许多研究者和小行业建立自己的智能系统在特定的领域。
记住的动机,在这篇文章中,我们介绍我们自己实现一个自动任务分类系统,基于经典的机器学习算法,众包。提出了许多不同的分类算法,引入人工智能和机器学习的社区。实现我们的任务分类模块,我们使用了支持向量机(SVM),一个受欢迎的分类算法。特别是,我们使用了LibShortText图书馆(21),这是一个延长Liblinear [22)、图书馆实现线性支持向量机算法。
使用我们的实现,我们表明,支持向量机算法可以成功地用于构建私人助理服务,特别是任务分类器为移动设备。这个任务分类器可以自然语言文本输入和输入文本分类为一个隐含的任务类别在许多预定义的任务。因此,它可以理解人类的自然语言命令并执行任务因此代表用户。
尽管苹果、谷歌和亚马逊不披露的内部体系结构或算法用于实现自己的私人助理服务(3),相信他们是利用大量数据,他们从各种来源收集来实现他们的系统。为了训练我们分类模块,我们也收集自己的训练数据,我们通过众包描述我们如何收集数据。
通过使用大量的训练数据收集,我们调查和任务之间的关系我们的分类器分类精度和训练数据大小。我们确认我们使用更多的训练数据,更好的预测精度我们可以得到,但性能提升速度下降。
本文组织如下。部分2介绍几个商业个人助理系统和支持向量机算法。然后,一个开源库实现介绍了支持向量机。我们的分类器使用图书馆建立任务分类器模型。节3,我们描述分类器分类器的构建和图书馆。部分4描述我们的众包程序收集培训数据用于训练分类器模型。部分5表明我们的分类器可以简短的英语文本为隐含任务类别进行分类。特别是,精度和召回值提出了每一项任务。预测精度和训练数据大小之间的关系也在调查中。节6,我们提出的一个可能实现的总体架构个人助理系统,基于我们的任务分类器。最后,部分7总结了纸。
2。背景和之前的工作
我们提出我们的任务分类器之前,我们介绍一些之前工作在自然语言处理和两个人助理系统。然后,简要介绍了支持向量机算法的背景。
2.1。自然语言处理
自然语言处理是一个相当大的研究领域和计算机科学社区有着悠久的历史。下面是一些之前在地里工作。
1972年,Winograd试图实现一个计算机系统,可以与人类互动在英语14]。库恩和德森尝试一个新的数据结构,语义分类树,实现健壮的构建块匹配器NLU任务(9]。曼宁和Schutze描述统计自然语言处理在他们的书中(8]。易等人提出了一个情绪分析,提取情绪主题使用自然语言处理技术(15]。Collobert等人提出了一个统一的神经网络结构和学习算法,可以应用于各种自然语言处理任务,包括词性标注、分块,命名实体识别和语义角色标注(16]。
任务或类别分类之前有很多工作,。1994年,Cavnar和Trenkle提出了一个基于语法的文本分类方法(17]。杨和他进行了比较研究在文本分类特征选择方法(18]。1998年通过SVM文本分类研究了约阿希姆(19]。杨和刘五个不同的文本分类方法进行了研究[23]。塞巴斯蒂亚尼总结了许多不同的方法基于机器学习的文本分类(24]。彭日成等人进行了研究情绪分析(正面或负面)采用三个不同的机器学习算法:朴素贝叶斯最大熵分类,支持向量机(25]。通和科勒提出支持向量机主动学习为文本分类应用程序(20.]。利奥波德和Kindermann表明term-frequency转换产生较大影响的性能比内核函数(用于文本分类的支持向量机26]。Genkin等人提出了一种新的基于逻辑回归方法能够处理高维数据如自然语言文本(27]。局域网等人提出了一个新学期加权法用于文本分类(28]。
2.2。个人助理系统
创新之一,著名的自动任务分类系统的自然语言输入句子Siri,个人助理系统由苹果公司。29日]。Siri推出后不久,谷歌也开始提供自己的类似服务,叫做谷歌现在(30.,31日]。
这两个系统可以理解人类的自然语言命令,这意味着他们可以把给定的自然语言输入一个命令所暗示的输入文本,并相应地执行预测任务。例如,这些系统理解语音输入命令,如“打电话给约翰,”和代表用户,他们自动执行用户的目标任务,这是一个“调用”任务。
然而,苹果和谷歌没有透露这些系统是如何实现的。因此,我们设计和实现自己的任务自动分类器基于广泛使用的分类算法,支持向量机。
2.3。支持向量机
有很多机器学习分类算法是众所周知的社区。特别是,深度学习(32- - - - - -34)是一个非常热门的话题。如果仔细设计和训练,深入学习算法通常比(在分类精度)的大部分之前所知如支持向量机分类算法,随机森林,朴素贝叶斯在许多领域。然而,为了培养竞争学习网络,一个非常大量的训练数据通常是必需的。此外,深层神经网络往往被视为黑盒因为很难理解网络分类测试实例通过深层网络层为正确的类别。
相反,支持向量机被认为是比深层神经网络可说明的,它主要用于在许多分类问题。即使没有一个通用的算法,优于其他分类算法在各种领域,支持向量机是广泛应用由于其相对强大的性能在许多不同的领域(35]。考虑这个工作的目标,我们决定使用支持向量机算法而不是使用更现代但是复杂深厚的学习算法。
支持向量机算法概念Vapnik和Chervonenkis[在1963年发明的36]。1992年,波沙等人提出了一个方法来创建非线性分类器通过内核技巧(37]。几年后,科尔特斯和Vapnik软边缘的概念引入38]。自推出以来,支持向量机已经手写字符识别等许多应用程序。
有许多与不同的优化支持向量机算法的实现。风扇等人实施大规模线性分类一个开源库,命名为Liblinear [22]。Liblinear支持逻辑回归和线性支持向量机。另一个开源库对于短文本分类和分析,称为LibShortText,实施(21]。LibShortText是Liblinear的扩展,它可以训练一个分类模型与一个给定的训练数据集组成的短自然语言文本标签。
3所示。自动任务分类器
我们的主要观点是,一个实际的任务分类器,个人助理系统的核心部分,可以实现达到足够的精度,使用经典分类算法和基本的自然语言处理技术。简要介绍了在部分2存在一个开源库,基于支持向量机的文本分类。因此,我们采用这个库来设计我们的任务分类器,而不是重新发明轮子。
3.1。预定义的任务
我们实现自己的任务自动分类器可以给定自然语言输入文本分类中最合适的任务32预定义的任务。32个不同的任务,我们使用如表所示1。我们选择这些任务根据我们的观察,他们将跨越最常用的任务,用户可以命令他们的智能手机或平板电脑等移动设备。然而,这些32任务不是硬编码;用户可以定义任何自己感兴趣的任务列表。
例如,32任务包含“调用”任务,我们的任务分类器可以对一个输入文本分类“叫约翰。“换句话说,我们的分类器将自动识别用户的目的任务,即“叫”的任务,个人助理系统将命令移动设备搜索联系人列表中找到“约翰”,最后给他打一次电话。尽管我们定义自己的32任务目标移动设备,不同的用例可以定义自己的任务列表。一个实例,导航系统可能有完全不同的任务,比如“搜索位置”或“取消”导航。
3.2。分类器训练任务
为了实现我们的自动任务分类器,利用LibShortText [21),一个开源库实现一个简短文本分类器。这个图书馆很好实现,提供了一个功能改变的参数的支持向量机算法或自然语言处理。LibShortText的作者声称,我们的初步实验表明,库的缺省参数导致很好的分类精度对于我们的目的,如果不是最好的,所以我们主要遵循他们的建议。
此外,为了进一步提高精度,我们设计了一个预处理步骤,来代替一些单词为更一般的类别。例如,如果给定的句子是“我想要一个寿司”,然后“寿司”一词是“categoryFood所取代。“因此,最后一句在这种情况下,变成了“我想要一个categoryFood。”
我们尝试用单词替换,因为更具体的词替换为更一般的条件可能会增加分类精度通过减少输入特征空间的维数(字格的空间)。为了实现预处理的单词替换,我们首先创建了一个词典,有些字映射到更一般的类。例如,“寿司”和“披萨”映射到“categoryFood”类别。生成字典之后,我们应用训练数据集预处理步骤。换句话说,所有的训练数据的句子都转化为句子在特定的词替换为相应类别标题。当然,当任务分类器分类测试输入的句子,应该上执行相同的预处理步骤前的测试句子分类过程。
令我们失望的是,然而,实验结果没有承诺;预处理的分类精度并不高于没有这一步。我们认为这可能有许多原因。首先,支持向量机的分类精度已经很高没有预处理,这使得它很难进一步提高精度。第二,特征空间维度并不足以影响分类精度降低。
我们确认实验结果后,我们选择留在LibShortText没有预处理的推荐设置。我们也想提预处理需要计算时间,这是我们的另一个原因选择不进行预处理。
LibShortText图书馆需要一个训练数据集训练支持向量机,所以我们用一个受欢迎的众包平台收集我们的训练数据集。为了达到高分类精度一般自然语言文本输入,我们需要大量的数据。在下一节中描述的数据采集过程。
4所示。通过众包数据收集
本节描述我们如何收集自己的训练数据集分类器训练的任务。
4.1。亚马逊的土耳其机器人
众包是一种强大的方法来获取人工智能服务,想法,或内容,征求一大群人的贡献,特别是从在线社区39]。一个众所周知的在线调查平台,调查猴子,是一个很好的例子,许多服务,通过众包可用于收集数据。许多人现在在小尺度为个人使用调查猴子,学术,或工业目的。
Amazon.com inc .)也提供了一个受欢迎的和商业的众包平台称为亚马逊土耳其机器人(MTurk)。MTurk提供了一个易于使用的系统,通过众包收集大量的数据集。有很多研究成果MTurk收集的数据质量。博尔玛等人描述和评估的潜在贡献MTurk心理学和其他社会科学(40]。Paolacci等人解决潜在的担忧收集的数据的质量通过MTurk呈现新的人口数据Mechanical Turk主体人口,回顾MTurk的优势相对于其他在线和离线招募受试者的方法和比较的大小影响了使用土耳其机器人和传统主题池(41]。Kittur等人也表现的有效性研究MTurk平台(42]。他们中的许多人表明MTurk是个不错的众包平台收集高质量数据与廉价的货币成本。
我们收集自己的训练数据集使用MTurk训练我们的任务分类引擎。MTurk众包请求者可以上传他们的问卷。一旦上传,MTurk发布调查问卷MTurk开放市场,这样许多MTurk工人能回答上传问卷和获得报酬的请求者。
4.2。我们的数据收集过程
为了收集英语句子的任何预定义的32的任务,我们创建了一个问卷,要求职工填写他/她自己的例句为每个不同的任务。例如,对于“餐厅搜索”的任务,一个人可以提供一个例子句子,如“找到我一个好附近的意大利餐厅,”和另一个人可以提供一个不同的句子,比如“最好的韩国食物在旧金山。“一旦一个工人完成填写一个例子句子所有32的为每个任务,然后我们补偿工人的贡献。
通过上述MTurk众包过程,我们能够为32任务收集65890句。每个任务至少有2000句。所有的这些句子都是人类生成的,所以数据集质量高,品种。例如,一个工人提供一个例子句子,“我饿了”的任务”餐馆搜索”,而许多其他工人提供各种菜肴的名称如“披萨”或“寿司”。
5。预测精度
为了训练我们的分类和评价的分类准确性,我们应用十倍交叉验证方法使用32的65890句任务收集通过众包。而应用十倍交叉验证,我们测量的精度和召回值每个任务。
5.1。精度和召回
在执行十倍交叉验证,精度和召回值为每个任务为每个折叠可以计算如下。
假设我们随机分区所有收集到的数据集T到十等于折叠。我们分区T因此每个褶皱有大约相同数量的数据点为每个任务。计算精度和召回值对应于一个分区 , ,我们形成一个训练数据集组成的所有数据除了那些属于 。换句话说,如果我们称之为褶皱的训练数据集作为 ,我们有
通过使用作为一个训练数据集,我们训练任务分类器模型 。然后,我们测量模型的预测精度使用折叠作为验证集。
每一对的任务 , ,和褶皱 , ,精度和召回值计算以下方程: 在哪里和是原始的和预测的任务标签数据的句子吗d,分别。
5.2。测量预测精度
十倍交叉验证结果如表所示2。如表所示2,从精度和召回值很高到 。尽管有一些相似的任务之间的误分类,总体预测精度是有前途的。因此,我们的任务分类器可以用来构建实际的私人助理服务。
我们也可以观察到只有几组相似的任务有相对较高的误分类率。例如,三个任务的“地图”,“餐厅”和“购物”搜索主要是相互混淆。搜索“音乐”和“音乐播放器”软件启动任务也大多与彼此混淆。“应用程序”和“游戏”搜索应用程序启动任务大多是相互混淆,“维基百科”和“信息”的搜索任务也相互混淆。最后,五个聊天任务是困惑。
为了进一步增加我们的任务分类器的精度,我们可以建立一个二层的分类、应用和分类每组内的相似的任务更准确的任务组。第二个层不需要使用支持向量机作为第一层;它可能使用基于规则的分类器或任何其他算法。
5.3。准确性和训练数据的大小
我们进行了一个实验来调查训练数据规模和分类精度之间的关系。预计数据用于训练越多,精度越我们可以得到。我们想确认这个期望和精确的分类器性能和训练数据的大小之间的关系。对于这个实验,我们随机选择所有收集的数据点作为测试集。然后,我们使用剩下的数据集的训练数据池,这样我们就可以一定量的样本数据点随机从池中。
更具体地说,假设年代随机抽样测试集的大小是收集的数据集T。然后,剩下的收集到的数据作为训练数据池P,我们的训练数据样本大小不同。因此,我们有
特别是,我们测试了10个不同大小的训练数据:的训练数据池P。对于每个不同的训练数据的大小为 ,我们重复从池中随机抽样P十倍训练十个不同的分类器模型相同的训练数据的大小。换句话说,对于每个我分类器,我们训练十个不同的任务为同样大小的样本训练数据从池中P十次。然后,使用每个分类器 ,我们测量了分类精度作为 在哪里和预测和原始输入文本的任务吗d,分别。因此,我们有十个不同的精度值为每个训练数据的大小。
实验结果如图所示1,箱线图的生成与十个不同精度值为每个不同的训练数据的大小。图显示了分类器的性能提升随着训练数据规模的增加,但是性能提升速度下降随着训练数据规模的增加。这个结果是合理的和验证我们最初的假设。
6。个人助理系统
到目前为止,我们已经描述了我们提出的任务分类器基于支持向量机算法。提出任务分类器可以用来建立一个个人助理系统。图2显示了可能的整体架构实现的一个个人助理系统。用户的语音命令首先传送到服务器,运行语音识别转换器和分类器的任务。
语音识别的转换器,可以使用任何适当的转换器;例如,我们可以使用Sphinx语音识别系统(43- - - - - -45]。
在服务器上接收到的语音转换为文本,并给出转换文本任务分类器,作为整个系统的核心部分。任务分类器将给定的文本分为最可能的任务,并预测任务传回给用户的移动设备。然后,个人助理系统执行的任务发射器预测任务因此代表用户。
自提出任务分级机是建立在线性支持向量机,计算时间通常范围从几毫秒到几十毫秒。当然,当我们使用更强大的服务器,我们可以减少计算时间。
7所示。结论
我们提出一个方法来实现私人助理服务,可以理解人类的自然语言命令。即使已经存在这样的服务包括Siri,谷歌现在,Alexa,内部技术尚未向公众披露,并不广为人知。因此,我们调查是否有可能建立一个任务分类器,一个私人助理服务的核心组成部分,使用一个著名的机器学习算法。我们的实现是基于支持向量机,一种广泛使用的分类算法在很多领域。
训练我们的支持向量机有足够的数据,我们收集自己的训练数据集通过使用流行的众包平台,亚马逊土耳其机器人。我们预定义32经常吩咐的任务在使用移动设备和收集每个任务自然语言句子利用众包平台。通过这个过程,我们可以收集65890自然语言句子。
我们测试我们的任务分类器性能的十倍交叉验证的方法。评价结果表明,分类器的精度和召回值非常高。这一结果表明我们的简单的方法可以用来实现实际的私人助理服务。
训练数据规模和分类器性能之间的关系也被调查。我们确认我们使用更多的训练数据的性能变得更好,但是性能增加率下降增加训练数据的大小。所有这些观察结果是合理的,我们希望我们的工作能激发并被许多研究人员或行业那些试图建立自己的个人助理系统。
的利益冲突
作者宣称没有利益冲突有关这篇文章的出版。
确认
这项工作是在2017年Hongik大学研究基金的支持下,部分韩国国家研究基金会(NRF)授予由韩国政府(科技部、ICT和未来规划(MSIP))(没有。2017 r1c1b5015901),也在一定程度上由基础科学研究项目通过韩国国家研究基金会(NRF)由教育部(NRF - 2017 r1d1a1b03031348)。