検索サービス開発が面白いと思う理由
こんにちは!Supership株式会社 新卒採用担当の大竹です。
この記事では、検索サービス開発の面白さについて紹介できればと思います。
TABLE OF CONTENTS
1.Supershipが提供している検索ソリューション
皆さんがECサイトで買い物をする際は、欲しい商品を検索し、検索結果として表示された中から好きなものを購入していると思います。
実は、皆さんのニーズに応じた検索結果の表示を可能にするために、ECサイトの内部にはテクノロジーを駆使した様々な機能が実装されています。
SupershipではZOZOTOWN、au Webポータルなどのサイトに検索ソリューションを提供し、ECサイトで買い物をするユーザーの「欲しい」に寄り添う、快適な検索体験を提供しています。
「Supership Search Solution (S4)」は、数ある検索エンジンの中でも、膨大な単語数を誇る業界屈指の検索辞書を持ち合わせていることから、欲しい商品に最短でたどり着くことを可能にしています。
また、検索サービス開発に長年携わってきたエンジニアによる日々のメンテナンス・ロジックチューニングを通じて、高速かつ高精度な品質を保ち続け、そして検索領域に豊富な知見を持つコンサルタントによる継続的なコンサルティングサービスにより、サイトを訪れたユーザーの皆様に価値を提供させていただいています。
2.検索サービス開発に使われている技術
検索サービスの開発においては、PCがメインだった状態から徐々にスマホにシフトしていったことにより、以下のようなパラダイムシフトが起こりました。
普段スマホで調べ物をする際に、検索サイトで何気なく無意識にひらがなで検索することはありませんか?
そして、別のサイトで同じようにひらがなで検索すると、検索結果が0件となってしまい、違和感を感じた事はないでしょうか。
この現象は、“表記のばらつき”に対応できていないことから発生します。ユーザーにとっては、検索体験を損ね、検索する行為を諦めてしまい情報と出会える機会を損失してしまうことにつながります。
そういった状況において、この課題を解決するために検索機能の開発者がまず最初に行う事は、NormalizeやTokenizeの処理をAnalyzerを通して適切に処理する事、いわゆる自然言語処理の系です。
検索サービス開発を構成する要素としては、自然言語処理のみならず、以下に記した9つの要素があると私たちは考えています。
そもそもインターネット上で展開する検索サービスとは何か。
- 星の数ほどある情報の中から
- 正規化した利用者の入力データを元に
- 適合した情報を複数抽出し
- 恣意的に操作した並び順で
- 利用者に最適化した検索結果を出力する
というレコメンデーションロジックの集合体である、と考えています。
AppleのCEO、ティム・クックに 「I think their search engine is the best.」と言わしめるGoogle の凄さは、一営利企業でありながら、恣意的に操作した並び順で検索結果を表示しているにも関わらず、全世界に存在する膨大なユーザーがその検索結果に対し何の疑いも持たず利用していることです。加えて、Web における標準のように扱われ、ユーザーの心理に多大なる影響を及ぼし続けている所にあるのではないでしょうか。
3.検索サービス開発が面白いと思う理由
検索サービス開発の面白さは、検索結果を(恣意的ではあるが)利用者に違和感を感じさせないような並び順で表示させることを実現するための「ランキングアルゴリズムの設計」にある、と私たちは考えています。
ランキングアルゴリズムの設計
ニュースサイトにおける記事検索を例に検索結果の並び順についての考え方をお話します。
調べてみると、ニュースとは
- 新しい
- 珍しい
という二つの素性によって構成された情報を知らせる事のようです。
検索対象とするニュース記事群に行うスコア計算は下記のように機械的に表現できます。
ランキングスコア = 基礎(マッチング)スコア + 記事の鮮度 + 注目度
- 記事の鮮度
指数関数的減衰モデルで表現可能です。
ある出来事がニュース記事となり一時的に注目を浴びたとしても、時間の経過に比例して記事の新鮮さは失われていきますよね。
東京 2020オリンピックで日本が獲得した金メダルの数を覚えていますか?
- 注目度
記事のPV や SNS でのシェア数、コメント数 などが指標として活用できそうです。
上記の指標をElasticsearch であればDecay functions, Script score functionを利用する事でコストをかけずに実装ができます。
その他記事タイトルによるスコアの重みづけなどでスコアリングをDCG(Discounted Cumulative Gain) などの評価を微調整と改善を行う事になるでしょう。
このような状態遷移を想像してもらえると理解が深まると思います。
ここまでニュースの記事検索を例にランキングアルゴリズムの設計についての考え方をお伝えしました。抽象的に素性を捉える事で、比較的容易に実装が可能となる環境をOSSプロジェクトによって私たちは獲得しています。
以上、検索サービス開発の面白さについてお伝えしましたが、サービスとして成立させるためにはこの他にもやるべき事が山ほど存在し、その要素1つ1つがとても奥深いものばかりです。
検索という機能はアプリケーションであり、サービスであり、ソリューションであり、メディアでもありビジネスに直結する稀有な存在です。
興味をもっていただいた方には、面接/面接にてさらに詳しくお話できればと思います。
OTHER CONTENTS
ENTRY
Supership株式会社では、
現在【総合職/技術職】で募集を行っております。
募集要項などをお読み頂き、
必要事項を記入の上エントリーして下さい。