• 株式会社エウレカ
  • Pairs Japan Head of Development
  • 森川 拓磨

良縁は「偶然の出会い」から生まれる。Pairsが検索機能に「機械学習」を導入した理由

〜マッチングの精度をどう高める? 機械学習の自動化プラットフォーム「DataRobot」を導入し、Pairsが検索アルゴリズムを改善した方法〜

2019年1月に累計会員数が1,000万人を突破し、これまで数々の良縁を生んできた恋愛・婚活マッチングアプリ「Pairs(ペアーズ)」。

その裏側には、自分に合った相手を表示する「検索アルゴリズム」の存在がある。

マッチングは双方が「いいね!」を送り合わなければ成立しない。それゆえ、条件に合う結果を出して「いいね!」を増やすだけでは意味がなく、ここに検索アルゴリズムの難しさがある。

同サービスを提供する株式会社エウレカでは、独自のアルゴリズムで検索表示を行っていたが、複雑なパラメーターをチューニングしても、本当に効果があるのか判断しづらかったという。

そこで検索の体験をより高めるため、2017年に機械学習の自動化プラットフォーム「DataRobot」を導入。

DataRobotは複数モデルを自動生成し、アルゴリズムへの影響が大きい変数を可視化することができるため、以前よりも効果検証のサイクルが早くなり、モデルのチューニングが簡単になったそうだ。

また、プロフィール審査にもDataRobotを活用することで、オペレーターの業務工数を削減することができたという。

今回は、同社でサーバーサイドエンジニアを務める森川 拓磨さんに、DataRobotの導入から効果検証のプロセスに至るまで、詳しくお伺いした。

Pairsのマッチングを通じて「セレンディピティ」を提供したい

私は2014年の2月にエウレカに入社し、主にサーバーサイド周りの開発を担当してきました。現在は、ジャパンとグローバルを横断するAPIチームに所属しています。

恋愛・婚活マッチングアプリの「Pairs(ペアーズ)」は2012年10月にリリースされ、累計の登録ユーザー数は1,000万を超えています。

このマッチングの精度をより高めていくことが、私の担うミッションのひとつです。

ユーザー体験のフローとしては、まず新規登録があり、そのあとにプロフィール入力があります。次に検索一覧の中から気になる相手に「いいね!」をして、相手も「いいね!」を返してくれるとマッチングが成立します。

求人や不動産サイトでの検索と違って、「お互いの好み」が存在することが結構難しいところで。

ですが、マッチングにフォーカスしすぎてしまうと、過去の検索と似たような人ばかりが出てくる感じになってしまって、全然面白みがなくなってしまいます。

そこで私たちが大切にしているのが「セレンディピティ」です。セレンディピティとは、元々のタイプではないけれど「あ、この人いいかも」みたいな思いがけない偶然の出会いを意味します。

例えば、普段インドア派の男性がアウトドア派の女性とマッチングして、メッセージをやり取りを通じて関心を持ち、今度一緒にフェスに行ってみる、みたいなことが起きるかもしれないですよね。

なので、ただ効率的にマッチングするのではなくて、セレンディピティも含めた総合的なユーザー体験を、サービスとして提供したいと考えています。

検索機能の改善に「レンチン感覚」で使える機械学習ツールを導入

マッチングの裏側では、検索アルゴリズムが動いています。ユーザーさんが入力した年齢や居住地、趣味などの条件に対して、どのような結果を表示させるかということですね。

Pairsではリリース以来、ルールに則った検索アルゴリズムを独自に組んでいました。「いいね!」数やマッチング数などをKPIに設定して、チューニングをかけていく形です。

ですが、サービスの根幹に関わる部分なので、実際には大きな修正をすることが難しくて。その背景には、アルゴリズムが複雑で、意図しないところに影響が出やすいことがありました。

例えば、「いいね!」数が上がってもマッチング数が下がってしまったりして、「ひとつの指標を上げると、他の何らかの指標が下がる」といったトレードオフになりやすいんですね。

KPIのバランスを取って、最良のアルゴリズムを組むことが求められるのですが、これがかなり難しい。

また、アルゴリズムを変更したとしても、プロダクトの機能追加が随時あるので、何かしらの指標が上がった時に、それがアルゴリズムの効果によるものかどうかが判断しづらい状況でした。

そんな中、2016年2月に行われた「データサイエンス最先端活用」というイベントに当時のプロダクトオーナーが参加した際に、機械学習の自動化プラットフォーム「DataRobotと出会ったんです。

その営業の方に「レンジでチンする感覚で機械学習できる」と言われて、そんなに簡単ならとりあえずやってみよう、ということになりまして(笑)。

当時の機械学習ツールとしては、AWSやMicrosoft Azureが提供する製品が有名でしたが、DataRobotは専門知識がなくても基礎的なエンジニアリング知識だけで扱うことができるので、そこが導入の決め手になりました。

1日5,000件以上のプロフィール審査で、DataRobotの実証を開始

はじめに、検索アルゴリズムに先行して、プロフィール審査の業務にDataRobotを活用するため、2016年の夏からPoC(Proof of Concept:概念実証)を始めました。

Pairsでは毎日、約5,000人が新規登録しているのですが、個人が特定できるような情報が出ていないか、卑猥な文言が含まれていないか、といった観点でプロフィールの審査を行う必要があります。

その膨大な数の審査をルールベースで一定数弾いたあとは、オペレーターの方々によって人力で対応していたのですが、特に申請が多い時期には審査にかかる時間が長くなってしまったり、申請数が増えると人的コストも増えてしまう、といった課題がありました。

そこで、今まで蓄積していたデータを移行し、DataRobotが機械学習によって特定の条件でOK・NGの審査をサポートする仕組みを構築しました。

これによって、全審査の7割以上を自動化することができ、リードタイムやコスト面における改善ができました。もしDataRobotを導入していなければ、おそらく今の3倍くらいの人員で回していたかもしれないですね。

また、審査モデル作成時に、混同行列をもとにしたチューニングが容易にできるので、不正テキストの最小化と自動化のバランスを取ることが可能になりました。

最適なモデルをABCテストで検証し、マッチングの精度を高める

次に、より複雑な検索アルゴリズムでのPoCを、2016年9月からスタートしました。

まず下準備として、検索結果をリアルタイムでA/Bテストできる環境を構築しました。

本番環境で動いているサービスのデータをDataRobotに投入すると、およそ1日以内に計算が終わり、いくつかの機械学習モデルが出力されます。

例えば、年齢を重視したモデルや収入を重視したモデルなど、膨大のデータからパラメーターを自動調整し、複数の機械学習モデルを生成してくれるんです。

その中から最適だと思われるモデルを選択し、そのモデルと既存のアルゴリズムとの検索結果をA/Bテストして、検証を重ねていきました。

具体的には、ある属性のユーザーの半数を既存のアルゴリズムで、残りの半数をDataRobotのモデルでA/Bテストしたり、場合によってはABCテストみたいな感じで複数モデルを並行で検証して、それぞれのKPIの変化をみました。

すぐには結果が出ないので、2日後、3日後といった形で時間をおいてKPIのパフォーマンスを観察し、より精度の高いモデルを検証していきました。

上図は、どれも主要なKPIの変化を表していますが、機械学習モデルのリリース日(黒色の点線)を境に、DataRobotモデルを適用したデータ(水色・黄緑色)の数値が全体的に向上しました。

また、DataRobotには、アルゴリズムへの影響が大きい変数を可視化する「フィーチャーインパクト」という機能があるので、モデルのチューニングも簡単でしたね。

▼「フィーチャー(特徴量)インパクト」のデモ画面(DataRobot社提供)

また、モデルを適用して終わりではなく、定期的にメンテナンスをする必要があります。

そのため、DataRobotのモデルをAWS Lambdaにデプロイすることでサービス全体の運用負荷を上げない工夫をしたり、モデルのチューニングを自動化するような仕組みを検討しています。

こうした仕組みを整えたことで、効果検証とチューニングのサイクルをより早く回すことができ、より良いアルゴリズムに近づけるようになったと思います。

実際、複合的な要因はあるものの、2018年の退会理由のうち「Pairsで恋人ができた」と回答した会員数は、前年に比べて73%増加しました。

「偶然の出会い」を生む検索アルゴリズムの改善に、終わりはない

ただ、検索アルゴリズムの改善って終わりがないんですよね。日々改善というか。

DataRobotでは複数モデルを組み合わせることもできるので、セレンディピティを生むアルゴリズムに近づけることはできるのですが、完全に実現することは難しいと思っていて。

マッチングの精度をより高めていきたいことはもちろんですが、ユーザーさんがパートナーを見つけるためには、最終的に人と人との相性などもありますよね。

なので、機能だけではなく、例えばメッセージはこう書きましょう、すぐに返信しましょうといった運用のサポートもできるようにしていきたいなと思っています。

サービスの成長とともに、実際に付き合ったり結婚されたり、お子さんが生まれたという方も結構いらっしゃって、少しでも良縁を生むサポートができていたら嬉しいなと思います。

一方で、まだまだネットで異性と出会うということに対して抵抗感のある方もいらっしゃると思うので、競合他社さんも一緒にこれからも業界を盛り上げていきたいですね。(了)

【読者特典・無料ダウンロード】UPSIDER/10X/ゆめみが語る
「エンジニア・デザイナー・PMの連携を強める方法」

Webメディア「SELECK」が実施するオンラインイベント「SELECK LIVE!」より、【エンジニア・デザイナー・PMの連携を強めるには?】をテーマにしたイベントレポートをお届けします。

異職種メンバーの連携を強めるために、UPSIDER、10X、ゆめみの3社がどのような取り組みをしているのか、リアルな経験談をお聞きしています。

▼登壇企業一覧
株式会社UPSIDER / 株式会社10X / 株式会社ゆめみ

無料ダウンロードはこちら!

;