発声練習

2014-05-14

データマイニングで理想の彼女をGetだぜ!

ある国際会議のkeynote Speechの中で紹介されていた話。非常に面白かった。

「いまどきの若い男は、なんでもコンピュータか!」とか思われるかもしれないけど、何をしたのかを読んでみると「これって、単なるナンパの方が楽だったんじゃないか?」と思わされる。

登場人物のスペック

この人の経歴がアメリカ的。

  • 名前:Chris McKinlay (35歳)
  • 経歴
    • 2001年:Middlebury College を卒業。専攻は中国語
    • 同年:世界貿易センターで中国語から英語への翻訳のアルバイト。アルバイトを辞めた5週間後に9・11。
    • 〜2002年:その後、友達に誘われて、an offshoot of MIT’s famed professional blackjack team に加入し、ラスベガスとニューヨークのカジノで稼ぐ。年に6万ドル稼いだとのこと
    • 2003年〜:数学に目覚め、UCLAの大学院へ。記事の当時は博士課程の学生(Ph.D candidate:博士号へ挑戦できる大学院生)
  • McKinlayさんの見栄えはWiredの記事参照

何をしたか

恋人マッチングサービスOKCupidの恋人マッチングアルゴリズムがだめだと思ったので、自分でマッチングアルゴリズムを作成し、自分に合う彼女を探した。

ステップ1: OKCupidに登録されている女性のQ&Aを収集

OKCupidでは、5段階で回答する質問(例:「宗教はあなたにとってどれぐらい重要ですか?」)をたくさん用意しており、その中から利用者が好きな質問を選び、回答する(平均350問)。この回答結果を利用して、登録者に合う恋人候補を提案している。

McKinlayさんはこの質問&回答結果を収集することからスタートした。博士論文執筆の傍ら、12の偽アカウントをOKCupidに作成し、自動プログラムで25歳以上45歳以下の異性愛 or 両性愛の女性の回答を収集した。途中、OKCupidに自動プログラムであることが見破られ、アカウント停止処理をくらったので、同じくOKCupidを使っている友達の承諾の元で、彼のPCに操作記録を自動記録するプログラムを仕込み、彼の操作(どのくらいの速さでキーボードを叩くかやどのくらいの速度でマウスをクリックするか)を真似できるように自動プログラムを改良し、回答の収集を続けた。

6か月後、2万人の女性ユーザから600万の質問に対する回答を収集できた。

ステップ2: データ分析

博士論文そっちのけで、データ分析を行ったとのこと。最終的には家に帰るのを止め、研究室に泊まり込みに。K-Modeアルゴリズムを用いて、質問と回答に基づき女性を統計的に7つのクラスタ(グループ)に分類した。さらに、分類が適切かどうかを確かめるため、追加のデータを自動プログラムを用いてOKCupidから5000人分の女性のデータを追加的に収集し、同じ分類方法で同じ結果がでるかを確認した。

その後、7つのクラスタの内、どれが自分にとって好みのクラスタを考慮し、二つを選択した

  • クラスタA:20代半ばでかつ、見た目がインディーの音楽家か芸術家の女性
  • クラスタB:年上の女性で編集者やデザイナーなどの創造的な職業を持っている女性

ステップ3:適切なプロフィールの作成

上記の2つのクラスタの質問やプロフィールをテキストマイニングし、彼女らが興味をもつ質問を明確にした。ただし、質問を明確にしただけで、各質問への回答は正直に回答した。また、質問間の重要性(どの質問が上述の2つのクラスタに属する女性にとって重要であるか)については、ada-boostというアルゴリズムを使って順位付けした。

ステップ4: 地域による絞込み

OKCupidを使っており、かつ、ロスアンジェルスに住んでいる女性を絞り込んだ。ところが、この絞込みで1万人がヒットし、かつ、相性順でソートしたところ、1万人目の相性は90%以上だった。

ステップ5: ページへの訪問

OKCupidは昔のmixiにあった足跡機能(誰が自分のページを見たのかが通知される)があるので、上述のロスアンジェルス在住の女性のページを訪問するプログラムを書き、1日1歳ずつ、41歳のら27歳まで二週間かけて、彼女らのページを訪問した(プログラムに訪問させた)。

その結果、1日に400人ずつMcKinlayさんのページに訪問があり、彼のもとに彼女らからメッセージが届き始めた。

ステップ6:実際にデート

デートしても良いという女性と実際にデートを始めた。総計88人とデートした。途中からは、デート中にお酒を飲まない、トレイル(ハイキング?)に行かない、コンサートや映画にもいかないようにし、デートを効率化した。

88人目のデートで、28歳の Tien Wangさんに出会い、彼女と付き合うようになった(出会って2週間後に二人ともOKCupidのアカウントを削除した)。

感想

2012年6月からプログラムを動かし始め、2013年(?)6月30日にデートを開始し、そこから数か月デートし続けるという、データマイニングで対象を決めてからの負荷がすさまじい。映画化 or ドラマ化したらとても面白そうな話。

関連サイト

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト

コメントを書くには、なぞなぞ認証に回答する必要があります。

トラックバック - http://d.hatena.ne.jp/next49/20140514/p1