这篇博客是我在 2021 年 4 月 28 日 REWORK 会议上演讲的全文内容。 点击此处获取演讲幻灯片。
自然语言理解 (NLU) 是任何对话式人工智能系统的关键组成部分。 通常,在任务导向型对话系统中,NLU 包括分类器,用于识别用户意图和槽位或实体。 对话管理器会根据这个输出结果来选择合适的对话状态,并采取相应的行动来满足用户的请求。 在某些情况下,可能无法清晰定义用户的意图,或者只是识别出用户请求中的意图和实体可能无法提供足够的信息,让对话管理器能够采取最佳行动。 例如,思考一下以下用户与零售服装网站机器人的交互情况: 用户以问候开启对话,然后提出查找特定产品的请求。 在这两种情况下,机器人可以通过识别用户的意图和槽位,来作出智能化的响应,并成功向用户推荐相关产品。 但是,当用户回复自己对产品的想法时,问题就出现了。 这类查询应该映射到什么类别的意图,以及应该检测什么类别的实体? 通常,在面对这种情况时,可以让系统提示用户,将对话导向更易于执行的方向,比如“嗯,我不明白您的意思。 如需查看更多选项,请说‘查看更多’。” 虽然这样的用户体验并不算太糟,但我们可以通过在 NLU 系统中加入额外的分类器模块来识别言语行为或对话行为,进一步提升机器人的智能化水平。
什么是言语行为?
言语行为是在对话的每句言语中捕获用户的语境和意图。 这些意图不同于常规对话意图,因为它们实质上所属的范围更广。 例如,“这个多少钱?”和“今天天气怎么样?”可能分别属于“GET_COST”和“GET_WEATHER”的意图,但是两者都属于“QUESTION”这一言语行为,或者还可以细分为“WH-QUESTION”。 相关文献提出了不同言语行为的分类,我们可以使用适用于我们应用场合的子类。 为了更好地了解具体有哪些标签,可以参考 SWBD-DAMSL 分类,这个分类提供了 42 个丰富的标签。
用于对话管理的言语行为
在上述用户和机器人交互的示例中,我们可以针对三个用户查询提供“GREETING”(或“CONVENTIONAL-OPENING”)、“QUESTION”和“OPINION-NEGATIVE”的言语行为标签。 我们知道用户最后对品牌表达了否定意见(标记为属于“类别”这一实体类型),对话管理器可以筛选推荐列表,将用户不喜欢的类别中的选项排除。
利用言语行为识别对话中可执行的项目
我们一直在做另外一个有趣的试验,那就是应用言语行动来提取会议要点。 这和概括新闻消息有所不同,因为我们很难获得已标注的数据,所以无法对提供会议概要(即会议要点)的问题进行充分研究。 对于什么内容属于会议要点,这一点有很强的主观性。 例如,工程师可能会关注会议中讨论的实现细节,而产品经理可能并不会关注技术细节。 由于存在这种主观性,再加上会议数据具有机密性,所以我们很难获取已标注的数据并将其用于训练模型。 相关文献和内部调查显示,人们一致认为,行动项目和后续行动应成为会议的关键要点。 受此启发,我们将重点缩小到识别会议中的可执行项目。 下方是我们所说的一些可执行项目的示例。 行动项目的表达方式似乎可归为两大类:说话者承诺采取行动和说话者发出命令。 基于这一观察结果,我们发现可以利用言语行为很好地解决这个问题。 针对这一任务的言语行为分类按如下方式定义:
- 承诺 [COM] – 说话者承诺做某事
- “我会给你发送一封说明详细信息的电子邮件”
- “我会安排周一和 Jerry 开个会”
- 指令 [DIR] – 说话者要求听者做某事
- “你明天可以跟他们保持同步吗?”
- “你怎么评估这个项目?”
- 详细说明 [ELB] – 说话者对承诺或指令做出更加详细的说明
- “我今天会安排和 Emma 开个会。 主要议程是跟她详细讨论这个项目。” (对承诺做出详细说明)
- “你应该处理一下这个文档, 这样可以更轻松进行共享。” (对指令做出详细说明)
- 承认事实 [ACK] – 说话者承认某个事实
- “是啊,听起来不错”
- “对我来说很有用”
有些承诺和指令的行动范围仅限于会议开展期间,所以不一定属于会议要点。 例如:“我来共享一下我的屏幕”、“能看到我的 Chrome 窗口吗?” 为了应对这种情况,我们需要进一步将 COM 和 DIR 细分为会中 (IM) 和会后 (PM) 这两类。 归类为 COM-PM 或 DIR-PM 的句子是我们要为用户捕捉的可执行项目。 我们会根据从会议中获取的 5 万个已标注这些标签的句子,对预先训练的 RoBERTa(一种转换器变体)模型进行微调。 对一组 3000 个留存的句子进行测试时,这个模型预测言语行为的准确度约为 82%。 为了评估确定会议要点的最终目标,我们邀请了两位标注专家用二进制标签对 12 次会议进行标注,确定会议中的哪些句子属于要点。 这个模型的准确率高达 88%,即模型预测的 100 个要点中,有 88 个预测准确。 然而,这个模型的召回率为 42%,说明超过 50% 的要点要么被模型遗漏,要么不符合承诺或指令的模式。 虽然我们仍有很大空间需要改进,但目前的高精确率还是令人感到非常欣喜。
其他应用
我们只分享了两个可以有效应用言语行为的例子,但在实际情况中还有很多其他使用案例。 言语行为有助于理解对话的中心结构,对分析呼叫中心的对话日志大有帮助。 最近有一篇文章专注于研究如何自动生成礼貌用语,提出利用言语行为分类器来识别表述不礼貌的句子,然后进行必要的纠正。 此外,还可以研究一些开放的数据集,例如 Switchboard 语料库和 ICSI 会议记录器语料库,其中一些对话标注着大量言语行为标签。 在 Webex,我们会在呼叫、消息传送和会议应用以及联络中心解决方案中遇到多种形式的对话言语。 目前,我们才刚刚开始简单地研究如何利用基于言语行为的 NLP 模型帮助我们的客户洞察个人数据。 在接下来的几个月中,敬请关注更多有关这一话题的信息。
有兴趣加入 MindMeld 团队吗? 请发送邮件至 mindmeld-jobs@cisco.com!
关于作者
Varsha Embar 是思科 MindMeld 团队的高级机器学习工程师,在团队中负责构建生产级的对话界面。 她致力于改进核心的自然语言处理平台,包括在缺乏资源的环境设计功能和算法,以及解决一些非常困难的问题,例如在嘈杂的会议转录中提取要点和行动项目。 在加入 MindMeld 之前,Varsha 在卡内基梅隆大学获得了机器学习和自然语言处理硕士学位。 注册 Webex 访问我们的主页或直接联系我们,以获得帮助。 点击此处详细了解 Webex 提供的产品和服务,并注册免费账户。