2010年1月26日火曜日

GoogleとFacebookではRをどうやって使っているのか?



ひさしぶりに統計ソフトRの話。

来年こそは仕事でバリバリつかってみようと思っている統計ソフトのR。
前のエントリーでも書いているように、フリーソフトなのに高機能。(統計解析・グラフの種類が豊富)

しかし、日本語での資料がまだ少ないのがちょっとイタイ…。
(最近は書籍でも多く診られるようになってきましたけどね!嬉しい限りです)

ちょうど調べ物をしてたときに、「How Google and Facebook are using R」というエントリーを見つけました。

今日はその内容をちょっと日本語に訳した内容を紹介しようと思います。

紹介するサイト

この記事が書かれていたのは、Dataspora Blog というサイトで、データに関する(Big Data, open source analytics, and data visualization)記事をメインに書かれているようです。
(私は知らないのですが、実は結構有名なブログだったりするのでしょうか…)

その中の「How Google and Facebook are using R」というエントリーです。

GoogleとFacebookではどうやってRをつかっているか?

この記事は、Bay Area R User GroupのキックオフMTGのパネルディスカッションの際に話しあわれたようです。
出席者はこの方々。

・ Bo Cowgill, Google
・ Itamar Rosenn, Facebook
・ David Smith, Revolution Computing
・ Jim Porzak, The Generations Network (and Co-Chair of our R Users Group)

それぞれ所属している組織の中でどのようにRが使われているかを紹介してくれています。
(一部抜粋をしていますので、全文を参照したい方はこちらを参照ください)
(英訳自体はそんなに得意ではないので、文法的に間違っている・意味がわからない箇所があるかもしれませんが、ご容赦ください)

■Bo Cowgill, Google

Google uses R for data exploration and model prototyping, it is not typically used in production: in Bo’s group, R is typically run in a desktop environment.


Googleではデータ探索やモデルのプロトタイピングを行って胃ます。一般的にプロダクション(公開している製品の意味?)には使っていません。デスクトップの環境だけです。

The typical workflow that Bo thus described for using R was: (i) pulling data with some external tool, (ii) loading it into R, (iii) performing analysis and modeling within R, (iv) implementing a resulting model in Python or C++ for a production environment.


(Googleでの)一般的な使い方は、1.他のツールでデータを抽出 2.Rへインポート 3.Rで解析とモデリングを作成 4.PythonやC++ でモデリング結果をプロダクションへ実装

■Itamar Rosenn, Facebook
Itamar conveyed how Facebook’s Data Team used R in 2007 to answer two questions about new users: (i) which data points predict whether a user will stay? and (ii) if they stay, which data points predict how active they’ll be after three months?


Facebookのデータチームは新規ユーザーの2つの質問について回答するために、2007年からRを使い始めた。1.どのデータポイントからユーザーが滞在するかを予測するか? 2.そのポイントによると、3ヶ月後にはユーザーはどのようなアクティビティをするか?

For the first question, Itamar’s team used recursive partitioning (via the rpart package) to infer that just two data points are significantly predictive of whether a user remains on Facebook: (i) having more than one session as a new user, and (ii) entering basic profile information.


最初の質問の回答については、ItamarのチームはRのリカーシブパーティショニング(rpartパッケージ)を使って、ユーザーがFacebookに残るための、次の2点について意義深い予測ができた。
1.新規ユーザーによる1セッション以上のアクセス 2.基礎的なプロファイルを入力しているユーザー

For the second question, they fit the data to a logistic model using a least angle regression approach (via the lars package), and found that activity at three months was predicted by variables related to three classes of behavior: (i) how often a user was reached out to by others, (ii) frequency of third party application use, and (iii) what Itamar termed “receptiveness” — related to how forthcoming a user was on the site.


次の質問については、least angle regression approachを利用したロジスティックモデルを利用した、(larsパッケージ)それらによると3つの関連している変数について、今後3ヶ月の予測がわかった。
1.どのぐらいの頻度で他の人からアクセスされているか 2.3rdパーティーのアプリケーションの利用頻度 3.Itamarが名づけた"receptiveness" と名付けた、来るべきユーザーがそのサイトにどうやってくるか。

■David Smith, Revolution Computing
David showcased how one of their life sciences clients used R to classify genomic data through use of the randomForest package, and how the analysis of classification trees could be easily parallelized using their ‘foreach’ package.


Davidは彼らのクライアント(生命科学)で遺伝子情報の分類にRのrandamForest パッケージを使っているところを見せてくれた。遺伝子情報の区分では、彼ら(Revolution Computing)のforeachパッケージが簡単に並列処理ができるとのこと。

David evangelizes and educates about R at the Revolutions blog .


DavidはRevolutions blog でエバンジェリストと教育を行っています。

■Jim Porzak, The Generations Network
Jim (also co-chairs the R Users Group), gave a brief overview of his PAW talk on using R for marketing analytics. In particular, Jim has used the flexclust package to cluster customer survey data for Sun Microsystems, and apply the resulting profiles to identify high-value sales leads.


Jim(R User Groupの共同議長(??))は、PAWtalkで話したRを使ったマーケティング分析の概要について披露した。特にflexclustパッケージを利用しSun Microsystemsの顧客アンケートデータを使って、価値の高い見込み客のプロファイルの特定を行った。

ここまでが各パネリストによるRをどのように使っているかの紹介です。
続いて目に止まったQ&Aを紹介します。

■Q&A
1.How do you work around R’s memory limitations? (R workspaces are stored in RAM, and thus their size is limited)


Rのメモリに限界がありますが、どのように作業をされていますか?(RのWorkSpaceはRAM依存であり、RAM以上のデータは利用できない)

Three responses were given (including one from the audience):


3つの回答がありました。(一つは会場から)

(i) use R’s database connectivity (e.g. RMySQL), and pull in only slices of your data, (ii) downsample your data (do you really a billion data points to test your model?), or (iii) run your scripts on a RAM-obsessed colleague’s machine or fire up an virtual server on Amazon’s compute cloud — for up to 15 Gigs.


1. Rのデータベースコネクションを利用し(RMySQLなど)必要分だけもってくる。2.サンプルサイズを減らす。(ほんとうに10億行もデータが必要ですか)3.同僚のコンピュータを利用するか、Amazonのクラウドを利用

2. How well does R interface with other tools and languages?


Rは他のツールや言語などのインターフェイスはどうなっているの?

There are several packages on CRAN for importing and exporting data to and from Matlab ( RMatlab), Splus, SAS, Excel and other tools. In addition, there are interfaces for running R within Python ( RPy ) and Java ( RJava ).


CRANにMatlab、Splus,SAS、Excelなどの他のツールからのインポート・エクスポートができるいくつかのパッケージがあります。加えて、他の言語からRを使うことができます。(RJava、RPy)

The panelists mentioned that they typically run R within a GUIs, either RCommander or Rattle .


パネリストからは、GUI経由でRを動かしたり、RCommanderやRattleを使ってRを動かしているようです。

GoogleとFacebookでは使い方が違う?!

Rの使い方を日本語訳をしてみたのですが、Google側は「どのようなデータ解析をしているか」までは踏み込んでおらず、具体的な解析手法については
このブログからはわかりませんでした。

一方で、Facebookは具体的な「ユーザーのアクティビティ」について言及してあり、サイトの中でどんなユーザーがどのような動きを今後しそうなのかを
書いてあったため、アクセス解析から一歩踏み込んだ予測まで行っていることがわかりました。

おそらくGoogleは、サイト内の解析というよりも、検索にかかわる解析を行っているのではないかと考えられます。彼らのビジネスのコアは「検索」です。
「検索キーワードと検索結果のクリックとの相関」、「検索キーワードと、検索広告・クリエイティブとの相関」などなど…

両社とも世界のシェアの数十%を持っていて、解析対象となるデータは十分にあるので、モデリングとしての精度は非常に高くなり、その解析結果をプロダクションに反映し、さらにユーザーを呼び込んでいるのではないでしょうか。

今後、No.1がNo.2以下を大きく離す可能性が高いと考えられます。

これからもひろがるRの利用

GoogleでもFacebookでも利用されているR。
日本でも学術系、生命科学系の分野で活発に利用がされ始めてきているようです。

マーケティング分野や、予算、市場分析などの分野でもこれからRはもっと使われていくのではないかと思います。

0 件のコメント: