| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 语音助手——多轮会话(流程实现篇) -> 正文阅读 |
|
[人工智能]语音助手——多轮会话(流程实现篇) |
? ? ? ? 这一章,我们一起来看一下语音助手中的多轮会话的主要流程。这里主要讲的是开放域中的语义顺承和省略补全的实现。省略补全是指当前query不结合上文时没有明显意图,但是结合上文就可以获取到意图,而语义顺承则是本轮有意图,但是部分槽位缺失,此时结合上文就可以获取到有用的槽位信息。来看下下面的流程图: ? ? ? ? ?下面对一些模块进行解释: 1、用户意图识别? ? ? ? 该模块为了识别用户意图,为正常流程中的模块,当存在意图时,则具备语义顺承的潜质,当不存在意图时,则具备省略补全的潜质,需要再结合下面的流程具体判断。 2、关联识别目的:关联识别主要目的有两个:
实现方式: ? ? ? ? 这里的实现既可以使用规则来实现,也可以使用模型来实现,模型方面可以使用相关度模型,比如典型的DSSM,规则方面则可以维护一个上下文关联意图的黑白名单。同时判断上下文是否关联除了语义上是否存在关联外,还需要对时间窗口进行限制,超过时间窗口则不再认为有效。 3、槽位对齐?? ? ? ? ?槽位对齐是指对槽位的一些操作,比如添加、修改、删除等操作,可以使用三元组来表示:(槽位A,对齐操作O,槽位B),表示利用槽位A的信息对槽位B执行对其操作O,比如下面的例子:
? ? ? ? 在槽位对齐时需要满足以下两点:
4、知识校验? ? ? ? 知识校验是指对需要填充的槽位进行合法性校验,判断槽位进行修改是否合理,这里可以结合知识图谱,根据槽位中实体的相关属性进行校验,比如下面的例子:
????????对于经过知识校验后,判定不合理的槽位, 需要进行知识冲突处理,比如意图跳转(即跳转为其他意图执行)、槽位重置(清空或者重置槽位)、多轮询问(增加一轮询问获取合理的槽位) 一些想法:? ? ? ? 上面的方案,是将多轮处理的流程模块化,这样的好处为流程和效果可控制,同时可以进行部分模块的升级,比如将某个模块替换为模型来提高准召性,如果某些场景想收紧多轮策略,也会很方便。对于大部分的多轮需求,通过上面的流程都可以实现。 ? ? ? ? 上面的方案虽然比较实用,但是不够kool,如果有一个端到端的模型直接通过query改写来实现多轮,或者有一个端到端的模型同时实现上下文关联识别和槽位对齐,会显得更加高级。 ? ? ? ? query改写方案其实比较简单,通过一个encoder-decoder模型就可以实现,一些用于翻译任务的模型都可以拿来做。 ? ? ? ? 另外一种方式为一篇论文的实现《Incomplete Utterance Rewriting as Semantic Segmentation》,这篇文章的主要思想为参考了图像中的语义切割的思路,将其用于文本的切割,找到上下文中的关联槽位以及可替换的部分。 ?大家可以自己看下,论文链接为:https://arxiv.org/pdf/2009.13166.pdf |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 12:35:24- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |