はてだBlog(仮称)

私的なブログど真ん中のつもりでしたが、気づけばWebサイト系のアプリケーション開発周りで感じたこと寄りの自分メモなどをつれづれ述べています。2020年6月現在、Elasticsearch、pandas、CMSなどに関する話題が多めです。...ですが、だんだんとより私的なプログラムのスニペット置き場になりつつあります。ブログで述べている内容は所属組織で販売している製品などに関するものではなく、また所属する組織の見解を代表するものではありません。

別立てのナレッジインデックス(検索UX向上のためのオレオレ考察 (Elasticsearch))

はじめに

弱者のエンジニアリング、細腕エンジニアとして、検索サイトのUX向上に向けて、せっかくある記事ページをナレッジインデックスとして検索に活かそうという論を主張します。 (Elasticsearchカテゴリとしたのは、Elasticsearchの機能にインスパイアされたからです。キーワード的には、Significant terms、Significant textあたりです。ただ、このページには厳密なテック情報はありませぬ。ごめんなさい。)

主張の要約(ナレッジインデックスを用いたプレ検索による検索語選定)

2018年現在においては、検索サイトはシンプルな検索UXを提供するべきかと思われます。

それはそれとしながらも、多くの検索サイトに当てはまる特徴を活用して、検索の前にもう一捻りしてみる「プレ検索による検索語選定(仮称)」を提唱したいと思います。

着目点

提唱(?)メソッドの説明の前に、私が「多くの検索サイトに当てはまる特徴」と考えたものを述べてみます。

その特徴とは、検索サイトは検索サイトでありながらコンバージョン対象のコンテンツ(ECなら商品ページ)と比類できるぐらい記事ページがしめる割合が増えているということです。

と言うのも、LPOやSEOSEM的な面ももちろんとして、そもそも最近の検索サイトでは、集客のために記事コンテンツやガイダンスコンテンツを用意して、自サイトの価値をアップしています。

このような記事ページはその目的からすると当たり前ですが、あるドメインのあるテーマに関して、周辺知識を含めて洗練された知識が集約されたページになっている傾向があります。

アウトドア製品ECサイトの商品ページコンテンツに対して、レジャーや新スポットの紹介あるいはもっと具体的にあるカテゴリのオススメ商品の選び方ポイントなどを初心者、上級者それぞれのターゲットに合わせて編集した記事ページが用意されています。

ここには、商品ページの内容がスペックを中心としたスモールワードや専門用語が中心に対し、ビッグワードやミドルワードあるいはユーザ目線の単語とともに、幅のあるワードから商品ページに記載のワードへと繋がるようなテキストが展開されています。

多少盛った話もあるでしょうし、中にはネイティブ広告色が強いものものもあり、バイアスもかかっているものもあるかもしれません。ただし、それでもユーザーに訴えかけるようにテーマ選定し、編集されているコンテンツと言えると思います。 (繰り返しますが、ページが作られている目的からいえば当たり前かもしれません。)

クソミソ方式:極論気味のお話

前項では、記事ページってこうだよねと棚卸ししてみました。もう一度言うと、記事ページは検索エンジンの適合度などの観点からするとそのドメインに特徴的なワードの宝庫だと思われます。

この特徴を考えると、という話になりますが、検索サイトのユーザ層次第ではあるものの、私なぞは実際のところ、例えば、ECでの商品サイトであれば、商品ページも記事ページもくそみそ一緒にして検索してしまえ派です。

もちろん、記事ページには商品検索結果をサイドバーにレコメンドしたり、ElasticsearchでいうところのMore Like Thisクエリーをかまして、商品ページへの誘導 をつけても良いでしょう。

クソもみそもと言いましたが、(ドキュメントのフィールド設計が不自然にならない範囲で)検索機能を統合するだけで、一度記事ページを経由した方が良いような初心者ユーザは記事ページがヒットするでしょうから、そこで予備知識をつけつつ、レコメンドの商品ページに誘われるのは自然でしょう。一方、上級者は結果的に商品ページが検索結果に優先されて表示されることになるでしょう。つまり、ある程度住み分けされつつ、上級者だけど適切な検索語がわからないなという時にも対応できる、一挙両得なものになりうる、しかもサイト側もさほど手間をかけずに...という考えです。

ナレッジインデックス(仮称)方式

f:id:azotar:20181219222432p:plain

言っておきながらですが、クソミソ方式は少し極論なのは事実です。

実際のところは、検索サイトのメインとなる商品ページ群と記事ページの間には一線を引いておきたいというポリシーのサイトも多いでしょう。

とはいえ、せっかくの記事ページを有効活用することはできないでしょうかと貧乏性な私は思います。

そんな私にとって、ElasticsearchのSignificant Terms/ Significant Text(やTerms vector)との出会いはラッキーでした(なんか変な通販みたいな言い方になっている(苦笑))。

こやつらは、雑に言うと、検索結果のドキュメント内に特徴的なワードがあればそいつらを返してくれます。

ここで、記事ページ自体を通常の変換マップ表であるシソーラスより上位の「検索対象のドメインに関するナレッジ」とみなしたインデックス(ナレッジインデックス)を考えます。

ナレッジインデックスは、記事ページそのものの検索インデックスとしても使えますがここではひとまず別物とします。また、商品ページのものとも別のインデックスです。

このナレッジインデックスは、商品ページのインデックスを検索する前のプレ検索(検索語自体で検索してSignificant Text等で関連語を検索することによる、検索語のリファイン(あるいは幅出し))、もしくは検索したあとに0件ヒットの場合の「もしかして検索」とアナザーバージョンとして使えるのではと考えています。

えてして精度が高いとはかぎらないユーザーの検索語を咀嚼した真の検索語を得ることに繋がる期待もあるのではと考えます。

そんなに都合の良いケースばかりでもないでしょう。ただ、機械学習などを使った手法やヘビーなテキストマイニングを行うことなく、... というかそもそものドメイン知識を有するヒトが作成した記事なので、機械学習などの結果として得たいそのモノだったりするように思います。

むしろ私の知識不足・知見不足にすぎず、よくある当たり前の使い方のひとつかもしれません。

Elasticsearchなど、検索結果とファセット(Aggs)をワンパスで取得できる検索エンジンを使う世界感においては、ワンパスでシンプルになった分、ある種の空きリソースを活用して、あえてのナレッジインデックスを別立てにするという案はいかがでしょうか。

つづきます

ほんとにうまく行くんかいというところもありますが、弱エンジニアだからこそ気づけたのではと思う観点でしたので、ひとまず、主張したいことを綴ってみました。

一応続きがあります。 ↓

itdepends.hateblo.jp