良い検索エンジンを作るにはどうすれば良いでしょうか?
まずは基本中の基本。
私はいつも意識しているんですが、世の中ではあんまり意識している人はいないんじゃないかということから始めます。
それは「マッチング」と「ランキング」です。これをごちゃまぜにして考えると良い検索エンジンは作れません。
検索エンジンはよく考えると二つの段階から成り立っています。それはクエリーから候補となる商品(ドキュメントと読みかえてもよい)を選ぶ部分と、候補となった商品群を順位付けする部分です。
マッチング
「マッチング」は、ユーザーが入力したクエリーと商品を文字通り「マッチ」させる処理です。
「カメラ 」というクエリーに対して、商品タイトルや説明文に「カメラ」という文字列が含まれているものを選び出します。
これには、「形態素解析」や「N-gram」と言った処理を用います。さらに微妙に送り仮名が違うものをマッチさせるか否か、漢字とカタカナとひらがなをマッチさせるか否かと言った問題がたくさんあります。
また、一クエリー中に複数のキーワードがあった時に、「フレーズ」として扱うのか「AND検索」させるのか、と言った問題もあります。
古典的な技術ですが、新しい商品に珍しい言葉が入っているとうまくマッチしなかったりして、商品データベースに応じてしっかりとチューニングして上げる必要があります。
ランキング
「ランキング」はマッチングで選ばれた商品の候補に順位付けをする処理です。
お客様は全ての検索結果は見れませんから、何らかの優先順位をつけて並べてあげることが必要になります。
通常の検索エンジンでは、ランキングに「マッチングスコア」を用いてしまいますが、これが混乱の原因です。
マッチングスコアとはあくまでも「クエリー」と「商品」がどれくらいマッチしているかを、計算したスコアに過ぎません。そこには、売れているかどうかと言った情報は含まれていないのです。
ユニナレでは、「マッチング」と「ランキング」を完全に切り離します。
そしてランキングには徹底的に「お客様の購買行動」を利用します。つまりどういう動線で動いて何を買ったかと言った情報をフル活用するのです。
一般的な検索エンジンではこれが出来ていないので、ランキングの調整をするためにマッチングスコアの調整をしてしまうのです。
つまり社員の方が、タイトルや説明文を編集するのです。はっきり言ってこれは不毛です。終わりのない作業ですから。
おそらく日本中のECサイトが似たようなことをやっているでしょう。
ユニナレの検索エンジン「P1」は、お客様の購買行動に連動しているため、日々検索結果が自動的に変わっていきます。勝手に売れ筋を反映してくれます。もちろん季節性も反映されます。
これを読んだだけでも、自社の検索エンジンを改善できるのではないでしょうか?是非、やってみて下さい。
# Facebok ページで「いいね!」して頂けると、ユニーバーサルナレッジの最新情報を得ることができます。
http://www.facebook.com/universal.knowledge.inc