[论文阅读]《CrossFormer: Cross-Segment Semantic Fusion for Document Segmentation》

王远洋

关注

阅读 1

1天前

  • 论文总结
  • 一、论文背景与研究动机
  • 主要工作就是文本语义分割
  • 现有方法因输入长度受限,常将文档拆分为固定长度的段落进行处理
  • 导致跨段语义信息丢失,难以捕捉文档整体的语义结构
  • 二、方法简介
  • 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,并执行检索‑生成流程

精彩评论(0)

0 0 举报