Page 327 - 《软件学报》2026年第2期
P. 327

806                                                        软件学报  2026  年第  37  卷第  2  期


                 外部知识与时间序列的处理解耦合, 使得训练阶段可以利用外部知识增强算法选择器的学习. 而在线测试阶段与
                 第  2.3  节介绍的流水线完全相同, 仅利用时间序列分类模型进行算法选择, 从而避免因测试阶段缺乏知识而影响
                 算法选择的效果. 不仅如此, 将外部知识处理模块解耦合, 能使其与任意时间序列分类网络架构无缝集成, 提高普
                 适性. 且在测试阶段, 相较于现有的无知识融入方法不会增加额外的计算.
                    如图   2  所示, 外部知识融合模块主要包含两部分. 首先, 将各类时间序列异常检测知识统一表述为提示词
                 (prompt) [33] , 并通过预训练的大语言模型   [32] 对提示词进行编码, 利用大语言模型的通用理解能力, 将外部知识转换
                 为向量化的知识表征. 接着, 基于时间序列与外部知识间的对比学习                     [34] , 最大化时间序列表征与知识表征的互信
                 息, 从而利用时间序列异常检测有关的外部知识指导时间序列特征的学习. 训练得到的时间序列分类模型                                   f  作为
                 算法选择器, 实现异常检测算法的自动选择. 该模块的详细介绍如下.
                    为了实现各类时间序列异常检测知识的灵活运用, 利用提示词模板, 将外部知识统一表述为提示词. 提示词模
                 板的示例见表     2.


                                             表 2 表述外部知识的提示词模板示例

                            知识种类                                         模板
                            应用领域                          这个时间序列来自{领域名称}. {应用场景描述}.
                          时间序列特征                            该序列的长度为{长度}. 平均值为{均值}…
                            异常特征                      该序列包含{数目}处异常. 持续长度为{长度1}, {长度2}, …
                              …                                           …

                    图  4  以一个云原生数据库存储设备监控应用为例说明了利用提示词模板描述的时间序列异常检测外部知识.
                 该应用中的时间序列记录了存储设备的每秒                I/O  操作. 图  4(a) 所展示的序列为原始时间序列分割而成的一个长
                 为  128  的子序列, 其在第  99–104  个采样点上   I/O  操作过于频繁, 表示系统出现异常. 基于表          2  中的提示词模板, 该
                 时间序列对应的异常检测有关外部知识表述如图                 4(b) 所示.


                         2   时间序列                                   这个时间序列来自{云原生数据库存储设
                             异常标签                                   备监控}. {记录存储设备的每秒 I/O 操作.
                         1
                                                                    反映了该云原生数据库上网络服务的规
                         0                                          模、质量和机器的运行状况}. 该序列的
                        −1                                          长度为{128}. 平均值为{0.153 8}. 该序列
                                                                    包含{1}处异常. 持续长度为{6}.
                           0    20  40   60   80  100  120
                             (a) 长度为 128 的子序列 T i,128  及其异常标签               (b) 外部知识
                                   图 4 时间序列、异常标签及利用提示词模板表述的外部知识示例

                    采用上述的提示词方式, 仅需根据业务知识对提示词模板进行简单调整, 即可灵活描述各类时间序列异常检
                 测有关的外部知识.
                    以提示词为基础, 考虑到外部知识的语义复杂性和多样性, 知识融合模块利用预训练的大语言模型的通用理

                 解能力, 将知识映射为统一的表征, 以便于将其融入算法选择器                   f .
                    由于外部知识是对相应时间序列数据中所蕴含的关键信息的凝练, 二者在决定最优时间序列异常检测算法这
                 个维度应具备语义一致性. 从该视角出发, 本文通过时间序列与外部知识间的对比学习来最大化其互信息                                   [34] , 从
                                                                                            D T  T i,l  对应的
                 而利用外部知识提高编码器          E T  对时间序列特征的表达能力. 给定时间序列            T i,l  及其表征   x T,i,l ∈ R , 记
                                D K
                 知识表征为    x K,i,l ∈ R , 首先通过映射函数  g T  和  g K , 将   x T,i,l  和  x K,i,l  分别映射到共享的空间. 表示为:

                                                     z T,i,l = g T (x T,i,l ) ∈ R D                  (13)

                                                     z K,i,l = g K (x K,i,l ) ∈ R D                  (14)
                    继而, 在共享空间      R D   上, 最小化时间序列表征    z T,i,l  和其对应的知识表征  z K,i,l  之间的距离, 同时最大化  z T,i,l  和
   322   323   324   325   326   327   328   329   330   331   332