Apache Solr による
はじめての
セマンティックサーチ
2022年12月9日 株式会社ロンウイット
関口宏司 @kojisays
セマンティックサーチ*1
2
人が理解するのと同じように検索エンジンが
テキスト・画像・動画・音声データを理解して
高速に検索できる
*1:ニューラルサーチやベクトル検索などと呼ばれることもあります。本書ではセマンティックサーチで統一します。
内容
● デモ https://demo.rondhuit.com/
● セマンティックサーチの応用例
● キーワード検索との比較
○ キーワード検索の限界とセマンティックサーチによる改善
● キーワード検索との技術比較
○ Semantic vs. Bag-of-Words
○ Sparse vs. Dense
○ Boolean vs. ANN Vector
● 他社製検索エンジンの「セマンティック検索」との比較
● キーワード検索の今後
● まとめ
3
セマンティックサーチの応用例
● ECサイト
○ 街中で見た商品を写真に撮って、普段使っている ECサイトで写真から商品を検索して購入
● チャットボット
○ ドメイン特有のキーワードを知らないユーザーでも、ズバリの答え( FAQリンク等)を探し当てやすく
なる ⇒ 利用者のイライラを解消
● 辞書・慣用句・ことわざなどの表現検索
○ 書き物をしている際、表現したいことを端的に記述する慣用句などを検索
■ (クエリ例)「当人より冷静な周りの人の方が状況判断できる」
⇒「岡目八目」:第三者は当事者よりも情勢が客観的によく判断できるということ。〔人の碁を
わきから見ていると,打っている人より八目も先まで手が読めるということから〕
● 社内知識共有/ナレッジマネジメント
○ 従来型のキーワード検索では実現できない検索が実現可能(次ページ参照)
4
ナレッジマネジメント(企業内検索システム)の限界
● 日本生命 沼田課長よりヒアリング
○ 調べたいこと:「損金を計上するメリットとは?」
○ 現状のキーワード検索だと、「損金」「計上」「メリット」というキーワードで検索することになる。 ⇒
キーワードをバラバラに含む文書が多数ヒットして、探したいものが見つからない。
○ 調べたいこと:「契約者と被保険者が別人の時の保全の手続き」
○ 調べたいこと:(年齢によって異なる)「 30歳の本人確認書類」
5
… … … … … … … メリット … … … … … … …。 … … … …
… …… … … … … … …… … … … … … …… … … … … …
… 損金 … … 。 … … … …… … … … … … …… … … … …
… …… … … … … … … … … … … … … …… … … … … …
…… … … … … … …。 … … … … … …… … … … … …
…… … … … … … …… … … … … … … 計上 … … 。 …
セマンティックサーチでナレッジマネジメントを改善
● 調べたいこと:「損金を計上するメリットとは?」と入力すれば、そのものズバリの答
えが載っている文書が上位表示される。
● 調べたいこと:「契約者と被保険者が別人の時の保全の手続き」も同様に検索して
ズバリの回答を得られる。
● 調べたいこと:(年齢によって異なる)「30歳の本人確認書類」
⇒ 「20歳以上の本人確認書類は XXX」
⇒ 「合わせて読みたい」(レコメンド)⇒「 14歳以下はXXX」「15歳以上20歳未満はXXX」
● 適切なアプリケーションにセマンティックサーチを適用すれば、調べ物の時間を大
幅に改善できる。
6
従来型のキーワード検索との比較
● 従来のキーワード検索では文書に含まれるキーワードを入力しないと検索できない
○ ある程度業務ドメインの知識がないと検索できない
○ ドメイン知識があっても、同じ意味を持つキーワードは複数存在するので、類義語辞書のメンテナンスが欠かせない
● セマンティックサーチでは必ずしもクエリのキーワードはヒットする必要がない
○ 業務ドメインの知識がなくても、調べたいことを自分なりの表現にすれば検索できる
■ (例)ECサイトで「机を組み立てるのに必要な工具」
■ (例)辞書・慣用句・ことわざを調べるのに、意味から調べられる
■ (例)法令・判例検索システムを法科大学院の学生や新人の判事・検事・弁護士の研修に用いる
○ コーパス収集時期とクエリ時期が離れていても検索できる
■ (例)古い文献を現代の表現で検索できる(かも)
● 従来のキーワード検索における検索性能 *1
を向上させるための施策
○ 文字等さまざまな正規化
○ 形態素解析と文字
N-gramの使い分けや組み合わせ
○ キーワードの表記揺れ対策やシノニム定義
○ フィールドの重み付け
○ クエリサジェスチョンetc.
● セマンティックサーチは上記従来テクニックを一切不要にする破壊的な技術
7
*1: 情報検索における精度(
Precision)と再現率(Recall)のことを指します。
従来型のキーワード検索との比較(技術要素)
8
キーワード検索 セマンティックサーチ
ベクトル化の考え方 Bag-of-Words Semantic
ベクトルの特徴 Sparse Vector Dense Vector
検索アルゴリズム Boolean ANN Vector
技術要素比較:Bag-of-Words vs. Semantic
● Bag-of-Words: 各単語が何回文書に
出現したか。語順、文の構造などは文
書に現れない。Tokenizer。
9
● Semantic: 検索対象(テキスト・画像
等)の意味を考慮したベクトル表現を
用いる。ニューラルネットワーク。
○ テキスト:BERT
○ 画像:CNN
技術要素比較:Sparse vs. Dense
● 従来型のキーワード検索では、1単語をベク
トル空間の1次元に対応させる。
○ コーパスの単語種類数がベクトル空間の次元数と
なるので、検索対象文書とクエリとも、多くの要素が
0(ゼロ)となるベクトルで表現される。⇒Sparse
(疎) Vector
10
O’Reilly Applied Text Analysis - Chapter 4. Text Vectorization and Transformation Pipelines
● セマンティックサーチでは、クエリや文書の意
味・意図を固定次元のベクトルで表現する。
○ 上記と比べて低次元の、ほとんど全ての要素が
0
(ゼロ)でないベクトルで表現される。⇒Dense(密)
Vector
Hariom Gautam - Word Embedding: Basics (https://medium.com/@hari4om/word-embedding-d816f643140)
技術要素比較:Boolean vs. ANN Vector
● Boolean: 転置インデックスを右図のよう
なアルゴリズムで探索し、ヒットした文書集
合をBM25などのスコア関数を用いてクエ
リとの類似度順にソートして返却
11
Information Retrieval: Implementing and Evaluating Search Engines by Stefan Buettcher, Charles L. A. Clarke, Gordon V. Cormack
● ANN Vector: 全文書に対してスコア計算
(内積やコサインなど)を行うわけにいか
ないので、近似最近傍探索(ANN)を行
い、得られた限定的な文書セットについて
スコア計算を行い、TOP-Kの文書を返却
他社製検索エンジンの「セマンティック検索」との比較
● 他社製検索エンジンの「セマンティック検索」は、従来型のキーワード検索技術の上
に構文解析・意味解析を付加したもの。そのため、
○ 検索対象はテキストのみ。
○ 文書の意味を理解しているわけではない。
○ 結局はキーワードが当たらないとヒットしない。
■ (再現率ではなく)精度向上の補助的施策にすぎない。
○ キーワードが構文解析ウインドウの外にあると太刀打ちできない。
○ ヒューリスティクス。(類義語辞書登録のように切りがない)
● ロンウイットのセマンティックサーチは、「人が理解するようにテキスト・画像・動画・
音声データを検索エンジンが理解し、検索できる」ので、
○ キーワードがヒットしなくても、調べたいことの意味が記述されていればヒットする。
○ 検索対象はテキストに限らない。ベクトル化できればあらゆるものが検索可能。
○ テキストクエリで画像を検索したり(またはその逆)できる。
12
(注)構文木の図は英語の場合です。日本語の場合は係り受け解析等が行われます。
今後キーワード検索はどうなる?
● キーワードを含む文書を探したいユーザーのために今後も使われ続ける
○ (例)当該業務ドメインに詳しい利用者が使う検索システム
○ (例)著者名による書誌検索、会社名検索、製品名検索
● セマンティックサーチとのハイブリッドシステムで使われる
● キーワード検索をAIを使ってより良くする工夫も健在
○ 類義語辞書自動生成
○ 専門用語抽出
○ 固有表現抽出からの新たなファセット軸提供
○ 言語モデル等によるスマートなクエリサジェスチョン
○ アノテーション
○ ハイパーパラメーター探索
○ ランキング学習
13
まとめ
14
ポイント ①
セマンティックサーチは、従来のキーワード検索で検索性能向
上のために必要だったテクニックを、 一切不要にする破壊的な
技術
ポイント ②
セマンティックサーチは、検索対象をベクトル化できれば、テキ
ストに限らず検索対象とすることができる。テキスト・画像・動画
・音声の相互検索が可能
ぜひ皆様のデータで試して、セマンティックサーチの効果を実感
してください!

20221209-ApacheSolrによるはじめてのセマンティックサーチ.pdf