WebCPM:首个开源的交互式网页搜索中文问答模型
论文题目:
WEBCPM: Interactive Web Search for Chinese Long-form Question Answering
论文日期:2023/05/23(ACL 2023)
论文地址:https://arxiv.org/abs/2305.06849
GitHub
地址:https://arxiv.org/abs/2305.06849
文章目录
Abstract
长文本问答(long-form question answering, LFQA)
旨在用详细的、分段式的回应来回答复杂的、开放式的问题。LFQA
的事实范式需要两个步骤:信息检索(information retrieval)
,搜索相关的支持事实,以及信息合成(information synthesis)
,将这些事实整合成一个连贯的答案。
本文介绍了中国首个LFQA
数据集WebCPM
。WebCPM
的一个独特之处在于它的信息检索是基于交互式网络搜索的,它实时地与搜索引擎进行交互。仿照WebGPT
,作者开发了一个网页搜索界面,招募一些标注员,使用这个界面搜索相关信息,然后回答问题。同时,标注员的网页搜索行为会被记录下来。作者总共收集了5500
个高质量的问答对,以及15372
个支持事实(supporting facts)
和125954
个网页搜索行为。对预训练的语言模型进行微调,以模仿人类的网页搜索行为,并根据收集到的事实生成答案。LFQA pipeline
建立在这些微调模型的基础上,在数据集WebCPM
和DuReader
上分别有32.5%
和47.5%
的情况下,生成的答案并不比人类编写的答案差。
1. Introduction
LFQA
的目标是用详细的、段落长度的回答回答复杂的、开放式的问题。当前的LFQA
解决方案一般遵循retrieve-then-synthesize
范式,该范式包括两个核心成分:(information retrieval)
和(information synthesis)
。前者搜索外部知识源(e.g., the web)
以获得多样性相关的支持性事实,后者将收集到的事实整合成一个连贯的答案。
传统LFQA
范式的一个缺陷是,它经常采用非交互式(non-interactive)
检索方法,即使用原始问题作为查询来检索一堆未经整理的信息。相反,人类能够通过与搜索引擎实时互动来执行交互式网页搜索(interactive web search)
。对于一个复杂的问题,人类倾向于将其分解为多个子问题,并依次提问。通过识别和浏览相关信息,人类可以提高对主题的理解,并通过提出后续问题或相关术语来完善搜索。这种迭代的过程能够扩大他们的搜索范围,并改善他们得到的结果。总的来说,交互式的网络搜索不仅提供了对多样化信息源的访问,而且反映了人类如何解决问题的认知过程,这就有了更好的可解释性。
2021
年底OpenAI
发布的WebGPT
是支持LFQA
交互式网页搜索的先驱工作。作者首先构建了一个由Microsoft Bing
支持的网页搜索界面,然后招募标注员使用该界面收集信息来回答问题之后,他们对GPT-3
进行微调,以模仿人类的网页搜索行为,并将收集到的信息组织成答案。在实验中,WebGPT
在LFQA
方面表现出了超群的能力,甚至超过了人类专家。尽管具有令人印象深刻的性能,但WebGPT
对大部人研究员们来说依然是个黑盒模型。这是因为WebGPT
的接口、数据集和训练模型都没有开源,而且其核心设计元素的内部工作也不透明。这些因素使得该领域研究员很难理解LFQA
交互式网页搜索的挑战,也很难继续探索这一研究方向。
鉴于此,作者认为迫切需要在这方面提供一个无障碍的平台和公众基准。为此,首先构建了一个界面(Figure 1)
来记录人类收集长文本问题相关信息时的网络搜索行为。在界面中用户可以执行预定义的动作,进行多轮的搜索和浏览。当在网页上找到相关信息时,他们可以将其记录为支持事实。同时,他们的上网行为也会被记录下来。在收集到足够的信息后,用户可以完成网络搜索,并根据收集到的事实回答问题。
在界面的基础上,选择中文作为测试平台构建WebCPM
,重点研究中文预训练模型的交互式Web
搜索。WebCPM
是第一个涉及交互式网络搜索的公共QA
数据集,也是第一个针对中国LFOA
的数据集。WebCPM
包含5500
个问答对,15372
个支持事实和125954
个网络搜索动作。下表()总结了WebCPM
和相关QA
数据集之间的差异。在现有的中文QA
数据集中WebCPM
拥有最长的问题、支持事实和答案这表明问题的复杂性和注释答案的丰富性。
然后,提出了一个通用框架,包括:
(1)
一个模仿人类网页搜索行为的搜索模型(search model)
,用于信息检索。具体来说,搜索模型包含三个模块,在界面上执行一系列预定义的动作:一个动作预测模块(action prediction module)
,一个搜索查询生成模块(search query generation module)
和一个支持事实提取模块(supporting fact extraction module)
;
(2)
一个合成模型(synthesis model)
,用来将收集到的事实为条件,生成连贯的答案。
作者选择了8
个具有代表性的预训练语言模型(PLMs)
,参数规模高达10B
,并评估了它们的交互式web
搜索和信息合成能力。作者发现,扩展模型大小对实现更好的性能至关重要。通过为搜索和合成模型选择性能最好的骨干PLM
,将它们组合成一个整体的LFQA pipeline
,并将其能力与人类进行比较。人工评估显示,LFQA pipeline
在WebPCM
测试集上有32.5%
的情况下生成的答案不逊于人类。当应用于百度的DuReader
数据集(标注答案超过400个汉字的问题)时,LFQA pipeline
在47.5%的情况下生成的答案优于黄金标注的答案,显示出令人满意的分布外泛化性能。实验还表明,作者的搜索模型超越了传统的非交互式检索方法。
2. Related Work
2.1 Retrieval and Synthesis in LFQA
对于信息检索,之前的工作通常求助于本地存储库(如维基百科)。最近,人们对利用整个网络作为知识源的兴趣激增,这不仅拓宽了信息源的范围,而且使最新知识的实时覆盖成为可能。另一方面如何将检索到的事实组织成LFQA
的合理而微妙的答案仍有待探索。一些人研究了人类如何制造复杂的答案,要么通过研究长文本答案的功能结构,要么探索如何在答案中组合例证,其他人则重新审视现有的LFQA
评估指标。
2.2 Comparison with WebGPT
作者在很大程度上遵循了WebGPT
,并提出了改进的设计元素(appendix E)
,包括:
(1)
interface:
修改了WebGPT
定义的动作,使其更容易模型学习,更方便用户使用;
(2)
framework:
将web
搜索分解为3个子任务并实现模块化搜索模型。此外,还探索了如何教合成模型忽略无关事实并生成新颖内容;
(3)
evaluation and analysis:
除了评估WebGPT
之后的整个pipeline
外,还评估每个单独的模块。这种细粒度的评估帮助我们更好地理解这个框架的核心设计元素,以及模型学习到的人类行为。
2.3 Tool Learning
最近的研究表明,PLMs
具有操作工具的潜力,即工具学习(tool learning)
,PLMs
可以在复杂的交互环境中做出顺序决策,例如机器人任务的规划,操纵搜索引擎,在电子商务网站上购物等。通过利用在预训练期间学到的丰富世界知识,PLMs
可以执行与现实世界交互的基础操作。作者设想将这个基准作为未来在这一领域探索的测试平台。
3. Web Search Environment
仿照WebGPT
,作者构建了一个纯文本界面以记录人类在为长文本问题收集相关信息时的网页搜索行为。该界面由Bing Search API
支持,支持10
种主流的网页搜索动作,如(Figure 1)
所示。当一个动作被执行时,这个界面会在窗口中做出响应。
当执行Search
动作时,界面进入search mode
(Figure 1)
,它显示Bing
为特定查询<query>
推荐的链接。每个链接由一个标题和一个特定网页的简短快照组成。每个窗口一次显示三个链接,通过执行Scroll Down
动作可以访问更多链接。
当在当前窗口中找到第i
个相关链接时,用户可以执行Load Page <i>
动作。界面将进入浏览模式(browsing mode)
(Figure 6)
,并呈现从第<i>
个网页的HTML
中清理出来的文本。用户在窗口中一次可以查看的内容被限制在500个汉字以内,通过Scroll
动作可以访问更多的内容。用户可以利用Quote
动作提取当前窗口中连续的句子作为支持事实。为了能够提取横跨两个窗口的文本,Merge
动作旨在将最后两个事实合并为一个事实。同时还为用户展示了所有现有的提取出来的支持事实。
在浏览第i
个页面后,用户可以使用Go Back
动作返回到以前的搜索模式来访问其他链接。同时,可以随时发送精细化的查询。一般来说用户可以多次自由地与界面进行交互直到执行Finish
动作或触发最大动作数量(例子中是100个)。该界面将自动记录在网页搜索过程中有意义的行为和观察。由于Bing
系统的多语言特性,虽然本工作的重点是中文,但这个界面也可以灵活地适应其他语言。有关更多技术细节,请参阅appendix A
。
4. Data Collection
作者雇佣了23
位来自不同行业的标注员,他们都有丰富的搜索引擎使用经验。要求他们回答长文本问题,首先使用这个界面搜索相关信息,然后写出正确且合理的答案。在质量控制方面,聘请了8
名熟悉QA
研究的专家作为质量检验员。接下来,介绍数据集的构建过程,详细的注释指南留在appendix B
。
4.1 Question Creation
在没有任何参考的情况下从零开始创建新的长文本问题代价较大,因此转向公共QA
论坛作为问题来源。具体来说,让标注员参考英语QA
论坛Reddit
上的问题,然后用中文编写新的问题。这个创建过程的细节在附录appendix C
中详细阐述。从经验上发现,以这种方式创建的问题往往需要多轮搜索和浏览,以收集足够的信息。
4.2 Interactive Web Search
给定一个问题,要求标注员使用这个界面从可信来源搜索准确和相关的信息。这个过程可能包括多次Bing
应发送精炼的查询,以及探索他们认为相关的各种网页。要求标注员在提取信息作为支持事实之前仔细判断信息的事实准确性,直到收集到足够的支持事实,搜索过程才结束。在创建的问题中,有26.2%
是无法回答的,最终被丢弃,因为标注员无法找到足够的有用信息。
4.3 Answer Annotation
在收集到足够的支持事实后,标注员会根据他们收集的信息写出合理的答案。作者为他们提供答案注释的指导,包括编写与问题相关且内容丰富的答案,保持逻辑的一致性、清晰性和连贯性,并以公正的方式提供观点。
4.4 Quality Control
每个标注实例在被选择为最终数据集之前都要经过质量检查员的检查和批准。首先,检查人员将手动检查界面上记录的动作序列,并丢弃低质量的动作序列(例如,在其发出的查询中有明显的书写错误的那些);其次,他们将仔细检查收集到的支持事实,如果这些事实显然不足以回答问题,或与问题无关,或者事实不正确,相应的行动序列就会被放弃,上述程序会移除25%
收集到的实例。对于剩余的实例,检查人员会仔细检查他们带注释的答案。如果一个答案与上述说明相矛盾,检查人员会将其返回给标注员,并指出哪个要求不满足。标注员可能会多轮修改他们的答案,直到修改后的答案达到标准。
4.5 Dataset Statistics
最终,作者收集到了5500
个实例,每个实例格式化为元组(question, web search behavior, supporting fact, answer)
,还记录了每个动作执行时的观察结果。在(Figure 2)
中展示了一个示例以供参考,其中呈现了以下内容原始的问题、简化的动作序列、收集到的支持事实以及标注的答案。将数据集划分为{4700,400,400}
,作为训练、开发和测试集。平均来说,每个问题涉及执行22.9
个搜索动作,发送2.5
个查询,加载3.3
个网页。每个动作的详细比例可视化图可参见(Figure 7)
。
5. Framework
5.1 Search Model
将web
搜索划分为3个子任务:action prediction
,search query generation
和 supporting fact extraction
。每个任务都被转换为text-to-text
的格式,使用生成式PLM
训练3个单独的模块。通过组合这3个模块,构建了搜索模型,该模型执行一系列动作来收集相关信息。action prediction
模块决定每一步执行哪个动作,如果该模块预测Search
或Quote
为当前动作,然后它调用其他两个模块来生成查询的内容或支持事实。
每个模块根据时间步长
t
t
t 时接口的当前状态
S
t
\mathcal S_t
St来执行推理。
S
t
\mathcal S_t
St 包含原始问题
Q
0
\mathcal Q_0
Q0,当前搜索的查询
Q
t
\mathcal Q_t
Qt,过去的动作序列
A
t
−
1
=
{
a
1
,
…
,
a
t
−
1
}
\mathcal A_{t-1} = \{a_1, \dots, a_{t-1}\}
At−1={a1,…,at−1},上一个和当前窗口中显示的内容
W
t
−
1
\mathcal W_{t-1}
Wt−1和
W
t
\mathcal W_t
Wt,当前支持事实
F
t
=
{
f
1
,
…
,
f
∣
F
t
∣
}
\mathcal F_t = \{f_1, \dots, f_{|\mathcal F_t|}\}
Ft={f1,…,f∣Ft∣},以及剩余动作数。如果执行一个动作,则
S
t
S_t
St 的组件将被更新,
W
\mathcal W
W 可以是搜索模式(search mode)
下的三个链接,也可以是(browsing mode)
下的特定页面内容,只保持最近的两个观察结果
W
t
−
1
\mathcal W_{t-1}
Wt−1和
W
t
\mathcal W_t
Wt 显示在窗口中,而不是将所有过去的观察结果串联起来,因为后者可能超过PLM
的输入长度限制。
5.1.1 Action Prediction
这个模块预测接下来要执行的动作。由于总共有10个可能的动作,动作预测可以被视为10类别的分类任务。以Search
动作为例,用
{
x
1
,
…
,
x
n
}
\{x_1, \dots, x_n\}
{x1,…,xn} 表示作为Search
动作的标记化序列,其中
x
∗
x*
x∗ 表示一个特定的标记(token)
。Search
的概率可以用公式表示为
P
(
S
e
a
r
c
h
∣
S
t
)
=
P
(
x
1
∣
S
t
)
×
∏
i
=
2
N
P
(
x
i
∣
S
t
,
x
1
,
.
.
.
,
x
i
−
1
)
\mathcal P(Search | \mathcal S_t) = \mathcal P(x_1 | \mathcal S_t) \times \prod _{i=2} ^N \mathcal P(x_i | \mathcal S_t, x_1, ..., x_{i−1})
P(Search∣St)=P(x1∣St)×i=2∏NP(xi∣St,x1,...,xi−1) 在推理过程中,选择具有最高概率的动作在界面上执行。
5.1.2 Search Query Generation
这个模块生成一个查询
Q
t
+
1
=
{
q
1
,
…
,
q
n
}
\mathcal Q_{t+1} = \{q_1, \dots, q_n\}
Qt+1={q1,…,qn}来进行Bing
搜索,也可以用下述公式表示
P
(
Q
t
+
1
∣
S
t
)
=
P
(
q
1
∣
S
t
)
×
∏
i
=
2
∣
Q
t
+
1
∣
P
(
q
i
∣
S
t
,
q
1
,
.
.
.
,
q
i
−
1
)
\mathcal P(Q_{t+1} | \mathcal S_t) = \mathcal P(q_1 | \mathcal S_t) \times \prod _{i=2} ^{|Q_{t+1}|} \mathcal P(q_i | \mathcal S_t, q_1, ..., q_{i−1})
P(Qt+1∣St)=P(q1∣St)×i=2∏∣Qt+1∣P(qi∣St,q1,...,qi−1)
5.1.3 Supporting Fact Extraction
假设在browsing mode
下,当前窗口的内容是
W
t
=
{
w
1
,
…
,
w
∣
W
t
∣
}
\mathcal W_t = \{w_1, \dots, w_{| \mathcal W_t|}\}
Wt={w1,…,w∣Wt∣}。目的是从
W
t
\mathcal W_t
Wt 中提取一个支持事实
f
=
{
w
i
,
…
,
w
j
}
f = \{w_i, \dots, w_j\}
f={wi,…,wj},其中
1
≤
i
≤
j
≤
∣
W
t
∣
1 \leq i \leq j \leq | \mathcal W_t|
1≤i≤j≤∣Wt∣。虽然一个朴素的解决方案是直接自动回归生成
f
f
f 的所有token
,但这种解决方案在实践中存在推理速度慢的问题。作为一种替代方案,只生成给定
S
t
\mathcal S_t
St 的前几个和最后几个token
,形式上,最大化
P
(
[
s
]
,
w
i
,
…
,
w
i
+
N
f
−
1
,
[
e
]
,
w
i
+
N
f
+
1
,
…
,
w
j
∣
S
t
)
\mathcal P ( [s], w_i, \dots, w_{i+N_f -1}, [e], w_{i+N_f +1}, \dots, w_j | \mathcal S_t)
P([s],wi,…,wi+Nf−1,[e],wi+Nf+1,…,wj∣St),其中
[
s
]
[s]
[s] 和
[
e
]
[e]
[e] 表示事实
f
f
f 的开始和结束的特殊token
。在推理过程中,在解码开始和结束标记后,可以通过文本匹配在
W
t
\mathcal W_t
Wt 中找到所需的序列。如果起始/结束token
出现在
W
t
\mathcal W_t
Wt 的多个位置,则总是从
W
t
\mathcal W_t
Wt 中提取最长的序列,一个大的
N
f
N_f
Nf 可以降低这种多位置问题的频率。注意,可以通过连续执行多个Quote
动作来提取
W
t
\mathcal W_t
Wt 中的不相交跨度。
5.2 Synthesis Model
信息合成任务学习将一系列支持性事实组织成一个连贯的答案。然而,训练好的搜索模型并不像人类那样完美,它偶尔会收集不相关的噪声,这会影响生成答案的质量。为了补救这一点,通过引入噪声来破坏合成模型的训练数据中收集的事实。具体来说,给定一系列人类提取的事实 { f 1 , … , f N } \{f_1, \dots, f_N\} {f1,…,fN},随机从其他训练实例中选取了一些不相关的事实 { f 1 ′ , … , f N ′ ′ } \{f_1', \dots, f_{N'}'\} {f1′,…,fN′′},将所有事实随机打乱后,将它们连接起来作为最终的输入。在训练过程中,对模型进行优化,以生成基于错误支持事实的人工注释答案,即最大化 P ( A n s w e r ∣ Q 0 , f 1 , … , f N , f 1 ′ , … , f N ′ ′ ) \mathcal P (Answer | \mathcal Q_0, f_1, \dots, f_N, f_1', \dots, f_{N'}') P(Answer∣Q0,f1,…,fN,f1′,…,fN′′) 。由于注释的答案不包含 f ∗ ′ f_*' f∗′的信息,模型学会忽略无关的事实,只关注重要的事实进行生成。
更多推荐
所有评论(0)