蛍光ペンの交差点

"科学と技術に支えられ、夢を語る人になる"

アルゴリズムとビジネス(2つの「高度な技術」)

CS50の授業を3本ほど見て、思うところがあった。

以下の2つの命題は、それぞれ正しいか、誤っているか?

 

 

1) 高度なアルゴリズムほど(適用できる人が少ないから)価値がある

2) 問題を解決できれば高度でなくてもアルゴリズムには価値がある

 

 

僕の現段階での結論はこうだ。

 

 

ア)研究職にとって

 1)最初の到達者でなければ、高度であることの価値は、実はない。しかし、コミュニティの雰囲気として、高度なものを理解できることは自然と尊敬を集めるため、そこを勘違いしやすい。

 2)実はあるのに、論文にならないからコミュニティ内で共有もされず、言及する人が少なく、日常の中に埋もれている。たとえばコミュニティを健全に長続きさせるアルゴリズムは、きっと多くの場所で再発見されているはずだ。C言語のヘッダファイルの位置を特定するアルゴリズムが、コミュニティ存続のアルゴリズムよりも重要だということがあるだろうか。

 

イ)ビジネスマンにとって

 1)問題解決に繋がらなければ何の意味もない。高度なことを利用することは、目的には役立たない能力への尊敬と、「あいつは人に伝わる話をしない」という低評価につながるリスクがある。

 2)確実にある。解析者本人が拍子抜けするくらい簡単な解析でも、価値を持つ場合がある。そのとき人は「あいつは高度な問題解決の技能を持っている」と賞賛する。このとき働いているのは比較優位であり、たとえ解析者がクロス集計しかできなかった(しなかった)としても、他の人ができなければ価値がある。

 

だから、分析職で一番選ばなければならないのは、知的好奇心が持てる分析対象かどうかよりも、第一に「正しい分析対象」それ自体である。

 

切り分け方は、ただしいか?

SVMをかけるだけで、本当に解決するような問題か?(内因性、深刻性、解決性)

 

ビジネスの過程は、それ自体が大きな問題解決だ。目標に向かって、正しく、できるだけ早く近づいていくという点で、一つのアルゴリズムだと言っていい。最中に起こるイベントが確率的だし、多くは一回しか実行しないから忘れそうになるけど、アルゴリズムなんだ。

 

だから大事なのはアルゴリズム性能だ。アルゴリズムは性能だけで評価される。中身が複雑か、高度かどうかはどうでもいい。電話帳を半分にしていく(知るかぎりでは最も早い)二分探索アルゴリズムよりも、「2ページ捲って1ページ戻り、3ページめくって1ページ戻り、…Nページめくって、1ページもどるを繰り返す」アルゴリズムの方が複雑で高度かもしれないが、そんなことはどうでもいい(だいたい、このアルゴリズムは正しくない。複雑なだけで、答えにたどり着けない)。

 

 

分析職は、自分たちがいちばん真理に近いなんて思い込まないほうがいい。

 

人付き合いに長けた人事職や、
証券会社で成績トップの営業マンや、
選別眼のある編集者のほうが、
特定の問題に対してとびきり性能のよいアルゴリズムを知っていることは案外に多い。

その差はO(2^n)とO(1)クラスかもしれない。

 

自分はビジネスのシーンでは、
単にひとりのビジネスマンに過ぎないと自覚したほうがいい。

 

ビジネスで最適なアルゴリズムは、
CSの教科書に載っているものとはかなり違うのだ。

 

本当に価値のあるコンピュテーショナル・サイエンスは、

そこから始まる。

本年度のビジネス書大賞を受賞した『ゼロトゥワン』を何故あらゆるビジネスマンが読むべきか

本年度のビジネス書大賞受賞作は、シリコンバレーの起業家、ピーター・ティールによる著作『ゼロトゥワン』だった。
 

 

ゼロ・トゥ・ワン 君はゼロから何を生み出せるか

ゼロ・トゥ・ワン 君はゼロから何を生み出せるか

 

 

 
 
私はこの本を読むべき理由について語る資格がある、と思っている。
 
それは恐らく現在の日本において、私はこの本を最も深く読み込んでいる人間のトップ10に入ると思うからだ。
 

f:id:koshka-j:20150616123528p:plain

 
私は現時点で、日本語版の紙書籍と、原書版の紙書籍に加え、Kindleで購入した日本語版電子書籍と、果てには総収録時間4時間強にわたるオーディオブックも持っている。(ちなみに彼の伝記が掲載された『綻びゆくアメリカ』も読んだし、本の出典となったCS183のノートもいくらか読んだ。)
 
そして、それら全ての媒体を通して、この本の内容に触れた。
できる限りのところまで深く踏み込むように努めた。
ちなみにティールが日本で講演をしたときも会場で参加していた。
そして、明日はビジネス書大賞受賞記念講演会に聴衆として参加するつもりでいる。
 
翻訳書なのだから原書を読めば一層の理解が深まるのは当然のことだが、Kindle全文検索しながら読むことで全体の構造を大づかみし、オーディオブックの抑揚ある音声で聞くことで、各文章のどこに重点があるのかも把握した。
 
 
そんな読み方だったから、金はやたらかかった。時間もかかった。
しかし、この本にはそれだけの価値があった。
 
 
以下では、著者日本語版序文著者翻訳者編集者のそれぞれの観点から、この本がなぜ読む価値のある本なのかを述べていく。
 
( なおこの記事は、友人への推薦目的で書いている。)
  
 
著者について
 
著者ピーター・ティールは、失敗者である。
この点を読み逃すと、彼の主張が正しく捉えられない。
 
ティールが失敗者であるとは、一見するとおかしな話だ。
 
Zero to Oneは、ペイパルというネット決済の大企業を創設し、株式によって5,500万ドルという巨額の個人資産を築いたビジネスマンの話ではなかったのか?
 
ティールは実際、そのあともデータ分析企業パランティールを創業し、同社は現在150億ドルの企業価値評価が付けられている。そして彼はフェイスブックの最初期の外部投資者としても成功を収めている。
 
ティールの一般的な経歴が説明される際も、東京駅マルゼンで見たZero to Oneの書店員ポップの説明でも、彼が失敗者であることは触れられていない。
 
だが、ペイパル創業より以前の彼の人生は、失敗に溢れていた。
 
まず、彼は法科大学院を卒業後に、一番大事な就職面接で落ちているのである。
 
ロースクールの学生の世界で何を一等賞と見なすかは定かでないけれど、何万人という卒業生の中で最高裁の法務事務官になれるのは数十人だ。僕は連邦控訴裁判所の法務事務官を一年務めたあと、ケネディ判事とスカリア判事の事務官の面接に呼ばれた。どちらの面接もうまくいった。最後の競争に勝つまであとすこしだった。もし最高裁の法務事務官になれたら、人生安泰だと思っていた。でも、僕はなれなかった。その時は死ぬほど落ち込んだ。

(Zero to One 第4章『イデオロギーとしての競争』より引用)

 

そして、Zero to Oneだと本人も触れていないのだが、彼はそのあとの転職も立て続けに失敗しているのである。
 
…(連邦最高裁判所の判事アントニン・スカリアとアンソニーケネディの面接を受けたが不採用となったーー彼にとっては人生初の挫折であり、大きな心の傷となった)。その後ニューヨークの一流法律事務所サリヴァン&クロムウェルに採用され、証券取引法を担当した。…(中略)…

 仕事は退屈だった。彼がマルクス主義者なら、「阻害された労働」と表現したことだろう...(中略)...

 法律事務所は7ヶ月で辞め、クレディ・スイスデリバティブ(通貨オプション)のトレーダーとして働き始めた。…(中略)...ウォール街でもサリヴァン&クロムウェルと同じ問題に直面した…(中略)...ティールは社会構造によって定義される立場に意義を見いだせないまま、同僚と無我夢中で張り合っていた…(中略)...ゲームを極めて勝利をつかむことができるか不安もあった。彼は人をおだてたり、裏切ったりという政治的駆け引きができるタイプではなかった。

(『綻びゆくアメリカ』 「ピーター・ティール 1」の節より引用 )

 

就きたかった職業の面接で落とされ、
転職先では自分の希望に合わない業務に付かされる。
仕事には意義が見いだせず、打ち込めない。
そして上司からの評価は、自分が苦手な能力を基準として、不本意に付けられる…。

 

そのときの彼はきっと、日本で「ただの東大卒」と揶揄される人たちと何ら変わりがなかっただろう。


十数年に渡って築き上げてきた大変なハイスペックを、
何も活かしきれていない。

教育投資の明らかな失敗。

 
 
だが、この経験は、彼を最終的に一つの確信に向かわせることになった。
それは、競争は資本主義の対義語である、という逆説的な確信である。
 
 
類義語(Synonym)ではない。対義語(Antonym)である。
 
そして彼はこの確信を証明するかのように、
ペイパルで「隠れた」独占を築くことで、成功者になった。
 
 
この確信を持っていたからそういう勝ち方をしたのか、
それともそういう勝ち方をしたからこのような確信に至ったのか。
鶏卵問題の順序は定かではない。
 
 
だが、肝心なのはその順序ではない。
巨大決済企業ペイパルの創業は、もう二度と起きない。
 
ビジネスに同じ瞬間は二度とない。次のビル・ゲイツがオペレーティング・システムを開発することはない。次のラリー・ペイジセルゲイ・ブリン検索エンジンを作ることもないはずだ。次のマーク・ザッカーバーグソーシャル・ネットワークを築くこともないだろう。彼らをコピーしているようなら、君は彼らから何も学んでいないことになる。
 
(Zero to One 「はじめに」より引用)
 
我々にとって最重要なのは、彼が主張するその「競争は資本主義の対義語である」という第一原理、すなわち「独占を計画的に築く」というビジネス戦略を、自分の文脈で考えてみることだ
 
ゼロトゥワンという書籍は、そのための叩き台を提供してくれる。
 
ビジネス書大賞としてZero to Oneがふさわしい理由は、
この極めて直観に反する思想を、非常に納得度の高い事例の数々とレトリックのもとに、書籍の形に結集していることにある。
 
そして私は、この思想は、心に何かの失敗の経験を抱えている我々のような凡人にこそ、現状突破の鍵になる戦略だと思っている。
 
利益とは何なのか。競争とは何なのか。失敗とは何なのか。グローバリゼーションによるコモディティ化が加速しているいまこそ、失敗者ピーター・ティールの成功戦略を通して自分で考える価値がある。
 
(なぜ「自分で」に線を引いたのかは、同書を読んでもらえれば分かる。)
 
 
 
 
 
ところで
 
 
 
 
Zero to Oneは日米同時発売の翻訳書である。
そして翻訳書に付きまとうのが、
 

 

「日本語版と原書の英語版、どっちを読んだら良いのか?」

 
 
という悩みである。
 
 
結論を言うと、日本語版を読むべきである。
 
 
日本語版ゼロトゥワンは、後述する序文著者・翻訳者・編集者という3者のはたらきによって、初心者からすると、英語版ゼロトゥワンより遥かに内容が理解しやすい書籍になっている。
 
私は英検1級保持者だが、原書は単語が難しいため理解しづらい。とくに、人名やアダ名(たとえば「八人の反逆者」Traitrous Eightなど)はそもそも単語力の勝負ですらない。Jack Dorseyや、Sheryl Sandbarg、Marissa Mayerなどの人名を見て、どの会社で何やった人かがピンと来ないと、事実関係がうまく掴めない。原書の一周目は、基本的に日本語版と首っ引きで読んでいた。
 
 
序文著者の功績
 
日本語版序文は、エンジェル投資家の瀧本哲史氏が書いている。彼は、ティールと多くの属性を共有している。
 
2人とも飛び級経験者で、思想的にはリバタリアニズムであり、「目の前にあるのに見えないという意味で隠れた真実」の価値を重視する。おまけに法学部出身であり、フランシス・ベーコンの思想に言及している点でも共通している。
 
Amazonを見るとこの序文は「読みづらい」だのと低評価なのだが、この序文も実は上のような共通性を知った上で見ると、本書を理解する上でむしろ大きな手助けとなる。ひとつ、例を挙げてみよう。
 
ただ一方で、ウェブで読めるような「◯◯を成功させるための10の法則」的な、内容を薄めた本じゃないのかと、心配にもなるだろう。安心して欲しい。実は、ティールはそんな単純な人物ではないし、本書もそんな「わかりやすい」本ではない。
(日本語版序文より引用)
 

 

繰り返すように、彼はティールと極めて多くの属性を共有しているにもかかわらず、ティールが書いたこの本を「わかりやすくない」と言っているのである。
 
 
それに加えて、瀧本氏の講演会に行ったことがある人なら同意してくれるだろうが、氏の瞬間的な理解力はすさまじい。質疑応答セッションで、どう考えても質問になってないだろそれみたいな問いが出た場合でも、瀧本氏は即座に質問者の意図を見抜き、それに呼応する答えを返す。僕のような一般聴衆は「あれ、さっきの質問、案外ちゃんとしてたんだな」と思い込まされるので、質問者も聴衆も誰もその質問がヤバかったと気づかないまま話が進んでいく
 
 
だいたいその場にいる誰よりも早く複雑な内容を理解してきた、その瀧本氏が、本書は「わかりやすくない」と言っているのである。
これは、本書を読む上で非常に重要なヒントである。
 
ゼロトゥワンのAmazonでの評価を見ると、低レビュー者のコメントには「大して印象に残らなかった」「どっかで見たようなことが書いてあるだけ」などの感想が目立つ。
これは、ゼロトゥワンが、気を抜くと簡単に字面を追えてしまうからである。
 
 
例えば第二章「1999年のお祭り騒ぎ」では、「1990年代にはいいイメージがある」という一文から、歴史的事件の羅列のような文章が続く。ベルリンの壁の崩壊、ソマリアのアメリカ兵、メキシコへの雇用流出、半導体戦争、アジア通貨危機、そして1998年からのドットコムバブル。この殴るような列挙が実はレトリックであるということを認識しないと、この章は感想が残らない
 
 
この章は、
 
1.なぜ1990年代後半のバブルに皆があれだけ期待したのか
2.スタートアップという観点から見ると、なぜバブルは崩れたのか
3.バブルから私たちが学んだと思い込んでいる教訓が、本当に正しいのか
 
 
という、バブルにまつわる認知のゆがみを、以上のようなレトリックによって説明しようとしている。特に私が驚愕したのは3.で要するにティールはバブルのときに生じていた「雰囲気」に少しばかり賛成しているのだ。教訓が間違いで、バブルのときの「熱気」のほうが正しいということを、この章では示唆し、そして10章「マフィアの力学」では、「コンサルタント」と「カルト」という言葉で関連話題について更に深く追っている。
 
 
 

翻訳者の功績

 
翻訳者は杏里大学准教授の関 美和氏という方で、これまでにも相当な数の翻訳書を手がけてきたベテラン翻訳者のようだ。
 
Zero to Oneの翻訳は、非常に読みやすい。
それには理由がある。
翻訳者が、著者の主張を正しく理解しているのだ。
 
上では述べなかったのだが、私は偶然にもZero to Oneの「未校正版」というレア本を持っている。知人の家を訪れたら、たまたま本棚にあったので借りたのだ。
 

f:id:koshka-j:20150616103614j:plain

( これが未校正版だよ↑ )
 
 
読み始めて驚愕した。
未校正版では、翻訳がかなり違うのである。
そして出版されたバージョンのほうが、遥かにわかりやすい。
 
最も顕著な例を挙げる。
Zero to Oneの第5章は、原書ではLast Mover Advantageという章題が付けられている。これはFirst Mover Advantage(先発者利益)を追うよりも、タイミングに関しては他の戦略で打って出たほうが良いということを表している。
 
だが、このLast Mover Advantageという表現は、実に誤解を招きやすい。どこで見かけたか忘れてしまったが、英語圏のウェブサイトで「Lastに動いてどうして勝てるんだ?」という感想を見かけた記憶がある。そして実際にティールがこの章で主張したいことは、必ずしも字面通りの「ラスト」ではないのだ。
 
ティールはこの例に限らず、二項対立を説明する際に「最も極端なもの」を表す単語を用いるクセがある。たとえば第3章で説明される「完全競争(Perfect Competition)と独占(Monopoly)」の話では、実際に例に出てくるのはどれも不完全競争と寡占だったりする。だから、原書で読む時には常に頭の中で概念の変換をかけていく必要がある。
 
 
では、日本語未校正版の原稿では章題はどうなっているのかというと、
 
後発優位 (ルビに「ラストムーバー・アドバンテージ」)
 
となっている。うん、わかりやすいようで、いまいち掴めない。
そして出版されたバージョンでは、
 
終盤を制する(ルビに「ラストムーバー・アドバンテージ」)
 
となっている。これは、章の最後で引用されるチェスのグランド・マスターの警句を踏まえた意訳だろう。ビジネスにおいて、独占利益を享受するための施策は、終盤を制せるかどうかにある、という章の大筋を踏まえたタイトルになっている。
 
 
そしてこの翻訳の質の高さを理解するために、何よりも注目すべきは、Zero to Oneは日米同時発売だということである
つまり、翻訳者は僕のように、英語版書籍の読者の「ラストムーバーってなんだ?」という疑問を観測してから翻訳を改訂した訳ではない。
 
あくまでも、Last Mover Advantageという章題の付いた章では「ゲームに勝ちたいのなら、何よりもまず終盤を制することだ」ということが述べられているから、そう訳したほうがよいと判断したということだろう。
 
このような、読者のことを考えた翻訳で溢れているから、
日本語版書籍は原書より遥かに読みやすい。
 
僕のように、翻訳に興味がある人間にとっても、お手本的な訳がたくさん載っている。
 
編集者の功績
 
日本語版Zero to Oneがもう一つ決定的に読みやすい理由は、注釈の位置である。
ページの下に注釈があるため、章末に注釈がまとまっている従来型の傍注と違い、パッと分からない用語を調べることができる。注釈の数は非常に多く、読解の大きな手助けとなる。これは編集者・松島倫明氏の功績だろう。
 
ちなみに本全体のデザインも、(原書にない)オレンジ色の透かしが入っていたり、フォントが読みやすかったり、図の位置が分かりやすかったりと、非常に好感がもてる。
 
 
 
おわりに
 
私は普段、そんなに本を読むタイプではない。ましてや同じ本を繰り返し読むなんて、人生で片手ぐらいしか行ったことがない。
 
そんな私がここまで打ち込んで読めたのは、とにかくZero to Oneがそれだけの、何度も読むに耐える内容を秘めた本だからだと思う。
 
外国の掲示板サイトRedditでは、ティールが本は相当構成して詰め込んだという発言を投稿している。そもそも、本のもとになった授業から出版まで2年以上の月日がある。きっと相当練り込んで執筆したのではないかと推察される。
 
厚さにしてわずか200ページ強の書籍だが、 その記述の統制度合いは恐ろしいものがある。僕は読んでいて、哲学書とはこういうものかという感慨を抱いた(ティールはもともと、学部時代は哲学を專攻していた)。

 

そして前述のように、日本語版作成に関わったどのスタッフも、本を読んだ限りはそれぞれの職務を効果的に果たしている。

 

あらゆるビジネスマン(含む、社会人1年目の友人)に、僕はこの本を薦めたいと思う。

 

 

ゼロ・トゥ・ワン―君はゼロから何を生み出せるか

ゼロ・トゥ・ワン―君はゼロから何を生み出せるか

 

 

ちなみに原書もオススメです(僕は蔦屋書店で買いました)

 

Zero to One: Notes on Startups, or How to Build the Future

Zero to One: Notes on Startups, or How to Build the Future

 

 

統計を始めたい人に僕がPythonよりRを勧める理由

今回は「ほぼRしか使ったことがない」人間*1が、できる限り二者の優劣をくっきり述べる。

僕はほとんどRしか使ったことがない。Pythonはtfidfやクイックソートをライブラリ無しで実装した程度。

 

前半の主張は以下である。

 

過去のRでの10回程度の解析において、Rで不十分さを感じてPythonを使った経験は1度だけ、しかも部分的にしかなかった。Rの使いにくさを感じることも最近はだいぶ無くなった。だから初学者には「事足りる」Rを勧める。

 

前半の主張

 

今までにRでやった解析の内容は大体以下である。

(未発表)は途中で頓挫した、もしくは現在進行中/契約により詳細&解析結果の公開不可能のプロジェクトである。

 

  1. [ビジネス・製造業] 米国新車価格の線形重回帰分析(授業の期末課題)
  2. [ビジネス・不動産] 不動産賃貸価格の線形重回帰分析(発表スライド
  3. [ビジネス・IT] EコマースサイトのARIMAモデルによる売上予測
  4. [教育系](未発表)項目応答理論による問題難易度推定
  5. [ビジネス・投資](未発表)企業業績データの可視化
  6. [ビジネス・不動産](未発表)不動産賃貸価格の一般化線形モデル分析
  7. [ビジネス・IT](未発表)Eコマースサイトの顧客データ分析
  8. [ビジネス・IT](未発表)大手レビューサイトにおけるレビューのクラスタリング
  9. [ビジネス・マーケティング](未発表)大手ポイントカードの購買データ分析
  10. [ビジネス・マーケティング](未発表)商品人気の生存分析
  11. [スポーツ系](未発表)スポーツの練習中における、選手の位置変化の可視化
  12. [バイオ系](未発表)バイオ系実験データの前処理と結果予測モデル構築
  13. [ビジネス・インフラ](未発表)屋内地図データの可視化と行動予測

 

各プロジェクトは、すっげー概算でそれぞれ1000行ほどのスクリプトで分析されているが、これらは現在までのところ、全てRのみで完結している。

 

 

そして、僕が今までにやった解析の中で、Pythonを使った前処理が必要だったものは以下である。

 

  1. (未発表)数冊の書籍を対象としたテキストマイニング
  • 理由:Rのテキストマイニング用のライブラリは、Pythonのnltkライブラリに比べると明らかに劣っており、僕の環境では(内部で呼ばれる)Javaのバージョンすら合っておらず起動困難だった。nltkライブラリでは大した苦難もなく必要な処理が完遂できた。

 

自然言語処理を目的とするのでない限り、Rで十分なのではないかと思われる。

 

 

 

後半の主張

 

また、僕が一番好きなのは、正確には統計学というよりは、探索的データ解析と呼ばれる分野である。

 

 Tukey's championing of EDA encouraged the development of statistical computing packages, especially S at Bell Labs. The Sprogramming language inspired the systems 'S'-PLUS and R.

(英Wikipedia "Exploratory Data Analysis"から引用)
(拙訳:数学者ジョン・チューキーが探索的データ解析(EDA)を擁護したことで、統計計算用のパッケージソフトウェアの開発は勢いづいた。その中でも、ベル研究所の「S(エス)」というプログラミング言語は特に主力だった。Sはのちに誕生することになる、「S-PLUS」と「R」という二つの言語に大きな影響を与えた。)

 

このような成立経緯から、Rには、デフォルトで探索的データ解析をやりやすくする機能が色々と備わっている。特に、RStudioという作業環境でやるとそれは顕著だ。プロットの連続表示や保存が非常に直観的にできる。

 

そして、数年前から、dplyr/tidyrとggplot2というライブラリがRのコミュニティに登場した。これが決定打だった。前者は統計解析の大部分を占める前処理を異常なまでに効率化し、後者は"Grammar of Graphics"という、可視化を数学的に定義しようとした学術書の実装として、明らかに並はずれた表現力を持っていた。dplyrとtidyrについてはRStudio公式のチートシート(Data Wrangling Cheat Sheet)を見れば何となくその全貌が、ggplot2については公式のドキュメントの例を見ればその強力さが分かるかと思う。

 

ちなみに最近はrvestという、Rでクローラーを書くためのライブラリも同じ著者から登場した。

 

探索的データ解析は、とにかく楽しい。楽しいのだが、やれ欠損値が入っているだのデータが整形されていないだの高次元で見えにくいだので時間を取られるのは非常に嫌なことであり、dplyr/tidyrとggplot2は、その面倒な作業を圧倒的に楽にさせてくれる。

 

ぶっちゃけ、dplyr/tidyrとggplot2がもし存在してなかったら、僕もPythonに移っていたと思う。それくらいにこのライブラリ群の存在は大きい。習い始めは「案外ごちゃごちゃしてね?」と思うかもしれないが、実際にそれを別の記法でやると更にスパゲッティになることを僕は既に体験している(僕は最初の2つの解析は、このライブラリ群なしでRを使っていた)。

%>%演算子やselect, group_by, filter関数などの記法の整頓具合や、充実したレファレンス、そして今も活発に続くバグ修正など、このライブラリ群は今後も安定して改善され続けると思われる。(%>%演算子の凄さについてはこのチュートリアル参照)

 

 

要約: 僕はRで学んだ。Pythonはあまり使っていない。だが「Rで圧倒的な能力不足を感じた」ことを理由としてPythonを使った経験は1度しかないため、統計を目的とする人たちにRを教えることに問題はないと思う。さらに、Rは成立経緯からして徹底的に「探索的データ解析」に向いた言語であり、初級のデータ分析に費やされる半分ほどの時間は統計解析ではなく探索的データ解析であることを考えると、Rを選ぶメリットは十分にある。特に、dplyr/tidyrとggplot2という3強ライブラリが登場してからは、顕著になった。

 

*1:ただし、プログラミング言語としては、C, C++, Ruby, JavaScriptを頻用し、Lisp, OCaml,SQLを書いたことがある

ニコ動で「もっと評価されるべき」約4900作品の説明文を解析してみた

2年ほど前に、「もっと評価されるべき」タグが付いた動画の投稿だけをTwitterに流すBotを作っていたことがある。つい昨日、もう少しでデータベースが満杯になるから、データを消去しろと通知が来た。

せっかくなので、呟いていたデータを解析してみよう。データはMySQLに保存してあったので、Rに読み込んでいくつか可視化してみる。

 

分析1:「もっと評価されるべき」タグが付けられた動画作成者は、自己承認欲求が高いか低いか。

 

まず、みんな気になるのが「もっと評価されるべき」タグって本人が付けてるの?別の誰かが付けているの?ということだろう。

本人が「この動画はもっと評価されるべき」と付けているのならば、そのタグはあまり評価指標としてアテにならない。そのタグは、本人の自己承認欲求の高さ(あるいは自信の大きさ)を示しているだけになる。

一方で利害を持たない視聴者Aさんが付けているのならば、Aさんと似た嗜好を持つ人にとってそのタグは、動画再生数に依らずに良い作品を見つけるための有力な手がかりとなる。

 

僕の知る限り、「タグをどのユーザーが付けたか」は一般視聴者には特定できないため、この問題を決定的に解くことは一般に困難である。なので、別の値から逆推定してみよう。

今回使った値は、データベースに運良く紛れ込んでいた「動画説明文」のカラムだ。

dic.nicovideo.jp

 

「動画説明文の長さが、字数制限に近いほど自己承認欲求が高い」と仮定する。自分を認めてもらいたい、もしくは自分の作品に高い価値があると考える人であれば、おのずと投稿時に説明文をタイプする手も早まり、Enterキーを押しては「クソッまだ字数制限か」と、新聞の限られた紙面を余すところなく駆使する記者よろしく編集力を発揮して、限りなく字数制限に近いところまで作品をアピールする、と想定するわけである。この仮定はかなり強い仮定であるため、解析の行方次第では破棄される可能性も大きい。

 

上のニコニコ大百科によれば、文字数制限は1000バイトとのことだ。文字数ではない。バイト単位である。これは僕も知らなかった。いや待てよ、ネットに書いてある情報を鵜呑みにするなっておばあちゃんに習ったな。とりあえずこの情報も仮定としておこう。

 

実際の文字数分布は以下のようになった。まずは文字数から。

 

f:id:koshka-j:20150605100314p:plain

文字数は、上掲のように、200文字弱を最頻値(mode)とする右裾の長い/左裾打ち切りの分布になった。40文字あたりで少しポコンと飛び出ているのは、とりあえず何か書かないと投稿が承認されないとかそういうやつだろうか。ゲーム実況動画で【前-> sm*****】【次-> sm*****】などだけが書かれているパターンが現れているとみるべきだろうか。

文字数だと、500文字を越えたあたりから散在しており、どこかに見えない打ち切り線(運営の壁)のようなものが存在しているようには思えない。やはり、制限はバイト数だろうか?

次に、バイト数でのグラフを掲載する。計算はRのnchar(type="bytes")でja_JP.UTF-8ロケールで行った。

 

f:id:koshka-j:20150605100810p:plain

 

なるほど、基準が明確だ

大百科情報はおそらく正しかった。バイト数が1000に近づくに従って、グラフ下の帯で示した動画数が小さくなっている。チキンレースのように、1000バイトギリギリで投稿している猛者もいる。調べたら996バイトだった。まだ1文字余裕があるね。

 

 

しかし、グラフから分かるように、解せないのは、

 

f:id:koshka-j:20150605101223p:plain

 

ここだ。

何なんだこいつらは。

 

「もっと評価されるべき」タグを含む全4890動画の中から、わずかに2つの動画だけが、1000バイトを超える文字数で投稿を行っている。おかしいな、大百科情報では1000バイトが制限だったのに。運営に騙されたか?

 

この動画2つの動画IDを確認してみると、

 

f:id:koshka-j:20150605101458p:plain

 

!!! オフィシャル動画 !!!

 

ニコ厨の人のために解説すると、ニコニコ動画に投稿した動画にはso25358113などといった動画IDという値が一意に割り振られる。そしてその動画IDの先頭2文字は、動画のタイプを表す。nmはNiconico Moviemakerで作成した動画、smはSmile Videoに投稿されたMovie、そしてsoはSmile Video(ニコニコ動画)のOfficial動画という訳だ。

 

ということはsoの付いた公式動画だけが1000バイトを超えて投稿されてる!

これは運営の暴虐!!!???

 

と、陰謀論に走るのは手持ちの情報が少ないからで、追加調査によって結論はだいたい変わる。

まず、データベースに保存された値が正しいのかどうかを確認してみよう。

実際の動画2つの動画説明文をコピペして、ネット上の文字数カウンタで確認してみる。すると、

 

f:id:koshka-j:20150605102133p:plain

大百科に書かれていたUTF-8エンコードでのバイト数は、僕が取得したデータと同じく1263バイト、そして他のShift-jis、EUC-JP、JIS符号化の元ではそれぞれ1000バイト未満である。

もうひとつの動画も見てみよう。

f:id:koshka-j:20150605102336p:plain

 

こちらはUTF-8での換算値が僕の取得した値と異なり、JISでの換算が1000バイトを超えている(僕が取得したあとに動画説明文を変えたのかもしれない)。しかしEUC-JPとShift-jisでのバイト数は1000を切っている。

 

すると、以上の情報から推定できる真実は以下である。

  1. 千バイト制限は、smやnmなどではUTF-8エンコーディング、soではその他のエンコーディングで換算される。
  2. この2つをアップロードするときだけ公式側のバイト制限がうまく機能しなかった。
  3. 運営の陰謀。

この3つのどれを信じるにせよ、およそ1000バイト付近で字数制限が存在するのは間違いない。

となると、最初の問題に戻って、「もっと評価されるべき」タグの付いた動画のバイト数最頻値は300バイト程度であるのだから、仮定が正しいのならば、およそ全体の傾向としては承認欲求は高くない。たぶんみんな字数制限と戦うのが面倒くさくて適当な文字数で済ませるのだろう。あるいはそんなに長い文章は読んでくれないと捨てているか。

 

実際、バイト数上位者のテキストを眺めてみても、ほとんどはURLなど外部にリンクを貼る形で情報を付加している。その結果として1000バイトに近づいているだけだ。なるほど、確かに1文字=2バイトで換算される日本語で、このせせこましいスペースに書くよりも、1文字=1バイトで換算されるアルファベットでURLを張って自由な外の表現空間に逃げたほうが、戦略としては妥当だろう。彼らの自意識もまた、高くない。仮定は破られた。

f:id:koshka-j:20150605103026p:plain

(2列目は文字数だったはず)

 

考察

今回の分析の欠点は、データの少なさにある。「自分で【もっと評価されるべき】タグを付けている投稿者」は確実に存在する。あくまで動画説明文の長さではそれが説明できないと判明しただけだ。いずれ第二第三の解析者が、視聴者にとって有益ではない自己タグを付けている人物を白日の下に晒す日が来るであろうーーー(僕は面倒なのでもうやりません)

 

感想

 

人間、字数制限を与えられたら精一杯その中に自分を凝縮して表現するものだと考えていたが、制限に遥か達しない値が最頻値や平均であることに驚いた。

URLを使った外部への長文配置は確かに合理的だ。ニコニコ動画のユーザーは、投稿を続ける中で暗黙に最適戦略を編み出しているのかもしれない。

 

 

以上 

 

おまけ

f:id:koshka-j:20150605103838p:plain

ボックスプロットでは、nmとsmは一見なにも違いがないように見える。

実際にデータとしては違いがない(ニコニコムービーメーカーで作ったからといって動画説明文の長さに差が出るわけではない)。

ただし、サンプル数はまるで違う。

f:id:koshka-j:20150605104017p:plain

統計は、見えない情報にこそ、注意。

推論機構と真実 (2) 「バカ」のモデル化の可能性と意義

以前の記事(「推論機構と真実 (1)隠れたバグか、隠れた真実か」)で述べたことを、誰もが生きる上で避けられない大問題に即して考えてみる。

それは、「バカ」のモデル化である。

経済学は、「合理的な行動をする主体」として、人間や投資アルゴリズムを定式化した。また、ダン・アリエリィなど行動経済学の研究結果が示す通り、近年では「一見すると不合理に見えるが通底する理由を推測できる」人間の行動も理解されている。

これらの研究結果は有用だが、僕は寡聞にして、いわゆる日常見る「バカな行動」をその第一原理から説明することを主眼に置く、あえて名付けるならば「愚行学」とでも呼べるものを知らない。(もちろん、既にマルチエージェントモデリングゲーム理論などで、ある種の特殊ケースを扱っているのだとは思う)

バカとは何か?僕は論理学を全くやってこなかったので、正確な表現ができるとは思わないが、知っている限りの言葉を使ってできるだけ考えてみる。

現時点での僕の理解で定義するならば、バカとは
(1)「理解者側にとって、理解できないと直感で結論づけてしまった人のこと。またその行動。機械学習の言葉で言えば、生成プロセスが(単なる表による表現以外には)要約できない関数(行動の場合は関数値)。関数の中身を、簡潔な演算や生成で表せないということは、機械に模倣させることが極めて困難であることを表す。」
(2)「合理的な行動が正解だと分かっているのに、本人の能力不足でそれが達成できない人のこと。テストでバカなミスをしてしまった、など。」



肝心なのは、(1)である。特に肝心なのは、(1)に関する以下の問いである。

「理解できない」とは「理解が不可能だ」ということを意味するのか?「理解が困難だ」ということを意味するのか?

ピーター・ティールが言うように、この違いは重要だ。

そして、彼に倣って僕が主張したい逆説的な命題は、

「多くの人はバカは理解不可能だと思っているが、真実はその逆で、バカは(今後の計算機科学・論理学の発展次第で、理解可能だ」

ということである。

これはあくまで直感である。勉強不足につき、エビデンスはまだ存在しない。
しかし合理的なプロセス自体が、ディープラーニングなどのテクノロジー発展により確定不可能な不確定性ギリギリまで高精度で理解できるようになった以上、次の難題は「非合理的なプロセス」、すなわちバカの高精度な理解である。バカを確率分布でどう理解できるか?は、交渉、台風、炎上など、多くの社会問題を変化させる可能性を秘めていると僕は考える。

人間が計算機より豊かなのは、単に生物であるからという以上に、使っている論理学が演繹や帰納アブダクションなど、現在の計算機で扱える論理以に数が多いのものであるからだと思う。つまり、古典的な論理学における矛盾を積極的に有効な推論として使用する傾向にある。そしてそれは、現在より遥かに複雑な論理体系により、少なくともモデル化をしないよりは深く理解可能ではないだろうか。

推論機構と真実

自分の学部時代の経験において、ひとつ忘れられない出来事がある。

 

その日は所属学科の卒論発表会だった。発表者が準備を済ませ、発表時間になった段階でも、卒論審査役の一人の教授が場に現れない。

発表者の指導教授が電話すると、彼はまだ研究室に居た。電話越しにも、さほど急いでいる様子でないことが伝わってきたらしい。すぐに来るようにと促し、通話を終えたあと、その教授はこう言った。

 

「3時に自分が審査する卒論発表会があるとわかっていて、いまが3時だと言うこともわかっているのに、どうしてこの場に駆けつけないのか」

 

場は笑い声で湧いた。

 

発表会の帰り道、どうしてあの教授はわかっていたのに来なかったんだろうね、やっぱり変な教授だね、と友人に話しかけると、元は数学科志望だった彼は次のような意見を述べた。

 

「たぶん、推論機構が働かなかったんだと思う。彼の中で、それらの2つの事象から導き出される【一刻も早く審査会場に向かわなければならない】という事実に、辿りつけなかったんじゃないかな、彼の頭の使い方が、変わりすぎていて」

 

 

それは、とても納得の行く説明だった。


推論機構。人の頭のなかの、結論や事実を推論するためのメカニズム。

 

考えてみれば、いくら前提となる情報が大量に手に入ったところで、結論を導き出す最後の動力となる「頭のなかの推論機構」が働かなければ結論には至れない。情報を入手する問題と、その情報から結論を導き出す問題は、別個の能力に依存している問題だ。

 

あの教授は単にクレイジーだけれど、実際僕らの世界認識も、情報は持っているのにけっこう「推論機構の行き詰まり」で良い結論に至れていないものがあるのではないかと思う、ピーター・ティールはそれを「隠れた真実 Secrets」と呼んだけれど、それは情報が隠れているというより、結論が認知の壁によって隠されていると言ったほうが良い。

 

どうすればその壁を敗れるだろうか…と考えてみると、単に深く考えてみよう以上のことが思い浮かばないのだが。

 

とりあえず、そういう類の問題が、現在の情報氾濫社会には溢れている。

 

 

ちなみにその卒論生は、その遅れてきた教授の的確な質問によりかなり致命的な誤謬が見つかり、3〜4人の審査員の間で喧々諤々の議論が巻き起こるほど炎上して大変なことになった。