<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title><![CDATA[Jessica Moszkowicz - Elasticsearch Labs]]></title>
    <description><![CDATA[Articles and tutorials from the Search team at Elastic]]></description>
    <copyright><![CDATA[© 2026. Elasticsearch B.V. All Rights Reserved]]></copyright>
    <image>
      <title><![CDATA[Jessica Moszkowicz - Elasticsearch Labs]]></title>
      <url>https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt1121c0bf0e8a6e65/6a88da6340a1841030ef456f/search-labs-thumbnail.png</url>
      <link>https://www.elastic.co/jp/search-labs/author/jessica-moszkowicz</link>
    </image>
    <link>https://www.elastic.co/jp/search-labs/author/jessica-moszkowicz</link>
    <atom:link href="https://www.elastic.co/jp/search-labs/rss/author/jessica-moszkowicz.xml" rel="self" type="application/rss+xml"/>
    <language><![CDATA[jp]]></language>
    <lastBuildDate>Tue, 22 Sep 2026 07:49:16 GMT</lastBuildDate>
  <item>
    <title><![CDATA[Elasticsearchによるエンティティ解決、パート4：究極のチャレンジ]]></title>
    <description><![CDATA[ショートカットを防ぐために設計された、非常に多様な「究極のチャレンジ」データセットにおけるエンティティ解決の課題の解決と評価。]]></description>
    <content:encoded><![CDATA[<p>これまでのインテリジェントなエンティティ解決は2つの方法で実装されてきました。いずれのアプローチも、エンティティの準備と抽出、そしてElasticsearchによる候補の取得という同じ方法で始まります。そこから、プロンプトベースのJSON生成または関数呼び出しのいずれかを通じて、大規模言語モデル（LLM）を使用して候補を評価し、モデルにその判断について透明性のある説明を提供することを要求します。</p><p><a href="https://www.elastic.co/search-labs/blog/elasticsearch-entity-resolution-llm-function-calling">前回の記事</a>で見たように、関数呼び出しによってもたらされる一貫性は、単に便利な最適化ではなく、不可欠なものです。構造的なエラーを評価ループから除去したところ、標準的なシナリオ（ティア4データセットなど）の結果が劇的に向上しました。</p><p>しかし、答えるべき明白な疑問はまだ残っています。</p><p><em>状況が本当に複雑になってきた場合でも、このアプローチは有効でしょうか？</em></p><p>現実世界におけるエンティティ解決が単純なケースで失敗することはめったにありませんが、名前が言語、文化、文字体系、時代、組織の境界を越える場合に失敗します。人が名前ではなく肩書きで言及されている場合、会社名が変更された場合、音訳が一貫していない場合、そして（スペルではなく）文脈だけが言及と現実世界の実体を結びつける唯一の要素である場合、この方法は失敗します。</p><p>そこで、このシリーズの最後の記事として、このシステムにいわば<strong>究極のチャレンジ</strong>を課すこととしました。</p><h2>なぜこれが究極の挑戦なのでしょうか？</h2><p>以前の評価では、ますます複雑になるデータセットを用いてシステムをテストしました。前回の記事で触れた第4段階に到達する頃には、すでにニックネーム、称号、多言語名、意味的な参照などが混在する状況になっていました。これらのテストにより、アーキテクチャ自体は健全であることが示されましたが、信頼性の問題、特に不正な形式のJSONが原因で、リコールが抑制されていることがわかりました。</p><p>関数呼び出しの仕組みが整ったことで、ようやく安定した基盤ができました。そのおかげで、さらに興味深い質問をする機会が得られました。</p><p><em>1つの統一されたパイプラインで </em><em><strong>多くの異なる種類の</strong></em><em>エンティティ解決問題を一度に処理することは可能でしょうか？</em></p><p>究極のチャレンジデータセットは、まさにその側面を徹底的に追求するために設計されました。</p><p>このデータセットは、（ニックネームや音訳といった）単一の困難に焦点を当てるのではなく、 <strong>50種類以上の異なる課題タイプ</strong>を組み合わせています。</p><ul><li><p>文化的な命名規則。</p></li><li><p>タイトルに基づく参照。</p></li><li><p>事業上の関係性と過去の社名変更。</p></li><li><p>多言語および異文字表記での言及。</p></li><li><p>上記のうち複数を組み合わせた複合的な課題。</p></li></ul><p>重要なのは、この試みが特定の狭い用途向けに最適化することではなく、ルールがエンティティごとに変化した場合でも<em>設計パターン</em>が通用するかどうかをテストすることです。</p><h2>データセットの概要</h2><p>究極のチャレンジデータセットは以下で構成されます。</p><ul><li><p>個人、組織、機関などの<strong>50のエンティティ</strong>。</p></li><li><p>構造と言語の複雑さが異なる<strong>約60本の記事</strong>。</p></li><li><p>大きく以下に分類される<strong>51種類の異なるチャレンジカテゴリー</strong>。</p><ul><li><p>文化的な命名規則。</p></li><li><p>肩書きと職務上の背景。</p></li><li><p>事業と組織間の関係。</p></li><li><p>多言語および音訳の課題。</p></li><li><p>複合シナリオとエッジケースのシナリオ。</p></li></ul></li></ul><p>本シリーズの前半で、生成AIを用いてデータセットを作成することは諸刃の剣であることを確認しました。生成AIがなければ十分な規模と多様性を備えたテストデータを収集することは極めて困難になりますが、このモデルは放置すると、物事をあまりにも単純化しすぎる傾向があります。</p><p>例えば、初期世代の検証段階で、モデルに「ロシアの大統領」といったフレーズがウラジーミル・プーチンの明示的な別名として含まれていることが判明しました。それは今日では妥当に思えるかもしれませんが、文脈解決能力をテストするという目的を損なうことになります。記事が1990年代のロシアについて論じている場合はどうなるでしょうか？システムは、ハードコードされたエイリアスに頼るのではなく、文脈から正しいエンティティを推論するべきです。</p><p>そのため、このデータセットは<strong>ショートカットが効かない</strong>ように意図的に設計されています。システムが意味を推測することが想定されている場合、別名は明示的にリスト化されません。記述的なフレーズはエンティティにあらかじめリンクされていません。正確な一致は、単なるローカルテキストだけでなく、記事レベルの文脈によって決まることが多いです。</p><p><strong>重要な注意点：</strong>本システムは多様なシナリオにおける機能を実証していますが、これはあくまで教育用プロトタイプです。実際の制裁対象組織の監視を扱う本番システムでは、追加の検証、コンプライアンスチェック、監査証跡、および機密性の高いユースケースに対する特別な処理が必要となります。</p><h2>これらのシナリオが難しい理由</h2><p>このシリーズの最初の投稿で、単純であいまいな例「新しいSwiftアップデートが登場しました！」を紹介しました。課題は、「Swift」という単語が、文脈によって複数の現実世界の実体として解釈される可能性があることです。この例はより広範な真実、つまり、自然言語は本質的に曖昧であるということを捉えています。</p><p>したがって、エンティティ解決は単なる文字列照合の問題ではありません。人間は日常的に、共通の知識、文化的規範、状況的文脈に頼って参照関係を解決していますが、私たちは自分がそうしていることにほとんど気づきません。</p><p>よくあるケースをいくつか考えてみましょう。</p><ul><li><p>「大統領」という称号は地政学的・時間的な文脈なしには意味がありません。</p></li><li><p>会社名は、記事がいつ書かれたかによって、親会社、子会社、または以前のブランドを指す場合があります。</p></li><li><p>人名は、言語や文化によって、異なる順序、書体、または音訳で表記されることがあります。</p></li><li><p>同じフレーズでも、文脈によって異なる対象を指す場合があり、システムは一致を受け入れるのと同じくらい確信を持って一致を<em>拒否</em>できなければなりません。</p></li></ul><p>これらすべてを適切に処理する単一のルールセットは存在しないため、このプロトタイプは懸念事項を非常に積極的に分離しています。</p><ul><li><p>Elasticsearchは候補の範囲を効率的かつ分かりやすく絞り込みます。</p></li><li><p>LLMは、判断が必要で、それ自体を説明しなければならない場合にのみ使用されます。</p></li><li><p>検索と推論は別個のステップのままです。</p></li></ul><p>課題の種類が多様化するにつれて、この区分けはさらに重要になります。</p><h2>システムが特別なケースなしに多様性を処理する仕組み</h2><p>この評価で最も興味深い結果の一つは、<em>変更しなかった</em>点にあります。</p><ul><li><p>日本語名に関する特別なロジックは追加して<strong>いません</strong>。</p></li><li><p>アラビア語の父称に関するカスタムルールは追加して<strong>いません</strong>。</p></li><li><p>ハードコーディングされたマッピングを過去の会社名に追加して<strong>いません</strong>。</p></li></ul><p>その代わりに、このシステムはシリーズ前半で紹介したものと同じ主要要素に依存していました。</p><ul><li><p>セマンティック検索のためにインデックス化されたコンテキスト強化エンティティ。</p></li><li><p>Elasticsearchでのハイブリッド検索（完全検索、エイリアス、セマンティック）。</p></li><li><p>少数の、明確に定義された一致候補セット。</p></li><li><p>関数呼び出しと最小スキーマによって制約されたLLM判断。</p></li></ul><p>これは、システムの柔軟性が、増え続けるルールのコレクションからではなく、<strong>表現とアーキテクチャ</strong>から生まれることを示唆しています。</p><p>システムが成功するのは、適切な候補が取得され、LLMが参照が特定のエンティティにマッピングされる（またはされない）理由を説明できる十分なコンテキストがある場合です。</p><h2>結果：パフォーマンスの概要</h2><p>究極のチャレンジデータセットにおいて、システムは以下のような全体的な結果を生み出しました。</p><ul><li><p><strong>精度：</strong>約91％</p></li><li><p><strong>再現率：</strong>約86％</p></li><li><p><strong>F1スコア：</strong>約89%</p></li><li><p><strong>LLM合格率：</strong>約72％</p></li></ul><h3>チャレンジの種類ごとのパフォーマンス</h3><p>チャレンジの種類ごとに結果を分解すると、強みと限界が明らかになります。</p><p><strong>最も優れたパフォーマンス（F1スコア100%）</strong>が見られた分野は以下のとおりです。</p><ul><li><p>文字体系間の照合（キリル文字、韓国語、中国語の企業名）。</p></li><li><p>ヘブライ語のシナリオ（父称、専門職称、宗教称号、音写）。</p></li><li><p>事業階層構造（航空宇宙、多角化製造業、多部門企業）。</p></li><li><p>職業上の肩書き（学術、軍事、政治、宗教）。</p></li><li><p>複数の文字体系を含む日本語シナリオの組み合わせ。</p></li></ul><p><strong>優れたパフォーマンス（F1スコア80～99％）</strong>には以下が含まれます。</p><ul><li><p>国際的な政治家（98％）。</p></li><li><p>歴史的な名称変更（90%）。</p></li><li><p>複雑なビジネス階層（89％）。</p></li><li><p>日本の企業名（93％）。</p></li><li><p>異言語間の音訳（86％）。</p></li><li><p>アラビア語の父称（86％）。</p></li></ul><p><strong>より困難な分野</strong>には以下が含まれます。</p><ul><li><p>高度な音訳（中国語、韓国語）：0% F1。</p></li><li><p>特定の日本語シナリオ（敬称、名前の順序、表記体系のバリエーション）：約67% F1。</p></li><li><p>一部のアラビア語のシナリオ（会社名、機関の参考文献）：約40％ F1。</p></li></ul><p>ここで重要なのは、<em>なぜ</em>システムがこれらのケースで機能不全に陥ったのかという点です。失敗の原因は、全体的なアプローチが破綻したことではなく、特定のコンポーネントの限界、特に特定の多言語シナリオにおけるセマンティック検索に使用される高密度ベクトルモデルの限界にありました。</p><p>検索と判断が明確に分離されているため、パフォーマンスを向上させるためにシステムを書き換える必要はありません。より高性能な多言語埋め込みモデルの採用、エンティティコンテキストの強化、または検索戦略の洗練により、コアアーキテクチャを変更することなく、これらのカテゴリー全体で結果が向上します。</p><p>アーキテクチャーの観点から見ると、それが真の成功指標です。</p><h2>この結果が設計について教えてくれること</h2><p>シリーズを振り返ると、いくつかのパターンが際立っています。</p><ul><li><p><strong>準備は巧みなマッチングよりも重要です。 </strong>エンティティに事前にコンテキストを付加することで、後々の曖昧さを劇的に減らすことができます。</p></li><li><p><strong>LLMは、レトリバーではなく、判断者として最も価値があります。</strong>したがって、検索を求めるよりも、<em>なぜ</em>一致が意味をなすかを説明するよう求めることの方がはるかに強力です。</p></li><li><p><strong>信頼性が精度を実現します。</strong>関数呼び出しは、JSONを整理しただけでなく、取得ステップにすでに潜在していた想起を解放しました。</p></li><li><p><strong>一般化は専門化に勝ります。</strong>厳選された少数の抽象化によって、独自のロジックを必要とせずに数十種類の課題に対応できました。</p></li></ul><p>これが、プロトタイプが意図的にElasticsearchネイティブであり、LLMの使用方法が意図的に保守的である理由です。目標は検索を置き換えることではなく、意味が重要な状況において、検索を説明可能なものにすることです。</p><h2>結びに</h2><p>究極のチャレンジとは、完璧な指標を追い求めることではなく、より根本的な問いに答えることでした。</p><p><em>透明性が高く、検索優先で、LLMを活用したアーキテクチャは、ルールやブラックボックスに陥ることなく、現実世界のエンティティの曖昧さを処理できるでしょうか？</em></p><p>その回答は、この教育用プロトタイプに関しては「はい」ですが、本番環境での強化、コンプライアンス、監視、データの品質に関する明確な注意事項があります。エンティティの一致が行われた<em>理由</em>を正当化する必要のあるシステムを構築している場合、このパターンは真剣に検討する価値があります。このシリーズを通して、エンティティ解決は必ずしも難解なものではないということが伝われば幸いです。適切に関心事を分離することで、それは論理的に考え、測定し、改善できるものになります。</p><p>この研究はまた、より広範なアーキテクチャパターンを示唆しています。浮かび上がってくるのは、古典的な検索拡張生成（RAG）の、わずかではあるが重要な進化です。検索結果を直接生成に供給するのではなく、明示的な評価ステップを導入します。LLMはまず、取得された候補を評価し、妥当性を確認するために使用され、承認された結果のみが生成の強化に使用されます。これは、Generation-Augmented Retrieval-Augmented Generation with Evaluation、つまりGARAGEと名付けられるでしょう。うまい頭字語が嫌いな人なんていませんから。</p><p>このパターンは、他にどのような用途で活用できるでしょうか？信頼性、透明性、そして論理的な説明を必要とするシステムは、まさにうってつけの候補と言えます。この分野における今後の研究は、今回得られた成果と同様に説得力のあるものとなるはずであり、コミュニティが今後どのような展開を見せるのか、非常に楽しみです。</p><h2>次のステップ：試してみましょう</h2><p>究極のチャレンジが実際に動作する様子をご覧になりたいですか？実際の実装、詳細な説明、実践的な例を含む完全なウォークスルーについては、<a href="https://github.com/jesslm/entity-resolution-lab-public/tree/main/notebooks#:~:text=5%20minutes%20ago-,05_ultimate_challenge_v3.ipynb,-Initial%20public%20lab"><strong>Ultimate Challenge notebook</strong></a>を参照してください。</p><p>完全なエンティティ解決パイプラインにより、本番での使用に必要なコアコンセプトとアーキテクチャが示されています。これを基盤に、透明性と説明可能性を維持しながら、ニュース記事を監視し、エンティティの言及を追跡し、どのエンティティがどの記事に登場するのかについての質問に回答するシステムを構築できます。
</p>]]></content:encoded>
    <link>https://www.elastic.co/search-labs/blog/entity-resolution-elasticsearch-llm-challenges</link>
    <guid isPermaLink="true">https://www.elastic.co/search-labs/blog/entity-resolution-elasticsearch-llm-challenges</guid>
    <category><![CDATA[AI]]></category>
    <category><![CDATA[ハイブリッド検索]]></category>
    <dc:creator><![CDATA[Jessica Moszkowicz]]></dc:creator>
    <enclosure url="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/bltc58be329ffebcd60/6a17043e47d49c0bc62d88ab/70fb0ff949f6db9ac9b8a28ecb4329ab915ebf46-720x420.png" length="0" type="image/png"/>
    <pubDate>Fri, 13 Mar 2026 00:00:00 GMT</pubDate>
  </item>
  <item>
    <title><![CDATA[ElasticsearchとLLMによるエンティティ解決（第2部）：LLM判定とセマンティック検索によるエンティティのマッチング]]></title>
    <description><![CDATA[Elasticsearch でのエンティティ解決にセマンティック検索と透過的なLLM判断を使用します。]]></description>
    <content:encoded><![CDATA[<p><a href="https://www.elastic.co/search-labs/blog/entity-resolution-llm-elasticsearch">第1部</a>では、ウォッチリストを作成し、エンティティの言及を抽出しました。これで、「言及が実際にどのエンティティを指しているのか」という難しい質問に答える準備ができました。このシリーズの最初のブログの例に戻りましょう。ここでは、エンティティ解決が必要な理由を説明しています。「新しいSwiftアップデートが登場しました！」この見出しにもう少し文脈が添えられていると想像してください。</p><ol><li><p>新しいSwiftアップデートが登場しました！開発者たちは新しい機能を試したがっています。</p></li><li><p>新しいSwiftアップデートが登場しました！新しいアルバムは来月リリースされます。</p></li></ol><p>この追加されたコンテキストにより、「Swift」という名前を正しいエンティティに解決できるはずです。</p><p><a href="https://www.elastic.co/search-labs/blog/entity-resolution-llm-elasticsearch">前回の投稿</a>では、ウォッチリストを設定し、追加のコンテキストでエンティティを充実させました。上記の例を見ると、リストには少なくとも「Taylor Swift」と「Swift Programming Language」の2つのエンティティが必要です。また、テキストからエンティティの言及を抽出する方法も説明しました。これらの例はどちらも「Swift」を抽出します。これらの材料、強化された監視リスト、抽出されたエンティティが揃ったところで、いよいよショーの主役であるエンティティマッチングを紹介する準備が整いました。</p><p><strong>注意：</strong>これは、エンティティマッチングの概念を教えるために設計された教育用プロトタイプです。本番システムは、異なる大規模言語モデル（LLM）、カスタムマッチングルール、特殊な判断パイプライン、または複数のマッチング戦略を組み合わせたアンサンブルアプローチを使用する可能性があります。</p><h2>問題：マッチングが難しい理由</h2><p>人間の言語とは驚くべきものです。その最も興味深い特性の1つは、その無限の創造性です。無限の数の新しい文を生成し、理解することができます。そうであるなら、エンティティ解決において正確な一致が稀なのも不思議ではありません。作家は可能な限り創造的であろうと努めます。エンティティが言及されるたびにフルネームを書いたり読んだりしなければならないとしたら、かなり面倒です。そのため、厳密な一致は簡単ですが、現実には、より洗練されたエンティティ解決アプローチが必要です。それは、人間の作者の無限の創造性に少なくとも部分的には対応できるほどに堅牢なアプローチであるべきです。そのため、私たちは問題を2つのステップに分けます。まずはElasticsearchを使用して大規模な候補を取得し、次にLLMを使用してそれらの候補が実際に同じ現実世界のエンティティを指しているかどうかを判断します。</p><h2>解決策：透明性の高いLLM判断による3段階のマッチング</h2><p>私たちはコンピューターの使い方におけるパラダイムシフトの真っ只中にあります。インターネットの台頭がローカルコンピューティングからグローバルに接続されたネットワークへと私たちを導いたように、生成AIはコンテンツ、コード、情報の作成方法を根本的に変えています。実際、このシリーズに付随する教育プロトタイプは、作者の慎重な指示のもと、LLMを使用してほぼ「バイブコーディング」のみで作成されました。これは、LLMが人間の言語に本来備わっている生産性を実現している、あるいは実現するだろうということと同義ではありませんが、エンティティ解決を支援する強力なリソースが手に入ったことを意味します。</p><p>生成AIでよく使うパターンは、Retrieval-Augmented Generation（RAG）です。ここにおいて、<em>取得（retrieval）</em>とは、エンティティ候補を取得すること（回答を生成することではない）を意味し、LLMは一致の評価と説明にのみ使用されます。エンドツーエンドのエンティティ解決についてLLMに支援を依頼する<em>こともできます</em>が、これは時間と費用の両面でコストのかかるアプローチです。RAGは、より効率的な方法でLLMにコンテキストを提供することでLLMの作業を支援し、それによってLLMがエンティティ解決を効率的に支援できるようにします。</p><p>RAGの取得部分については、再びElasticsearchを利用します。まず、正確な一致、エイリアスとの一致、そしてキーワード検索とセマンティック検索を組み合わせたハイブリッド検索という組み合わせを使用して、潜在的な一致を検索します。一致する可能性のある項目が見つかったら、LLMに送信して判断を仰ぎます。LLMは最終的な一致評価者として機能します。また、LLMにその理由を説明させます。これは他のエンティティ解決システムとの重要な差別化要因です。これらの説明がなければ、エンティティ解決はブラックボックスになります。説明があれば、一致にどんな意味があるのか自分で確認できます。</p><h2>主な概念：3段階マッチング、ハイブリッド検索、透過的なLLM判断</h2><p><strong>3段階マッチングとは？</strong>このプロジェクトの開始時に、セマンティック検索がシステムの重要な一部になるという仮説を立てましたが、すべての一致にこのような高度な検索が必要なわけではありません。効率的にマッチングを見つけるために、私たちは段階的なアプローチを取ります。まず、キーワード検索で正確な一致を確認します。そのような一致が見つかった場合、作業は完了し、先に進むことができます。完全一致が失敗した場合は、エイリアス一致を使用します。このプロトタイプでは、簡素化のために、キーワードとの完全一致によるエイリアスマッチングも行われています。本番環境では、正規化、翻字ルール、あいまい一致、またはキュレートされたエイリアステーブルを使用してこのステップを拡張する場合があります。それでも最初の2つのステップで一致する可能性のあるものが見つからない場合は、Elasticsearchの逆順位融合（RRF）を使用したハイブリッド検索によるセマンティック検索を導入します。</p><p><strong>ハイブリッド検索とは？</strong>Elasticsearchでは、セマンティック検索を使用して、コンテキストを考慮した意味のある一致を見つけることができます。Elasticsearchは、ベクトル検索とハイブリッド検索に広く使用されています。セマンティック類似性は意味を理解する上で強力ですが、構造化されたフィルタリング（例えば、時間範囲、場所、または識別子による）の代替にはならず、正確な一致が利用可能な場合は多くの場合不必要です。Elasticsearchは語彙検索で名声を博しており、これはセマンティック検索が適さないタスクに最適です。両方のアプローチを最大限に活用するために、単一のハイブリッドクエリで語彙検索とセマンティック検索を併用します。次に、結果をマージして、RRFを使用して最も一致する可能性が高いものを見つけます。このプロトタイプでは、上位2つの結果が、LLM判定に送信できる潜在的な一致となります。</p><p><strong>LLM判定を使用する理由とは？</strong>LLMの判断と説明により、システムは曖昧さとコンテキストを透過的に処理できます。これは「the president」のような場合において重要です。コンテキストによって複数のエンティティを指す可能性がありますが、システム内でニックネームや文化的なバリエーションをうまく機能させることもできます。最後に、制裁リストからエンティティを識別するなどのミッションクリティカルなタスクを検討する場合、システムを信頼するために、一致が受け入れられた理由を把握する必要があります。重要なのは、LLMはコーパス全体を検索せず、Elasticsearchによって返された少数の候補のみを評価するということです。</p><h2>実際の結果：LLM推論によるマッチング</h2><p>あらゆる自然言語処理タスクにおける大きな課題は、期待される結果が何であるかを示す「答えの鍵」となるゴールデンドキュメントを作成することです。これがなければ、システムがタスクをどの程度うまく実行するかを判断することはほぼ不可能ですが、そのようなドキュメントを作成するのは面倒なプロセスになる可能性があります。エンティティ解決のプロトタイプでは、テストに使用できるデータの設定に生成AIを再度利用しました。</p><p>まず、ニックネームや翻字などのいくつかのチャレンジタイプを定義し、次にLLMに、システムにとって徐々に大きく、より困難になる階層化されたデータセットコレクションを作成するように依頼しました。データセットの作成は期待していたほど簡単ではありませんでした。LLMでは、正解を得るのがあまりにも簡単すぎるため、「チート」が行われる傾向が強くなりました。例えば、あるチャレンジタイプは意味的なコンテキストに重点を置いています。このタイプには、「ロシアの作家」を「レフ・トルストイ」に解決することなどが含まれます。LLMは誤って「ロシアの作家」を「レフ・トルストイ」の別名として入力したため、一致を見つけるためのハイブリッド検索の必要性がなくなりました。</p><p>このような問題を修正するために何度かリファクタリングを行った結果、5つのデータセット層が使用できるようになりました。第1〜4層は徐々に規模が大きくなり、チャレンジの種類も増えました。第5層は「究極のチャレンジ」データセットで、すべてのチャレンジタイプから最も難しい例で構成されていました。すべてのテストデータは<a href="https://github.com/jesslm/entity-resolution-lab-public/tree/main/comprehensive_evaluation">包括的な評価ディレクトリ</a>で利用可能です。</p><p>プロンプトベースのエンティティ解決アプローチを評価するため、私たちは第4層データセットに注目しました。重要な注意点は、エンティティの一致品質に焦点を当てることができるように、評価が制御された実験として実施されたことです。ウォッチリストデータは事前にコンテキストで強化されており、エンティティは事前に記事から抽出され、評価で抽出精度ではなくマッチングに重点が置かれることが保証されました。これにより、一致品質が分離されます。エンドツーエンドのパフォーマンスは、抽出リコールとエンリッチメント品質にも依存します。</p><h3>評価データセット</h3><p>第4層の評価データセットは、システムの機能の包括的なテストを提供します。[1]</p><ul><li><p><strong>監視リストのエンティティ：</strong>さまざまなタイプ（人、組織、場所）にわたる66個のエンティティ。</p></li><li><p><strong>テスト記事：</strong>実際のエンティティ解決シナリオを網羅した69件の記事。</p></li><li><p><strong>予想される一致数：</strong>すべての記事で206件のエンティティが一致すると予想。</p></li><li><p><strong>チャレンジタイプ：</strong>エンティティ解決のさまざまな側面をテストする15種類のチャレンジタイプ。</p></li></ul><p>データセットに含まれる課題の種類は以下の通りです。</p><ul><li><p><strong>ニックネーム：</strong> 「ボブ・スミス」→「ロバート・スミス」（7つの記事）。</p></li><li><p><strong>称号と敬称：</strong>「Dr. Sarah Williams」→「Sarah Williams」（5つの記事）。</p></li><li><p><strong>意味的文脈：</strong> 「ロシアの作家」→「レフ・トルストイ」（8 つの記事）。</p></li><li><p><strong>多言語名：</strong>異なる文字での名前の取り扱い（6つの記事）。</p></li><li><p><strong>事業体：</strong>会社名のバリエーション（7つの記事）。</p></li><li><p><strong>役員紹介：</strong> 「Microsoft CEO」→「Satya Nadella」（5つの記事）。</p></li><li><p><strong>政治指導者：</strong>タイトルベースの参考文献（5つの記事）。</p></li><li><p><strong>イニシャル：</strong> 「J. Smith」→「John Smith」（3つの記事）。</p></li><li><p><strong>名前の順序のバリエーション：</strong>さまざまな名前の順序付け規則（3つの記事）。</p></li><li><p><strong>切り捨てられた名前：</strong>名前の一部一致（3つの記事）。</p></li><li><p><strong>名前の分割：</strong>名前がテキストに分割（3つの記事）。</p></li><li><p><strong>スペース/ハイフンの欠落：</strong>書式のバリエーション（2つの記事）。</p></li><li><p><strong>翻字：</strong>文字間の名前の一致（2つの記事）。</p></li><li><p><strong>複合チャレンジ：</strong>1つの記事に複数のチャレンジ（6つの記事）。</p></li><li><p><strong>複雑なビジネス：</strong>階層的なビジネス関係（5つの記事）。</p></li></ul><p>プロンプトベースのエンティティ解決がどのように機能したか見てみましょう。</p><h3>全体的なパフォーマンス</h3><p>結果は、LLMを活用したマッチ評価には大きな可能性があることを示していますが、重大な信頼性の問題も明らかにしています。各候補ペアはLLMによって評価される必要があるため、構造化された出力の失敗により、検索が適切に機能している場合でも受け入れと呼び出しが抑制される可能性があります。</p><p>メトリック</p><p>値</p><p>精度</p><p>83.8%</p><p>リコール</p><p>62.6％</p><p>F1スコア</p><p>71.7％</p><p>見つかった一致の合計</p><p>344</p><p>LLM合格率</p><p>44.8％</p><p>エラー率</p><p>30.2%</p><h3>エラー率の問題</h3><p>このプロトタイプで最初に行うステップは、Elasticsearchを使用して潜在的な一致ペアを作成することであることを思い出してください。これらの潜在的な一致はそれぞれ、LLMによって評価される必要があります。これらすべての一致を効率的に処理するために、LLM呼び出しをバッチ処理します。これにより、APIのコストと待ち時間が削減されますが、出力に不正な形式のJSONが表示されるリスクも高まります。バッチサイズが大きくなると、JSONはより長く複雑になり、LLMが無効なJSONを生成する可能性が高くなります。これがエラー率30%となる原因です。評価では、リクエストごとに5つの一致のバッチサイズを使用しました。この保守的なバッチサイズでも、JSON解析エラーが発生し、評価結果が大幅に歪んでいます。</p><h2>次のステップ：LLM統合の最適化</h2><p>セマンティック検索とLLMによる判断を用いてエンティティをマッチングしたことで、完全なエンティティ解決パイプラインが完成しました。ただし、このアプローチでは、モデルの判断は正しいものの、その出力が使用できない場合に、新たな障害モードが発生します。LLM統合を最適化することで、信頼性とコスト効率を向上させることができます。次の投稿では、エラーとコストを削減しながら構造と型の安全性を保証する構造化出力に関数呼び出しを使用する方法について説明します。</p><h2>はじめましょう</h2><p>エンティティマッチングの実際の動作を確認したいですか？実際の実装、詳細な説明、実践的な例を含む完全なウォークスルーについては、<a href="https://github.com/jesslm/entity-resolution-lab-public/tree/main/notebooks#:~:text=5%20minutes%20ago-,03_entity_matching_v3.ipynb,-Initial%20public%20lab">エンティティマッチングノートブック</a>を参照してください。このノートブックでは、3段階の検索、RRFを使用したハイブリッド検索、LLMを利用した推論による判断を使用してエンティティを一致させる方法を正確に示します。</p><p><strong>注意：</strong>これは、概念を教えるために設計された教育用プロトタイプです。本番システムを構築するときは、モデルの選択、コストの最適化、レイテンシ要件、品質検証、エラー処理、監視など、教育に重点を置いたこのプロトタイプではカバーされていない追加の要素を考慮してください。</p><h2>メモ</h2><ol><li><p>これらのデータセットは合成されたもので教育用に設計されており、実際の課題に近似していますが、単一の本番ドメインを代表するものではありません。</p></li></ol>]]></content:encoded>
    <link>https://www.elastic.co/search-labs/blog/elasticsearch-entity-resolution-llm-semantic-search</link>
    <guid isPermaLink="true">https://www.elastic.co/search-labs/blog/elasticsearch-entity-resolution-llm-semantic-search</guid>
    <category><![CDATA[AI]]></category>
    <category><![CDATA[ハイブリッド検索]]></category>
    <dc:creator><![CDATA[Jessica Moszkowicz]]></dc:creator>
    <enclosure url="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/bltefc59243d9990405/6a17056ab339d5778f769ebf/473ca4357c7d60f690edbd2a844acda169aca9c3-720x420.jpg" length="0" type="image/jpeg"/>
    <pubDate>Thu, 26 Feb 2026 00:00:00 GMT</pubDate>
  </item>
  </channel>
</rss>