信息检索(十三):On Complementarity Objectives for Hybrid Retrieval

On Complementarity Objectives for Hybrid Retrieval

  • 摘要
  • 1. 引言
  • 2. 相关工作
    • 2.1 稀疏和密集检索
    • 2.2 互补性
  • 3. 提出方法
    • 3.1 Ratio of Complementarity (RoC)
    • 3.2 词汇表示(S)
    • 3.3 语义表示(D)
    • 3.4 互补目标
  • 4. 实验
    • 4.1 实验设置
    • 4.2 实验结果
      • 4.2.1 RQ1:正交性的有效性
      • 4.2.2 RQ2:RoC 改进互补性
      • 4.2.3 RQ3:混合检索中互补性的影响
  • 5. 结论
  • 6. 局限性


原文链接:https://aclanthology.org/2023.acl-long.746/
(2023)


摘要

密集检索在各种信息检索任务中都显示出了可喜的结果,而与稀疏检索的优势相结合的混合检索也得到了积极的研究。混合检索的一个关键挑战是使稀疏和稠密互补。现有模型侧重于密集模型,以捕获稀疏模型中忽略的“剩余”特征。我们的主要区别是展示剩余互补性概念是如何受到限制的,并提出一个新的目标,表示为 RoC(互补性比率),它捕获了更全面的互补性概念。我们提出了一种旨在提高 RoC 的两级正交性,然后表明我们模型的改进 RoC 反过来又提高了混合检索的性能。我们的方法在三个代表性 IR 基准上优于所有最先进的方法:MSMARCOPassage、Natural Questions 和 TREC Robust04,具有统计显着性。我们的发现在各种对抗环境中也是一致的.

1)RoC:互补率
2)two-level 正交性 提高 RoC
3)RoC 的提高会提高混合检索的性能

1. 引言

混合检索:稀疏检索与密集检索结果线性相加 取更高得分
两种途径:
  1)侧重密集检索,增加 D,捕获被稀疏检索忽略的特征
    Ps:缺点是增大 D 的时候,D ∩ S 也会增大
  2)本文:侧重 RoC,减少 D 与 S 的交叉
RoC 为什么可以 ?
  1)RoC与上面途径1)兼容
  2)增大 RoC 本质会增强混合检索
表示和匹配查询和文档(或答案)对于设计信息检索 (IR) 和开放域问答 (QA) 模型至关重要。现有的方法已分为稀疏检索和密集检索。
经典的稀疏(或符号)检索,例如 BM25(Robertson 和 Zaragoza,2009),量化查询 q 和文档 d 之间的词汇重叠(或精确匹配),并按词频 (tf) 和逆文档频率 (idf) 进行加权。这种计算可以有效地定位到一些具有倒排索引的高分 q-d 对,但可能无法匹配术语不匹配的对。例如,具有相同意图的文本对“facebook更改密码”和“fb修改passwd”不共享任何共同词,因此该对无法通过词法检索进行匹配。
为了克服这种不匹配,密集检索模型,例如基于 BERT 的 DPR(Karpukhin 等人,2020 年)或 coCondenser(Gao 和 Callan,2021 年),旨在通过将查询和文档编码为低维嵌入向量来支持软“语义匹配” 。训练密集表示,以便“password”和“passwd”在空间中位置接近,即使它们具有不同的词汇表示。

每个模型的这些互补优势产生了自然激励的混合模型(Gao et al, 2020; Yadav et al, 2020; Ma et al, 2021),我们将其表示为 BM25+DPR,从两个模型中提取分数并选择最高的文档线性组合分数

为了说明我们如何推进 BM25+DPR 基线,图 1(a) 显示了 BM25+DPR 在自然问题上的 Recall@10,其中黄色圆圈代表由 BM25 或 S 回答的问题,蓝色圆圈代表由 BM25 或 S 回答的问题DPR,或 D。理想情况下,两个检索器一起应该涵盖 U 域中的所有问题,但失败率为 46.5%,对应于 U − D ∪ S。

改进有两个方向:(1)放大|D| (2)使其与S更具互补性。图1(b)绘制了CLEAR(Gao等人,2020),旨在强调稀疏模型中忽略的“剩余”特征,或者增加|D − S|。
虽然 |D − S|故障率从 15.2%(图 1a)增加到 20.0%(图 1b),正如预期的那样,失败率并没有显着减少,从 46.5%(图 1a)到 41.8%(图 1b)。我们认为,扩大 |D| 会导致失败案例的减少。从 47.6(图 1a)到 54%(图 1b),与保持 D 固定的假设场景相比,但当交叉点减少时,故障案例从 41.8% 显着减少到 14.1%。
在这里插入图片描述
基于这些观察,我们提出了一种新的互补性度量,考虑了剩余互补性|D − S|,但相对于|D|,表示为互补性比率(RoC)。当两个模型不相交时,RoC 被设计为 1(图 1c);当 D 包含在 S 中时,RoC 被设计为 0。
在这里插入图片描述
RoC具有以下两个优点:
• RoC向后兼容现有的剩余互补概念。我们稍后得出(第 3 节)优化 RoC 可以分为两个子目标:增加 |D − S|和 |D ∩ S|,其中前者与剩余互补性兼容。
• RoC 乘以|D ∪ S| 时,可直接近似混合模型可以回答的问题数量。因此,以提高 RoC 作为目标,自然与提高混合猎犬的性能相关。

凭借这些优势,我们使用表 1 中的指标来解释 CLEAR 仅建立在剩余互补性上的局限性。 CLEAR 增加 |D − S|按预期,但增加 |D ∩ S|由于它们的相关性,将其作为其副产品(见图 1b)。
相比之下,我们提出了一种简单但有效的双级正交性来解决这种相关性,并实现了两个子目标,从而显着提高了 RoC。表 1 显示 RoC 的提高也与召回率的提高相关*。
我们验证了 RoC 的增强可以提高三个 IR 数据集上的混合检索性能:MS MARCO、Natural Questions 和 TREC Robust04

2. 相关工作

2.1 稀疏和密集检索

稀疏(或符号)空间通常是独立的,使得诸如倒排索引或位图之类的数据结构可以有效地识别具有精确匹配的匹配候选,并且也可以有效地计算排名。 BM25(Robertson 和 Zaragoza,2009)是一种著名的使用词袋表示的词汇排名模型。
同时,密集检索模型(Shen等,2014;Guo等,2016;Zhai等,2016;Nogueira和Cho,2019;Zhan等,2020)被提出来解决术语不匹配问题,可以将其分类为分为两组(Guo et al, 2016):(1)基于嵌入的模型和(2)基于交互的模型。我们的目标场景是前者,将查询 q 和文档 d 表示为两个独立的密集向量,并使用向量相似度来匹配 q-d。然而,我们还讨论了如何将我们的想法应用于基于交互的排名方法(Nogueira 和 Cho,2019;McDonald 等人,2018),在没有向量的情况下捕获逐词交互,我们在第 3.3 节中将其作为非嵌入模型讨论。

2.2 互补性

为了利用互补性,已经有一些方法可以将两个空间结合起来,或者将知识从一个空间转移到另一个空间。
首先,对于组合,一种简单的方法是聚合两个空间的分数(Ma et al, 2021),然后将其改进为更复杂的模型,例如 CLEAR(Gao et al, 2020)通过 BM25 的残差进行学习。具体来说,当q-d对在词汇上难以匹配时,边距变大,那么语义匹配的损失就被强调。换句话说,模型经过训练

其次,对于迁移,SparTerm(Bai et al, 2020)通过将 BERT 的上下文知识提炼到词袋空间中来学习稀疏表示。具体来说,基于 BERT 编码器,SparTerm 首先生成词汇术语语义重要性的密集分布,然后控制每个术语的激活,确保最终表示的稀疏性。这意味着,基于术语的匹配方法的表示能力可以提高到语义级匹配。我们的属于结合两个空间的第一类,但我们提出了一个名为 RoC 的新指标来直接评估混合检索中的互补性。表 1 显示了现有的互补性指标仅部分覆盖 RoC。同时,我们还讨论了如何将我们的方法与第二类方法(即 SparTerm)相结合,以实现进一步的收益(第 4.3 节)。

3. 提出方法

3.1 RoC 的优化目标
  1)D∩S 变小
  2)D-S 变大

3.2 & 3.3
  词汇表示 和 语义表示 都表示成向量

3.4 两种正交性
  1)嵌入正交性,通过损失函数限制词汇表示向量和语义表示向量在表示空间正交
  2)输入正交性,因为稀疏方法在语义相似但不同的term上表现差,通过加入扰动,使得精确匹配变得不精确,增强模型学习不精确匹配的能力
我们在 3.1 节中提出 RoC,然后讨论 S(3.2 节)和 D(3.3 节)是如何实现的。 3.4 节讨论了如何组合 D 和 S 来优化 RoC。

在这里插入图片描述

3.1 Ratio of Complementarity (RoC)

RoC 是一个可以衡量互补性并直接近似图 1 中的失败案例的度量,即 RoC ∝ |U − F ail|其中 U 表示所有答复文件。基于这个假设,我们的目标是最大化 |D ∪ S| · 罗克。我们将这个目标描述为两个子目标如下:
(∝ :正比于符号;≃:渐近等于)
在这里插入图片描述

第一个子目标是优化 |D ∩ S|,为此我们将稀疏模型和稠密模型捕获的特征彼此分开。第二个子目标是最大化 |D −S|,为此我们建议捕获稀疏模型的剩余特征。我们在 3.3 节中描述了如何实现每个子目标。

3.2 词汇表示(S)

虽然可以使用任何词汇检索器,但我们使用 BM25(Robertson 和 Zaragoza,2009)描述我们的方法来构建符号表示(图 2(左)中的绿色向量 qlex),以捕获词汇匹配。 BM25 分数可以写为查询和文档的词袋表示之间的内积。我们将 BM25 的 q 和 d 表示定义为 qbm25 和 dbm25 ∈ R |V |分别,其中表示 qbm25 和 dbm25 的第 i 个元素可以写成如下:
在这里插入图片描述

其中 IDF(·) 是术语 i 的逆文档频率,TF(·) 是给定文档中术语 i 的频率。因此,BM25(q,d)可以表示为qbm25和dbm25之间的内积。

由于词汇表示的维数比语义表示的维数大得多,因此需要将 qbm25 和 dbm25 压缩到低维空间。对于这种压缩,Luan 等人 (2020) 发现随机投影 (Vempala, 2004) 对于保留文档排名有效,我们在本工作中采用了这种方法。
尽管存在压缩损失,但可以通过改变嵌入维度 k 来限制该损失。在 NQ 实验中,我们遵循 Luan 等人(2020)的协议,将 k 设置为 715,这保证了 768 维 BERT 嵌入的错误低于 0.038。随机投影是通过矩阵 A 进行线性变换,矩阵 A ∈ R 768×|V |是从 Rademacher 分布中以相等的概率从两个值中随机采样的:{− 1 √ 768 , 1 √ 768 }。
最终的词法表示 qlex 和 dlex 可以通过以下方式获得:
在这里插入图片描述
与等式。 (3),qlex 和 dlex 与 BERT 的语义向量位于同一维空间,同时保留排名。此外,我们的目标是加强与 3.3 节中语义向量的互补性。
根据词汇表示,查询 q 和文档 d 之间的最终相关性得分通过内积计算,如下所示:
在这里插入图片描述
这个相关性分数近似于BM25分数,同时,我们可以在语义空间中处理qlex和dlex这两个向量。

3.3 语义表示(D)

对于语义表示(图 2(左)中的粉色向量),我们采用最先进的(coCondenser;(Gao 和 Callan,2021))用于解释目的,由基于 BERT 的双编码器结构组成(德夫林等人,2019)。因此,我们的密集检索遵循 BERT 的架构、设置和超参数。遵循 BERT 的输入风格,我们将 wordpiece tokenizer 应用于输入文档和查询,然后在开头添加 [CLS] 标记,在末尾添加 [SEP] 标记,如下所示:
在这里插入图片描述

然后,我们从 [CLS] 标记处的 BERT 表示中获取查询和文档的嵌入。 q 和 d 的语义表示可以表述如下:
在这里插入图片描述

其中 Pool(·) 表示 [CLS] 池化提取隐藏状态 h 上的第一个向量。它们的语义相关性Scoresem是通过qsem和dsem的内积来计算的:Scoresem = qsem·dsem。
DPR 的训练损失是正通道的负对数似然:
在这里插入图片描述

其中 d + 和 d − 表示对应于给定查询 q 的正文档和负文档。为了选择负面文档,我们遵循之前作品中的惯例(Karpukhin et al, 2020; Sachan et al, 2021; Gau et al, 2020),即硬负抽样,选择从 BM25 检索到的排名靠前的文档不包含答案。

3.4 互补目标

我们提出嵌入级和输入级正交性约束,这会减少 |D ∩ S|并分别增加|D − S|。

嵌入级正交性
为了减少|D∩S|,我们将语义和词汇表示空间之间的特征分开。具体来说,我们强制词汇和语义表示之间的正交性(即 qlex ⊥ qsem)。通过方程式训练 BERT 时(7),我们使用余弦相似度施加额外的约束,对特征进行归一化,以约束两个向量(lex 和 sem)的方向。我们定义正交性的损失函数如下:
在这里插入图片描述

其中⟨·,·⟩是内积。如果两个向量完全垂直,则损失等于 0;否则,它具有正值。
这与我们最小化两个向量的共同特征的目标是一致的,从而减少重叠 |D ∩ S|语义 (D) 和词汇 (S) 模型,如图 1© 所示。添加此正交性损失,BERT-ranker 的最终损失函数计算如下:
在这里插入图片描述
虽然我们可以调整上述聚合,但我们根据经验发现 1:1 聚合是有效的。

输入级正交性
增加 |D − S|在输入级别,我们遵循使用稀疏模型忽略的残差特征的约定,例如不匹配术语之间的同义词,例如“password = passwd”。为了这个目标,我们提出了一种扰乱匹配标记子集的方法,以学习不匹配的术语,类似于去噪自动编码器(Hill 等人,2016)。在去噪自动编码器中,输入文本被随机噪声函数破坏,然后训练解码器恢复原始文本,学习方差的鲁棒特征(Vincent 等人,2008)。相反,虽然我们的令牌扰动没有恢复解码器,但我们的区别是破坏精确匹配,重点是软匹配。给定 q-d 对,我们将 d 中的一组完全匹配的标记表示为 XEM = {xi |xi ∈ q 和 xi ∈ d}。通过随机采样,我们将 Xem 中的标记替换为 [MASK] 标记,并将新序列 d ’ 输入到 BERT 中。通过令牌扰动,我们修改式(1)中的 dsem。 (6) 转为 d ′ sem,计算如下:
在这里插入图片描述

其中 Sample(·) 是标记的随机采样。‡ 此扰动仅适用于训练过程,我们不会在推理时使用它。
这种扰动使得解缠结思想不仅能够应用于新模型,而且能够应用于各种现有模型(参见第 4.1 节)。

最终相关性得分
为了汇总两个 IR 模型的分数,我们遵循主要基线的约定(Karpukhin 等人,2020;Gao 等人,2020;Ma 等人,2021),使用线性组合
在这里插入图片描述

其中 λ 是控制不同尺度权重的超参数。

4. 实验

4.2
1)两级正交成功增强了 RoC
2)增强 RoC 能够增强互补性,对于 bm25 来说困难的例子(不依赖词汇的例子),增强RoC之后变现更好
3)混合检索效果也变好

在本节中,我们描述实验设置并制定我们的研究问题来指导我们的实验。

4.1 实验设置

数据集
为了验证我们方法的有效性,我们对以下三个数据集进行查询-段落(或查询文档)匹配,这些数据集被广泛使用且具有统计多样性(表 2):
MS MARCO-Passage§(Nguyen 等人,2016):该基准提供了 880 万个段落,标签是从 Bing 搜索引擎检索到的前 10 个结果中获取的。由于官方测试集的相关标签未公开,因此我们仅评估开发集。我们使用 MRR@10 和 R@100 来评估全排序检索的性能。
NQ(Kwiatkowski 等人,2019):在此数据集中,我们的目标是从总共 25 万个段落中找到回答给定问题的相关段落,并且标签来自注释者识别的维基百科文章中的跨度。遵循 DPR(Karpukhin 等人,2020),我们将包含答案的段落视为评估 R@k 时的相关段落。
• TREC Robust04 (Voorhees et al, 2005):该数据集包含 250 个主题查询和 528K 文档。由于 Robust04 中没有发布正式的训练/测试分割,我们遵循 McDonald 等人 (2018) 中提供的分割设置,使用 5 折交叉验证。
我们尊重原始工作中使用的指标,它解释了不同数据集的不同指标。 Robust04 使用广泛,但尺寸较小,因此我们也遵循研究尺寸较大的 MS MARCO 和 Natural Questions 的惯例。

实现
对于 DPR 编码器,我们使用 BERT 的基本版本(Uncased)(Devlin 等人,2019)。对于训练,我们设置批量大小 10 并使用 Adam(Kingma 和 Ba,2015)优化器,学习率为 0.0002。为了稳定训练,我们使用范数为 1.0 的梯度裁剪(Pascanu et al, 2013),并且在 3 个 epoch 的训练迭代后,我们将每个 epoch 的学习率减半。我们遵循 DPR(Karpukhin 等人,2020)的其他训练细节,例如硬负采样。
作为超参数,我们根据开发集上的 MAP 自动找到 λ 的最佳值,其中我们以 0.1 步长在 [0, 2] 范围内搜索 λ。在 MARCO-Passage、Natural Questions 和 Robust04 上,λ 的最佳配置分别为 1.5、1.3 和 2.0。

评价指标
对于任务评估,我们计算以下指标并报告平均性能:平均倒数排名 (MRR)、平均平均精度 (MAP)、归一化折扣累积增益 (nDCG) 和前 k 个排名的召回率 (R@k)。对于召回率,我们遵循之前的工作 (Karpukhin et al, 2020),该工作被计算为 top-k 检索到的段落包含答案的问题的比例。对于 MAP 和 nDCG,我们使用最新的 TREC 评估脚本**来计算这些指标。采用 Bonferroni 校正的 t 检验的 p 值 < 0.05 结果在表 3 中以粗体显示。

基线
我们将我们的模型与以下最先进的检索基线进行比较。我们使用 SPARTERM(Bai 等人,2020)、COCONDENSER(Gao 和 Callan,2021)和 BM25 作为基线。
SPARTERM 是一种使用 BERT 的基于术语的检索模型,并给出词汇匹配分数。 BM25是一种著名的使用TF和IDF的词法匹配方法。对于 BM25,我们使用 Pyserini†† 开源实现。
对于 coCondenser,我们使用开源实现来重现。
另一方面,我们使用混合空间基线,例如 COCONDENSER+BM25 (Naive sum) 和 CLEAR (Gao et al, 2020)。
两种方法都通过合并稀疏模型和稠密模型的分数来给出相似性分数。请注意,我们的 CLEAR 实现比他们发布的结果表现更好,因为我们使用 coCondenser 更新了其基本变压器。为了公平比较,我们的和 CLEAR 都建立在相同的 coCondenser 实现之上。

4.2 实验结果

研究问题
为了评估我们方法的有效性,我们解决了以下研究问题:
• RQ1:两级正交性是否改善了RoC?
• RQ2:改进的RoC 是否有助于更好的互补性?
• RQ3:改进的互补性是否改善了混合检索?

4.2.1 RQ1:正交性的有效性

我们进行了消融研究,以确认这两个正交约束是否有助于改善 RoC。如表 5 所示,与朴素求和相比,嵌入级正交性将 RoC 提高了 0.1,输入级正交性提高了 0.06。应用这两种方法将 RoC 提高了 0.15,这与 CLEAR 相比是一个显着的改进,而 CLEAR 仅比朴素总和提高了 0.05
在这里插入图片描述

4.2.2 RQ2:RoC 改进互补性

在本节中,我们展示了我们的方法通过使用混合检索的召回以及对抗性评估来提高互补性。
首先,我们的(图 3)显示 RoC 比 CLEAR 高 0.15,因为与 CLEAR(图 1b)相比,RoC 有所改善,并且故障案例减少。换句话说,RoC 是 |D ∪ S| 的更可靠的预测因子,它与性能直接相关。
在这里插入图片描述

其次,我们还可以观察到逆境下的互补性。我们遵循(Wei 和 Zou,2019)的约定,将查询分为两组:BM25-Easy 和 BM25-Hard。具体来说,我们通过对所有查询的 BM25 的 MRR@10 分数进行排序来定义简单集和困难集。前 50% 是 BM25-Easy,其中仅 BM25 就已经具有竞争力,其余的是 BM25-Hard,这对词汇检索器不利。
我们希望混合模型能够在硬集上超越 BM25 排名。带着这样的期望,我们在图 4 上比较了混合模型提供更好排名的比率(相对于 MRR@10)。令人惊讶的是,CLEAR 并没有将 DPR 的比率提高很多(+1.5%),这与图 5 中的结果一致。相比之下,我们将该比率显着提高了+10.2%。
在这里插入图片描述
观察不利场景的另一种方法是构建具有较少匹配项的不利数据集。具体来说,查询和文档之间词汇匹配的术语被同义词替换(如(Wei 和 Zou,2019)中类似的做法)。图 5 比较了 CLEAR 和我们的方法如何推广到这个不利的集合。原始数据集上的两个模型在早期 epoch 中都快速提高了 MRR,而直到 epoch 5 之前,在逆向集上的 MRR 提升并不明显。然而,这种差距仅在我们的模型中减小(图 5b),而在 CLEAR 中保持不变(图 5a),表明 CLEAR 仍在继续专注于词汇匹配,同时我们学习利用语义匹配。
在这里插入图片描述

4.2.3 RQ3:混合检索中互补性的影响

在这个实验中,我们验证了增强互补性对各个性能方面的影响。
我们首先比较混合模型和我们的模型的性能,以表明我们的两级正交性提高了混合检索性能以及两个模型之间的互补性。在表3中,与coCondenser+BM25(Naive sum)相比,我们的方法在MSMARCO上将MRR@10提高了0.78,在NQ和Robust04上将MAP分别提高了1.50和2.21,这表明互补性提高了文档排名。与最先进的模型 CLEAR 相比,我们的方法在 MSMARCO 上实现了 0.64 的 MRR@10 增益,在 NQ 和 Robust04 上分别实现了 1.04 和 0.88 的 MAP 增益。请注意,我们的方法具有统计上显着的性能改进,如表 3 中的上标所示。

嵌入级和输入级方法的消融研究
为了研究两级正交性对混合检索性能的孤立影响,我们在 NQ 和 Robust04 中进行了消融研究,如表 4 所示。为此,我们将每个组件(嵌入级或输入级目标)添加到基线模型中:DPR+BM25(朴素总和)。在这两个数据集中,我们观察到嵌入级和输入级方法可以在基线上实现显着改进,这表明增强的互补性提高了混合检索性能。请注意,嵌入级目标比输入级目标更有效,这与表 5 中的互补性改进结果一致。
我们还可以在表 6 中看到,输入级目标甚至适用于非嵌入模型。
在这里插入图片描述

长度泛化性
基于 BERT 在 NQ 数据集中对长文档准确率较低的众所周知的弱点(Luan 等人,2020),我们验证了改进的互补性对长文档鲁棒性的影响。我们提出的模型优于 CLEAR,并且在除一组之外的所有长度上都获得了最佳分数。
这表明互补性在长度泛化中起着至关重要的作用。结果和详细信息在 A.1 节中描述

5. 结论

我们研究混合检索的问题,其中现有的最先进技术追求部分互补的概念。相比之下,我们提出了 RoC,这是一种能够更全面地描述稀疏模型和密集模型之间互补性概念的指标。然后,我们提出一个简单但有效的两级正交目标来增强 RoC,并验证优化 RoC 可以增强互补性和检索性,从而在三个代表性 IR 基准(MSMARCO-Passage、Natural Questions 和 TREC Robust04)中表现优于最先进的水平,并推广到对抗性设置。

6. 局限性

我们利用 MS-MARCO,这是一种提供大规模相关注释的资源。然而,与大多数检索数据集一样,该数据集可能包含注释偏差。鉴于数据集提供的语料库中存在大量文档,相关性注释分布稀疏,所有其他文档都被认为是不相关的。
因此,一些相关文档可能会被错误地标记为不相关,从而导致漏报。 MSMARCO 中一个值得注意的注释偏差是相关标签与精确匹配术语高度相关(Xiong 等人,2020)。
这种偏差在训练或评估阶段造成了限制。为了适当地解决这种注释偏差,我们可能需要使用人类或神经注释器重新组织标记过程,或者我们可以旨在设计和训练一个能够适应这种偏差的模型。我们将此任务保留给未来的研究工作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/279284.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关系数据库:关系数据结构基础与概念解析

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

Nginx学习与使用

Nginx 什么是NginxNginx命令Nginx 配置文件文件组成全局块&#xff1a;配置服务器整体运行的配置指令Events块&#xff1a;影响Nginx服务器与用户的网络连接Http块Http全局块Server块全局Server快Location块 配置实例Nginx配置实例——反向代理 什么是Nginx Nginx命令 1.使用…

湖北省地质灾害分布数据 崩塌滑坡泥石流空间分布地质灾害详查等数据集

地质灾害是指在自然或者人为因素的作用下形成的&#xff0c;对人类生命财产造成的损失、对环境造成破坏的地质作用或地质现象。地质灾害在时间和空间上的分布变化规律&#xff0c;既受制于自然环境&#xff0c;又与人类活动有关&#xff0c;往往是人类与自然界相互作用的结果。…

数据资产管理解决方案:构建高效、安全的数据生态体系

在数字化时代&#xff0c;数据已成为企业最重要的资产之一。然而&#xff0c;如何有效管理和利用这些数据资产&#xff0c;却是许多企业面临的难题。本文将详细介绍数据资产管理解决方案&#xff0c;帮助企业构建高效、安全的数据生态体系。 一、引言 在信息化浪潮的推动下&a…

Geostationary IR Channel Brightness Temperature - GridSat B1 -- shell下载

进入网页 https://www.ncei.noaa.gov/products/gridded-geostationary-brightness-temperature 然后进入数据目录&#xff0c;通过https的方式进行下载&#xff1a; 点击后进入如下界面&#xff1a; 点击任意年份进行下载 这里以2004年为例&#xff0c;如下所示&#xff1…

Go语言中的锁与管道的运用

目录 1.前言 2.锁解决方案 3.管道解决方案 4.总结 1.前言 在写H5小游戏的时候&#xff0c;由于需要对多个WebSocket连接进行增、删、查的管理和对已经建立连接的WebSocket通过服务端进行游戏数据交换的需求。于是定义了一个全局的map集合进行连接的管理&#xff0c;让所有…

力扣每日一道系列 --- LeetCode 160. 相交链表

&#x1f4f7; 江池俊&#xff1a; 个人主页 &#x1f525;个人专栏&#xff1a; ✅数据结构探索 ✅LeetCode每日一道 &#x1f305; 有航道的人&#xff0c;再渺小也不会迷途。 LeetCode 160. 相交链表 思路&#xff1a; 首先计算两个链表的长度&#xff0c;然后判断两个链…

华为组网:核心交换机旁挂防火墙,基于ACL重定向配置实验

如图所示&#xff0c;由于业务需要&#xff0c;用户有访问Internet的需求。 用户通过接入层交换机SwitchB和核心层交换机SwitchA以及接入网关Router与Internet进行通信。为了保证数据和网络的安全性&#xff0c;用户希望保证Internet到服务器全部流量的安全性&#xff0c;配置重…

海外社交营销为什么用云手机?不用普通手机?

海外社交营销作为企业拓展海外市场的重要手段&#xff0c;正日益受到企业的青睐。云手机以其成本效益和全球性特征&#xff0c;成为海外社交营销领域的得力助手。那么&#xff0c;究竟是什么特性使得越来越多的企业选择利用云手机进行海外社交营销呢&#xff1f;下文将对此进行…

ARM 寄存器学习:(一)arm多种模式下得寄存器

一.ARM7种状态以及每种状态的寄存器&#xff1a; ARM 处理器共有 7 种不同的处理器模式&#xff0c;在每一种处理器模式中可见的寄存器包括 15 个通用寄存器( R0~R14)、一个或两个(User和Sys不是异常模式&#xff0c;没有spsr寄存器)状态寄存器&#xff08;cpsr和spsr&…

es 集群安全认证

参考文档&#xff1a;Configure security for the Elastic Stack | Elasticsearch Guide [7.17] | Elastic ES敏感信息泄露的原因 Elasticsearch在默认安装后&#xff0c;不提供任何形式的安全防护不合理的配置导致公网可以访问ES集群。比如在elasticsearch.yml文件中,server…

面试算法-51-翻转二叉树

题目 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a;root [4,2,7,1,3,6,9] 输出&#xff1a;[4,7,2,9,6,3,1] 解 class Solution {public TreeNode invertTree(TreeNode root) {dfs(root);re…

PTA一笔画

作者 张志梅 单位 青岛大学 小丁最近迷恋上一个游戏&#xff0c;传说中的“一笔画”游戏。 那么什么是一笔画&#xff1f;如下图&#xff0c;顾名思义就是一笔可以完成的图。一笔画最基本的要求是在画图的过程中&#xff0c;笔不能离开纸&#xff0c;且笔所画过的线不能重复…

使用Java JDBC连接数据库

在Java应用程序中&#xff0c;与数据库交互是一个常见的任务。Java数据库连接&#xff08;JDBC&#xff09;是一种用于在Java应用程序和数据库之间建立连接并执行SQL查询的标准API。通过JDBC&#xff0c;您可以轻松地执行各种数据库操作&#xff0c;如插入、更新、删除和查询数…

【计算机考研】408全年复习保姆级规划+资料

基础阶段 408一共只分为选择题和大题&#xff0c;选择题80分&#xff0c;大题70分。 基础阶段应该要形成相对完整的知识体系&#xff0c;基础知识大概都需要有印象。 在基础阶段&#xff0c;建议不做大题&#xff0c;把课后选择题都好好的做一遍 第一遍的正确率无需过于关注…

【技术类-05】python实现docx段落文字加粗(Win32)

背景需求&#xff1a; 【技术类-04】python实现docx表格文字和段落文字的“手动换行符&#xff08;软回车&#xff09;”变成“段落标记&#xff08;硬回车&#xff09;”-CSDN博客文章浏览阅读1k次&#xff0c;点赞10次&#xff0c;收藏10次。【技术类-04】python实现docx表格…

three.js 鼠标左右拖动改变玩家视角

这里主要用到了 一个方法 obj.getWorldDirection(); obj.getWorldDirection()表示的获取obj对象自身z轴正方向在世界坐标空间中的方向。 按下 W键前进运动&#xff1b; <template><div><el-container><el-main><div class"box-card-left…

相机与相机模型(针孔/鱼眼/全景相机)

0. 摘要 本文旨在较为直观地介绍相机成像背后的数学模型&#xff0c;主要的章节组织如下&#xff1a; 第1章用最简单的针孔投影模型为例讲解一个三维点是如何映射到图像中的一个像素 第2章介绍除了针孔投影模型外其他一些经典投影模型&#xff0c;旨在让读者建立不同投影模型…

前端 - 基础 表单标签 -- 表单元素( input - type属性) 文本框和密码框

表单元素 &#xff1a; 在表单域中可以定义各种表单元素&#xff0c;这些表单元素就是允许用户在表单中输入或选择 的内容控件。 表单元素的外观也各不一样&#xff0c;有小圆圈&#xff0c;有正方形&#xff0c;也有方框&#xff0c;乱七八糟的&#xff0c;各种各样&#xf…

圈子社交系统-多人语音-交友-陪玩-活动报名-商城-二手论坛-源码交付,支持二开!

圈子小程序适用于多种场景&#xff0c;涵盖了各个领域的社交需求。以下是一些常见的适用场景&#xff1a; 兴趣社区&#xff1a; 用户可以加入自己感兴趣的圈子&#xff0c;与志同道合的人一起讨论交流&#xff0c;分享经验和知识。 行业交流&#xff1a; 各个行业可以建立自…