PodSumm:播客音频摘要
论文地址
简介
最近播客的流行给现有的内容发现和推荐系统带来了巨⼤的机遇和⼀系列独特的挑战。与听音乐不同,播客通常需要听众长时间积极关注。演讲者的演讲风格、幽默类型或制作质量等主观属性可能会影响听众的偏好,但很难从文本描述中辨别出来。
在视频领域,电影预告片允许观众预览⼀些内容并做出观看电影的主观决定。播客的频繁发布会使为每⼀集制作此类预告片变得不切实际。音频摘要显示出提高语⾳⽂档搜索算法性能的希望[13]。我们提出了⼀种以⾃动⽅式创建简短播客音频摘要的⽅法。这样的摘要可以让听众了解播客的主题以及主观属性,如演示风格和制作质量。
播客对基于音频的摘要算法提出了⼀系列独特的挑战。例如,播客通常侧重于⼝语内容,并且通常包含来⾃多个说话者的重叠语音、自由形式的语音、音频效果、背景音乐和⼴告。在⾳频领域运⾏的监督学习算法必须先识别音频片段的性质,然后才能判断其重要性。这将需要通过多次收听⾳频来⼿动注释⼤量训练数据,这是⼀个困难且耗时的过程。
然而,由于播客主要包含⼝语内容,因此也可以在剧集的转录本的⽂本域中执⾏摘要。在这项⼯作中,我们提出了我们的Podcast Summarization (PodSumm) ⽅法来获取由⽂本域引导的播客⾳频摘要。 PodSumm 的⼯作原理是**首先转录播客的⼝语内容,然后识别转录中的重要句⼦,最后将各个⾳频⽚段拼接在⼀起。**我们引⼊了⼀个协议并创建了⼀个特定于此任务的内部数据集。
方法
3.1.PodSumm架构
PodSumm方法包含一系列步骤,从原始音频流开始,生成音频摘要作为输出。这个过程的第一阶段是自动语音识别,它会生成转录本。然后处理文本,将每个播客转录本分割成句子。最后,使用微调的文本摘要模型来选择重要的句子包含在最终的摘要中。
自动语音识别
自动语音识别的方法执行语音到文本转录的任务。他们处理与不同口音、韵律和声学特征以及说话者数量统计相关的复杂问题。ASR转录的质量差异很大,取决于基础训练数据。我们利用了一个公开可用的现成的解决方案(AWS Transcribe),这使得我们能够限制错误并且专注于我们的其他核心模块。
文本处理
在语音识别模块得到的转录文本包含以下元组:
- 单个单词或者标点符号的文本
- 音频的开始和结束时间戳
- 文本预测的置信度分数
我们使用Spacy(一个工业级自然语言处理工具),将文本分割成句子,以及分割他们在音频中相应的开始和结束时间。此外,在单词之间出现超过2秒的停顿时强行断句。这样做能帮助我们更好地处理ASR方法中遗漏标点符号的情况,这种情况通常发生在语音片段之间播放音乐时。
文本摘要生成
然后,我们利用提取式文本摘要领域的进步,通过从转录本中选择合适的句子来构建文本摘要。我们选择PreSumm模型,该模型建立在Bert的基础上,以获得句子级编码,并堆叠句间Transformer层以捕获文档级特征来进行摘要。
我们发现,在CNN/DailyMail数据集上预训练的PreSumm模型无法为播客生成足够的摘要。由于缺乏用于此任务的研究数据集,我们创建了一个数据集来进一步微调播客模型,具体描述在3.2节。
提取式PreSumm模型通过一个文档生成摘要时,把每个句子分配一个在 y i y_{i} yi∈[0,1]内的分数,表明把这句话排除或者包含在生成的摘要内。模型通过一个二分类任务交叉熵损失来进行训练,以捕获真实标签 y i y_{i} yi和预测值的差异。
音频生成
文本摘要模型的预测包括句子索引和相对应的分数。使用存储的句子的偏移量,将代表所选句子的音频拼接在一起以获得音频摘要。
3.2数据集创建
为了解决播客摘要任务缺乏数据集的问题,我们整理了⼀个数据集来⽀持我们⽅法的开发和评估。我们从不同类型中选择了 19 个独特的播客系列,平均每个系列选择16.3±6.28集。该数据集包含总共 188 ⼩时的播客,平均每集持续时间为 36.5 ± 19.8 分钟。我们构建了⼀个注释⼯具,该⼯具向注释者展⽰剧集抄本中的⼀系列句⼦,以及播客提要中的元数据,包括剧集的原始⾳频。每个句⼦都与相应的⾳频⽚段配对,使⽤每个⽚段的偏移量导出。
3.3模型训练
从PreSumm模型开始,该模型在CNN/DailyMail数据集上预训练了18000步。然后,我们在我们的播客数据集上微调模型6000步……
Text Summarization with Pretrained Encoders(PreSumm模型)
论文地址
摘要
在本文中,我们展示了如何在文本摘要中有效地应用BERT,并为提取性模型和抽象模型提出了一个通用框架。我们介绍了基于BERT的新颖文档级编码器,该编码器能够表达文档的语义并获得其句子的表示形式。我们的提取模型是通过堆叠几个句子之间的 Transformer层来建立在该编码器之上的。对于抽象性摘要,我们提出了一个新的微调计划,该计划对encoder和decoder采用不同的优化器,作为减轻两者之间不匹配的手段(前者经过预训练,后者没有)。我们还证明,两级微调方法可以进一步提高生成的摘要的质量。三个数据集的实验表明,我们的模型在提取和抽象设置中全面达到了状态结果。
介绍
在大多数情况下,预训练的语言模型已被用作句子和段落级的自然语言理解问题的编码器,涉及各种分类任务(例如,预测任何两个句子是否处于综合关系;或确定在四个可选择的句子中完成句子的完成)。在本文中,我们研究了预训练的语言模型对文本摘要的影响。与以前的任务不同,摘要需要广泛覆盖的自然语言理解超出单个单词和句子的含义。目的是将文档浓缩到一个较短的版本中,同时保留其大部分含义。此外,在抽象建模公式下,任务需要语言生成功能,以创建包含源文本中未列出的新颖单词和短语的摘要,而提取性摘要通常定义为带有标签的二进制分类任务句子应包括在摘要中。
本文研究了语言模型预训练对文本摘要的影响。摘要不同于以往的任务,它要求广泛的自然语言理解超出单个单词和句子的意义。其目的是将文档压缩成较短的版本,同时保留其大部分含义。此外,在抽象摘要任务中,该任务需要语言生成能力,以便创建包含源文本中未出现的新单词和短语的摘要。
我们探讨了BERT在包含提取性和抽象建模范式的一般框架下的文本摘要的潜力。我们提出了一个基于BERT的新颖的文档级别水平的编码器,该编码器能够编码文档并获得其句子的表示形式。我们的提取式模型是通过堆叠几个句子间的 Transformer层来捕获用于提取句子的文档级别特征的基础上构建的。我们的抽象式模型采用encoder-decoder架构,将相同的预训练Bert的encoder和随机初始化的Transformers的decoder结合。我们设计了一个新的训练计划,该计划将encoder和decoder的优化器分开,以适应已经预训练的encoder和decoder必须从头开始训练的实际情况。最后,以前的工作表明,提取性和抽象式的结合可以帮助产生更好的摘要,我们提出了一种两阶段的方法,其中encoder进行了两次微调,第一次是提取式目标,然后是抽象性摘要任务。
2.背景
2.1预训练模型
最近,预训练语言模型成为在各种自然语言任务中获得令人印象深刻的成就的关键技术。这些模型扩展了词嵌入的想法,通过使用语言建模目标从大规模语料库中学习上下文表示。BERT是一种新的语言表示模型,该模型经过3300万单词的语料库进行了“掩盖语言建模”和“下一个句子预测”任务的训练。
BERT的一般架构如图1左侧所示。
输入文本首先通过插入两个特殊token进行预处理。[CLS]添加到文本的开头;该token的输出表示形式用于从整个序列(例如,用于分类任务)中汇总信息。在每个句子之后,将token[SEP]作为一个句子的边界指标插入。然后,修改后的文本表示为一个token序列
X
=
[
w
1
,
w
2
,
w
3
,
.
.
.
,
w
n
]
X=[w_{1},w_{2},w_{3},...,w_{n}]
X=[w1,w2,w3,...,wn]。每个token
w
i
w_{i}
wi被分配三个种类的Embedding:token Embedding表示每个token的含义,segmentation embedding被用于区分两个句子(例如,在句子对分类任务中),position embedding表明每个token在文本序列中的位置。三个embedding相加,作为一个输入向量
x
i
x_{i}
xi,输入到多层双向Transformer中:
h
0
=
x
h^{0}=x
h0=x是输入向量;LN是层归一化操作;MHAtt是多头注意力操作;上标
l
l
l表示堆叠层的深度。在最顶层,BERT为每一个token产生一个输出向量
t
i
t_{i}
ti,它有着丰富上下文信息。
预训练的语言模型通常用于增强语言理解任务的效果。最近,已经尝试将预训练模型应用于各种生成任务。当对特定任务进行微调时,与通常固定参数的Elmo不同,BERT中的参数与其他特定任务的参数共同参与微调。
2.2提取式摘要
提取性摘要系统通过识别文档中最重要的句子来创建摘要。神经网络模型把提取式摘要作为一个句子分类任务:神经编码器创建句子表示,分类器预测应选择哪些句子作为摘要。SUMMARUNNER是采用基于RNN神经网络编码器的最早神经方法之一。REFRESH是一种基于强化学习的系统,该系统通过全局优化ROUGE指标进行训练。最近的工作通过更复杂的模型结构实现了更高的性能。LATENT框架提取摘要作为一个潜在变量推理问题。它们的潜在模型不是最大化“gold”标准标签的可能性,而是直接使基于被选择的句子的人类摘要的可能性最大化。SUMO利用结构化注意的概念,以促使文档的多根依赖树表示,同时预测输出摘要。NEUSUM同时使用打分和选择句子,代表了提取式摘要的最先进的技术。
2.3抽象式摘要
抽象性摘要的神经方法将任务概念化为序列到序列问题,其中encoder映射原始文档中的token序列 x = [ x 1 , . . . , x n ] x = [x_{1},...,x_{n}] x=[x1,...,xn]到连续表示的序列 z = [ z 1 , . . . , z n ] z = [z_{1},...,z_{n}] z=[z1,...,zn],然后decoder以自回归方式生成目标摘要 y = [ y 1 , . . . , y m ] y=[y_{1},...,y_{m}] y=[y1,...,ym],因此对条件概率进行建模: p ( y 1 , . . . , y m ∣ x 1 , . . . , x n ) p(y_{1},...,y_{m}|x_{1},...,x_{n}) p(y1,...,ym∣x1,...,xn)。
……
3.微调BERT用于摘要
3.1 摘要编码器
尽管BERT已用于微调各种NLP任务,但其用于摘要的应用并不那么简单。由于BERT被作为掩盖语言模型进行训练,因此输出向量直接到token而不是句子,而在提取性摘要中,大多数模型都操纵句子级表示。尽管segmentation embedding 代表BERT中的不同句子,但它们仅适用于 句子对 条件输入,而在摘要任务中,我们必须编码和操纵多个句话输入。图1右侧说明了我们提出的BERT架构以进行摘要。
左边是原始BERT架构,右边是BERTSUM架构。顶部的序列是输入文档,然后将三个embedding的和作为每个token。和向量被用于作为几个双向transformer层的输入embedding,生成每个token的上下文向量。BERTSUM扩展了BERT:插入多个[CLS]符号学习句子表示,使用间隔segment embeddings(在图中以红色和绿色说明)来区分多个句子。
为了表示单个句子,我们在每个句子的开头插入 [CLS] Token,每个 [CLS] 符号都会收集该句子之前的句子的特征。我们还使用segment embedding 来区分文档中的多个句子。对每个句子 s e n t i sent_{i} senti,我们根据 i i i是奇数还是偶数来分配segment embedding E A E_{A} EA 或者 E B E_{B} EB。例如,对于一个文档 [ s e n t 1 , s e n t 2 , s e n t 3 , s e n t 4 , s e n t 5 ] [sent_{1},sent_{2},sent_{3},sent_{4},sent_{5}] [sent1,sent2,sent3,sent4,sent5],我们应当分配embeddings [ E A , E B , E A , E B , E A ] [E_{A},E_{B},E_{A},E_{B},E_{A}] [EA,EB,EA,EB,EA]。这样,从层次上学习了文档表示,其中较低的Transformer层代表相邻的句子,而较高的层与自注意力结合使用,代表有多个句子的话语。
原始BERT模型中的位置嵌入最大长度为512;我们通过添加更多的位置嵌入来克服此限制,这些位置嵌入将随机初始化并用编码器中的其他参数进行微调。
3.2 提取式摘要
用 d d d表示一个包含句子 [ s e n t 1 , s e n t 2 , . . . , s e n t m ] [sent_{1},sent_{2},...,sent_{m}] [sent1,sent2,...,sentm]的文档,其中 s e n t i sent_{i} senti是文档中第 i i i个句子。提取性摘要可以定义为将标签 y i y_{i} yi∈{0,1}分配给每个 s e n t i sent_{i} senti的任务,以表明句子是否应包含在摘要中。它假定了摘要句子代表文档中最重要的内容。
使用BERTSUM,向量
t
i
t_{i}
ti是模型最顶层的第
i
i
i个[CLS]符号对应的向量,作为对
s
e
n
t
i
sent_{i}
senti的表示。然后将几个句子间Transformer层堆叠在BERT输出的上面,以捕获用于提取摘要的文档级特征:
其中,
h
0
=
P
o
s
E
m
b
(
T
)
h^{0}=PosEmb(T)
h0=PosEmb(T);
T
T
T表示BERTSUM的句子向量输出,函数PosEmb将正弦位置嵌入添加到
T
T
T,表明每个句子的位置。
最终的输出层是一个sigmoid分类器:
其中
h
i
L
h_{i}^{L}
hiL是第
L
L
L层Transformer的句子
s
e
n
t
i
sent_{i}
senti的向量。在实验中,我们实现了
L
=
1
,
2
,
3
L=1,2,3
L=1,2,3的Transformer,发现
L
=
2
L=2
L=2的Transformer表现最佳。我们把这个模型命名为BERTSUMEXT。
模型的损失是预测
y
i
y_{i}
yi和真实标签
y
i
y_{i}
yi的二分类熵。句间Transformer层和BERTSUM共同微调。我们使用Adam优化器,
β
1
=
0.9
,
β
2
=
0.999
β_{1}=0.9,β_{2}=0.999
β1=0.9,β2=0.999。学习率计划遵循
w
a
r
m
u
p
=
10
,
000
warmup = 10,000
warmup=10,000 ,
l
r
=
2
e
−
3
⋅
m
i
n
(
s
t
e
p
−
0.5
,
s
t
e
p
⋅
w
a
r
m
u
p
−
1.5
)
lr=2e_{-3} · min (step_{-0.5},step · warmup_{-1.5})
lr=2e−3⋅min(step−0.5,step⋅warmup−1.5)
3.3 抽象式摘要
抽象式摘要使用标准的encoder-decoder框架。encoder是预训练的BertSum,decoder是随机初始化的6层Transformer。可以想象,编码器和解码器之间存在不匹配,因为前者经过预训练,而后者必须从头开始训练。这会使微调不稳定;例如,编码器可能在解码器不足时过度拟合数据,反之亦然。为了解决这个问题,我们设计了一个新的微调计划,该计划将编码器和解码器的优化器分开。
我们为编码器和解码器分别使用两个具有
β
1
=
0.9
β_{1}= 0.9
β1=0.9和
β
2
=
0.999
β_{2}= 0.999
β2=0.999的Adam优化器,每个Adam优化器具有不同的热身步骤和学习率:
其中encoder的
l
r
ε
=
2
e
−
3
lr_{\varepsilon }=2e^{-3}
lrε=2e−3,
w
a
r
m
u
p
ε
=
20
,
000
warmup_{\varepsilon }=20,000
warmupε=20,000。decoder的
l
r
D
=
0.1
lr_{D }=0.1
lrD=0.1,
w
a
r
m
u
p
D
=
10
,
000
warmup_{D }=10,000
warmupD=10,000。这是基于以下假设:预训练的encoder应以较小的学习率和更平滑的衰减进行微调(以便在decoder变得稳定时可以用更准确的梯度训练encoder)。
此外,我们提出了一种两阶段的微调方法,在该方法中,我们首先在提取性摘要任务(第3.2节)中对编码器进行微调,然后在抽象性摘要任务(第3.3节)中对其进行微调。先前的工作表明,使用提取式可以提高抽象式摘要的性能。还要注意,这种两阶段的方法在概念上非常简单,该模型可以利用这两个任务之间共享的信息,而无需改变其体系结构。我们把默认的抽象式模型命名为BertSumABS,两阶段微调的模型命名为BertSumEXTABS。