今朝のメルマガは、井上明人さんによる特別寄稿をお届けします。食べログの点数は恣意的に操作されているのでは、という疑惑がネットを騒がせていますが、その評価の偏りは、信頼度を保持するためのスパムフィルタの観点を取り入れると、全く違った解釈ができるようです。井上さんがYahoo!個人で公開した記事と合わせて御覧ください。
井上明人さんのYahoo!個人の記事はこちら↓
食べログの得点計算についてのポジティブな可能性を考えるー操作されたデータを検証する難しさー
本レポートが作られた前提
2011年夏から一年ほど、食べログ利用にはまり、170件ほど書き込んでみたりしました。そして、どういう点数アルゴリズムなのかが気になってワクテカで解析してみて、食べログのアルゴリズムも(なんとなく)わかった……個人的には興味深いデータにはなったが、こんな調査研究をしたとして、これを一体、どうやって活かすつもりなのか、とか聞かれてもさっぱりわかず、当時としては、せっかくの解析結果をとりあえず記録に残しておこう……という趣旨の自分用に記録しておいたドキュメントでした。解析するのは楽しかったです。
これって、どこの学会に出せばいいのか?いや、そもそも、勝手にアルゴリズム解析した結果とかを掲載して、食べログ(kakaku.com)さんに迷惑だと言われたりしないのか……。と思っていたため、7年ほど死蔵していたのですが、残念ながら、現在、食べログの評価アルゴリズムに対する不信感が過剰に高まってしまっている状況がでてきてしまっています。
こんなレポートであってもある程度までアクセス可能な状態にしておくことに意義があるだろうと思い、掲載をさせていただきます。2019年現在では、細かなアルゴリズムは、変更されているとは思いますが、大筋の評価アルゴリズムの発想は当時の延長線上にあるかと思います。
基本的には友人に見せる程度のものとして想定していましたので、実証的に確かというよりは、仮説の束のようなものだと考えてお読みいただけましたら幸いです。
食べログの得点付けアルゴリズムはどうなっているのか?
井上明人 2012/10/14
■ 問題意識
食べログは、日本国内の「レビュー系・口コミサイト」としては、2位の、@cosmeとは、大きな差をつけており、日本でもっとも成功した口コミサイトといっても過言ではない。その食べログのアルゴリズムがどのようになっているのかを探りたい。
食べログのアルゴリズムの特殊性によって、どういった店舗がトクをし、どういった店舗がソンをしているのか。そして、食べログがこれだけの利用者に一定の納得感を生んでいる仕組みの一端を明らかにしたい。
■ 調査・分析手法
1.定性的調査
a) 食べログに登録された店鋪を、実際に200店鋪ほどめぐった
b) 食べログにユーザーとして170件ほどを書き込み、どういった挙動が行われるかを調べた
2.定量調査
a) 2012年10月時点で、食べログの書き込み件数30件前後の店鋪を10店鋪ほどの書き込み情報(全300件程度)をすべて抽出し、それぞれ評価情報をもとに複数の計算手法によって、「食べログ点数」に近い点数が算出できるようなアルゴリズムを構築した
■ 結論:点数アルゴリズムの概要
食べログには、大きく分けて3つのアルゴリズムがあることが推定される。
(1)単純重み付けアルゴリズム:
すでに公表されているような「食通」による評価に重み付けをし、加重平均を算出するアルゴリズム。重み付けの要素となる変数は、下記3点の変数が、ほぼ1:1:1程度の影響力をもっているものと想定される。
a. レビュアーの総書き込み件数(総書き込み件数によって5段階のレベルがある)
b. レビューへの参考になった票の多さ
c. レビューの新しさ(新しく書かれたレビューのほうが影響力は大きい)
すなわち、「最近、沢山のお店をまわっているレビュアーが書いた、評価されている人気のあるレビュー」が最も影響力の強いレビューであある。一方で、「あまり食べログで活発に活動したことのないレビュアーが、昔適当に書いただけであまり支持票も入っていないレビュー」の影響力は極めて低い。
また、5件以下しか、それまで書き込み件数がないレビュアーについては評価点が一切反映されていない。
それぞれの重み付けのロジックは、独自推定アルゴリズムでは、下記のようなものとしている。
・総書き込み件数
総書き込み件数をもとにしたレビュアーの信頼度は、食べログが、ユーザーの「レベル」分類を情報として公開しているため、これをもとにした。
レベル0 (信頼度0)0件~5件
レベル1 ~100件未満
レベル2 ~500件未満
レベル3 ~1000件未満
レベル4 ~3000件未満
レベル5 (信頼度5)3000件以上
・レビューへの参考になった票の多さ
単純に参考になった票の数を、もってきて重み付けをしてもよかったのだが、長年活動しており、かつ文章に人気がある有名ユーザーの場合、参考になった票が「40票」あり、他のユーザーが、「5票」「3票」といった形になっているケースも多く、それではあまりにも差が大きく出てしまう。
独自アルゴリズムでは、その点を考慮し、単純に票の数を信頼度として計算してい可能性が高いものと考え、投票数を信頼度として変換するための下記のような方式を採った
10票以上の投票のあるレビュー:信頼度4
5票以上の投票のあるレビュー:信頼度3
1票以上の投票のあるレビュー:信頼度2
0票投票のレビュー:信頼度1
・訪問日の新しさ
日付の新しさがどのように評価されるか、については食べログによる公開情報がなかったため、定性調査による結果を参考に(要するに、食べログユーザーとしてのカン)して、独自の推定アルゴリズムでは、下記のような独自の評価関数を作った。
30日以内に店舗を訪問しているレビュー:信頼度4
30日~179日経過しているレビュー:信頼度3
180日~364日経過しているレビュー:信頼度2
365日以上経過しているレビュー:信頼度1
(2)信頼度スパムフィルタ:
店鋪に対する書き込み件数が、一定件数を越えるまでは、スコア付けの評価自体を下げるアルゴリズムがあると推定される。このアルゴリズムの独自の働きによって食べログの点数は、直感的な推定が難しいものになっている
3.5未満の店鋪で、影響力のあるユーザーによる評価が充分にあつまっていない店鋪は、おそらくこのアルゴリズムが働いている。このアルゴリズムが働くことによって、単なる加重平均で評価がなされる場合よりも、最大で、0.4ポイント近く店鋪の評価点数が下がることがある。
挙動の仕方は、スパムフィルタではないかと推定される。ごく直感的に言えば、スパムフィルタのようなアルゴリズムである。メールのスパムフィルタでは、「怪しい」と推定される、複数の要素を判断し、あるメールが怪しいものかどうか、ということを判定している。例えば、「欲求不満」「会いたい」「人妻」「当選しました」……などの怪しい語彙を複数登録しておき、一定数以上の怪しい語彙が連続した場合にスパムと判断されるといったような形になっている。
これと同様に、食べログでは、おそらく次のような要素がどの程度入っているかどうか、で信頼係数を作成し、その信頼係数の強さによって点数を低めに抑えるかどうかを判断しているものと考えられる。