CLOSE

パネルディスカッション(全1記事)

メルカリ・クックパッド・Pairsが語る、自社サービスの検索機能における仕組みと工夫

2019年9月25日、クックパッド株式会社にて「Cookpad Product Kitchen #4」が開催されました。今回のテーマは「ユーザー体験を支える検索・マッチング技術」。あらゆるサービスに採用されている「検索」機能。そんな検索機能における技術と工夫について、様々なIT企業のエンジニアたちが一堂に会し、自らの知見を語ります。パネルディスカッションでは、プレゼンテーションにて登壇したクックパッド、メルカリ、Pairsのエンジニアたちが登場。各社の検索における工夫を語りました。

検索の効果測定をどうするか?

司会者:それでは時間になりましたので、パネルディスカッションを始めさせていただきます。

先ほどみなさんからいただいた質問の中から、独断と偏見で「これは聞いておきたいな」というものをピックアップして質問リストを用意しましたので、質問をしていきたいと思います。

では、頭からなんですが、ド定番の効果測定、KPIについて。KPIをどう決定して、どう効果測定していますか? どの数字を見てますか?

さらに言うと、3社とも言ってしまえばユーザーとユーザーのマッチングみたいなかたちになりますが、どちらかを立てればどちらかが立たないということもあると思いますが、そのあたりはどのように決定していますか?

兼山元太氏(以下、兼山):検索のKPIは、アカデミックに提案されているものも一応計算できるようにしていますが、ビジネスのKPIと重ねて考えるときに「この指標が0.1上がったことが何を意味するのか」を全体で納得感を持って握るのが非常に難しくて。今のところ、今日紹介したような、「つくれぽ」などのより明示的なフィードバック、見てわかるものにウェイトを寄せています。

森山太朗氏(以下、森山):評価指標ですよね。メルカリって創業以来、A/Bテスト大好きカンパニーなんです。ひたすらA/Bテストだけをやり続けてきたんですよ。でも、A/Bテストが目的化してしまっているので、A/Bテスト自体をサイエンスするという取り組みを最近有志のメンバーでやりました。

何をしたかというと、A/Bテストをやる前にA/Aテストを死ぬほどやりました。なんの施策も打ってないのに、ただランダムに並べただけで、主要KPIを追ってみてください。何回やっても勝ったり負けたりブレている指標があるとしたら、そいつは信用できません。たまたま動いているだけですからね。

メルカリの場合は、AOV、Average Order Value(平均購入単価)は、数百円のものを買う人もいれば、いきなり数十万円を買う人もいて、地球人とスーパーサイヤ人みたいな戦闘力の差が出てしまいます。

そうやって高いものを買う人が人がどちらに入るかで勝敗がブレてしまいますし、外れ値の処理も、どの線で切るかによって勝ち負けが逆転してしまうので、意味がないことがわかります。最終的には、購買転換率のユニークユーザー数まで潰したものまでいくとけっこう安定するので、こういうことをやることを強くおすすめします。

小島広樹氏(以下、小島):弊社はそのへんが厳しくて、数値周りだったりロジック周りを外部に出せないのでお答えが難しいですが、「かけがえのない人との出会いを生み出す」ことやマッチングサービスが一般の方にも気兼ねなく利用してもらえることをビジョンにマッチングのKPIを考えています。

司会者:サービスによってはそこがユーザー体験に直結するので、公開できないこともあるということで、そのとおりだと思います。

検索のパーソナライゼーション、やってる?

司会者:次に、これもよく聞かれることかなと思うのですが「検索のパーソナライゼーションってやってますか?」という質問です。やっている場合・やっていない場合でそれぞれ理由があるかと思いますので、そちらも一緒に聞けたらと思います。

兼山:パーソナライゼーションは本当に一部だけやっています。検索結果の中に自分がブックマークしたものを挿し込むような、ある意味機能へのショートカットぐらいなパーソナライゼーション止まりですね。

それ以外、ランキングをパーソナライズするところは、実はやっても難しいだろうなと思っています。それには2つ大きい理由があって、まず、好き嫌いはなかなか掴むのが難しくて、思いどおりの指標の改善が得られないだろうということが1つ。

あとは、メルカリさんの新着性が大事という話と似ていますが、クックパッドのアプリをわざわざ使うときは、新しいアイデアを探しに来てるんだろうというインサイトがあります。

そうすると、これまでのログに合わせて最適化していくと、知っているものがよく表示されるようになることが予想されて、そのバランスを取るのが非常に難しそうなので、先ほど言った機能へのショートカットのところで止まっています。

森山:メルカリはパーソナライズはやっていません。「やってみよっかなぁ」って思ってるぐらいなんですけど。

なぜかというと、例えば「MAC(マック)」と検索したとして、みなさんMACといったらAppleのMacのことだと思うかもしれませんが、実は化粧品にもそういうのがあるんですよ。同じ言葉なのに別の意味・商品を指していて、そういうものって人によ「当然これでしょ」と想起しているものが違うので、個人の好みに寄せていくのはありかなと思っています。そういう単語がどれくらいあるかはわからないですけどね。

ただ、想定と違うこともあります。USで「PlayStation 4」という検索キーワードが以前けっこう検索されていました。僕は絶対本体を探してると思ってたんですけど、「PlayStation 4」という検索ワードでゲームソフトがたくさん買われていることがわかりました。なので、どこかで1回やってみるかもしれません。

小島:うちは、具体的に何をしてるかはさっき言ったとおりお話しできないのですが、基本的にはしています。ちょっとそこに上司がいるもので……。

(一同笑)

司会者:ありがとうございます。やっぱりサービスによってやらない・やるのそれぞれの判断があるかなと思います。

形態素解析の辞書について

司会者:こちらもド定番の質問ですね。検索のIndexing、またクエリの解析に使うような形態素解析の辞書どうしているか? お願いします。

兼山:今はMeCabという分かち書きのソフトを使ってて、辞書はipadic+User Dictionaryでやっています。これまでは、もともとあるipadic自体を再学習するというものがロードマップに入っていたり、実際にトライ&エラーもやっているのですが、今のところはユーザー辞書にすごく頼っています。

基本的には、気づいたら直すかたちになっていて、スクリーニングはありますが、ユーザー辞書に関して言うと、自動的に登録されていくということはありません。

司会者:じゃあ追加で質問。今話が出たので聞きたいんですけれども、辞書のアップデートとか運用をどうしているかというところまで含めてちょろっとお話しいただければうれしいなと。

兼山:あ、でも、1回じゃあ……。

司会者:そうですね。

兼山:その話も含めて。

森山:メルカリは、もともとKuromojiとipadicから、Kagome+UniDicに変えています。名前は忘れてしまったのですが、工藤先生という形態素解析にすごく詳しい人が書いた本があって、そこで推奨されていたのですが、細かく切ることが目的です。でも、それでも完成形ではないので、また変わる可能性はあります。

小島:話してよいかグレーなところではあるのかなとは思いますが、辞書に関して1つだけ言えるのは、Pairsに関しては日台韓で出しているので、それぞれ辞書をやっぱり変えています。

兼山:辞書の運用については、先ほどメルカリさんが短い単位で切るとおっしゃっていましたが、僕たちも今のところ同様のポリシーで辞書を運用しています。これまでは長い単位でも新しい単語はみんなMeCabできちんと1単語で切ろうと思っていましたが、メルカリさんと同じ理由で、検索の再現率を高めるためになるべく短く切るような、最低限の運用をしようと考えています。

司会者:運用面でアップデートされたりしていますか?

兼山:先ほど言ったように、MeCabのユーザー辞書に関しては短い単位で切るものの、必要に応じてフラグを立てて、それがdailyで検索エンジンのほうに取り込まれるというフローが組まれています。

森山:まだ詳しく聞いていませんが、以前であれば手運用で時々メンテぐらいでしたが、かったるすぎて結局やらないというのが現実ですね(笑)。

これからは隔週か1ヶ月に1回、あるしきい値かなにかを決めて、コーパスから取り出して自動で反映するみたいな感じで、変化があったかどうかを見てみるみたいな運用になると思います。

ランキングにバイアスはあるか

司会者:ありがとうございます。これも検索ド定番のテーマですが、「ランキングをどのようの決定してますか?」という話と、「ランキングの位置によるバイアスはありますか?」という話ですね。そのあたりも含めて順序についてお話しいただければと思います。

兼山:検索では、主だって新着順と人気順を提供しているのですが、それぞれレシピのどのフィールドが関連性を作る上で重要なのかウェイトを設定しているのが1つです。人気順であれば人気度を、新着順だったら公開日からの経過日数みたいな、そういった大きなファクターを入れて、ミドルウェアのブーストを使って、ファンクションクエリで表現しています。

ポジションのバイアスは、新着順でも上のほうに偏るようになっていて、1〜3位でたくさん取れます。ですが、Googleなど普通にナビゲーショナルなクエリが多いものよりはなだらかなカーブになっていますが、1〜3位に集中します。人気順のほうがより1〜3位に対して、「早く決めたい」だったりとか「人気のやつが見たい」という理由で、上のほうに集中しやすいようになっています。

森山:メルカリはデフォルトで「新着順」とアプリに書いてありますが、裏側は新着で並べているわけじゃなくて、新着性が極めて強いスコア順という感じですね。なので、キーワードを解析して、必要な同義語を拡張してそれを投げて、取ってきた検索結果が、新着性が極めて高いものが上に出やすいぐらいの感じで調整をしていますね。

テールのほうだと関連性がある程度強くなっていて、たくさん検索されるヘッドのほうでは新着性が強く現れるようなバランスになっているので、流れをせき止めないようになっています。逆にスコアにこだわりすぎることでメルカリはダメになってしまうんです。なので、ポジションバイアスはさほどないことがわかったという感じですね。

小島:うちもやはり一番上のほうがやっぱり見られる回数が多いですね。

プラットフォームごとのチューニング

司会者:ありがとうございます。最後の質問というかたちになるのですが、「マルチプラットフォームで展開されているサービスの場合、プラットフォームごとにチューニングはサれていますか?」という質問です。

兼山:基本的には大きい制約としては、人気順の1〜3位というのがプラットフォームごとに変わる場合だとプロダクトの仕様として成立しないので、そこは変えません。全部統一されたものになっていて、ロギングも重要なものはなるべく同じ項目が取れるようになっています。

一方で、新着順の中身やランキングのA/Bなどは、プラットフォームで切ったりユーザーで切ったり、実験のランキングの試行錯誤の並列度が上げられるようにプラットフォームごとに違う結果が出るということは全然あります。ただ、ユーザーはみんな同じような人たちがいるだろうなという想定で考えています。

森山:プラットフォームごと? 例えばメルカリだとUSとJPみたいな話ですかね?

司会者:PCとモバイルアプリの違いみたいな感じですね。メルカリさんだと、PCのほうはそんなに見られてないのかもしれないですけど。

森山:おっしゃるとおりですね(笑)。伸びしろはあるのに、今のところ検索は、それこそ新検索基盤もWebからだとまだ呼んでなかったり、やりきっていません。それぐらいアプリから使われているのかもしれません。なので、意図して変えているわけではありませんが、アプリばかりやっているという話になっちゃいますね。すみません。

司会者:ありがとうございます。どうでしょう?

小島:うちは基本的には全部一緒になっています。なにか違うところはとくになかったかな。

司会者:なるほど。ありがとうございます。ではお時間になりましたので、これでQ&Aセッションは終わりにさせていただこうと思います。お三方、どうもありがとうございました。

(会場拍手)

続きを読むには会員登録
(無料)が必要です。

会員登録していただくと、すべての記事が制限なく閲覧でき、
著者フォローや記事の保存機能など、便利な機能がご利用いただけます。

無料会員登録

会員の方はこちら

関連タグ:

この記事のスピーカー

同じログの記事

コミュニティ情報

Brand Topics

Brand Topics

  • 大変な現場作業も「動画を撮るだけ」で一瞬で完了 労働者不足のインフラ管理を変える、急成長スタートアップの挑戦 

人気の記事

新着イベント

ログミーBusinessに
記事掲載しませんか?

イベント・インタビュー・対談 etc.

“編集しない編集”で、
スピーカーの「意図をそのまま」お届け!