Ruter 是一家在大奥斯陆地区运营的公共交通公司。我们拥有来自广泛业务领域的大量历史数据。为了从这些数据中提取价值,我们需要在强大且可扩展的数据基础架构之上发展一种创新文化,而不会妨碍日常运营。Ruter 在 2020 年推出了 AI-lab,作为推动此类创新举措的平台。

照片:Ruter As / Redink,Thomas Haugersveen
我们将首先介绍定义我们的 AI 实验室的内容。然后,我们将概述学生在 2020 年第一次迭代期间所做的工作。要了解学生在 2021 年所做的工作,请继续关注第 2 部分!
什么是 Ruter 的 AI 实验室?
Ruter 的 AI 实验室由对机器学习 (ML) 和人工智能 (AI) 具有学术兴趣和经验的大学生组成。这些学生来自各种不同的学习项目,专注于科学、技术、工程和数学。每年夏天,我们都会邀请 3-4 名学生帮助我们使用高度自治和独立的高级统计和 ML 解决业务问题。暑期实习通常会扩展到灵活的兼职职位,这些职位与正在进行的大学学习很好地结合在一起。
在 AI 实验室,我们试图建立一种开放和实验的文化,同时为挪威最大的公共交通当局之一解决业务关键问题。我们研究的问题是跨学科的;我们利用许多不同团队的技术和特定领域的能力。这也为跨职能团队协作和应用程序架构提供了极好的学习机会。人工智能实验室有一种以产品为中心的思维方式,但人们在使用和试验数据时获得的洞察力通常被证明与完成的应用程序一样有价值。

数据科学部门在 Ruter 处理历史数据应用程序。
人工智能实验室一直是 Ruter 的数据科学部门在识别机器学习和统计的新用例方面的重要资产。它还为我们的数据基础架构的设计提供了信息,并制作了实际的数据应用程序,使其进入 Ruter 的生产环境。
2020 年是 AI 实验室的第一次迭代。四名学生和一位经验丰富的软件工程师着手帮助我们的客户支持团队优化他们的案例处理流程。在下一节中,我们将讨论手头的问题以及我们如何使用 AI 来改进现有的解决方案。
2020 年 — 客户咨询、人工智能案例处理程序和见解
Ruter 每周通过电话、电子邮件或我们的在线联系表格收到大约 4000 份客户咨询。这些查询中有很大一部分涉及我们运营的不同运输方式的时间表偏差。快速响应这些查询至关重要,因为客户经常在停靠站等待已经出发、延迟或取消的旅程时发送它们。此外,案例处理人员最终会将大量时间分配给此类查询,而他们更愿意将时间花在需要人工理解的更复杂的查询上。AI-lab 2020 年迭代的项目是寻找创新方法来自动化部分案件处理流程。提出了一个案例处理人工智能机器人,以便在客户抱怨进度偏差时向客户提供相关信息的即时反馈。
在此用例的同时,团队发现需要一个数据可视化和洞察平台来用于查询数据。客户查询作为快速识别和应对 Ruter 服务问题的数据源非常有价值。尽管如此,为了使这成为现实,需要对数据进行适当的预处理、聚合和丰富。
为了满足这两个需求,该团队开始创建一个广泛的自然语言处理 (NLP) 引擎,该引擎可以做一些我们认为对查询文本有用且有趣的事情。

在 AI-lab 2020 期间实施的解决方案架构的高级视图
语言识别和拼写更正以确保数据质量 在项目期间,我们很快发现只有挪威语文本应该由我们的 NLP 引擎处理。我们根本没有足够的数据来支持具有多语言支持的良好 ML 模型。因此,一个预训练的FastText 模型被部署为 NLP 引擎的一部分,以区分挪威语和其他语言。还使用带有可识别单词拼写的编辑距离实现了一个基本的拼写检查器。过滤掉除挪威语以外的其他语言的查询,更正与“已识别的拼写”编辑距离较低的拼写。这些步骤确保了我们在模型训练和下游处理步骤中使用的数据质量更高。
匿名化:隐藏个人信息以可视化内部查询 电子邮件地址、银行账户信息和电话号码可以使用模糊正则表达式过滤掉,因为它们遵循相对特定的模式。ML 用于从查询文本中删除姓名和医疗状况。FastText 用于向量化每个查询中的所有单词。然后根据“黑名单”(例如医疗条件、姓名)和单词“白名单”中的术语矢量化来评估矢量化。如果一个词的向量表示足够接近我们黑名单中的向量化或不够接近我们白名单中的向量化,它就会从我们的输出中被屏蔽。这为我们的 NLP 引擎提供了一种匿名形式。自动匿名化使我们能够在 Ruter 内部向更广泛的受众提供查询文本的访问权限。但是,此解决方案不能保证 100% 匿名。我们遇到的一个特殊问题是匿名化不寻常的名字和医疗状况。因此,对这些匿名数据的访问继续受到限制和监管。

由我们的 NLP 引擎完成的文本字段的拼写更正和匿名化示例。
情感分析和主题建模以汇总和可视化客户满意度 情感分析是使用算法系统地识别和量化某些文本库中的情感极性。对我们来说,制定与客户满意度直接相关的指标和趋势可能非常有用。使用来自挪威国家图书馆的大型挪威语料库预训练的BERT 模型对查询文本字段进行情感分析。然后,这个预训练模型被训练用于对不同类型挪威文本的情绪分数进行分类的下游任务。我们使用从 Yelp、Google Play、Google Maps 抓取的挪威评论数据,并直接从NoReC *载下**数据:挪威评论语料库. 这个想法是使用来自多个评论来源的大型数据集,以便模型可以很好地推广到我们的领域。

PowerBI 仪表板可视化奥斯陆 37 号线每站的情绪。每个气泡的大小代表查询数量,颜色反映平均情绪(从 1 到 5,其中 1 表示非常负面,5 表示非常正面)。出于隐私原因,查询文本被屏蔽。
使用LDA进行主题建模和使用t-SNE进行聚类(在此处更清楚地解释)用于可视化新的推断类别和不同查询之间的相似性。查询通常是复杂且多方面的,因此我们已经使用的功能类别并不总是反映它们的一般主题。LDA 能够以无监督的方式推断新类别,而 t-SNE 让我们可以在二维中可视化投诉的向量表示。当抱怨的情绪叠加在此之上时,您可以制作一些有趣的情节。

我们在 2019 年收到的所有查询的向量表示的 t-SNE 图,每个点代表一个投诉。颜色反映了客户支持确定的功能主题。

相同的 t-SNE 图,但颜色反映了 LDA 识别的主题,主题数 = 10

t-SNE 图与情绪评分叠加,使用“Santa Maria”量表(MILD=阳性,X-HOT=非常阴性)。我们看到,有关票务控制和被遗忘乘客的询问比其他人更消极。
使用“主题数量”参数的许多不同配置运行 LDA,我们发现了一些有趣的新类别。关于过早打开和关闭门的投诉是我们确定的一类。另一个是关于顾客听到其他乘客或公交车司机的嘈杂音乐。
这些建模步骤的结果,尤其是情绪分析,还有改进的余地。例如,我们的绝大多数客户查询都是负面的,这使得很难从这些数据中获得关于客户满意度的可靠量化视图。此外,构成公共交通负面体验的因素可能是特定领域的。因此,需要对我们的查询数据进行更精细和特定领域的标记,以训练可用于业务决策的模型,这是 2022 AI 实验室将尝试解决的问题之一。
将查询分类为功能类别以进行聚合、可视化和快速反应 训练了多个 FastText 模型,以自动将查询标记到客户支持团队已在使用的功能类别层次结构中。这让我们可以近乎实时地可视化我们正在接受什么样的查询,并且可以用来减轻对查询的手动标记。此外,分类可以触发发送自动回复,这是 AI-bot 目前所做的。

仪表板显示有关 25.02.22–29.04.22 期间奥斯陆内区计划偏差的所有查询。出于隐私原因,查询文本被屏蔽。
当查询文本满足特定条件时发送自动回复当 NLP 引擎将投诉识别为与计划偏差有关时,它会进一步尝试预测子类别:太晚、太早或取消出发。然后通过 Ruter 的内部消息系统 Kafka 将其发送到我们的客户支持系统,如果预测高于我们的置信度阈值,则会从该系统发送自动电子邮件回复。

当客户抱怨 31E 线路延迟时,我们的 AI 机器人会自动回复。
训练简单的 FastText 模型来为我们的 AI 机器人分类案例,从而触发下游的自动电子邮件回复。选择 FastText 是因为简单、资源效率和时间限制。使用基于转换器的模型,如BERT或GPT-3,可以创建分类准确度显着提高的模型,并为各种查询发送生成的文本回复。但是,这些模型需要大量数据,并且可能需要更多特定领域的标记数据。
今天,我们的 NLP 引擎和 AI 机器人(绰号 Harry Botter)已经运行了将近 2 年,执行匿名化、分类、情感分析和自动回复客户查询。它将某些投诉的处理时间从几天缩短到几秒钟。NLP 引擎还为 PowerBI 中的 Customer Insights 仪表板提供支持,Ruter 内部的多个团队经常使用该仪表板,为我们的客户如何体验我们提供的服务提供有价值的见解。
NLP 可以解决组织中接收和依赖事件和经历的文本描述的许多问题。它尤其有助于将这些体验从孤立的数据库中提升出来:Ruter 的任何人都无法查看受 GDPR 保护的查询,但考虑到反馈数据中的聚合和趋势对于在整个组织内开发新产品和服务可能很重要。
请继续关注本系列文章的第 2 部分,我们将在其中讨论我们在 2021 年 AI-lab 迭代中所做的工作,其中我们试图预测 Ruter 庞大的交通网络中的旅行时间和延误。
我最初是在 Ruter 的 AI 实验室 2020 年迭代的实习生,现在在这里全职工作,担任 ML 团队的开发人员。我们尝试利用先进的统计数据和机器学习与现代数据堆栈相结合,以改善大奥斯陆地区的公共交通。