見出し画像

検索一筋10年のエンジニアが語る、1,800万点の商品検索パーソナライズ化への挑戦

※本記事の内容は取材時のものであり、組織名や役職等は取材時点のものを掲載しております。

モノタロウでは、売上拡大の重要な事業戦略の一つとして「商品検索機能の強化」に創業以来20年以上に渡って取り組み続けています。2022年を目処に検索結果表示のリアルタイムでのパーソナライズ化の実現を目指していて、分散型で高速かつスケーラブルな検索エンジンElasticsearchの導入や、データサイエンスとの連携による個人ごとに最適な検索結果の提供の実現などの取り組みを進めています。今回は、検索エンジニアのチームリーダーを務める山村さんにオンライン・インタビューしました。

山村さん
2011年にモノタロウ に中途入社
ECシステムエンジニアリング部門EC基盤グループサーチチームリーダー 

プライベートでは、自宅のIoTオートメーション化に取り組むことや、子供と一緒に「どうぶつの森」や「マインクラフト」などのゲームを楽しんでいます。

Q.  モノタロウの検索エンジニアになるまでの経緯は?

「検索領域未経験から、一筋に取り組んで10年」

私は大阪の出身で地元の短大を卒業後に東京工科大学に編入学し、2000年の初め頃に世の中に広がり始めていた「Webサイトのユーザビリティやレコメンデーションの使いやすさについての研究」などで大学院を修了しました。その後、ソフトバンクテクノロジー(当時)に新卒入社して、セキュリティソフトのダウンロード販売などのECサイトの受託開発/運用やBtoB向けのECサイトやCMSの開発を担当して5年勤めました。生まれたばかりの子供が大きくなる前に自分の地元の関西にUターンして生活拠点を移したいという希望があり、転職先を探していたところ2011年にモノタロウと出会いました。(現在、子供は12歳で小学校6年生に成長しました。)

当時のモノタロウは社員が100名に満たず、現在ほどの知名度もなく私自身も知らなかったので、変わった名前の会社だと感じたぐらいでした。しかし、面接で訪れた本社で見学させてもらった一角に倉庫があり、事務所の扉を開くとフォークリフトが行き交っていて、その迫力ある光景に圧倒されました。前職で携わっていたECではダウンロード販売や物流は外部企業にアウトソーシングしていたので、自分が開発したシステムでモノが実際に動いている実感があまりなかったのですが、自社事業としてモノが動く物流と一体化しているモノタロウの事業形態に感銘を受けて入社を決めました。

入社当初はフロント開発を担当していましたが、その後検索領域にも携わるようになり、これまで10年を超えて「検索一筋」で取り組んできています。入社以前は検索領域の経験はありませんでしたが、分散処理でレコメンドデータ生成をして検索に組み込むことや、Google BigQueryを活用した検索用商品データシステムの開発、検索ページのJavaScriptによるサイト計測、検索サーバーのログ収集等に携わってきました。

Q. モノタロウの商品検索で特徴的なことは何ですか?

「BtoBのプロユースのニーズに応える検索の細かさ」

工場や現場で働く人に間接資材を届けるBtoBのモノタロウと、日常の生活で利用される一般的なBtoC のECサイトでは、お客様の検索行動が異なることがデータ分析からもわかっています。工具や部品を販売するモノタロウは商品数も多くて、一つの商品の規格違いのバリエーションも豊富です。また、注文されるお客様が購買担当者か現場スタッフかによっても違いますし、土木や機械関連など業種によっても検索に求められる機能が違ってきます。それぞれのユーザーやシチュエーションにとって「良い検索とは何か」ということを常に意識して「モノタロウにしかできない検索体験」の実現を目指しています。

例えば、キーワード入力の少しの違いでユーザーが必要としている商品が違ってくることもあり、全文検索機能だけでは計算ができない部分を外側から調整する仕組みなども構築してきました。わかりやすい例をあげると、「3m テープ」と検索された場合は、ブランドの3M(スリーエム)社製のテープを求めているお客様が多く、「テープ 3m」と検索された場合は3メートルのテープを求めているお客様が多いなどを判定して検索結果を出し分けています。これらの情報については、商品データやお客様の行動データなどを統計的に分析しているデータサイエンスのチームなどと協力しながら、モノタロウとしての最適な検索ページを生成しています。

<お客様が求めているのはどちらのテープ?>
スリーエム社製のテープ or 長さが3メートルのテープ

このように店頭で実物を見れば一目瞭然なことも、ECサイトではわかりづらいことがあります。例にあげたテープの他にも、ボルト、ネジ、ベアリングなどは細かな規格に分かれていて、その商品を購入したいユーザーは当然どの規格が必要か認識しているけれど、検索が正しく機能しないと異なった検索結果を表示してしまうことがあります。そうするとお客様が必要としている商品に辿り着けないので、そういったことを防ぐ対策をしています。検索結果の上位に関連商品を表示することや、商品の長さや厚みなどの情報から絞り込み検索ができる機能などプロユースに応える細かい条件指定ができるようにも努めています。

Q. モノタロウの商品検索はどのように進化していますか?

「Elasticsearchの導入で、検索結果とレコメンドのパーソナライズ化を実現する」

「間接資材は多種多様で、商流通は複雑、買うのに手間がかかる。見積、交渉が必要で、適正な価格でタイムリーにモノが買えない。探すにも時間がかかる。」これはモノタロウが創業以来、解決に取り組んでいる「社会にあるが、叶えられていない」ニーズです。モノタロウが創業した2000年頃の工具販売は、営業マンや専門販売店がお客様の注文を請ける「御用聞き」が主流でした。そこにインターネットが広がってECサイトが登場しました。パソコンを使ったインターネットでの購買における重要な点は、多種多様な商品の中からお客様それぞれにとって最適な商品に出会うことができる「検索性」だと考えており、「インターネットを活用して規模の経済を実現し、幅広い商材と高い検索性で差別化する。」ということを当社は経営戦略の1項目に掲げ、現在に至るまで常にシステムのアップデートを続けてきています。

私が入社した2011年時点ではモノタロウの商品検索機能は、Apache Solr という全文検索エンジンにシノニム辞書などを設定した最低限の状態で運用を開始したところでした。その後、シノニム辞書や形態素解析辞書の調整、商品情報の部分ごとに検索でヒットしたときの重みづけを変更するなど、全文検索エンジンとしての利用を強化してきました。それらにより、ユーザーの複雑な問いに対しても柔軟に解釈して返す検索へと進化しています。

10年以上に渡りApache Solrのシステムを改良することを進めてきましたが、商品数は当初約150万点だったのが、現在では1,800万点を超える取り扱いがあり12倍に増加してアクセス数もとても多くなってきました。今後のさらなる規模の拡大や新しいトレンドを取り入れるためにも、蓄積された課題を統合整理して商品検索の基盤システムを刷新することとなりました。現在はそのシステムのリリースに向けての最終調整を行っています。

ITベンダーから検索ソリューションを提案されたこともありましたが、対応できる商品点数が1万点まででモノタロウの1800万点には対応できないなど、モノタロウの細かすぎる商品属性ゆえに制限がいろいろとあり、内製で自社開発をしていく必要がありました。様々な検討の結果、全文検索エンジンは Elasticsearchを採用しました。Apache SolrとElasticsearchは双方ともベースエンジンとしてApache Lucene Coreライブラリを使用してJavaで開発されているので共通する要素も多いことが特長です。しかし、古くから蓄積しているが今は使われていないデータなど、技術的な負債を一気に返済解消して検索速度を向上させるために、一から見直して要件定義を進めてきました。

 また、現状では、お客様が事前登録した業種をベースに、建設業/製造業/自動車…といったようにグルーピング化してレコメンド商品を表示していますが、新システムでは一人毎に細分化することを目指しています。さらに、そのパーソナライズ化をリアルタイムに実現できるように取り組んでいきます。また、モノタロウ社内ではABテストをあらゆることで実施することが徹底されています。これまで検索システム構成では検索エンジンのABテストは実施しづらかったのですが、Elasticsearch導入後には実施できるようになります。

Q. 検索チームにはどんな人が向いていますか?

「お客様に検索をどう使ってもらうか、に興味を持って追求できる人と働きたい」

EC基盤グループは外部委託の方も含めて20名ほどのメンバーで構成されています。その内の半数が検索基盤に携わっていて、私たちサーチチームはElasticsearchの導入や周辺システムの開発を担当しており、もう一つのチームは、実際に投入するデータを作るコアロジックチームです。

サーチチームは、自然言語処理のエキスパートが1名、Elasticsearchを触っているのが3名、新卒スタッフと私の6名です。平均年齢は30代前半ぐらいでしょうか。前職で検索をメインで担当していた人はあまりいなくて、データ活用周りの経験や興味があったというメンバーが中心です。もちろん、検索のスペシャリストにチームにジョインしていただけるのは嬉しいです。しかしもしそういった経験がなくても、「お客様に検索をどう使ってもらうか」に興味を持って追求できる方であれば歓迎です。未経験や新卒からでも研修で知識を得たりしてスキルアップできる環境があります。「モノタロウの検索を良くしよう。中の仕組みを知りたい」そんなモチベーションがある人と一緒に仕事をしたいです。成長したいと考えている人にとっては、活躍する場はたくさんあり、まだまだ人が足りないので、興味がある人はぜひ応募して欲しいです。モノタロウの検索システムの規模は大きいので、サーチエンジニアとして他社とは違った経験が得られると思います。また、モノタロウは自社でECサイトを運用している事業体なので検索の領域以外にも周辺に触れることができ、知識を得られることも成長のポイントです。

検索基盤の開発においては、データ構造やシステム構成を十分に検討しないと機能面やパフォーマンス面に影響が出てしまいます。それらの課題について仲間とディスカッションをしながら解決していくことは、大変やりがいがあることです。会社全体の経営戦略でも重視されている期待に応えるためにはバラバラの方向を向いていては進みにくいので、効率よく団結して進めるチームをメンバーみんなで作り上げていきたいです。

個人的にもモノタロウは働きやすい職場だと感じています。一つの大きな要因はモノタロウの理念にある「他者への敬意」です。これは「相手に敬意を払って仕事をしましょう」ということであり、しっかりとした文化として社内に定着していて、相手の意見をちゃんと聞こうという姿勢が社員みんなにあります。上司から言われたからやる、というようなことではなくて、若いスタッフでも意見や提案したことがちゃんと通る雰囲気とバランスが良い社内です。組織形態もフラットであり、役割毎のチーム制に小さく分かれています。いきなり部署単位ではなく、小さなチーム単位でディスカッション検討しているので意見も言いやすく、切磋琢磨も活発です。

EC基盤グループは、メンバーの半数ずつが大阪と東京に勤務しており、コロナ禍以前からリモートが前提でした。2021年2月現在は、リモート+週2出社になっています。この2年あまりで、作業は効率が良い在宅業務にして、細かいディスカッションについては対面で行なった方が進みやすいという経験が得られたので、今後も両者を併用しながらやっていきたいと考えています。

モノタロウでは共に働く仲間を募集しています!

テックブログもぜひご覧ください!