Page 219 - 《软件学报》2025年第4期
P. 219
郁俊杰 等: 面向低资源关系抽取的自训练方法 1625
Soares 等人 [3] 的“预训练模型-微调”方法: 以文本中插入实体标记符的序列作为输入, 以预训练模型作为编码层, 并
添加一个分类层作为模型的输出部件. 本文采用 BERT 作为预训练模型 [2] . 形式上, 对于输入实例 x = {s,h,t} , 在输
入模型前, 首先被构造成如下形式:
x = [CLS]w 0 ...[E1]w i ...w j [/E1]...[E2]w k ...w l [/E2]...w n [SEP] (2)
其中, w 0 ,w 1 ,...,w n 是句子 s 中的每个词; 头实体 h = {w i ...w k } ; 尾实体 t = {w k ...w l } ; [CLS]、[SEP] 是 BERT 输入格式
的固有字符; [E1], [/E1] 和 [E2], [/E2] 分别是用于标记头、尾实体的特殊字符. 假定以 f enc 表示预训练模型 BERT
为基础的关系抽取系统中的编码层. 那么, 当输入文本进入编码层后, 我们将两个实体标记符号 ([E1] 和 [E2]) 所
在位置的隐层表示提取出来, 并且拼接后作为实例 x 的关系语义表示:
(3)
h = f enc (x) = h [E1] ⊕ h [E2]
随后, 该关系表示被输入给分类层 f cls , 用于获取每个关系类别的预测概率:
p(x) = f cls (h) = Softmax(Wh+b) (4)
其中, W 和 b 是分类层的模型参数.
也能够减少其他语言文本的生成, 特别是针对中英文预训练的
x 都带有唯一确定的标签 , 其以 one-hot 的形式记录: 只有答案类别对应的位
在训练过程中, 每个输入实例 y
置记为 1, 其余都为 0 的向量. 模型参数的更新采用基于交叉熵的正向训练 (positive training) 方式:
M ∑
L PT (p(x),y) = − y i log(p i ) (5)
i=1
其中, M 为关系类别总数.
3.2 复述数据的生成
本文提出引入复述技术来提高教师模型对未标注数据的预测能力. 为此, 我们首先为未标注数据生成相应的
复述数据. 近年来, 随着大语言模型的发展, 基于大语言模型的数据生成能力也逐渐增强. 得益于大规模数据的预
训练和一定规模人类平行语料的微调, 大语言模型能够在给定提示指令下完成诸如文本翻译、句子复述等文本生
成任务. 本文使用大语言模型的指令提示方法 (prompt) 为每一个未标注句子生成若干复述表达. 最后, 原句和复述
句构成句子包的形式输入到教师模型进行自动标注.
然而, 不同于一般文本复述生成, 面向关系抽取任务的复述表达需要保证句子中给定实体对 (头、尾实体) 不
能发生变化. 换句话说, 生成的复述句子中需确保原句中两个实体词的存在. 通过统计不同生成指令下生成文本中
头、尾实体的情况, 我们对生成指令不断改进. 最终, 本文精心设计了如下复述生成指令来引导大语言模型生成符
合关系抽取任务需求的复述数据:
Below is a sentence containing words <head > and <tail>, rewrite the input sentence in English in a different
expression while keeping the words <head> and <tail>.
Input Sentence is: <input_sen>
Output Sentence is:
其中, <head> 和<tail> 是具体输入句子<input_sen> 中的头实体和尾实体. 本文采纳国内近期开源的 ChatGLM2-
6B 模型 [42,43] , 超参数沿用其默认设置: temperature=0.95, top_p=0.7. 在实验中, 我们发现在指令的结尾处添加
“keeping the words <head> and <tail>”能够有效地引导模型保留头、尾实体词. 此外, 添加“in English”来指定语言
ChatGLM2 模型.
为了保证复述句子的多样性, 我们在至多 20 次生成操作内为每个句子配备多个复述句子作为辅助句, 并与主
句组成句子包: {主句,辅句 1 ,…,辅句 N }, 其中 N 至多为 8. 基于上述设计的实体词强调指令. 同时, 我们额外添加了
基于实体词的后过滤方法来确保生成数据的质量.
3.3 数据分类与标签生成
如算法 1 所示, 本文自训练方法 ST-LRE 将自动标注数据分成 3 大类: (1) 原句或者复述句中最大预测概率大