見出し画像

マッチングアプリのおすすめ表示の仕組み 相互推薦アルゴリズムの紹介

この記事ではマッチングアプリで使われるレコメンドアルゴリズムの一例を簡単に紹介します。ですので、巷でよくあるマッチングアプリの攻略法を説いた指南書ではありません。しかし、この記事を読んでもらえればマッチングアプリの性質をより深く理解できると思いますし、このレコメンドアルゴリズムの応用範囲はマッチングアプリにとどまらず様々な場面で活用可能だと理解してもらえるはずです。

※私は業務等でマッチングアプリに直接関わりはありませんし、ここで紹介するアルゴリズムがアプリで実際に使われていると保証するもでもありません。
※この記事は"RECON: A reciprocal recommender for online dating"というこちらの論文を参考にしています。

相互レコメンドとは

マッチングアプリにはレコメンド機能があります。アプリがあなたにオススメのユーザーを自動で表示します。マッチングアプリの特殊なところは、あなたにオススメされるのは、何かの商品ではなくアプリ内にいる別のユーザーだということです。そしてあなた自身もまた他のユーザーのオススメに登場しているということです。

アプリの運営側としては、ユーザーの満足度を高めるためにアプリ内でのマッチング数を増やしたいとうモチベーションがあります。ただし、マッチングが成立するためには、あなたと他のユーザーの双方が互いにいいねをする必要があります。

この特性から、マッチングアプリではユーザー間の相性を相互的に考慮してレコメンドを提供する必要があります。このように相互性を考慮したレコメンドのことを相互レコメンド(Reciprocal Recommendation, 相互推薦)といいます。相互レコメンドは一般的に商品販売などでよく使われるレコメンド機能とは背景や仕組みが異なります。

一般的なレコメンドとの違い

相互レコメンドの特徴を理解してもらうため、相互レコメンドではない一般的なレコメンド機能(一般レコメンドとします)と比較しながら違いを見ていきましょう。よくある一般レコメンドの例として、AmazonのようなECサービスのレコメンド機能をあげてみます。「あなたへのおすすめ商品」のようなそれです。ECサービスの目的はユーザーにたくさん商品を買ってもらうことです。マッチングアプリの目的はたくさんのマッチングを成立させることです。それでは違いを比較していきましょう。

画像1

まずECではユーザーの好みを優先します。ユーザーが買いたいと思えば商品が売れるし、ユーザーの好みでない商品がレコメンドされると売れません。ですがマッチングアプリではユーザー自身の好みだけでなく、その相手の好みも非常に重要です。なぜならお互いに「いいね」がないとマッチングが成立しないからです。当たり前のことですよね。でも1人の好みを考えればよい一般レコメンドに比べて、2人の好みの関係を考慮する必要のある相互レコメンドのアルゴリズムが一気に複雑になることは想像に難くないです。

またもう一つの大きな違いとしてレコメンドされる適正な回数という観点があります。ECでは在庫がある限り同じ商品を何度レコメンドしても問題ありませんが、マッチングアプリでは特定の人気ユーザーにいいねが集中することは好ましくありません。1000人とマッチングしても全員と連絡を取ることは不可能ですし、逆にいいねが全く来ないユーザーが増えることはサービスの満足度の低下に直結しますのでもっと問題です。いいねの行き先を上手く分散させることが重要になってきます。この役割も相互レコメンドが担う必要があります。

他にも違いはありますが、詳しく知りたい人は論文を参照してください。

アルゴリズム

それでは、今回参考にしている論文で提案されたアルゴリズムを数式を使わずに直感的に説明していきます。

アルゴリズムはマッチング数を増やすためにユーザーの中からマッチしそうなペアを探し出してレコメンドすることを目的とします。ここで注目するのは2人のマッチング確率です。2人をAさんBさんとすると、レコメンドされたときに「AさんがBさんにいいねする確率」と「BさんがAさんにいいねする確率」が両方とも高いことが重要です。片方の確率だけが高くてもマッチングしません。

「AさんがBさんにいいねする確率」を計算するためにはまず、Aさんが過去にいいねをした人たちの属性(年齢・学歴・性格など)を集計してAさんの嗜好を特定します。そしてBさんがAさんの嗜好にどれほど当てはまっているかを数値化することで「AさんがBさんにいいねする確率」を計算してあげます。これと同様に今度は「BさんがAさんにいいねする確率」も計算します。

画像2

そして「AさんがBさんにいいねする確率」と「BさんがAさんにいいねする確率」が算出できると、これらの調和平均をとって2人のマッチング確率が完成します。この手順をAさんBさんだけでなくすべてのユーザーの組み合わせで計算して、その中からマッチング確率の高いペアをレコメンドします。(ただし実直にすべての組のマッチング確率を出そうとすると計算量が爆発的に増加するため、論文内ではいろいろ工夫して計算量を減らす方法を解説してます)

いかがでしたか?わりと直感的なアルゴリズムだと思います。このアルゴリズムを実際にサービスで試したところ、マッチングの成功率が大幅に上昇したようです。また、このアルゴリズムをベースに様々な手法が派生しているのでそれらの論文を読んでみるのも面白いと思います。

現在マッチングアプリを利用している人は、仮にこのアルゴリズムが使われているとして、どうすれば自分のマッチングの成功率を上げられるかの戦略を考えてみるのも面白いですね(おそらく自分の好みに正直に従うのが最善?)

他分野への応用

ここまでマッチングアプリを題材に解説してきましたが、相互レコメンドは他の分野にも応用ができそうですね。互いの相性が必要とされる分野は他にもありそうです。カップルのマッチングだけでなく、友達同士のマッチング、求職者と会社とのマッチング、講師と生徒のマッチングなどなど。SNSやコミュニティーが今後さらに注目される未来において、相互レコメンドの可能性も広がっていきそうです。

さいごに

最後まで読んでいただきありがとうございます!
Twitterでデータサイエンスとビジネスに関することを随時つぶやいてますのでフォローお願いします。




この記事が気に入ったらサポートをしてみませんか?