単語や文章で検索!検索エンジンに使えるAI手法まとめ!

こんにちは!
IT企業に勤めて、約2年間でデータサイエンティストになったごぼちゃん(@XB37q)です! 

このコラムでは、検索エンジンに使えるAI手法を紹介します!
また、AIだけでなく、検索の仕組みを解説する事により、検索エンジンの仕組みを紹介します!

検索エンジンとは

検索エンジンの流れ
検索エンジンの流れ

検索エンジンの目的は、利用者の検索意図と適合するコンテンツを取得することにあります。
この検索エンジンは、ビジネスでは非常に重要なタスクになります。

例えば、ECサイトでの検索エンジンの場合、利用者が欲しい商品をすぐ検索することが出来なければ、違うECサイトで購入してしまう可能性があります。
また、利益が多く出る商品と利益が小さく出る商品のどちらかを利用者が同じ程度欲しい場合、ECサイト側としては利益が多く出る商品を検索結果の初めに出すことにより、売上の向上が見込まれます。

このように、ビジネスの世界では検索エンジンの品質を向上することが、企業の売り上げ貢献などにつながる重要な要素になります。

検索エンジンの品質とは

検索エンジンの品質を測る指標
検索エンジンの品質を測る指標

検索結果の品質は適合率再現率を使用して測定することが可能です。
再現率は、検索結果のサイズに関係なく検索結果の完全性を表します。
そのため、最大再現率100%は簡単に達成することが可能です。

適合率は、検索結果の中に利用者が求めているコンテンツが含まれている割合を表します。
そのため、検索結果に出現していない適合アイテムは、適合率に何の影響も与えることはありません。

これら2つの指標の違いはそれらが独立しておらず、トレードオフの関係にあります。

検索エンジンでは、限られた時間の中で、利用者が検索結果を見つけることが重要視されるため、利用者が求めている結果を返すことが優先されます。
そのため、どちらかというと適合率を高めることが優先されると考えてよいでしょう。

検索エンジンの難しさ

入力キーワードしか入手できない
入力キーワードしか入手できない

検索エンジンの難しさは、利用者から得られる情報が入力キーワードしかないという点です。
つまり、利用者が入力したキーワードと利用者が本当に求めているコンテンツは乖離している可能性があるということです。

そのため、AIを使用して、利用者が入力したキーワードから、利用者が求めているコンテンツを推定するという技術が必要になります。

このように、利用者からキーワードを入手し、利用者が求めているコンテンツを推定するという考え方は、レコメンデーションエンジンと似ています。

検索エンジンに必要な前処理

検索エンジンに入力されたキーワードには、人によって入力単語に違いがあります。
例えば、PCと入力する人、パソコンと入力する人など、様々でしょう。

このように、同じ意味を表す複数のキーワードを、1つのキーワードに統一するという処理を行います。
専門用語ではステミングと呼ばれることもあります。

また、小文字や大文字などの単語、誤字脱字を正確な単語に統一することも必要です。
専門用語では正規化と呼ばれることもあります。

このように、検索の処理を行う前に、利用者が入力したキーワードを検索に適したキーワードへ変換する前処理が重要になります。

キーワードの前処理については、他コラム「テキストマイニングの根本技術を3種類紹介!形態素解析、構文解析、辞書作成!」の辞書作成で詳しく紹介しています!

単語が出現するかどうかで検索 ~マッチング検索~

マッチング検索のイメージ
マッチング検索

検索エンジンに使われる基礎的な方法は、マッチング検索です。
マッチング検索では、入力キーワードが記述されているコンテンツかどうかという判断で、マッチ度合いを算出します。

マッチング検索には、2種類のAI手法を使うことが可能です。

  • コサイン類似度
  • tf-idf

手法の説明は、他コラム「テキストマイニングでも使う!文章の単語変換方法と文章同士の類似度」をご覧ください。

コサイン類似度

コサイン類似度の算出式
コサイン類似度の算出式

利用者に表示されるアイテムの順序はとても重要になります。
なぜならば、検索結果から利用者が確認する結果は、少ないこと。また、利用者の数と比較して、検索結果として出力するアイテムの数が膨大なことが原因です。

入力されたキーワードが文章に出現しているかどうかを表すコサインベクトルが使用できます。
入力キーワードとコンテンツの内積をとることにより、適しているかどうかを判断します。

短い文書と長い文書がある場合、入力されたキーワードとのマッチ度が同じ場合、短い文章のほうが適していると言えるでしょう。
長い文書は様々なキーワードが出現されている中での一部分がマッチしており、短い文書はほぼ大半が入力キーワードとマッチしていると考えることが可能です。

この点について、入力キーワードとコンテンツの長さを表す(ベクトルのノルム)値により、内積を正規化する指標をコサイン類似度と呼びます。

コサイン類似度が1の場合、入力されたキーワードと完全にマッチすることを表します。
また、コサイン類似度が0の場合、入力されたキーワードと完全にマッチしないことを表します。

tf-idf

BoWとTF-IDFの算出式
TF-IDFの算出式

TF-IDFは、珍しい単語が何回も出現するようであるならば、その単語の重要度を高くするという考え方の方法です。
2つの指標からこのTF-IDFを算出しています。それは、tfとidfという指標です。
tfという概念とidfという概念を組み合わせたものと解釈をしてください。

tf-idfを使用して単語を数値で表した後、コサイン距離を使用して類似度を計算するというアプローチも使われることがあります。

似たような意味で検索 ~セマンティック解析~

セマンティック検索のイメージ
セマンティック検索のイメージ

先ほど紹介したマッチング検索には大きな課題が2つあります。

多義性:1つの単語が複数の意味を持っている
同義性:どちらも同じ意味を表す単語が存在する

マッチング検索の課題「同義性」を解決する方法が、セマンティック解析と呼ばれる方法です。
セマンティック解析は、概念検索と呼ばれ、ある単語Aとある単語Bが概念としては同じ単語の場合、入力キーワードが単語Aの場合でも単語Bが出現しているコンテンツを検索することが可能です。
つまり、セマンティック解析は「正しい概念の発見」と「単語の正しいマッピングの発見」の問題として考えることができます。

セマンティック解析の面から考えると、多義性と同義性は下記のように解釈することが可能です。
多義性は、1つの単語につけられた2つの異なる概念を表す問題です。
同義性は、1つの概念に紐づけられた2つの単語を表す問題です。

多義性については、セマンティック解析で解決は出来ませんが、同義性の問題を解決することが可能になります。
セマンティック検索には、2種類のAI手法を使うことが可能です。

  • Word2Vec
  • PLSA

Word2Vec

Word2Vecのイメージ
Word2Vecのイメージ

Word2Vecとは、単語の分散表現の獲得を行うAI手法です。
「単語の分散表現」とは、単語を固定長のベクトルで表現することです。

先ほどのtf-idfやcosin類似度では、1つの単語を1つの値のみで表していました。
word2vecを使うことにより、1つの単語を複数の値で表すことが可能になり、単語をベクトルで表現することができれば単語の意味を定量的に把握することができるため、様々な処理に応用することができます。

Word2Vecのモデルによって単語の分散表現を獲得することができるとどのようなことが可能になるのでしょうか?
単語の分散表現を使用して、単語間の意味的な距離を定量的に表すことが可能になります。
例えば、「カレーライス」と意味が類似している単語は「ハヤシライス」というような結果になることもあります。

このように、類似している単語を抽出することにより、単語と単語が完全に一致しなくても、類似している単語が出現しているコンテンツを検索できるようになります。

Word2Vecのアルゴリズムについては、他コラム「文章の分散表現を獲得!Word2VecとDoc2Vec!」をご覧ください。

PLSA

PLSAのイメージ
PLSAのイメージ

PLSAも類似している単語や文章をまとめるAI手法です。
先ほどのWord2Vecと同様に、セマンティック解析を行うことが可能です。

PLSAのアルゴリズムについては、他コラム「EMアルゴリズムを使ったPLSAを数式から理解する!」をご覧ください。

まとめ

  • 検索エンジンとは
    • 利用者の検索意図と適合するコンテンツを取得すること
    • この検索エンジンは、ビジネスでは非常に重要なタスク
    • 品質は適合率と再現率を指標にする
  • 単語検索
    • マッチング検索では、入力キーワードが記述されているコンテンツかどうかという判断で、マッチ度合いを算出
    • 多義性と同義性の問題を抱えている
    • 多義性:1つの単語につけられた2つの異なる概念を表す問題
    • 同義性:1つの概念に紐づけられた2つの単語を表す問題
    • コサイン類似度とtf-idfのAI手法を使用可能
  • セマンティック解析
    • 概念検索と呼ばれる
    • 「正しい概念の発見」と「単語の正しいマッピングの発見」を行う
    • 多義性と同義性の問題を解消できる
    • Word2VecとPLSAのAI手法を使用可能

参考図書