Page 156 - 《软件学报》2025年第4期
P. 156

1562                                                       软件学报  2025  年第  36  卷第  4  期


                    生成式槽填充任务最终的训练目标是最小化下面的损失函数:

                                                        ∑
                                                     L =   logp(V|u t ,T)                             (3)
                                                          t
                 2.4   话语填充任务
                    为了能够更好地建立槽类型与话语中槽实体之间的映射, 并且加强槽实体与话语文本之间的潜在依赖关系,
                 本文设计了话语填充子任务. 如图          4  所示, 该任务同样采用生成的方式利用提示中的实体对话语进行修复生成. 本
                 文首先对用户话语中存在的槽实体“tea place”和“seven”进行掩码, 将这两个槽实体拼接到其对应的槽提示后, 模型
                 通过给定的提示信息对话语中的掩码部分进行填充, 话语填充任务的提示表示如下:

                                                    ′
                                                   T = Q(s 1 ),v 1 ,...,Q(s n ),v n                   (4)

                                                        ′
                                                       u = MASK(u t )                                 (5)
                                                        t
                                                ′        ′  ′
                                              V = Seq2seq(u ,T ) = M 1 ,v 1 ,..., M n ,v n            (6)
                                                         t
                                                                                               i
                    具体而言, 对于话语中的槽实体使用            M i  进行掩码, 依次将  M i  替换到每个实体的位置, 然后将第   个槽实体          v i
                                                                            t
                                                                                           ′
                                                       ′                               ′  T  拼接作为模型的
                                                       restaurant_type
                 拼接到相应的槽提示后, 构成该任务的提示模板               T  . 模型将经过掩码后的第   个用户话语         u  与
                                                                                       t
                                                                                                 ′
                 输入, 模型可以根据提示模板选择相应的槽实体对原文进行填充. 同样地, 模型生成相应的槽实体序列                               V  , 生成序
                 列中使用   M i  作为标识词与话语中的掩码词相呼应, 每个           M i  后的实体词是对原文中的掩码部分          M i  的填充词.
                    此外, 对于话语中不存在槽实体的槽类型, 在槽类型提示后拼接                    None 标识, 并且不进行掩码操作, 在生成阶
                 段对应的槽实体生成       None 即可. 话语填充任务的训练目标是最小化下面的损失函数:

                                                        ∑
                                                     ′
                                                                ′
                                                                    ′
                                                                 ′
                                                    L =   logp(V |u ,T )                              (7)
                                                          t      t
                 2.5   提示整合模板
                    对于多个槽提示, 为了加强不同槽类型之间的依赖关系, 本文提出的方法设计了整合模块来连接多个槽类型.
                 该模块由两部分组成, 包括描述槽类型的槽语义提示和槽共享提示.
                    早期的工作从槽类型的多方信息考虑, 包括领域描述信息、针对槽类型本身构造的问题以及槽类型对应的数
                 据示例, 这使得建模的过程过于冗余并且有较强的领域依赖性, 不够灵活. 本文只借助槽类型描述词作为语义提
                 示, 帮助模型更好地理解不同的槽类型含义, 模型感知一部分先验知识后, 进而激发预训练模型的语言理解能力,
                 从而增强模型的槽实体生成性能. 表           1  是不同领域槽类型描述.

                                                  表 1 不同领域槽类型描述

                                   领域                    槽类型                    槽类型描述
                                                        timeRange               time range
                                                      current_location         current location
                                 GetWeather            geographic_poi        geographic position
                                                    condition_temperature       temperature
                                                     condition_description       weather
                                                      restaurant_name          restaurant name
                                                                               restaurant type
                               BookRestaurant         part_size_number           number
                                                        served_dish             served dish
                                                    party_size_description        person

                    此外, 考虑到简单地利用槽类型描述不足以充分构建槽类型之间的联系, 本文在整合模块部分增加了可学习
                 的序列作为槽共享提示, 从而更好地建立不同槽类型之间的依赖关系. 传统的离散提示虽然便于直观的理解                                  (直接
                 使用可读性内容作为提示词), 但其构造过程过于主观, 并且最终确定的模板不一定是最优效果, 仍然可以进行改
                 进. 此外, 不同槽类型之间存在的隐式依赖很难通过直观的方式人为定义. 因此, 本文选择使用可学习的嵌入序列
                 来建模不同槽类型共享的提示序列, 该序列在训练过程中可以不断进行调整, 通过训练逐步接近最优的序列表征.
   151   152   153   154   155   156   157   158   159   160   161