特定のドメインのセマンティック検索を構築する方法


19

データセットでセマンティック検索を実行する場所で解決しようとしている問題があります。つまり、ドメイン固有のデータがあります(例:自動車について話す文章)。

私たちのデータは単なる文の集まりであり、私たちが欲しいのはフレーズを与えて次のような文を取り戻すことです:

  1. そのフレーズに似ています
  2. フレーズに似た文の一部がある
  3. 文脈的に類似した意味を持つ文


「Buying Experience」というフレーズを検索した場合の例を挙げてみましょう。次のような文を取得する必要があります。

  • 車の購入に署名して購入するのに30分もかからないとは思っていませんでした。
  • 気に入った車を見つけました。購入プロセスは
    簡単で簡単でした

  • カーショッピングに行くのは絶対に嫌いだったけど、今日はよかった


私は強引な単語検索ではなく、文脈の類似性を探しているという事実を強調したいと思います。

文が別の単語を使用している場合は、それを見つけることもできるはずです。

私たちがすでに試したこと:

  1. Open Semantic Searchここで直面した問題は、私たちが持っているデータからオントロジーを生成すること、またはそのために、関心のあるさまざまなドメインから利用可能なオントロジーを検索することです。

  2. Elastic Search(BM25 + Vectors(tf-idf))、これを試してみましたが、数文しかありませんでしたが、精度はそれほど高くありませんでした。精度も悪かったです。人間が精選したデータセットに対して試したところ、文章の約10%しか取得できませんでした。

  3. 私たちは、センテンストランスフォーマーで一度言及されたようなさまざまな埋め込みを試し、も試して、人間が精選したセットに対して評価しようとしましたが、これも非常に精度が低かったです。

  4. ELMOを試しました。これは優れていましたが、予想よりも精度が低く、コサイン値を決定するための認知的負荷があり、それを下回ると文を考慮すべきではありません。これはポイント3にも当てはまります。

任意の助けをいただければ幸いです。事前に助けてくれてありがとう


よく書かれた質問-検索用語の例をさらに5つ追加できますか?それらは常に1から3語の語句ですか、それとも検索語句を長くすることができますか?あなたは正しい軌道に乗っています
Adnan S

こんにちはアドナン。検索語句は常に1〜3語のフレーズになります。例:購入体験、運転の快適さ、インフォテインメントシステム、インテリア、走行距離、パフォーマンス、座席の快適さ、スタッフの行動。
Jickson

この記事はあなたのケースにとって興味深いかもしれません:elastic.co/blog/…(ヒント:word2vecを活用)
Val

@Valこれは実際におもしろいことですが、私があなたが言及したのと同じ記事に触れ、それからあなたのコメントを見ました。私はこの方法であなたが望むものに近づくと思います。
ニマ

コサインの類似性を調べたい場合があります。以下で説明するように、文字列を2D空間で表現できるベクトルに変換する必要があります。これら2つのベクトルの余弦角度が計算されます。この角度は、2つの弦の「類似性」を表します。ここにいい記事があります medium.com/swlh/playing-with-word-vectors-308ab2faa519
sagar1025

回答:


5

セマンティック検索システムの構築方法に関するTrey Graingerの講演をご覧になることを強くお勧めします=> https://www.youtube.com/watch?v=4fMZnunTRF8。彼は、セマンティック検索システムの構造と、最終的なソリューションを提供するために組み合わせるために使用された各要素について話しています。

コンテキストの類似性の優れた例は、Bingの検索エンジンです。 ここに画像の説明を入力してください

元のクエリには「缶詰ソーダ」という用語があり、bingの検索結果は{缶詰ダイエットソーダ}、{ソフトドリンク}、{未開封の室温ポップ}、または{炭酸飲料}を参照できます。ビングはこれをどのように行いましたか?:

まあ、類似した意味を持つ単語は類似したベクトルを取得し、これらのベクトルを2次元グラフに投影して簡単に視覚化できます。これらのベクトルは、類似した意味を持つ単語が物理的に互いに近くにあることを保証することによって訓練されます。GloVeモデルをトレーニングすることにより、独自のベクトルベースのモデルをトレーニングできますここに画像の説明を入力してください

ベクトルの距離が互いに近いほど良いです。これで、ベクトルの距離に基づいて最近傍クエリを検索できます。たとえば、クエリ{動物が私の庭を破壊するのを防ぐ方法}の場合、最も近い隣人が次の結果を返します。

ここに画像の説明を入力してください

詳細については、こちらをご覧ください。あなたのケースでは、文のベクトルが元の検索クエリからの最大距離のしきい値を見つけて、文脈的に類似した文と見なすことができます。

LSI(潜在的セマンティックインデックス)のようなものを使用して語彙の次元を削減することによって、コンテキストの類似性を行うこともできます。Pythonでこれを行うには、PythonのGenismライブラリをチェックすることを強くお勧めします:https ://radimrehurek.com/gensim/about.html 。


1

この問題を解決するためにWeaviateを調べることに興味があるかもしれません。これは、データオブジェクトのベクトル化に基づくスマートグラフです

ドメイン固有の言語(略語など)がある場合は、カスタム概念で Weaviateを拡張できます

セマンティック検索機能(つまりExplore{})または自動分類機能を使用して問題を解決できる場合があります。

探索機能

すべてのデータオブジェクトはベクトル化されるため、次のようなセマンティック検索を実行できます(この例はdocsからのもので、 GraphQLを使用してここで試すことができます)。

{
  Get{
    Things{
      Publication(
        explore: {
          concepts: ["fashion"],
          certainty: 0.7,
          moveAwayFrom: {
            concepts: ["finance"],
            force: 0.45
          },
          moveTo: {
            concepts: ["haute couture"],
            force: 0.85
          }
        }
      ){
        name
      }
    }
  }
}

たとえば、クラス名「Sentence」に基づいてグラフスキーマを構造化すると、同様のクエリは次のようになります。

{
  Get{
    Things{
      Sentence(
        # Explore (i.e., semantically) for "Buying Experience"
        explore: {
          concepts: ["Buying Experience"]
        }
        # Result must include the word "car" 
        where: {
          operator: Like
          path: ["content"]
          valueString: "*car*"
        }
      ){
        content
      }
    }
  }
}

注:全体として意味的にグラフを探索
することもできます。

自動分類

別の方法としては、コンテキストまたはKNN分類機能を使用する場合があります。

あなたの場合、クラスSentenceを使用して、Experienceと呼ばれるクラスに関連付けることができます。このクラスには、次のプロパティがありますbuying(もちろん、他にも多くの構成と戦略から選択できます)。

PS:
このビデオは、必要に応じてもう少しコンテキストを提供します。


0

私の知る限り、セマンティック検索エンジンを構築するための理論モデルは存在しないと思います。ただし、セマンティック検索エンジンは、特定の要件に対応できるように設計する必要があると思います。そうは言っても、ユーザーの意図と検索用語のコンテキストを正常に理解できるセマンティック検索エンジンは、自然言語処理(NLP)と機械学習をビルディングブロックとして使用する必要があります。

検索エンジンは検索ツールとは動作が異なりますが、エンタープライズ検索ツールを参照して、機能するセマンティック検索モデルについてのアイデアを得ることができます。3RDi Searchのような新しい時代のプラットフォームは、セマンティック検索の原則に基づいており、企業が処理する必要がある非構造化データの理想的なソリューションであることが証明されています。Googleは、検索エンジンに高度なセマンティクスを導入するモデルに取り組んでいる可能性が非常に高いです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.