Search Engineering Tech Talk に参加してきました

こんばんは! はじめまして、山村です。
モノタロウでは検索システム周り全般のエンジニアをやっています。

今回は、Search Engineering Tech Talk #1 というイベントに参加しましたのでレポートを書きたいと思います。
このイベントは、『「検索」というコンテキストで話をする勉強会』ということで、六本木のメルカリさんを会場にして第1回が実施されました。
search-tech.connpass.com

会場の六本木ヒルズ
(会場は六本木ヒルズ)

モノタロウでは、勉強会参加のための出張を認めてくれるので、たまに泊りでも勉強会に参加するようにしています。
大阪や京都の勉強会などにも参加するのですが、やっぱり東京で盛り上がるイベントも多いので、積極的に情報を集めています。
アフターレポート見るのも参考になるのですが、その場の雰囲気を知るのも大事ですよね。
参加してみて、いろいろ感じたので私も勉強会の様子を初めてレポートしてみたいと思います。
ただ、当初はその予定では無かったので、写真がありません! ごめんなさい。
(唯一あった写真は、娘に自慢するために撮影した会場となった六本木ヒルズ外観のみ。今回ビックリするぐらい何も撮影してなかった……)


さて。
勉強会は以下の5つの構成でした。
その流れでレポートしたいと思います!

  1. オープニング
  2. 「いい検索」を考える
  3. UI/UXが無意識に検索行動に与える影響
  4. Efficient top-k query processing in Lucene 8
  5. 懇親会

オープニング

オープニングは、主催の @johtani さんによる挨拶でした。

noti.st


検索技術勉強会は、Solr や Elasticsearch といったアプリケーションではなく、検索の技術を共有するという趣旨が語られました。
そのため、後援にも関わらず「会社名は言いません!」と冒頭でおっしゃられたのが印象的でした。
ちなみにモノタロウはSolrを利用していますが、半年前に京都で行われたElasticsearch勉強会に参加して若干気まずかったのを思い出していました(笑)
(あの勉強会も参加して凄く勉強になって楽しかったです)

発表1: 「いい検索」を考える

発表1つ目の『「いい検索」を考える』は、リクルートテクノロジーズの内田臣了さんでした。
検索技術の導入としてすばらしい発表内容でした。
公開された資料は、モノタロウの社内でも共有して読んでもらいたいと思う内容で、公開と同時に会社のSlackに貼り付けていました。

www.slideshare.net

色々面白い話があったのですが、一つ挙げるなら、入力インタフェースの分類です。

  • キーワード入力型
  • カテゴリ選択型
  • カテゴリツリー型
  • BOT型

モノタロウの商品検索は、このうち上の3つを採用しています。
(お問い合わせ検索のシステムではBOT(チャット)型も採用されています)
こういう分類って、言われたら「そうだよね。UX考えるのにも大事だよね」って思うのですが、意外と忘れがちです。

また、「正確に効率よく満足して使えればいいユーザインタフェース」とまとめられていましたが、まさにそのとおりだと思います。
モノタロウでは商品点数が多いことから、商品を見つけられるようにすることは非常に重要です。
フィルタリングだけが出来ても、ランキングだけが出来ても、見た目だけが出来ても駄目で、総合的に「いい検索」を目指す必要性を再認識させてもらえました。

発表2: UI/UXが無意識に検索行動に与える影響

2つ目の発表はメルカリの森山大朗さんによる「UI/UXが無意識に検索行動に与える影響」でした。

www.slideshare.net

トピックとして、「メルカリの検索チーム」「Sold商品を表示する理由」「Google等とメルカリの検索は考え方が違う」というものでした。
メルカリの検索チーム、スライドで13名紹介されていましたが凄いですね。
モノタロウもこのぐらいの人が入ってくれないかと期待しています……。
特色のあるECで働きたい検索エンジニアの方、お待ちしています(切実)
(ちなみに、私はUターンによる関西転職ですが、モノタロウは東京拠点もあり、そちらでも募集中です!!)

Sold商品を表示する理由」については、表示をやめたらダメだったというお話でした。
メルカリのユーザには「買いたいと思っている人」「売りたいと思っている人」の双方がいて、見たい内容が違うという罠の紹介でした。
言われてみれば納得できるけれど、やってみないと気付きにくいという罠ですね。
モノタロウだと「いつも買ってくれる人」と「初めてモノタロウに来た人」とか、「欲しい規格(サイズなど)が決まっていて買う気の人」と「名前を知らなくて広く調べて買うものを探したい人」の行動はまったく違うといった、いつも悩む部分に似ていて非常に興味深かったです。

Google等とメルカリの検索は違う」という話は、メルカリでは「新着性」が重要という話でした。
これは自分で使ってみて気づいたという事例を挙げられていましたが、やはり自社サービスを使ってみるのは大事ですね。
また、Googleは上位しか見ないが、メルカリではかなり下までスクロールする というサービスによる特性の違いもあるということでした。
自社のサービス特性を把握して考えるというのは本当に大切ですね。

発表3: Efficient top-k query processing in Lucene 8

3つ目の発表は打田智子さんの「Efficient top-k query processing in Lucene 8」でした。
speakerdeck.com

資料が英語です。私は打田さんの日本語を必死に聞いていました(笑)
OR検索についての高速化についてBLOCK-MAX WANDアルゴリズムに至るまでの説明を聞くことができました。
面白かったのですが、たぶん半分ぐらいしか理解できていないので、あとでじっくり読みたいと思います。

余談ですが、私は普段Pythonを使っています。
打田さんの発表を初めて拝見したのは、PyCon 2015 での形態素解析器 Janome の発表でした。
なので、SolrのJavaコードを読み書きするのに四苦八苦しています。
意外とJavaエンジニアが周りにいないので、社内で常に助けてくれる人を探しています……。


今回のお話で意外だったのは、Solr の検索のデフォルトがOR検索であることから英語ではそっちが主流と思っていたので、その部分が実は遅かったのか!という前段階の部分でした。
聞いてみて感じたのは Lucene (&Solr) もまだまだ改善されていくのだなと……。
モノタロウのシステムもバージョンアップを繰り返していますが、もっと頻繁に最新の技術を取り入れたいと決意できました。
Solr 8 では HTTP/2 など色々な方面から高速化されるようなので気になりますね。

懇親会

発表が終わった後は懇親会でした。
私の社交性の低さから、もっと話せればよかったと思いますが、とても参考になる話を聞くことができました。

そして、熱意を持ったエンジニアが多かったです。
そういう検索に携わる人を日本で増やしていけば、いつか一緒に仕事をしてくれる人に出会えないかなと思ったのが、レポートを書こうと思った動機でもあります。
勉強会に参加するって大事ですね。

まとめ

勉強会は3時間半ほどでしたが、とても有意義な話が聞けました。
オープニングで、勉強会は2・3ヶ月ごとにやりたいというお話でしたが、今後もたまに参加したいなと思います。
また、さまざまなサービスが、それぞれの目的にあった検索システムを作るという、楽しさと難しさを改めて認識できる勉強会でした。

モノタロウの検索システムも、データ量もユーザ数も増える拡大の一途にあって、色々なチャレンジの出来るシステムになっています。
検索に興味のある方、ぜひモノタロウでECサイトの検索システムを一緒に作りませんか?
ちなみに、求人詳細はデータサイエンス分野ITエンジニア分野に記載してありますが、 https://recruit.monotaro.com/ では社内制度や新卒採用等いろいろ読めるようになっています。
会社として「検索」を重視しているインタビューも沢山掲載されていますので、興味を持っていただければ幸いです。
www.wantedly.com
regional.bizreach.jp
(少し脱線しますが、モノタロウの株主様向け事業報告書でも、検索システムについては頻繁に言及されています)

最後は宣伝になってしまいましたが、皆様のご応募を切実にお待ちしております!!