【每日一读】ACL2020: 基于槽注意力和信息共享的对话状态追踪

在这里插入图片描述
Paper: [ACL2020]SAS: Dialogue State Tracking via Slot Attention and Slot Information Sharing
Link: https://www.aclweb.org/anthology/2020.acl-main.567.pdf

对话状态追踪(Dialogue State Tracking, DST) 的目的,在于从历史的对话记录中推断出当前的对话状态(一般以槽-值对的形式表示),基于对话状态得到用户的真实目的。在这里,借用这篇文章中的一张例图,来看看History, Slot(槽)和Slot-value pair具体指什么:

在这里插入图片描述

在本文的Intro部分,作者首先介绍了以往DST任务存在的一些问题:

  • 现有的基于原始对话来生成对话状态的方法,一般面对两个问题:一是如何从原始对话中选取出与当前状态相关的信息,二是当前对话所需的信息可能出现在很多轮前的对话内容中,如何跨越长距离来抽取所需要的相关信息;

  • 相同领域或包含相同属性的槽往往具有一定的相关性,能够互相提供一定的指导信息,尤其是对于一些数量较少的槽。

基于以上两个问题,本文提出了具有如下两个特点的SAS(Slot Attention and Slot Information Sharing) 模型:

  • 通过 Slot Attention 从历史记录中抽取各个槽所需要的相关信息;
  • 通过 Slot Informaiton Sharing 建模各个槽之间的关联性,实现槽之间的信息共享;

具体地,SAS是一个基于sequence-to-sequence的模型, 他包括四个部分构成:
在这里插入图片描述

  • Encoder: 通过GRU来进行对话历史内容的编码;

  • Slot Attention: 目的在于从过滤对话记录中的无关噪声,捕捉到对当前槽值所需要的信息作为 context vector;例如计算第 j j j个槽对应的context vector,则首先通过GRU对slot name进行编码,然后与对话历史记录进行Slot Attention计算:
    在这里插入图片描述

  • Slot Information Sharing: 目的在于实现相关slot之间的信息共享, 作者具体通过两种方式判断两slot间是否存在关联:

    • Fix Combination Method

      • 分别计算所有slots中slot names两两之间的相似性和slot types (slot type是指这个slot所对应指代的类型,例如resuaurant-area是一个地点类型的slot,而 restaurant-book day 是一个时间类型的slot) 两两之间的相似性,得到两个相似性矩阵。
      • 通过一个范围在[0,1]之间的超参数 α 对 slot name 和 slot type 的相似性进行融合:
        在这里插入图片描述
      • 通过将超参 β 作为相似阈值计算最终的相似度矩阵 M, 其中,若 M i j = 1 M_{ij}=1 Mij=1, 则认为第 i i i个slot和第 j j j个slot之间存在信息共享:
        在这里插入图片描述
    • K-means Sharing Method

      • 分别计算所有slots中slot names两两之间的相似性和slot types
      • 通过K-Means算法将相似度值聚类为两类,一类代表该值对应的两个slot之间是相关的,即 M i j = 1 M_{ij}=1 Mij=1,另一类则表示不相关;
    • 基于相似矩阵 M M MSlot Attention得到的context vector, 将存在关联的slot的context vector相加进行融合:
      在这里插入图片描述

  • Decoder: 目的在于预测每个slot对应的值,具体包括两步完成: 首先,设计slot gate模块,预测slot的value是否被某个用户所包含,若包含,则抽取出对应的value;

    • 第一步,设计 一个三分类的分类器Slot Gate,对编码层的隐状态进行三分类,若分类结果是 ptr, 则继续进行具体value的抽取;若是 nonedontcare, 则将对应slot的值填充为not mentioneddo not care;
    • 第二步,以 Slot Information Sharing 中得到的 i n t j int_{j} intj为初始化表示,通过GRU对slot进行编码:
      在这里插入图片描述
      最后,根据计算的概率从词表或Dialogue History中拷贝具体所需的Value:
      在这里插入图片描述

    作者在MultiWOZ数据集上进行了实验,SAS模型取得了sota效果:
    在这里插入图片描述
    并通过消融实验分析了各个模块的作用:
    在这里插入图片描述


了解更多深度学习相关知识与信息,请关注公众号深度学习的知识小屋

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,关于基于RBAC和ACL自定义开发一个权限框架的Java实现,我可以给您一些建议。RBAC指的是基于角色的访问控制,ACL指的是访问控制列表。这两种访问控制模型可以互相结合,实现更加精细的权限控制。以下是一些实现框架的建议: 1.定义用户、角色和资源 首先,需要定义用户、角色和资源这三个基本概念。在Java中,通常通过类来表达这些概念,例如User、Role和Resource类。其中,用户可以拥有多个角色,角色可以拥有多个资源。具体实现时可以使用集合来存储这些对象,并通过ID或名称进行关联。 2.实现RBAC模型 接下来,可以实现基于角色的访问控制模型。首先,需要定义角色的权限,例如对某个资源的访问权限。这可以通过一个Permissions类来实现。然后,可以给每个角色分配一组权限,表示该角色可以访问哪些资源。最后,在访问该资源时,需要根据用户所拥有的角色来检查其是否有访问权限。 3.实现ACL模型 除了RBAC模型,还可以实现ACL模型来进行更细粒度的权限控制。在ACL模型中,需要为每个资源定义一个访问控制列表,该列表包含可以访问该资源的用户和对应的权限。这可以通过一个AccessControlList类来实现。然后,在访问该资源时,需要在访问控制列表中查找该用户是否有相应的权限。 4.结合RBAC和ACL模型 RBAC和ACL模型可以结合使用,实现更为精细的访问控制。例如,可以使用RBAC模型来控制对资源的访问,使用ACL模型对资源的操作进行管理。具体实现时,需要为每个角色分配一组资源,然后给每个资源定义一个访问控制列表,列表中包含可以对该资源进行操作的用户和相应的权限。 总之,以上就是一个基于RBAC和ACL模型的自定义权限框架的实现建议。在具体实现时,可以根据实际需求进行调整和改进。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值