- 论文总结
- 一、论文背景与研究动机
- 主要工作就是文本语义分割
- 现有方法因输入长度受限,常将文档拆分为固定长度的段落进行处理
- 导致跨段语义信息丢失,难以捕捉文档整体的语义结构
- 二、方法简介
- 1. 任务定义与文档预处理
- (1)分割要点
- 将文档视作句子序列 D={s1,…,sn}
- 为每个句子末尾添加特殊符号 [SENT]
- 预处理:先按句子(长度 ≤ L)拆分并截断,再将句子依次拼接成若干段落(长度 ≤ M)
- 每个段落以 [CLS] 开始,以 [SEP] 结束(见算法 1)
- (2)分割算法
- 输入参数:
- 输出:
- 算法步骤:
- 2. CrossFormer 架构
- ① 预训练语言模型(PLM)编码 —— “把每段话变成向量”
- 对每个段落进行标记
- 然后把这些段落输入进行embeeding
- ② Cross‑Segment Fusion Module (CSFM) —— “让这些段落彼此交流”
- (1)对每一段求下面内容
- [CLS] 表示段落大概讲了什么
- [SEP] 表示段尾的内容
- 二者的差值 h_seg = h[CLS] − h[SEP] 可以看作“这一段从头到尾讲的变化”
- (2)提取h_globel
- 把所有段落的 h_seg 做“最大池化”(MaxPooling)
- 从中挑出最显著的维度,得到一个全局语义向量 h_global
- ③ 和每个 [SENT] 向量拼接 —— “全局语义+局部语义=判断是否该分段”
- 现在有了每个 [SENT] 对应的向量(局部上下文的语义)
- 又有一个 h_global(全文的“大意”)
- 把这两者拼起来,让模型去判断这个点是不是“该换段”的点
- 👉 模型怎么判断?
- 拼接后的向量送进两个“全连接层”(就像神经网络里的判断器)
- 最后走一个线性分类器 + Softmax,输出两个概率:
- 是分段(1)
- 不是分段(0)
- ④ 损失函数 —— “模型学习的方向”
- 模型预测出的是每个句子后是不是要换段
- 用标准的交叉熵损失函数,计算“模型预测 vs 真实答案”的差距,指导模型不断优化,分段越来越准确
- 3. 作为 RAG 文本切分器的集成
- 进行一个基础的BaseRAG
- 三、工作流程
- 文档分句 & 截断:依据标点或行分隔,保证句长 ≤ L
- 段落拼接:将句子拼接成多段(长度 ≤ M、段数 ≤ K)
- PLM 编码:对每段并行编码,提取[CLS]、[SEP]、[SENT]向量
- 跨段语义融合(CSFM):
- 生成最终段落:根据分类结果切分文档。
- RAG 递归切分 & 检索:将语义连贯的段落作为 chunk,并执行检索‑生成流程