(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-16
(45)【発行日】2024-07-24
(54)【発明の名称】情報検索のためのスパース表現を生成するニューラルランキングモデル
(51)【国際特許分類】
G06F 16/338 20190101AFI20240717BHJP
【FI】
G06F16/338
【外国語出願】
(21)【出願番号】P 2022109749
(22)【出願日】2022-07-07
【審査請求日】2022-09-02
(32)【優先日】2021-12-30
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-06-01
(33)【優先権主張国・地域又は機関】US
【新規性喪失の例外の表示】特許法第30条第2項適用 NEURAL RANKING MODEL FOR GENERATING SPARSE REPRESENTATIONS FOR INFORMATION RETRIEVAL [online], ネイバー コーポレーション, 2021年7月8日, Internet<URL:https://europe.naverlabs.com/blog/splade-a-sparse-bi-encoder-bert-based-model-achieves-effective-and-efficient-first-stage-ranking/>
【前置審査】
(73)【特許権者】
【識別番号】505205812
【氏名又は名称】ネイバー コーポレーション
【氏名又は名称原語表記】NAVER Corporation
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ステファン クリンシャン
(72)【発明者】
【氏名】ティボー フォーマル
(72)【発明者】
【氏名】カルロス ラサンス
(72)【発明者】
【氏名】ベンジャミン ピウォワースキ
【審査官】早川 学
(56)【参考文献】
【文献】FORMAL, Thibault et al.,“SPLADE v2: Sparse Lexical and Expansion Model for Information Retrieval” [online],Cornell University,2021年09月21日,pp.1-6,[検索日:2023.09.26], doi: 10.48550/arXiv.2109.10086
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
ニューラル情報検索モデルのランカーで語彙に対する入力シーケンスの表現を提供するためのプロセッサおよびメモリを備えたコンピュータによって実現される方法であって、
前記方法は、
埋め込み入力シーケンスを提供するために、少なくとも前記語彙に基づいてトークン化された入力シーケンスの各トークンを埋め込む段階、
前記埋め込み入力シーケンスの各トークンと関連して、前記語彙に対する各トークンの重要度の予測を決定する段階、
前記語彙に対する各トークンの重要度に対して
、ラジカル関数である活性化関数を用いる活性化を実行することにより、前記語彙に対する入力シーケンスの表現として前記入力シーケンスの予測された用語重要度を取得する段階、および
前記ニューラル情報検索モデルの前記ランカーにおいて、前記語彙に対する前記入力シーケンスの前記表現として前記入力シーケンスの前記予測された用語重要度を出力する段階
を含み、
前記埋め込む段階および前記予測を決定する段階は、事前訓練済みの言語モデルによって実行される
方法。
【請求項2】
前記語彙を使用して受信されたクエリをトークン化する段階、
複数の候補シーケンスそれぞれに対するランキング点数を決定する段階、
前記決定されたランキング点数に基づいて前記複数の候補シーケンスをランキング化する段階、および
最高ランキングを有する候補文書のサブセットを検索する段階
をさらに含み、
前記候補シーケンスは、候補文書とそれぞれ関連し、
前記ランキング化する段階は、
前記トークン化されたクエリの各語彙トークンに対して、前記候補シーケンスに対する出力予測用語重要度(output predicted term importance)を決定する段階、および
前記決定された出力予測用語重要度を結合する段階を含む、
請求項1に記載の方法。
【請求項3】
前記ランカーは、前記ニューラル情報検索モデルの第1段階にあり、
前記ニューラル情報検索モデルは、リランカー段階(re-ranker stage)である第2段階をさらに含む、
請求項1に記載の方法。
【請求項4】
前記入力シーケンスに対する出力予測用語重要度と複数の候補シーケンスそれぞれに対して予め決定された予測用語重要度(predicted term importance)を比較する段階であって、前記候補シーケンスは候補文書とそれぞれ関連する、段階、
前記比較する段階に基づいて前記複数の候補シーケンスをランキング化する段階、および
最高ランキングを有する前記候補文書のサブセットを検索する段階
をさらに含む、
請求項1に記載の方法。
【請求項5】
前記比較する段階は、前記入力シーケンスの出力予測用語重要度と前記複数の候補シーケンスそれぞれに対する前記予測用語重要度の間の内積を計算する段階を含む、
請求項
4に記載の方法。
【請求項6】
前記トークン化された入力シーケンスの各トークンを埋め込む段階は、コンテキスト埋め込みトークン(context embedded tokens)を提供するために、少なくとも語彙および前記入力シーケンス内のトークンの位置に基づく、
請求項1に記載の方法。
【請求項7】
前記予測を決定する段階は、
前記埋め込み入力シーケンスの各トークンに関する前記語彙の各トークンの重要度を予測するために、少なくとも1つのロジット関数(logit function)を使用して前記コンテキスト埋め込みトークンを変換する段階を含む、
請求項
6に記載の方法。
【請求項8】
前記少なくとも1つのロジット関数は、活性化および正規化層をそれぞれ含む1つ以上の線形層によって提供され、
前記1つ以上の線形層は、前記埋め込み入力シーケンスの各語彙トークンを有する変換(transformation)とトークンレベルバイアス(token-level bias)を結合する、
請求項
7に記載の方法。
【請求項9】
前記事前訓練済みの言語モデルは、トランスフォーマーアキテクチャ(transformer architecture)を含む、
請求項1に記載の方法。
【請求項10】
前記言語モデルは、マスキングされた言語モデリング方法によって予め訓練される、
請求項
9に記載の方法。
【請求項11】
前記活性化を実行する段階は、
前記埋め込み入力シーケンスの各トークンに対して、前記決定された各トークンの重要度の正値性(positivity)を保証するために、前記埋め込み入力シーケンスに対する前記語彙の決定されたトークン重要度に
ReLUを適用する段階、および
前記
ReLUの結果に対して
前記ラジカル関数を適用する段階
を含む、
請求項1に記載の方法。
【請求項12】
ニューラル情報検索モデルのランカーで語彙に対する入力シーケンスの表現を提供するためのプロセッサおよびメモリを備えるコンピュータによって実現されるニューラルモデルであって、
前記ニューラルモデルは、
コンテキスト埋め込みトークン(context embedded tokens)を提供するために、埋め込み入力シーケンス内のコンテキスト特徴(contextual features)によってトークン化された入力シーケンスの各トークンを埋め込み、1つ以上の線形層を使用して前記コンテキスト埋め込みトークンを変換することによって前記語彙に対して前記埋め込み入力シーケンスの各トークンに関する重要度を予測するように構成される事前訓練済みの言語モデル層であって、前記トークン化された入力シーケンスは前記語彙を使用してトークン化される、言語モデル層、および
前記語彙に対する各トークンに関して予測された重要度を受信し、前記語彙に対する各トークンの重要度に対して
ラジカル関数である活性化関数を用いる活性化を実行することにより、前記語彙に対する前記入力シーケンスの予測された用語重要度を取得するように構成される表現層であって、前記表現層は、前記語彙に対する各トークンの重要度に対して
ラジカル関数である活性化関数を用いる活性化を実行するように構成された活性化層を含む、表現層、
を含み、
前記表現層は、前記ニューラル情報検索モデルのランカーにおいて、前記語彙に対する前記入力シーケンスの表現として前記入力シーケンスの予測された用語重要度を出力する、
ように前記コンピュータを動作させる、ニューラルモデル。
【請求項13】
前記入力シーケンスの予測された用語重要度は、文書を検索するために使用され、
前記事前訓練済みの言語モデル層は、前記入力シーケンス内のトークンの位置上に少なくとも部分的に基づいてトークン化された入力シーケンスの各トークンを埋め込むように追加で構成される、
請求項
12に記載のニューラルモデル。
【請求項14】
前記事前訓練済みの言語モデル層は、MLM(Masked Language Model)訓練方法によって予め訓練される、
請求項
12に記載のニューラルモデル。
【請求項15】
前記事前訓練済みの言語モデル層は、BERT(Bidirectional Encoder Representations from Transformers)モデルを含む、
請求項
12に記載のニューラルモデル。
【請求項16】
前記1つ以上の線形層それぞれは、活性化および正規化層を含むロジット関数(logit function)を含み、
前記線形層は、前記埋め込み入力シーケンスの各語彙トークンを有する変換(transformation)とトークンレベルバイアス(token-level bias)を結合する、
請求項
12に記載のニューラルモデル。
【請求項17】
前記活性化層は、前記埋め込み入力シーケンスに対する前記語彙の決定されたトークン重要度の正値性(positivity)を保証するために、前記決定されたトークン重要度に
ReLUを適用し、前記
ReLUの結果に対して
前記ラジカル関数を適用するように構成される
請求項
12に記載のニューラルモデル。
【請求項18】
前記ニューラルモデルは第1段階ランカー(first-stage ranker)に統合され、
前記第1段階ランカーは、
前記入力シーケンスに対して予測された用語重要度と前記ニューラルモデルによって生成される複数の候補シーケンスそれぞれに対して予測された用語重要度を比較し、
前記候補シーケンスは候補文書とそれぞれ関連し、
前記比較に基づいて前記複数の候補シーケンスをランキングし、
最高ランキングを有する文書のサブセットを検索するように追加で構成される、
請求項
12に記載のニューラルモデル。
【請求項19】
前記比較は、前記複数の候補シーケンスそれぞれに対して前記予測された用語重要度と出力予測用語重要度(output predicted term importance)の間の内積を計算することを含む、
請求項
18に記載のニューラルモデル。
【請求項20】
前記ニューラルモデルは、第1段階ランカーに統合され、
前記第1段階ランカーは、
前記ニューラルモデルを使用して複数の候補文書それぞれに対するランキング点数を決定し、
前記決定されたランキング点数に基づいて前記複数の候補文書をランキング化するように追加で構成され、
前記ランキング点数を決定する段階は、
前記語彙に対する各候補文書の表現を決定し、
前記ランキング点数を決定するために、前記決定された表現と受信した入力シーケンスの表現を比較し、
前記第1段階ランカーは、最高ランキングを有する前記候補文書のサブセットを検索するように追加で構成される、
請求項
12に記載のニューラルモデル。
【請求項21】
新たな入力シーケンスの表現は、前記ニューラルモデルを使用して決定される、
請求項
20に記載のニューラルモデル。
【請求項22】
新たな入力シーケンスの表現は、少なくとも前記語彙に対して前記新たな入力シーケンスをトークン化することによって決定される、
請求項
20に記載のニューラルモデル。
【請求項23】
前記語彙の各候補文書に対する表現を決定する段階は、オフラインで実行される、
請求項
20に記載のニューラルモデル。
【請求項24】
情報検索器のランカーで語彙に対する入力シーケンスの表現を提供するためのニューラルモデルを訓練するためのコンピュータ実現方法であって、
前記方法は、
前記ニューラルモデルを提供する段階であって、前記ニューラルモデルは、(i)前記語彙を使用して入力シーケンスをトークン化するように構成されるトークナイザー層、(ii)少なくとも前記語彙に基づいて前記トークン化された入力シーケンスの各トークンを埋め込むように構成される入力埋め込み層、(iii)前記語彙に対する前記入力シーケンスの各トークンに対する重要度を予測するように構成される予測器層、および(iv)前記語彙に対する各トークンに対して前記予測された重要度を受信し、前記語彙に対する各トークンの重要度に対して
ラジカル関数である活性化関数を用いる活性化を実行することにより、前記語彙に対する前記入力シーケンスの予測された用語重要度を取得するように構成される表現層を備え、前記表現層は、前記入力シーケンスに対して予測された重要度の
ラジカル関数である活性化関数を用いる活性化を実行するように構成される活性化層を含む、段階、
前記ニューラルモデルのパラメータを初期化する段階、および
複数の文書を含むデータセットを使用して前記ニューラルモデルを訓練する段階
を含み、
前記ニューラルモデルを訓練する段階は、ランキング損失および少なくとも1つのスパース正規化損失を含む損失を共同で最適化し、
前記ランキング損失および/または前記少なくとも1つのスパース正規化損失は、加重値パラメータによって加重される、
方法。
【請求項25】
前記データセットは、複数の文書を含む、
請求項
24に記載の方法。
【請求項26】
前記データセットは、複数のクエリを含み、
各クエリに対して、前記クエリと関連する少なくとも1つの肯定(positive)文書および前記クエリと関連しない少なくとも1つの否定(negative)文書を含む、
請求項
24に記載の方法。
【請求項27】
前記訓練は、複数のバッチを使用し、
各バッチは複数のクエリを含み、各クエリに対してそれぞれは、前記クエリと関連する肯定文書、他のクエリと関連する肯定文書である少なくとも1つの否定文書、および前記バッチ内のいずれのクエリとも関連しない少なくとも1つのハード否定(hard negative)文書を含み、
前記少なくとも1つのハード否定文書は、モデルをサンプリングして生成される、
請求項
26に記載の方法。
【請求項28】
前記クエリと関連しない前記少なくとも1つのハード否定文書は、ランキングモデルによって生成される、
請求項
27に記載の方法。
【請求項29】
前記スパース正規化損失が各クエリおよび文書に対して計算され、それぞれは加重値パラメータによって加重される、
請求項
24に記載の方法。
【請求項30】
前記スパース正規化損失は、
前記ニューラルモデルによって生成されるスパース表現のl
1ノーム(norm)を最小化するためのl
1正規化損失、または
文書の点数を計算するための浮動小数点演算(floating-point operations)の平均数を緩和するためのFLOPS正規化損失のうちの1つ以上を含む、
請求項
24に記載の方法。
【請求項31】
生成された訓練トリプレット(triplets)を使用して第1段階ランカーおよびリランカーを精製(distillation)訓練する段階であって、各トリプレットは、クエリ、関連句節、および非関連句節を含む、段階、
新たな訓練トリプレットを生成するために前記訓練された第1段階ランカーを使用する段階であって、前記生成されたトリプレットは、よりハードな否定(harder negatives)を含む、段階、
前記生成された新たなトレーニングトリプレットから目的とする点数を生成するために前記訓練されたリランカーを使用する段階、および
前記生成された新たな訓練トリプレットおよび希望する点数を使用して第1段階ランカーを2次訓練する段階を含む、
請求項
24に記載の方法。
【請求項32】
前記2次訓練ははじめ(scratch)から始まる、
請求項
31に記載の方法。
【請求項33】
前記訓練はオフラインで実行される、
請求項
31に記載の方法。
【請求項34】
ニューラル情報検索モデルの第1段階ランカーの語彙に対する入力シーケンスの表現を提供する方法を実現するためのプロセッサおよびメモリによって実行可能な命令語が記録された非一時的コンピュータ読み取り可能な媒体であって、
前記方法は、
トークンの埋め込み入力シーケンスを提供するために、少なくとも前記語彙に基づいてトークン化された入力シーケンスの各トークンを埋め込む段階であって、前記トークン化された入力シーケンスは、前記語彙を使用してトークン化される、段階、
前記埋め込み入力シーケンスの各トークンと関連して、前記語彙に対する各トークンの重要度の予測決定段階、
前記語彙に対する各トークンの重要度に対して
ラジカル関数である活性化関数を用いる活性化を実行することにより、前記語彙に対する入力シーケンスの表現として前記入力シーケンスの予測された用語重要度を取得する段階、および
前記予測された用語重要度を出力する段階
を含み、
前記埋め込み段階および前記予測決定段階は、事前訓練済みの言語モデルによって実行される、
非一時的コンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に機械学習に関し、より詳細には、情報検索のためのランキングモデルなどのニューラル言語モデルを訓練するための方法およびシステムに関する。
【0002】
本出願は、2021年12月30日に出願された米国仮特許出願第63/266,194号に対する優先権および利益を主張し、その出願全体が参照により本明細書に含まれる。
【背景技術】
【0003】
ニューラル情報検索(Information Retrieval:IR)の場合、ランキングパイプラインの第1段階の検索器(first-stage retrievers)を改善すると有効である。例えば、BOW(Bag-of-Words)モデルは、依然として第1段階の検索のための強力なベースラインであるが、関連文書にクエリとして表示される用語が含まれていないこともあり、長くにわたって語彙の不一致問題に頭を抱えている。したがって、標準BOWアプローチを、学習した(ニューラル)ランカーに置き換えようとする取り組みが行われて来た。
【0004】
BERT(Bidirectional Encoder Representations from Transformers)モデルを基盤とする事前学習済み言語モデル(Language Models:LMs)は、自然語処理(Natural Language Processing:NLP)や情報検索において作業を再ランキング(re-ranking)するものとして人気が高まっている。LM基盤のニューラルモデルは、簡単な微調整によって様々な作業に適応する高い能力を示す。LMベースのランキングモデルは、句節(passage)を再ランキングする作業に対して改善された結果を示した。しかし、LM基盤モデルは、効率性と拡張性の問題を抱えている。厳格な効率要求により、LM基盤のモデルは一般的に2段階のランキングパイプラインのリランカー(re-rankers)だけに使用されていたが、第1段階の検索(または、候補の生成)は、逆インデックスに依存するBOWモデルによって実行されていた。
【0005】
関連する計算のほとんどをオフラインで実行できる上に、オンラインでの推論が迅速な検索方法が求められている。効率的なANN(Approximate Nearest Neighbors)方法を使用して検索を実行するために密集(dense)埋め込みを学習することで優れた結果を招来したが、このような方法は用語一致を明示的にモデリングできないため、依然としてBOWモデル(例えば、両タイプの信号を結合する)と結合されている。
【0006】
クエリと文書に対するスパース表現を学習することへの関心が高まっている。スパース表現を使用することで、モデルは、(潜在的な)用語の完全一致、逆インデックスの効率、解釈可能性など、BOWモデルから好ましい属性を継承することができる。さらに、IRの標準拡張モデルと同様に、暗示的または明示上(潜在的な、コンテキスト化された)拡張メカニズムをモデリングすることにより、モデルは語彙の不一致を減らすことができる。
【0007】
BERT Siameseモデルを基盤とする高密度検索は、質疑応答および情報検索の作業における候補生成のための標準的なアプローチである。密集インデックスの代案として用語基盤のインデックスがある。例えば、標準BOWモデルを基盤として、Zamani et alに開示されたSNMRでは、モデルが表現に対するL1正規化を使用してスパース高次元潜在空間に文書とクエリを埋め込んだ。しかしながら、SNRMの有効性は、依然として制限的であった。
【0008】
より最近では、スパースアプローチに対して、事前訓練済みのLMから知識を移す試みが行われている。例えば、BERTを基盤とするDeepCT(Dai and Callan,2019,Context-Aware Sentence/Passage Term Importance Estimation For First Stage Retrieval,arXiv:1910.10687[cs.IR])は、BOW用語加重値と類似し、完全な語彙空間で文脈化された用語加重値を学習することに重点を置いている。しかしながら、文書と関連する語彙が同じままであるため、このようなタイプのアプローチでは語彙の不一致を解決することができない。
【0009】
また他のアプローチとして、文書の拡張単語を予測するための生成方法を使用して文書を確張するものがある。文書拡張は、文書に新たな用語を追加することで、語彙の不一致を解消し、既存の用語を繰り返し、重要な用語をブーストすることで暗示的に加重値を再調整する。しかしながら、このような方法は、訓練の方式(クエリの予測)によって制限され、これによって本質的に間接的であり、進行が制限される。
【0010】
また他のアプローチとしては、文書の各用語によって暗示される語彙の各用語の重要性を予測するものがある。すなわち、文書またはクエリトークンと語彙のすべてのトークンとの間の相互作用行列を計算する。この次に、語彙の各用語、完全な文章、またはクエリの重要度加重値を計算する集計メカニズムを使用する。ただし、このような方法は、迅速な検索を提供するのに十分なほどスパースされていない表現を提供したり、最適でない性能を示したりする。
【発明の概要】
【発明が解決しようとする課題】
【0011】
本発明の実施形態は、ニューラル情報検索モデルのランカーにおける語彙に対する入力シーケンスの表現を提供するためのプロセッサおよびメモリを備えたコンピュータによって実現される方法を提供する。前記入力シーケンスは、例えば、クエリまたは文書シーケンスであってよい。トークン化された入力シーケンスの各トークンは、トークンの埋め込み入力シーケンスを提供するために、少なくとも前記語彙に基づいて埋め込まれる。前記入力シーケンスは、前記語彙を使用してトークン化される。前記埋め込み入力シーケンスの各トークンに関して、前記語彙に対する各トークンの重要度(例えば、加重値)が予測される。前記入力シーケンスの予測された用語重要度は、前記埋め込み入力シーケンスに対して活性化を実行することにより、前記語彙に対する前記入力シーケンスの表現である。前記埋め込み段階および前記予測決定段階は、事前訓練済みの言語モデルによって実行される。前記用語重要度は、前記ニューラル情報検索モデルの前記ランカーの前記語彙に対する前記入力シーケンスの表現として出力される。
【0012】
他の実施形態は、ニューラル情報検索モデルのランカーにおける語彙に対する入力シーケンスの表現を提供するためのプロセッサおよびメモリを備えたコンピュータによって実現されるニューラルモデルを提供する。前記入力シーケンスは、例えば、クエリまたは文書シーケンスであってよい。事前訓練済みの言語モデル層は、前記語彙とコンテキストの特徴に基づいてトークン化された入力シーケンスの各トークンを埋め込み、1つ以上の線形層を使用してコンテキスト埋め込みトークンを変換することにより、前記語彙に対して埋め込み入力シーケンスの各トークンに関する重要度(例えば、加重値)を予測するように構成される。前記トークン化された入力シーケンスは、前記語彙を使用してトークン化される。表現層は、前記語彙に対する各トークンに対して予測された重要度を受信し、前記語彙に対する前記入力シーケンスの重要度(例えば、加重値)の表現を取得するように構成される。前記表現層は、埋め込み入力シーケンスに対して予測された重要度の下に凸な活性化を実行するように構成される活性化層を含んでよい。表現層は、前記ニューラル情報検索モデルの前記ランカーにおける前記語彙に対する前記入力シーケンスの予測された用語重要度を出力してよい。前記入力シーケンスの予測された用語重要度は、文書を検索するために使用されてよい。
【0013】
他の実施形態は、情報検索モデルのランカーにおける語彙に対する入力シーケンスの表現を提供するためのニューラルモデルの訓練のためのコンピュータ実現方法を提供する。前記訓練は、前記ランカーまたは前記IRモデルのエンドツーエンド(end-to-end)訓練の一部であってよい。前記ニューラルモデルは、(i)前記語彙を使用して入力シーケンスをトークン化するように構成されるトークナイザー層、(ii)少なくとも前記語彙に基づいて、前記トークン化された入力シーケンスの各トークンを埋め込むように構成される入力埋め込み層、(iii)前記語彙に対する前記入力シーケンスの各トークンの重要度(例えば、加重値)を予測するように構成される予測器層、および(iv)前記語彙に対する各トークンに対して前記予測された重要度を受信し、前記語彙に対する前記入力シーケンスの予測された用語重要度(例えば、加重値)を取得するように構成される表現層を含む。前記入力埋め込み層と前記予測器層は、事前訓練済みの言語モデルで実現されてよい。前記表現層は、前記入力シーケンスに対して予測された重要度の下に凸な活性化を実行するように構成される活性化層を含んでよい。訓練方法の一例として、前記ニューラルモデルのパラメータが初期化され、前記ニューラルモデルは、複数の文書を含むデータセットを使用して訓練される。前記ニューラルモデルを訓練することにより、ランキング損失および少なくとも1つのスパース正規化損失を含む損失がともに最適化される。前記ランキング損失および/または少なくとも1つのスパース正規化損失は、加重値パラメータによって加重されてよい。
【0014】
追加の態様によると、本開示は、上述した態様に係る方法を実行するためのコード命令を含むコンピュータプログラム要素、および上述した実施形態および実施形態に係る方法を実行するためのコード命令を含むコンピュータプログラム要素が記録されているコンピュータ読み取り可能な媒体を提供する。本開示は、上述した実施形態および態様に係る方法を実行するためのコード命令語を使用して構成されるプロセッサをさらに提供する。
【0015】
本発明の他の特徴および利点は、添付の図面と併せて提示する明細書から明らかになるであろう。
【0016】
添付の図面は、実施形態の原理を説明する目的で明細書に含まれる。図面は、本発明を図示および説明した実施形態だけに制限したり、それらの実施および使用方法に制限したりするように解釈されてはならない。さらなる特徴および利点は、添付の図面に示した実施形態の説明から明らかになるであろう。
【図面の簡単な説明】
【0017】
図面に示した参照番号は、類似および/または同一の要素を識別するために再使用されることもある。
【
図1】文書の情報検索(Information Retrieval:IR)のためのプロセッサ基盤のシステムの一例を示した図である。
【
図2】語彙に対する入力シーケンスの表現を提供するためのプロセッサ基盤の方法の一例を示した図である。
【
図3】
図2の方法を実行するためのニューラルランカーモデルの一例を示した図である。
【
図4】文書を比較するための方法の一例を示した図である。
【
図5】ニューラルランキングモデルに対する訓練方法の一例を示した図である。
【
図6】クエリおよび文書に対する正規化加重値が異なるときの有効性(MRR@10)および効率性(FLOPS)間のトレードオフを示した図である。
【
図8】多様な例示モデルの性能とFLOPSの性能の対比例を示した図である。
【
図9】例示的な方法を実現するためのアキテクチャの例を示した図である。
【発明を実施するための形態】
【0018】
情報検索(Information Retrieval:IR)では、ランキング(例えば、文書ランキング)のためのニューラルランカーモデルを提供することが好ましい。このようなモデルは、検索のために逆インデックスを使用するように十分に稀薄な(ベクトル)表現を生成することができ(これは、ANN(Approximate Nearest Neighbor)法などの方法よりも迅速かつ安定的であり、正確一致が可能)、密集埋め込みを使用したニューラルIR表現と同等の性能を発揮する(例えば、MRR(Mean Reciprocal Rank)やNDCG(Normalized Discounted Cumulative Gain)などの性能メトリック側面において)。
【0019】
ニューラルランカーモデルの例として、BERT(Bidirectional Encoder Representations from Transformers)基盤のLMsなどの訓練済み言語モデル(Language Models:LMs)によって提供されるリッチ用語埋め込みと、逆インデックスに基づくIRに対する効率的なマッチングアルゴリズムを許容するスパース性を組み合わせることができる。BERT基盤の言語モデルは、自然語処理(Natural Language Processing:NLP)作業で一般的に使用されており、本発明の例示的な実施形態でランキング化のために利用される。
【0020】
例示的なシステムおよび方法は、語彙に対する入力シーケンスの用語重要度を予測することにより、IRのコンテキストで入力シーケンス(例えば、文書またはクエリ)のスパース表現(スパースベクトル表現またはスパース語彙拡張)を提供することができる。特に、このようなシステムおよび方法は、文書およびクエリの拡張認識表現を提供することができる。
【0021】
MLM(Masked Language Modeling)方法などの自己管理事前トレーニング(self-supervised pretraining objective)を使用して訓練される事前訓練済みのLMは、入力シーケンスのトークンに関する語彙(用語重要度)に対する入力シーケンスのための重要度(または、加重値)の予測を決定するために使用されてよい。語彙に対する入力シーケンスの予測された重要度を提供する最終的な表現は、一部の用語が支配的であることを防ぐために下に凸な関数を含む活性化を実行することによって取得することができる。下に凸な活性化関数の例としてログ飽和効果(log-saturation effect)を提供するが、ラジカル関数(radical functions)(例えば、sqrt(1+x))などの関数が使用されてもよい。
【0022】
ニューラルランカーモデルの一例として、生成された表現のスパース性を確保し、第1段階のランキングモデルの効率性(計算速度)と有効性(語彙拡張の品質)の両方を改善するために、一部のスパース正規化に基づいてさらに訓練されてよい。効率性と有効性のトレードオフは、加重値を使用して調整されてよい。
【0023】
下に凸な活性化および/またはスパース正規化は、学習されたバイナリゲーティングを必要とするBERTアキテクチャに基づくモデルよりも改善された事項を提供することができる。他の特徴のうちでもスパース正規化により、BOWマスキングなどのハンドクラフトの(handcrafted)スパース化戦略に依存することなく、エンドツーエンドのシングル段階トレーニング(single-stage training)が可能となる。
【0024】
ニューラルランキングモデルは、全体的な損失のスパース正規化と組み合わせることができるランキング損失を提供するために、他のクエリで一部のネガティブ(negative)文書が含まれるバッチ内ネガティブサンプリング(in-batch negative sampling)を使用して訓練されてもよい。これとは対照的に、SparTermなどのランキングモデル(例えば、Baietal.,2020.SparTerm:Learning Term based Sparse Representation for Fast Text Retrieval.arXiv:2010.00768[cs.IR]に開示)は、例えば、BM25によって生成されるハードネガティブ(hard negatives)だけを使用して訓練される。バッチ内ネガティブサンプリングを使用した訓練は、例示的なモデルの性能をより高めることができる。
【0025】
本明細書で開示する実験は、例えば、情報検索のための第1段階のランカーに使用される例示的なニューラルランキングモデルが、テストデータセットに対する他のスパース検索方法よりも優れた性能を発揮できると示しているが、最先端の密集検索方法に匹敵する結果を提供することができる。密集検索アプローチとは異なり、例示的なニューラルランキングモデルはスパース語彙拡張を学習することができるため、逆インデックス検索方法の利点を取得することができ、ANN検索などの方法の必要性を回避することができる。
【0026】
本明細書の例示的な方法およびシステムは、用語加重値に対する下に凸な活性化関数と組み合わせて使用することができ、明示的なスパース正規化に基づいてニューラルランカーモデルに対する訓練をさらに提供することができる。これは、非常に希少な表現と、既存の稠密で希少な方法に匹敵する結果を提供する。例示的なモデルは簡単な方式で実現可能であり、単一段階でエンドツーエンド学習が可能である。スパース正規化の寄与は、効率性と有効性のトレードオフに影響を与える例示的な方法で制御することができる。
【0027】
図面を参照すると、
図1は、検索エンジンを示してるが、これに制限されてはならず、文書の情報検索(Information Retrieval:IR)のためのニューラルモデルを使用する例示的なシステム100であってよい。クエリ102が第1段階検索器104に入力される。クエリの例としては、1つ以上の文書(任意の形式)、回答する質問、識別される項目などを提供するための検索要請または検索用語を含むが、これに制限されてはならない。第1段階検索器またはランカー104は、利用可能な文書のランキングを提供するためにクエリ102を処理し、最上位ランキング文書の第1セット106を検索する。この後、第2段階またはリランカー(reranker)108は、検索された最上位の文書のセット106を再ランキングしてランキングされた文書のセット110を出力するが、これは第1セット106よりも数が少ない場合がある。
【0028】
本発明の実施形態に係るニューラルランカーモデルの例は、
図1に示すように、第2段階のリランカー108と組み合わせて、第1段階検索器(retriever)またはランカー104に対するランキングを提供するために使用されてよい。第2段階リランカー108の例は、ハンドクラフト(handcrafted)特徴に対するLambdaMart、RankNET、またはGBDTなどのランク学習を実現するリランカーまたは単語埋め込み(例えば、word2vec)を使用してニューラルネットワークモデルを実現するリランカーを含むが、これに制限されてはならない。ニューラルネットワーク基盤のリランカーは、DSSMなどの表現を基盤としてよく、DRMM、K-NRM、またはDUETなどの相互作用を基盤としてよい。他の例示的な実施形態において、本発明の例示的なニューラルランカーモデルは、代案的または追加的に、第2段階のランカー108に対するランキングを提供してよい。他の実施形態において、例示的なニューラルランカーモデルは、独立型ランキング、好ましくは検索段階として使用されてよい。
【0029】
ニューラルランカーモデルの例としては、第1段階104、第2段階108、または独立型モデルとして使用されるかどうかにかかわらず、語彙に対する入力シーケンスの表現、例えばベクトル表現を提供してよい。語彙は、予め定められていてよい。入力シーケンスは、例えば、クエリ102のようなクエリシーケンス、クエリに基づいてランキングされるか追加で検索される文書シーケンス、または任意の他の入力シーケンスで実現されてよい。本明細書で使用される「文書(Document)」とは、ベクトル空間で表されてよく、例示的な方法を使用してランキング化されるか追加で検索されるトークンの任意のシーケンスを広範囲に指すものである。クエリとは、1つ以上の文書のランキング化と検索に使用するため、にベクトル空間で表されるトークンのシーケンスを広範囲に指すものである。
【0030】
図2は、予め決定された語彙に対する入力シーケンスの表現を提供するための例示的な方法200を示しており、非制限的な例示はBERT WordPiece語彙
【0031】
【数1】
であり、このような表現は、IRにおけるランキングおよび/または再ランキングに使用されてよい。
図3は、方法200を実行するために使用される例示的なニューラルランカーモデル300を示している。ニューラルランカーモデル300は、少なくとも1つのプロセッサおよび1つのメモリを備えた1つ以上のコンピュータによって実現されてよい。
【0032】
本明細書のニューラルランカーモデルの例は、教師あり(supervised)クエリおよび/または文書拡張を提供することにより、入力シーケンス、例えばクエリまたは文書に対するスパース表現を直接予測することができる。例示的なモデルは、MLM(Masked Language Model)訓練方法などの教師なし方法を使用して訓練されたLMなどの事前訓練済みのLMを使用して拡張を実行してよいが、これに制限されてはならない。例えば、ニューラルランカーモデルは、MLM(Masked Language Model)で訓練されたLM320のロジット(logits)(すなわち、非正規化出力)302に基づいて拡張を実行してよい。正規化は、スパース性を保証あるいは奨励するために例示的な検索器を訓練するために使用されてよい。
【0033】
事前訓練済みのLMの例は、BERTに基づいてよい。例えば、Devlin et al,2019,BERT:Pre-training of Deep Bidirectional Transformers for Language Understanding,CoRR abs/1810.04805(参照により本明細書に含まれる)に開示されているように、トランスフォーマ-基盤(transformer-based)の訓練方法および関連モデルのファミリーであり、これは2つの作業に対して予め訓練されるMLM(Masked Language Model)作業と呼ばれるマスキングされたトークン予測と次の文章の予測である。このようなモデルは、各トークンが以前のトークンだけでなく、左側および右側すべてに対応するという点において双方向である。本明細書のニューラルランカーモデルの例は、BERT基盤のモデルによって提供されるような事前訓練済みの言語モデルを活用することで、入力シーケンスに対する語彙(例えば、BERT語彙空間またはその他の語彙空間)に対してトークンレベル重要度を予測し、語彙に対する入力シーケンスの予測された重要度を取得して入力シーケンスの表現を提供する。
【0034】
ニューラルランカーモデル300によって受信された入力シーケンス301は、トークン化された入力シーケンスt1・・・tN(306)を提供するために、予め決定された語彙(この例ではBERT語彙)を使用し、トークナイザー層(tokenizer layer)304によって202でトークン化される。トークン化された入力シーケンス306も、BERT埋め込みで使用される<CLS>(分類のために一部のBERT方法で使用される、入力シーケンスの前に追加される記号)および/または<SEP>(分類器(separator)のために一部のBERT方法で使用される)などの1つ以上の特殊トークンを含んでよいが、これに制限されてはならない(分類器(separator)のために一部のBERT方法で使用される)
トークン-レベル重要度は206で予測される。トークン-レベル重要度は、入力シーケンスの各トークン(例えば、「ローカル」重要度)に関する語彙において各トークンの重要度(または加重値、または表現)を示す。例えば、トークン化された入力シーケンス306の各トークンは、コンテキスト埋め込みトークンh1・・・hN(312)のシーケンスを提供するために208で埋め込まれてよい。トークン化された入力シーケンス306の各トークンの埋め込みは、例えば、語彙と入力シーケンス内のトークンの位置に基づいてよい。コンテキスト埋め込みトークンh1・・・hN(312)は、埋め込み入力シーケンス内のトークンのコンテキスト特徴を表してよい。例示的なコンテキスト埋め込み208は、事前訓練済みのLM320のBERT層308などのトランスフォーマ基盤の層に実現された1つ以上の埋め込み層を使用してよい。
【0035】
入力シーケンスのトークンレベル重要度は、コンテキスト埋め込みトークン312において210で語彙(例えば、BERT語彙空間)に対して予測される。例えば、事前訓練済みのLM320(例えば、MLM方法を使用して訓練されたもの)のヘッド(ロジッド)302において、トークンレベル重要度分散層は、トークンの入力シーケンスの各トークンに対する語彙の各トークンの重要度(または、加重値)を予測するのに使用されてよい(すなわち、語彙空間における(入力シーケンス)トークンレベルまたはローカル表現310である)。例えば、MLMヘッド302は、それぞれが少なくとも1つのロジット関数を含む1つ以上の線形層を使用してコンテキスト埋め込みトークン312を変換し、埋め込み入力シーケンスの各トークンに関する語彙の各トークンの重要度(例えば、加重値または他の表現)を予測して語彙空間のトークン-レベル表現310を提供してよい。
【0036】
例えば、トークン化202後の入力クエリまたは文書シーケンス(例えば、WordPieceトークン化など)t=(t1,t2,...tN)と、埋め込み208後の該当のBERT埋め込み(または、BERT類似モデル埋め込み)(h1,h2,...hn)が考えられる。トークンi(入力シーケンスの)に対するトークンj(語彙)の重要度wijは、次の段階210で提供されてよい。
【0037】
【数2】
ここで、E
jは、トークナイザーとトークンに対するモデルパラメータj(すなわち、コンテキストを考慮せずにトークンjを表すベクトル)によるBERT(または、BERT類似モデル)入力埋め込みを示し、b
jは、トークンレベルのバイアス(token-level bias)を示し、transform(・)は、例えば、Hendrycks and Gimpel、arXiv:1606.08415,2016,and a normalization layer LayerNormに開示されているように、GeLU(Gaussian error Linear Unit)活性化を使用する線形層を示す。GeLUは、例えば、x→xΦ(x)によって提供されるか、tanh(・)関数で近似化されてよい(ガウス分布の分散が0になると、1が停留するReLU(Rectified Linear Unit)に到達するが、単位分散の場合はGeLUを取得する)。Tは、例えば、最終的に内積であることを示すための線形代数の転置演算に対応してよく、変換関数に含まれてよい。
【0038】
式(1)は、MLM予測と等価である。したがって、例えば、事前訓練済みのMLMモデル(または、他の事前訓練済みのLM)から初期化することも可能である。
【0039】
入力シーケンス318の用語重要度(例えば、入力シーケンスに対するグローバル用語重要度)は、埋め込み入力シーケンスに対して下に凸な活性化関数を実行する表現層322を使用して活性化を実行することにより、語彙に対する入力シーケンスの重要度(例えば、加重値)の表現として段階220で予測される。段階220で予測される入力シーケンスの予測用語重要度は、入力シーケンスの長さとは関係ない。非制限的な例として、下に凸な活性化関数は、対数活性化関数またはラジカル関数(例えば、sqrt(1+x)関数、適切なスケーリングのためのマッピング
【0040】
【0041】
例えば、入力シーケンス318の重要度の最終表現は、入力シーケンストークンに対する重要度予測器を結合(または、例えば最大化)し、用語加重値が正であることを保証するためのReLUなどの活性化関数を適用した後、ログ関数のような下に凸な関数を適用して取得してよい。
【0042】
【数4】
上記のモデルの例は、一部の用語が支配的であることを防ぎ、(自然に)表現のスパース性を保証するログ飽和効果を提供する。ログ活性化は、例えば、Yang Liu et al.,Natural-Logarithm-Rectified Activation Function in Convolutional Neural Networks,arXiv,2019,1908.03682に開示されているコンピュータビジョンで使用されている。ログ飽和またはその他の
下に凸な関数を使用すれば、一部の用語が支配的になることを防ぐことができるが、驚くべきことに、内在するスパース性がより改善され、正規化なしでスパースソリューションを得ることができる。
【0043】
段階212で出力される最終表現(すなわち、入力シーケンスの予測された用語重要度)は、クエリまたは文書を含む他のシーケンスからの表現と比較されるか、表現が語彙空間にあるため、シーケンスのトークン化を単純化してよい(例えば、語彙に対するクエリのトークン化は表現を提供することができる)。
図4は、例示的な比較方法400を示している。例えば、ニューラルランカーモデル300またはトークナイザーによって提供されるようなランカー/トークナイザー404によって生成されるクエリ403の表現402は、例えば、ニューラルランカーモデル300のようなニューラルランカーモデル(Ranker)408による文書コレクション406のためにオフラインで生成された複数の候補シーケンス405それぞれの表現と比較される。候補シーケンス405は、情報検索のための候補文書(または、それ自体が候補文書)とそれぞれ関連してよい。例示的な比較は、例えば、表現の間で内積を取ることを含んでよい。このような比較により、ランキング点数を提供することができる。この後、複数の候補シーケンス405は、ランキング点数に基づいてランキング化されてよく、文書406のサブセット(例えば、最高ランキングセット、ランキングに基づくサンプリングセットなど)が検索されてよい。このような検索は、情報検索方法の第1段階(ランキング)および/または第2段階(再ランキング)で実行されてよい。
【0044】
以下、ニューラルランカーモデル300のための訓練方法の一例について説明する。一般的に、訓練は、モデルのパラメータ(加重値やバイアスなど)を初期化することから始まる。この後、予想された出力に対して与えられた入力に対してモデルが生成した出力結果を評価した後、繰り返し調整される。ニューラルランカーモデル300を訓練するために、ニューラルモデルのパラメータを初期化してよい。MLMなどの事前訓練済みのLMのパラメータのような一部のパラメータが事前に訓練されてよいが、これに制限されてはならない。初期パラメータは、追加的または代案的に、例えば、任意の他の適切な方式によってランダム化するか初期化してよい。ニューラルランカーモデル300は、複数の文書を含むデータセットを利用して訓練されてよい。データセットは、ニューラルランカーモデル300を訓練するためにバッチで使用されてよい。データセットは、複数のクエリを含む複数の文書を含んでよい。クエリそれぞれに対して、データセットは、少なくとも1つの肯定文書(クエリと関連する文書)および少なくとも1つの否定文書(クエリと関連しない文書)をさらに含んでよい。否定文書には、データセット(または、該当のバッチ)のいかなるクエリとも関連しないハード否定文書および/または特定のクエリとは関連しないがデータセット(または、バッチ)の他のクエリとは関連する否定文書が含まれてよい。例えば、ランキングモデルを例に挙げることができるが、これに制限されないモデルをサンプリングすることによってハード文書が生成されてもよい。
【0045】
図5は、IBN(In-Batch Negatives)サンプリング戦略を適用するニューラルランキングモデル300(
図3に示す)のようなニューラルランキングモデル500に対する訓練方法の一例を示している。式(2)からのqおよびd表現502との間の内積から取得されたランキング点数をs(q,d)とする。バッチ内のクエリq
iが与えられれば、肯定文書、d
i
+(ハード)ネガティブ文書d
i
-(例えば、ランキング関数をサンプリング、例えば、M25サンプリングから持ってくる)、および他のクエリの肯定文書によって提供されるバッチの否定文書のセット{d
i,j
-}
jが与えられた場合、ランキング損失は、文書d
i
+、d
i
-、および{d
i,j
-}
jのうちで関連性が高い文書d
i
+の確率を最大化したものと解釈されてよい。
【0046】
【数5】
例示的なニューラルランカーモデル500は、式(3)の損失を最小化することによって訓練されてよい。
【0047】
さらに、ランキング損失は、スパース正規化を提供するために追加されてよい。スパース表現の学習は、SNRM(例えば、Zamani et al.,2018,from NeuralRe-Ranking to Neural Ranking:Learning a Sparse Representation of Inverted Indexing,In Proceedings of the 27th ACM International Conference on Information and Knowledge Management(Torino,Italy)(CIKM’18).Association for Computing Machinery,New York,NY,USA,497-506)などの方法で適用された。ただし、掲示されたリストが均一に分布されるという保証はないため、表現のl1ノーム(norm)を最小化しても最も効率的なインデックスは生成されない。これは、用語度数分布(term frequency distribution)のZipfian特性により、標準インデックスの場合はさらに該当する。
【0048】
均衡のあるインデックスを得るための、Paria et al.,2020,Minimizing FLOPs to Learn Efficient Sparse Representations,arXiv:2004.05665は、FLOPS正規化器(regularizer)、検索時間と直接関連する文書の点数を計算するのに必要となる浮動小数点演算の平均回数のスムーズな緩和を開示している。これは、トークンjに対する活性化確率pjの持続的な緩和(すなわち、0でない加重値を有する)としてajを使用して定義され、
【0049】
【数6】
によるサイズNのバッチ内の文書に対して予測される。これにより、次のような正規化損失が発生する。
【0050】
【0051】
【数8】
が2乗されないという点において、SNRMで使用されるl
1正規化とは異なる。したがって、l
FLOPSを使用すると、高い平均用語加重値が押し下げられ、より均衡のあるインデックスが生成される。
【0052】
モデルの一例として、スパース性、文書、およびクエリの希少な拡張認識表現に対する訓練、例えば、エンドツーエンド訓練を提供するために、上述した特徴のうちの少なくとも1つ以上を組み合わせてよい。例えば、モデルの一例は、ランキングおよび正規化損失を共同で最適化することにより、式(2)で提供するログ飽和モデルを学習してよい。
【0053】
【数9】
式(4)において、L
regは、スパース正規化(例えば、l
1またはl
FLOPS)である。クエリと文書に対するそれぞれ2つの固有な正規化加重値(λ
qおよび λ
d)は、例示的な損失関数で提供されてよい。これにより、クエリのスパース性に追加の圧力を加えることができるため、迅速な検索に極めて有効となる。
【0054】
ニューラルランカーモデルは、有効性および/または効率性をより高めるためにプーリング方法を適用してもよい。例えば、上述したプーリングメカニズムを直接修正することにより、例示的なモデルは、有効性を大幅に向上させることができる。
【0055】
例示的な最大プーリング方法は、最大プーリング演算によって前記式(2)の和を変更してよい。
【0056】
【数10】
このような変更は、実験で立証されているように、向上した性能を提供することができる。
【0057】
また、クエリ拡張なしで例示的なモデルを確張して文書専用方法を提供することもできる。このようなモデルは、すべてをオフラインで事前に計算してインデキシングできると同時に競争力を維持する結果を提供することができるため、本質的により効果的である。このような方法は、最大プーリング演算と組み合わせてもよいし、個別に提供されてもよい。このような方法ではクエリの拡張や用語加重値がないため、語彙内のクエリのトークン化と(例えば、予め計算された)ニューラルランカーによって生成される文書の表現を比較することで、ランキング点数を単純に提供することができる。
【0058】
【数11】
他の変更例では、精製(distillation)を訓練方法に組み込んでよい。精製は、上述した例示的なモデルまたは訓練方法のうちの任意のものと組み合わせて提供されてもよいし、個別に提供されてもよい。精製の例は、Hofstatter et al.,Improving Efficient Neural Ranking Models with Cross-Architecture Knowledge Distillation,arXiv:2010.02666,2020に開示された方法に基づいてよい。BEIRゼロショットベンチマークだけでなく、MS MARCO句節ランキング作業において最先端に近い性能を発揮すると実験で立証されたように、精製技法は、例示的なモデル性能をより高めるために使用されてよい。
【0059】
精製訓練の例は、少なくとも2つの段階を含んでよい。第1段階では、例えば、本明細書で開示するような第1段階検索器と、本明細書で開示するような(非制限的な例示として、HuggingFace,https://huggingface。co/cross-encoder/msで提供される)リランカーの両方は、例えば、Hofstatter et al.,2020,Improving Efficient Neural Ranking Models with Cross-Architecture Knowledge Distillation.arXiv:2010.02666.に開示されているように、トリプレット(例えば、クエリq、関連句節p+、および非関連句節p-)を使用して訓練される。第2段階では、精製で訓練されたサンプルモデルを使用することでハード否定トリプレットが生成され、目的とする点数を生成するためにリランカーが使用される。
【0060】
本明細書の実験において、SPLADEmaxと呼ばれるモデルは、このようなトリプレットと点数を使用して最初から訓練することができる。このような第2段階の結果は、精製モデルを提供し、その例は、本発明の実験においてDistilSPLADEmaxである。
【0061】
実験
第1実験セットにおいて、例示的なモデルは、完全なランキング設定でサンプルモデルが訓練され、MS MARCO句節ランキングデータセット(https://github.com/microsoft/MSMARCO-Passage-Ranking)で評価された。このようなデータセットには、約880万個の句節と短い注釈を使用した数十万個の訓練クエリが含まれている(クエリあたり平均1.1個の関連句節)。開発セット(development set)には類似のラベルが付いた6980個のクエリが含まれているが、TREC DL 2019評価セットは、43個のクエリのセットに対して評価者が細分化した注釈を提供する。
【0062】
訓練、インデキシング、および検索
モデルは、BERT基盤のチェックポイントで初期化された。モデルは、線形スケジューリング、6000ステップのウオーミングアップを有する2e-5の学習速度、および124のバッチサイズを使用するADAM最適化プログラムによって訓練された。最高のチェックポイントは、150,000回の訓練を繰り返した後、500個のクエリの有効性検証セットに対して使用を維持した。実験が再ランキング作業で検証されたが、例示的な方法では他の検証が使用されてもよい。入力シーケンスの最大長は256と見なされた。
【0063】
訓練の初期段階で正規化器(regularizer)の影響を緩和するために、Paria et al.,2020に開示された方法にしたがい、λに対するスケジューラを使用して、各訓練の繰り返しにおいてλが一定に維持されるものから与えられた段階(実験において50k)までλを2次的に(quadratically)増加させる。λに対する一般的な値は、1e-1と1e-4の間に該当する。インデックスを保存するために、Python配列に基づくユーザ実現が使用された。Numbaは検索の並列化に使用された。モデルは、32GBメモリを備えた4つのTesla V100 GPUを使用し、PyTorchおよびHuggingFaceトランスフォーマによって訓練された。
【0064】
評価
Recall@1000は、MS MARCO開発セットおよびTREC DL 2019のそれぞれに対する公式マトリックMRR@10およびNDCG@10と同様に、両方のデータセットに対して評価された。評価の焦点が第1検索段階にあるため、BERTを基盤としたリランカーは考慮されず、例示的な方法と第1段階ランカーだけを比較した。例示的な方法は、次のようなスパースアプローチと比較された。1)BM25、2)DeepCT、3)doc2query-T5(Nogueira and Lin,2019.From doc2query to docTTTTTquery)、4)SparTerm、および周知の密集アプローチANCE(Xiong et al.,2020,Approximate Nearest Neighbor Negative Contrastive Learning for Dense Text Retrieval,arXiv:2007.00808[cs.IR])、およびTCT-ColBERT(Lin et al.,2020,Distilling Dense Representations for Ranking using Tightly-Coupled Teachers.arXiv:2010.11386[cs.IR])。結果は各アプローチに対する開示から提供された。例示的なランキングパイプライン(ST語彙専用)で訓練された純粋語彙SparTermが含まれていた。ログ飽和の利点を説明するために、前記式(2)(ST exp-l1およびST exp-lFLOPS)を使用する代わりに、バイナリゲーティング
【0065】
【数12】
を使用して訓練されたモデルに対する結果が追加された。スパースモデルの場合、クエリと文書の間の浮動小数点演算の平均数に対する予測値が表1に示されている。可能な場合、これは表現
【0066】
【数13】
と定義された。ここで、p
jは、文書dまたはクエリqのトークンjに対する活性化確率である。これは、MS MARCOコレクションに対する約10万件の開発クエリのセットから経験的に予測された。
【0067】
下記の表1に結果を示した。全般的に、例示的なモデルは、他のスパース検索方法よりも大幅に優れており(TREC DLのresume@1000は除く)、結果は現在の密集検索方法と競合することが観察された。
【0068】
例えば、ST語彙専用の例示的な方法は、拡張を使用するモデルを含むため、以前に報告されたSparTermに対する結果だけでなく、DeepCTの結果よりも優れていた。追加のスパース拡張メカニズムにより、MS MARCO開発セット(例えば、ST exp-l1の場合、0.96に近いRecall@1000)に対する現在の最先端の密集アプローチに匹敵する結果を得ることができ、FLOPSの平均数が遥かに多い結果を得ることができた。
【0069】
拡張モデルにログ飽和効果を追加することにより、例示的な方法は、スパース性を大幅に向上させ、FLOPSをBOWアプローチと同程度の水準まで減らした。最高の第1段階ランカーと比較した場合、性能を犠牲にすることはなかった。さらに、計算費用を減らすために、l1に対するFLOPS正規化の利点を観察した。SparTermとは対照的に、例示的な方法は、単一段階でエンドツーエンドで訓練された。例示的な方法は、ANCEなどの密集ベースラインに比べてより簡単であり、近似的に最も近くに存在する隣接検索に依存しない。
【0070】
【表1】
図6は、有効性(MRR@10)と効率性(FLOPS)のトレードオフを示している。このとき、λ
qおよびλ
dは変化する(両方を変化させることは、プロットが滑らかでないことを意味する)。ST exp-l
FLOPSは、効率性の側面においてBOWモデルおよび例示的な方法よりも遥かに低いことが観察された。その間、例示的な方法SPLADE exp-l
1、SPLADE exp-l
FLOPSは、doc2query-T5よりも性能が優れ、スパースBOWモデルと同等の効率性レベルに達した。強く正規化されたモデルは、競争力のある性能を示した(例、FLOPS=0.05、MRR@10=.0296)。さらに、l
1に比べて、l
FLOPSによってもたらされる正規化効果は明らかであった(同じ水準の効率性に対して、後者の性能は常に低かった)。
【0071】
実験は、拡張がリコール(recall)を増加させることにより、純粋語彙アプローチと関連して改善を提供することを実証した。まあらに、拡張正規化モデルから得られた表現はよりスパースだった(モデルは、関連のない次元は消し、有用な次元は活性化することにより、拡張と圧縮の均衡をとる方法を学習した)。10,000件の文書セットに対して、表1の結果は、一文書あたり平均20個の用語が削除され、32個の拡張用語が追加された。最も効率的なモデルの1つ(FLOPS=0.05)では、平均34個の用語が削除され、新たな拡張用語は5個だけだった。このような場合、表現は極度にスパースであった(文書とクエリにはそれぞれ平均18個と6個の0でない値が含まれており、ディスクにインデックスを記録するために必要な容量は1.4GB未満であった)。
【0072】
図7は、文書と拡張用語の例を示している。
図7は、例示的なニューラルモデルが重要度用語を強調し、情報内容のない用語(例えば、isなど)は削除する、用語再加重値を実行する作業の一例を示した図である。
図7では、用語と関連する加重値は括弧内に示されている(文書で該当の用語が2番目に現れる場合は省略)。取り消し線は0に対して表示される。拡張は、形態素分析効果(例えば、legs→leg)を暗示的に追加するか、関連主題単語(例えば、treatment)を追加することによって、例示的な文書を充実させる。
【0073】
上述した例示的な最大プーリング、文書エンコード、および精製特徴を使用し、MS MARCOデータセットを使用して追加の実験が実行された。以下の表2は、表1と同様に、MS-MARCOとTREC-2019に対する結果を示しており、修正されたモデルを使用した追加の実験の結果とさらに比較されている。
図8は、
図6と同様に、多様な正規化強度によって訓練された、修正されたモデルの例を含んでおり、多様な例示的なモデルとFLOPSの対比性能を示している。
【0074】
【表2】
例示的なモデルのゼロショット性能は、BEIRベンチマークのデータセットのサブセットを使用して検証され(例えば、Thakur et al.,BEIR:A Heterogenous Benchmark for Zero-shot Evaluation of Information Retrieval Models,CoRR abs/2104.08663(2021)、arXiv:2104.08663に開示)、これはゼロ-ショット比較のための多様なIRデータセットを含む。一部のデータセットがすぐに利用できないという事実のために、サブセットが使用された。
【0075】
Thakur et al.,2021の最高性能モデル(ColBERT(Khattab and Zaharia,2020,ColBERT:Efficient and Effective Passage Search via Contextualized Late Interaction over BERT,In Proceedings of the 43rd International ACM SIGIR Conference on Research and Development in Information Retrieval(Virtual Event,China)(SIGIR’20).Association for Computing Machinery,NewYork,NY,USA,39-48))およびローリングベンチマークからの性能が最も優れた2つの(調整されたBM25およびTAS-B)を比較した。以下の表3は、BEIRベンチマークに対する複数のベースラインに対する例示的なモデルの追加結果を示している。一般的に、例示的なモデルは、他のスパース検索方法よりも大幅に優れていることが観察され(TREC DLのresume@1000は除く)、その結果は、最先端の密集検索方法と競合していた。
【0076】
【0077】
【表4】
最大プーリングの影響
MS MARCOおよびTRECに対して、最大プーリング(SPLADE
max)を含むモデルは、最大プーリングを使用しない例示的なモデル(SPLADE)に比べてMRRおよびNDCGでほぼ2ポイントを得た。このようなモデルは、COILやDeepImpactなどのモデルと競合する。
図8は、MS MARCOデータセットで多様な正規化強度λで訓練された実験モデルに対するFLOPSとの対比性能を示している。
図8は、SPLADE
maxがSPLADEよりも優れた性能を発揮し、効率性とスパース性のトレードオフも調整できることを示している。また、SPLADE
maxは、BEIRベンチマークで改善された性能を示した(表3:NDCG@10結果、表4;Recall@100結果)。
【0078】
最大プーリング(SPLADEmax)を使用した例示的な文書エンコーダは、MS MARCOに対するdoc2query-T5よりも優れており、前記モデル(SPLADE)と同じ性能に達することができた。このようなモデルにはクエリエンコーダがないため、より優れた遅延時間を発揮する。さらに、このような例示的な文書エンコーダは、訓練が容易であり、新たな文書コレクションに適用することができる(doc2query-T5のような方法に対するビーム検索によるマルチ推論とは異なり、単一伝達(forward)が必要)。
【0079】
精製の影響
精製を追加すると、表2の例示的なモデル(DistilSPLADEmax)に示すように、SPLADEモデルの性能が大幅に向上した。
図8は、有効性と効率性のトレードオフ分析を示している。一般的に、例示的な精製モデルは、より高い値のフロップ(≒4フロップで0.368MRR)に対してさらに改善されたが、低い領域(≒0.3フロップで0.35MRR)では依然として極めて効率的であった。さらに、例示的な精製モデル(DistilSPLADE
max)は、大部分のデータセットで他のすべての実験方法よりも優れた性能を発揮した。理論に高速されることは望まないが、例示的なモデルの利点は、例示的なモデルが提供する埋め込みが、密集ベクトルに比べて本質的な意味をもつトークンを使用するため、より適切に転送されるという事実に少なくとも部分的に起因すると考えられる。
【0080】
ネットワークアキテクチャ
例示的なシステム、方法、および実施形態は、
図9に示すようなネットワークアキテクチャ900内で実現されてよく、これは、サーバ902およびデータ交換のためにインターネットのような無線および/または有線であるネットワーク906を介して通信する1つ以上のクライアント装置904を含む。サーバ902およびクライアント装置904a、904bはそれぞれ、プロセッサ、例えばプロセッサ908と、メモリ、例えばRAM(random-access memory)、ROM(Read-Only Memory)、ハードディスク、SSD(Solid State Disks)、またはその他の不揮発性記憶媒体であるが、これに制限されないメモリ910(サーバ902に例示)を含んでよい。メモリ910は、プロセッサ908と通信する外部記憶装置に全体的または部分的に提供されてもよい。
【0081】
例えば、システム100(
図1に示す)および/またはニューラルランカーモデル300、408、500(それぞれ
図3、
図4、
図5に示す)は、サーバ902および/またはクライアント装置904に実現されてよい。プロセッサ908は、直列または並列で動作する単一プロセッサまたは複数のプロセッサを含んでよく、メモリ910は、メモリタイプおよび/または位置の組み合わせを含む、1つ以上のメモリを含んでよいということが理解できるであろう。サーバ902は、専用サーバ、クラウド基盤のサーバ、またはこれらの組み合わせ(例えば、共有)を含んでよいが、これに制限されてはならない。ストレージ、例えばデータベースは、サーバ902、クライアント装置904、接続された遠隔ストレージ912(サーバ902)と関連して示されているが、同じように、クライアント装置に接続してもよい)、または任意の組み合わせの適切なストレージで実現されてよい。
【0082】
クライアント装置904は、任意のプロセッサ基盤の装置、端末などであってよく、または/追加的に、プロセッサ基盤の装置などによって実行可能なクライアントアプリケーションで実現されてよい。クライアント装置は、サーバ902の内部および/またはサーバの外部(ローカルまたは遠隔、または任意の組み合わせ)で配置されてよく、前記サーバと通信する。例示的なクライアント装置904は、自律コンピュータ904a、モバイル通信装置(例えば、スマートフォン、タブレットなど)904b、ロボット904c、自律自動車904d、ウェアラブル装置、仮想現実、拡張現実、または混合現実装置(図示せず)などを含むが、これに制限されてはならない。クライアント装置904は、サーバ902にデータを送信し、および/またはサーバ902からデータを受信するように構成されてもよく、サーバで表示するするために提供される特定の方法のディスプレイ、またはプリンティング結果のためのディスプレイ、またはプリンタなどであるが、これに制限されない1つ以上の出力装置を含んでもよい。クライアント装置にはクライアント装置の組み合わせが含まれてよい。
【0083】
訓練方法の例では、サーバ902またはクライアント装置904は、任意の適切なソースから、例えば、メモリ910(非制限的な例として、内部ストレージ、内部データベースなど)や、ローカルまたはネットワーク906を介して接続する外部(例えば、遠隔)ストレージ912から、データセットを受信してよい。訓練方法の例は、サーバ(例えば、メモリ910)、クライアント装置904、外部ストレージ912、またはこれらの組み合わせに同様に記録することができる訓練済みのモデルを生成してよい。ここで提供する一部の例示的な実施形態では、訓練および/または推論は、任意の組み合わせによってオフラインまたはオンライン(例えば、ランタイム)で実行されてよい。結果は出力されてよく(例えば、表示、送信、表示用に提供、印刷など)、または/追加的に、要請に応じて検索および提供のために記録されてよい。
【0084】
文書処理方法の例では、サーバ902またはクライアント装置904は、任意の適切なソースから、例えば、適切なインタフェースからのローカルまたは遠隔入力、またはローカルまたはネットワークを介して接続されたサーバまたはクライアント装置のうちの他の1つから、1つ以上の文書を受信してよい。例示的なニューラルランキングモデルなどの訓練されたモデルは、同様に、サーバ(例えば、メモリ910)、クライアント装置904、外部ストレージ912、またはこれらの組み合わせに記録されてよい。ここで提供した一部の例示的な実施形態にでは、訓練および/または推論は、任意の組み合わせによってオフラインまたはオンライン(例えば、ランタイム)で実行されてよい。結果は出力されてよく(例えば、表示、送信、表示用に提供、印刷など)、または/追加的に、要請に応じて検索および提供のために記録されてよい。
【0085】
検索方法の例では、サーバ902またはクライアント装置904は、任意の適切なソースから、例えば、適切なインタフェースからのローカルまたは遠隔入力、またはローカルまたはネットワーク906を介して接続されたサーバまたはクライアント装置のうちの他の1つから、クエリを受信してよい。例示的なニューラルモデル(または、一部の例示的な方法では、より簡単なトークン化によって)を使用してクエリを処理する。例示的なニューラルなどの訓練されたモデルは、同様に、サーバ(例えば、メモリ910)、クライアント装置904、外部ストレージ912、またはこれらの組み合わせに記録されてよい。結果は出力されてよく(例えば、表示、送信、表示用に提供、印刷など)、または/追加的に、要請に応じて検索および提供のために記録されてよい。
【0086】
一般的に、実施形態は、プログラムコードまたはコンピュータ実行可能な命令語を有するコンピュータプログラム製品として実現されてよく、プログラムコードまたはコンピュータ実行可能な命令語は、コンピュータプログラム製品がコンピュータ上で実行されるときに方法のうちの1つを実行するように動作する。プログラムコードまたはコンピュータ実行可能な命令語は、例えば、コンピュータ読み取り可能な記録媒体に記録されてよい。
【0087】
一実施形態において、記録媒体(または、データキャリアまたはコンピュータ読み取り可能な媒体)は、プロセッサによって実行されるときに本発明で説明した方法のうちの1つを実行するためのコンピュータプログラムまたはコンピュータ実行可能な命令語を含み、ここに記録される。
【0088】
本明細書で説明する実施形態は、ハードウェアまたはソフトウェアで実現されてよい。実施は、コンピュータ読み取り可能な記録媒体、例えば、フロッピーディスク、DVD、Blu-Ray、CD、ROM、PROMおよびEPROM、EEPROM、またはフラッシュメモリによって実行されてよい。このようなコンピュータ読み取り可能な媒体は、汎用または特殊目的コンピュータシステムによってアクセス可能なすべての利用可能な媒体であってよい。
【0089】
上述した説明は、本質的に例示的なものに過ぎず、本開示、その適用、または使用を制限することを意図するものではない。本開示の広範囲な教示は、多様な形態で実現可能である。したがって、本開示には特定の例が含まれるが、図面、明細書、および特許請求の範囲を検討することによって他の修正が明確になるため、開示の真の範囲がこのように制限されてはならない。方法のうちの1つ以上の段階は、本開示の原理を変更することなく、異なる順序で(または同時に)実行可能であることが理解されなければならない。また、各実施形態には特定の特徴が含まれると上述したが、本開示の任意の実施形態に関して説明したそれらの特徴のうちの任意の1つ以上の組み合わせを明示上に説明していなくても、任意の他の実施形態の特徴および/またはその組み合わせによって実現可能である。言い換えれば、上述した実施形態は相互排他的でなく、1つ以上の実施形態の相互置換は、本開示の範囲内にとどまる。本明細書で引用したすべての文書は、これらの文書のいずれかが先行技術を構成することを認めず、参照によってその全体が本明細書に組み込まれる。
【0090】
各モジュールは、1つ以上のインタフェース回路を含んでよい。一部の例において、インタフェース回路は、LAN(Local Area Network)、インターネット、WAN(Wide Area Network)、またはこれらの組み合わせに接続させる有線または無線インタフェースを含んでよい。本開示の任意に与えられたモジュールの機能は、インタフェース回路を介して接続された多数のモジュール間に分散されてよい。例えば、複数のモジュールによって負荷分散が可能になってよい。さらなる例として、サーバ(遠隔またはクラウドとも呼ばれる)モジュールは、クライアントモジュールの代わりに一部の機能を実行してよい。各モジュールは、コードを使用して実現されてよい。このようなコードは、ソフトウェア、ファームウェア、および/またはマイクロコードを含んでよく、プログラム、ルーチン、機能、クラス、データ構造、および/またはオブジェクトを示してよい。
【0091】
メモリ回路という用語は、コンピュータ読み取り可能な媒体という用語のサブセットである。本明細書で使用されるコンピュータ読み取り可能な媒体という用語は、媒体(例えば、搬送波)を介して伝播する一時的な電気または電磁気信号を含まない。したがって、コンピュータ読み取り可能な媒体という用語は、有形かつ非一時的なものと見なしてよい。非一時的な有形のコンピュータ読み取り可能な媒体の非制限的な例は、不揮発性メモリ回路(例えば、フラッシュメモリ回路、EPROM(Erasable Programmable Read-Only Memory)回路、またはMROM(Mask Read-Only Memory)回路)、揮発性メモリ回路(例えば、SRAM(Static Random Access Memory)回路またはDRAM(Dynamic Random Access Memory)回路)、磁気記憶媒体(例えば、アナログまたはデジタル磁気テープ、ハードディスクドライブ)、および光学記憶媒体(例えば、CD、DVDまたはブルーレイディスク)がある。
【0092】
本明細書に記述されたシステムおよび方法は、コンピュータプログラムに実現された1つ以上の特定の機能を実行するように汎用コンピュータを構成することによって生成された特殊目的コンピュータによって部分的または全体的に実現されてよい。上述した機能ブロック、フローチャート構成要素、およびその他の要素は、ソフトウェア仕様として機能し、熟練した技術者またはプログラマーの日常的な作業によってコンピュータプログラムに変換することが可能である。
【0093】
コンピュータプログラムは、少なくとも1つの非一時的なコンピュータ読み取り可能な媒体に記録されたプロセッサ実行可能な命令を含む。コンピュータプログラムは、記録されたデータを含むか、これに依存する。コンピュータプログラムは、BIOS(Basic Input/Output System)を含んでよく、これは、特殊目的コンピュータのハードウェア、特殊目的コンピュータの特定の装置と相互作用する装置ドライバ、1つ以上のオペレーティングシステム、ユーザアプリケーション、バックグラウンドサービス、バックグラウンドアプリケーションなどと相互作用する。
【0094】
上述した実施形態の変形および他の特徴および機能、またはその代替物は、複数の互いに異なるシステムまたは用途に好ましく組み合わせることができることが理解できるであろう。また、予想されていない多様な代替、修正、変形、または改善は当業者によって行われてよく、これらも上述した説明および添付の特許請求の範囲に含まれる。