Page 417 - 《软件学报》2026年第3期
P. 417
1380 软件学报 2026 年第 37 卷第 3 期
个更为紧凑的特征空间中. 该编码器以代码级嵌入作为输入, 并且利用自注意力机制来捕捉和学习医疗事件之间
的结构关系. 具体而言, 压缩编码器由原型对齐引导的自注意力模块构成, 其数学表达如下:
t
(
t
t
C = A H ,Z ,Z t ) (2)
∗ ∗ ∗ ∗
( √ )
T
A(Q,K,V) = Softmax QK / Υ ·V (3)
)
(
t
t
t
t
t
,
其中, Z = A Q ,H ,H 且∗ ∈ {m,d, p} Q 为可学习的原型矩阵, Υ 为相关系数. 在获得 3 个医疗事件 (诊断、手术、
∗ # ∗ ∗ #
t
药物) 的编码集表示后, 将这些表征整合为患者综合表征 P , 作为当前就诊中患者的综合状态表征, 具体形式如下:
[ ( ) ( ) ( )]
t
t
P = Ξ C t−1 ⊕Ξ C ⊕Ξ C t (4)
m d p
其中, Ξ 表示求和操作, 用于合并历史问诊信息, 例如对于前一次问诊的药物使用信息 C m t−1 , 通过求和操作可以将
不同时间点关于药物使用的相关信息进行整合, 突出药物使用的总体趋势和累积影响; ⊕ 代表拼接操作, C t−1 、 C t
m d
t
和 C 分别表示前一次问诊的药物使用信息、当前的诊断信息和手术信息. 通过这一操作, 综合了多源的特征信
p
息, 为后续患者-药物交互建模提供高判别性的表征基础.
2.3 患者纵向表征
在具体的临床诊断中, 医生为了做出准确的诊断往往需要参考患者的病史. 现有的模型在处理患者病史数据
时, 通常采用循环神经网络 (RNN) 来对这部分信息进行建模, 以学习患者的纵向表征, 即从患者的历史医疗信息
中挖掘出随时间变化的健康特征和规律. RNN 模型存在着一些明显的局限性. 一方面, 当面对长时间序列的数据
时, RNN 在建模过程中会遇到梯度消失或梯度爆炸等问题, 导致无法有效地对长序列进行建模, 从而难以充分捕
捉患者长时间内积累的病史信息. 另一方面, RNN 无法根据不同序列输入的重要程度动态调整权重, 这使得它在
处理复杂的患者病史数据时, 不能准确地突出关键信息, 无法充分建模患者的纵向依赖信息, 即无法很好地理解患
者不同时间点的医疗信息之间的关联和依赖关系. 受到 block-recurrent Transformer 等工作 [49,50] 的启发, 本文设计
了一个循环注意力网络 RAN, 旨在将注意力机制与 RNN 模型相结合来更好地建模患者纵向表征. 在循环注意力
网络中, 患者综合表征和隐藏状态向量之间的更新流至关重要, 因为这决定了模型如何理解患者数据.
在处理患者医疗信息时, 考虑到患者隐私的极端重要性, 本文借鉴 GPT (generative pre-trained Transformer) [51]
大模型的思想, 通过添加掩码向量以防止在建模患者历史问诊记录时个人健康信息被泄露. 具体来说, 就是通过添
加掩码向量的方式来防止在对患者历史问诊记录进行建模时特征被意外泄露, 使得模型在学习过程中不会直接接
触到这些隐私数据, 从而在保证模型性能的同时, 最大程度地保护患者的隐私. 具体地, 通过状态向量结合注意力
机制来挖掘患者问诊信息:
t
t
(
t
Q = A P ,S ,S t ) (5)
c
(
t
t
t
Q = A P ,P ,P t ) (6)
s
t
其中, S 表示隐藏状态, 其在处理序列数据时负责存储和传递患者问诊的时序信息, 可以理解为一个携带了患者历
t
史信息的 “记忆单元”, 随着模型对序列数据的逐步处理, 它不断更新并保留患者在不同时间点的关键信息. Q 和
c
Q 分别表示通过交叉注意力和自注意力后的表征, 在这个过程中, 相当一部分信息更新的任务被委托到生成注意
t
s
力权重的过程中.
为了使模型能够更好地捕获患者历史问诊记录中的纵向信息, RAN 模型对隐藏状态向量和问诊级别表示之
间的更新流进行了优化. 问诊级表征的更新流从当前问诊中的隐藏状态和患者综合表征中学习纵向信息, 即基于
历史状态表征来更新信息, 具体公式如下:
]
[
t
t
T
t
t
ˆ P = F( Q ⊕ Q W + P ) (7)
c s π
其中, F : R → R dim 是一个残差映射, W π ∈ R n p ×d p 是一个可学习的权重矩阵.
d p
S 携带患者的时间信息, 问诊级表征基于历史状态表征更新信息, 使得模型能够在处理当前问
t
隐藏状态向量
诊信息时, 充分利用患者的历史信息, 从而更准确地理解患者的健康状况. 类似于问诊级表征更新流, 状态向量的
更新函数可以表示如下:

