Cookpadのコアユーザーを探す
Cookpadには様々な使い方が考えられます。真っ先に思い浮かぶものといったら、
- 夕飯の献立を考える主婦
- 子どものお弁当の献立を考えるお母さん
- お客を家に招いて、おもてなし料理を作る必要がある主婦
- 冷蔵庫の残り野菜を使いきりたい一人暮らしの学生
などが挙げられます。
どのケースにせよ、Cookpadの検索機能でレシピを探し出し、それを作り、食べて満足するというのが一般的な流れでしょうか。つくれぽを投稿せずに、自分のオリジナルレシピを投稿するのでもなく、自分だけの閉じた世界で満足するという実利的な使い方もむろん十分良いですが(むしろ大多数のユーザーがそういう使い方をしているでしょう)、ユーザーをお気に入り登録したりつくれぽを投稿したり、他のCookpadユーザーと交流するのにも独特の楽しさがあると思います。
これを端的に表しているのが、8月下旬にネットで話題になった増加する“クックパッド至上主義”な女性達 あなたはどう思う?という記事に対するはてなブックマークのあるコメントです:
コイツはクックパッドの存在意義判ってない。単なるレシピサイトじゃない。家事と言う「孤独で評価されない労働」をSNS化で「皆で楽しむイベント」に昇華させるサイト (はてなブックマーク - itarumurayamaのブックマーク)
CookpadをSNSとして楽しむには、まず最初にいくつかのユーザーをお気に入り登録するのがベストでしょう。実際に作ってみて美味しいと感じたレシピがあった場合、それを投稿したユーザーさんをお気に入り登録するのが最も一般的だと思います。大体の場合これでうまくいくと思いますが、いくつかの欠点が考えられます。その美味しかったレシピが作者さんにとってまぐれだった可能性がありますし、その美味しかったレシピではたまたま嗜好が一致していたが、そのレシピ作者さんが普段は自分にとってあまり興味のないレシピばかり投稿しているということも考えられます。そこで、「肉料理だったら◯◯さん」「パン作りだったら◯◯さん」のように、Cookpadの分野別コアユーザーの一覧が手っ取り早く閲覧できたら、自分の嗜好とマッチするユーザーをお気に入り登録できるので便利そうです。
例えばTwitterではアカウントを新規作成すると、フォローすべき有名人を分野別で推薦してくれます:
Cookpadに関していえば、まとめサイトなどで材料別の人気レシピはたくさん出てくるのですが、分野別人気ユーザーの情報は皆無です。「クックパッド 人気ユーザー」、「クックパッド おすすめユーザー」とググっても何も出てきません。
欲しい機能が無いなら自分で作ってしまえということで、Cookpadの分野別コアユーザーを見つけましょう。
データ
まず、Cookpadの「きょうの料理」、「お菓子」、「パン」以下にあたる全55個のサブカテゴリに含まれる99,638件のレシピをクロールしました。これらのレシピは18,964ユーザーによって投稿されています。次に、これらのユーザーが投稿したつくれぽの情報を取得しました。得られた2,649,975件のつくれぽのうち、前述の55個のサブカテゴリに含まれるレシピに投稿された1,059,167件のつくれぽを今回は考慮します。
これらのユーザーによって投稿されたつくれぽ数の中央値は7件、平均は139.74件です。最も多くつくれぽを投稿したユーザーは以下の通りです:
- miyuki12さん
- papikunさん
- CoffeeCocoさん
- 3姉妹ちゃんママさん
- 紅葉yさん
この中でも特にすごいのがmiyuki12さんです。2013年9月8日時点において、25,944件ものつくれぽを投稿しています。2008年にCookpadを使い始めたようなので、1日あたりのつくれぽ数はおよそ 25,944 / (365 × 6) = 11.85件になります。一体どうやったら6年間毎日12件近くもつくれぽを投稿できるんだという謎を解明すべく、miyuki12さんのつくれぽ一覧を見ると、1つのレシピに対して複数回つくれぽを投稿することがあるようです。下の図に示した通り、ジェノベーゼソースの場合、まずそれを作り、小分けして冷凍し、パンに混ぜ込んだり、おにぎりの具にしたり、サラダにも入れたりと、3つのレシピに対して計17件以上もつくれぽを投稿しています。こういう使い方もあるんだなと感心しました。
手法
ユーザーをノード、つくれぽをエッジとしてデータをグラフで表現します。 例えば「荒岩一味」というユーザーがレシピを投稿し、「田中一」というユーザーがそれに対しつくれぽを投稿した場合、下の図のように表せます:
作者さんのいくつかのレシピにつくれぽを投稿するケースや、miyuki12さんのケースのように同一のレシピに対して複数回つくれぽを投稿する方もいるので、つくれぽの投稿回数をエッジの重みとして扱っています。また、つくれぽは方向性があるので、有向グラフになります。今回はグラフを描画するためにGephiを使いました。エッジの方向は、始点から終点に向かって時計回りに沿っています。
データをグラフとして表現したのちPageRankを計算するという、ごく当たり前の手法を使いました。
結果
今回の計算では、
- カテゴリ入りしたレシピ
- カテゴリ入りしたレシピを投稿したことがあるユーザー
のみを考慮しているので、候補となるユーザーはCookpad全体のごく一部に限られることにご注意ください。
全ての分野
15,169 nodes / 569,853 edges
全ての分野のレシピを考慮してグラフ可したものが下図です。エッジ数が大きすぎるので、大半は省略してあります。
エッジの色は、該当するレシピのカテゴリによって分けています。エッジはつくれぽと一対多の関係、つくれぽはレシピと一対一の関係、レシピはカテゴリと一対多の関係にあるため、各エッジに対しカテゴリのエントロピーを計算し、エントロピーがある閾値を超えたらエッジに”BALANCED”という特殊なカテゴリ、そうでない場合は最多のカテゴリを割り当てています。例えば、田中さんが荒岩さんのレシピ30件に対しつくれぽを投稿したとします。30件のうち10件がお肉のおかず、10件が野菜のおかず、10件が魚介のおかずであった場合、田中さんはバランスよく料理をしたことが分かるので、田中さんから荒岩さんに張られたエッジは”BALANCED”を表す黄緑色にします。一方、30件のうち20件がお肉のおかず、7件が野菜のおかず、残りの3件が魚介のおかずだったとしたら、田中さんはお肉ばかり食べていたことになるので、”MEAT”を表す赤色にします。なお、Cookpadのサブカテゴリは粒度が結構細かいので、「野菜のおかず」と「サラダ」はVEGETABLE、「ごはんもの」と「パスタ・グラタン」と「麺」はCARBなど、複数のサブカテゴリを統合しています。
グラフを見ると、全体的にごちゃごちゃしていますが、”BALANCED”を表す黄緑色が多く、大多数のユーザーはバランスよく料理をしていることが分かります。中にはko~koさんのように、お菓子に関するレシピばかりを投稿している人もいます:
なお、PageRankが最も高いユーザー10人は以下の通りです:
勇気凛りんさんは、つくれぽ数を予測したときにも出てきた有名料理ブロガーさんです。また、ラビーさんも面白いです。ユーザーIDが4036と古参で、おそらく2000年以前からCookpadを使っているにも関わらず、他のユーザーのレシピに対してつくれぽを1件も投稿せずに、黙々と自分のレシピとごはん日記を投稿している硬派なユーザーさんです。
野菜 (VEGETABLE)
9,732 nodes / 151,009 edges
PageRank上位ユーザー:
FarmersKさんはプロフィールに「現在京都の山間部で農業をしてます。農家というのは常に野菜に囲まれているから、たくさんの野菜と接し、どうやって食べたら美味しいのか?どうやって食べたら栄養を無駄なく取り入れられるのかを日々考えています。」と書いており、まさしく野菜のプロといった感じです。
お肉のおかず (MEAT)
7,972 nodes / 54,566 edges
PageRank上位ユーザー:
「すごく肉々しい!」といったユーザーは見つかりませんでした。どのユーザーさんも話題入りしたお肉のレシピを投稿した経験があるようで、これがPageRankを引き上げているみたいです。例えばおぶうさまさんは食べ過ぎ注意☆鶏肉のねぎマヨポン炒めを投稿しています。
ここ数年レシピを全然投稿していないユーザーもそれなりの数でPageRank上位に来ているので、最近レシピを投稿しているかを考慮したほうがよさそうですね。
魚介のおかず (SEAFOOD)
6,969 nodes / 47,433 edges
PageRank上位ユーザー:
にわとりかあさんさんは「魚、貝」というレシピカテゴリを作成していますが、魚介のおかずを専門にしているとはちょっと言いがたいです。お肉のおかずと同様、魚介のおかずに特化したユーザーは見つかりませんでした。
お菓子 (DESSERT)
11,083 nodes / 114,496 edges
PageRank上位ユーザー:
お菓子に特化しているユーザーさんはやはり結構いますね。なお、前述のko~koさんはPageRankの値では12位でした。
パン (BREAD)
8,045 nodes / 55,788 edges
PageRank上位ユーザー:
ドキンたんさんはホームベーカリーを使ったレシピを大量に投稿しています。ゆきらいんさんはお菓子でも上位にいました。お菓子とパンは親和性が高いですね。
お弁当 (BENTO)
4,413 nodes / 22,308 edges
PageRank上位ユーザー:
モカパパさんのごはん日記はお弁当の写真ばかりです。
おもてなし料理 (PARTY)
7,695 nodes / 49,377 edges
PageRank上位ユーザー:
まとめ
お肉、野菜、お魚は日常的に食べるものなので、それらに特化したユーザーを見つけるのは結構難しいです。(アメリカのレシピサイトでは肉に特化したユーザーがそれなりにいそうですが。)デザートやパンはやはり特別な扱いをされているからか、それらに特化した使い方をするユーザーを見つけることができました。
flickrに全てのネットワーク図をアップロードしたので、自分はグラフの中でどこに位置しているのかを確認したいCookpadのヘビーユーザーの方、よろしかったらどうぞ:
「私はお肉ユーザーじゃなくてお魚ユーザーだ」「ここが間違っている」などのフィードバックがありましたら、下のコメント欄もしくは@mroriiまでにご連絡頂けるとありがたいです。
今回の記事はhttp://lumberjaph.net/graph/2010/03/25/github-explorer.htmlを参考にしています。
おまけ
そういえばLinkedinにSkills & Expertise(要ログイン)という機能があったことを思い出しました。各スキル(Objective-C、Ruby on Rails、Gitなど技術系のスキルもあれば、Business Development、Media Planning、Online Operations、などのビジネス系のスキルもあります)に関連する企業や地域、またそのスキルに精通しているLinkedinユーザーの一覧を見ることが出来ます。
例えば、
- LinuxではLinus TorvaldsとJon Hall
- PythonではAlex MartelliとDoug Hellman
- RubyではYehuda KatzとChad Fowler
- C++ではBjarne Stroustrup
- HadoopではDoug CuttingとTom White
- Machine LearningではDaphne KollerとAndrew McCallum
- Natural Language ProcessingではChristopher ManningとPhilipp Koehn
などがエキスパートとして上位に表示されます。残念ながら、CompilersではJeff Deanが出てきません…
Linkedinでインターンをしたことがある友人に、この機能はどういう仕組で計算してるの?と訊いたら「多分endorsementをエッジにしたPageRankじゃないの」という返事がきたので、今回の記事と同様のことをやっているのではないでしょうか。
ただ、上位に来る(べき)人たちはendorseされにくい傾向があると思うので、そこらへんをどうやって解決すればいいのか気になります。例えば、Guido Van Rossumに対して「あなたはPythonの才能がありますね」といってendorseするのも、お前何様のつもりだよということになりかねないので…。現に、GuidoはLinkedinのアカウントを持っていますが、Pythonのスキルページのエキスパートの一覧には表示されていません。