「夫子憮然曰、鳥獣不可與同羣。吾非斯人之徒與、而誰與。
「論語」微子、第十八、六

2013/02/28

「自由はどこまで可能か」

あら、もう二月も終わりか。 帰宅してお風呂に入り、 湯船で 「自由はどこまで可能か リバタリアニズム入門」(森村進著/講談社現代新書) を読む。 著者の奥様が、 お気楽紳士バーティと名執事ジーヴスものを翻訳されている、 森村たまきさんだということが興味深い(?)。

この本の分類では、私はマル3とローマ数字IIIに属しそうだ。 つまり、政府の規模としては、 ある程度の福祉やサーヴィスをする小さな政府を認める「古典的自由主義」者で、 個人の自由の正当化の論拠としては、 理性的な人々ならこうなるはずだという「契約論」者。 しかし、私は(自分自身も含め)人間がそれほど理性的だと思っていないし、 束にまとまった場合はどこまでも非理性的になりうると思っているので、 IIIは成立せず、マル3も成立しない、と考える。 故に私は、リバタリアニズムは成立しないと考える悲観的リバタリアン、 あるいは夢想的リバタリアン、とでも言えようか。

2013/02/27

EDA

小雨の降る中を出勤。 午前午後とデータとりなど。 データをとったはいいが集計が難しいので、 テューキーの "EDA" に思いを馳せながら、あれこれ考える。 700 ページくらいあるテューキーの原典を会社の書架に飾ってあるのだが、 ずばり、5 ページくらいしか読んでいない。

昼食は近所でビールカレー。 念のために書いておくが、カレー屋でビールを飲んだのではなく、 ビールで煮込んだカレーを食べたのである。間違いない。 「自由はどこまで可能か リバタリアニズム入門」(森村進著/講談社現代新書) を買う。 夕方退社。

帰宅して御飯を炊いて、だしを引き、夕食の支度。 そのあとは、 夜はたいがい本を読み、冬には南にまいります、 という感じ。

2013/02/26

いかに記事を推薦するか、その5(その他の問題)

記事の推薦サーヴィスをめぐる問題の最終回。 こういうものを作ろうと思った時点では思い付きもしなかったが、 実は難問だったことから二つほど。

Mynd Daily に登録して下さっている方の手元に毎朝届く推薦記事それぞれの横には、 画像がついている。この画像はどうやって選んでいるのか。 記事の本体から抜き出してくるんでしょ、と思われたかも知れないが、 そして、まさにその通りなのだが、 大抵の場合、その記事について説明した本当の画像の他に、 広告画像や、そのサイトのバナーや、関係のない画像も付随している。 この中から、記事に相応しい画像を自動的に抜き出さなければならないのである。 これが簡単に見えて、難しい。 実際、この画像抽出だけをサーヴィスにしている会社があるくらい難しい。

画像の埋め込まれ方は、サイトによって様々で、 人間ならぱっと見て「これだよ」と分かるのだが、 それは人間が記事の内容を理解していて、 かつ、写真を目で見ることができるからだ。 その知性と感覚をどうやって機械に持たせるか。 弊社の優秀なプログラマたちが何とか、 かなり高い確率で正しい画像を当てられるアルゴリズムを開発し、 これは他の類似の記事推薦サーヴィスで使われているものよりずっと優れていると、 我々は自負している。 しかし、おそらくあなたは、 たまに記事の横に変な画像が出ているのを見つけては、 「でいりーたん、だめじゃん」と思うかも知れない。 しかし、 このように簡単に見える技術が実は難問だったりするのだ、 ということは知ってもらいたい。

また別の問題として、「類似記事の検出」がある。 これも事前には全く思いつかなかったし、 気付いてからもしばらくは、簡単な問題だと思っていた。 Mynd Daily は、一日分の推薦記事候補を集めた上で、 そこからあなたが興味を持つだろう記事を推薦しているのだが、 インタネットには良く似た記事があふれている。 元の記事をそのまま引用しただけの記事、 引用して一言だけ足した記事、 同じ内容だが一応は書き直してある記事、 あたりまでは「ほぼ同じ」記事と言ってしまっていいだろう。 こういう記事が推薦記事セットの中にいくつもあると、 読者は当然ながら不快に思う。 しかし、推薦であるが故に、ある記事があなた向きだと判断されれば、 その類似記事もあなた向きだと判断されて、こういうダブりが集中してしまう。

これを解決するには、 類似記事であることを自動的に検出しなければならない。 これも人間が見れば明らかなのだが、 機械にその知性を持たせるのは難しい。 ちょっと分かっている人は「ははん、あれを計算すればいいじゃん」 と思ったかも知れないが、それは第一歩に過ぎない。 この問題はやればやるほど、じわじわ難しさが分かってくるタイプの問題で、 正直に言うと、我々も未だに模索中である。 だから、推薦記事の中に重複にしか見えない記事を見つけても、 しばらくは温かく見守ってほしい。

似ている記事をちゃんと見つける精度の問題の他に、 大量の記事を分類する計算量の問題もある。 今のところは記事数が少ないので、事前に総クロス計算することが可能だが、 いずれは、計算タイミングとハッシングを最適化する、つまり、 必要になったその場その場で必要なだけ計算し、 計算したものは記憶しておくような工夫をするとか、 あるいは、類似度計算そのものを高速化しなければならないだろう。 このあたりも今後の課題である。と言うより、課題になるくらいのスケールになりたい。

他にもまだまだ、いくらでも問題がありますが、 長い上に、専門的な内容が続くと読者がいなくなるので、 とりあえずこのあたりで止めておきます。 Mynd Daily は、今のところメイル配信だけですが、 既に社内では「ドッグフード」状態で web 版が動いています。 さらに、面白い機能を追加したものも実験中です。 だんだんと公開版に反映されていくはずですので、お楽しみに。 登録するなら、今ですよ。

2013/02/25

いかに記事を推薦するか、その4(A/Bテストの新世界)

先週、 "Mynd Daily" を登録して下さった方は、 既に数回メイルが届いたはずだが、 記事推薦の調子はいかがだろうか。 あなたがかなりの数の記事をクリックしていない限り、 推薦システムはあなたのことをまだそれほど知らない。 つまり、 「コールドスタート」である。 さらに、まだあなたの好みの情報が少ないが故に、 推薦する幅が非常に狭いはずだ。 つまり、 「フィルターバブル」である。 この二つの大きな問題の他にも、多くの問題がある。 我々はできる限り推薦エンジンを改善していきたいし、 デザイン、サーヴィス設計、など、あらゆる点を改善しなくてはならない。

ではどうするか。 今、IT業界では「A/Bテスト、イズ、キング」 ということになりつつある。 つまり、A案がいいかB案がいいか、 ある改善案を試すべきか否か(現状がA、改善案がB)、 ミーティングで延々と議論したり、 または、上司や社長が「よし、分かった!」と轟警部風に決断したりするのは、 旧時代の大間違い。この素晴しき新世界においては、 実際にAとBの両方をやってみることが可能であり、 その結果から統計的判断をすれば良いのである。

例えば、販売サイトのデザイン案がAとBの二種類ある。どちらがいいか。 両方やってみればよい。 ユーザがこのサイトにアクセスしてくる度に、ランダムにAとBに振り分けるのだ。 「ランダムに」という点が味噌で、 これによって比較したいこと以外の因子が (例えば、ユーザの年齢、職業、その日の天気、エトセトラ)、 実験者が気付いている因子は勿論、気付いていない因子まで、 平均化される。よって、もしAとBのどちらかが優れているなら、 まさにその故に、優れている方の売り上げの方が多くなる。 例えば、千人ずつ振り分けた結果、Aでは六百回クリックしてもらえて、 Bでは五百回だった。 これが、偶然に起こりうる程度の偏りではない、と統計的に判断されれば、 Aを採用すればよい。 設計と判断にやや高度な数学が必要だが、メッセージはシンプルだ。 悩んでないで両方やってみる。勝った方が勝ち。 このプロセスを繰り返していけば、 製品はどんどん良くなっていくだろう。 ついでに言えば、愚かなミーティングも馬鹿な上司も廃止できる。

このように、理論的には薔薇色なのだが、これが実際は易しくない。 まず、比べたいことだけが比べられるという理想が怪しい。 ランダム化の威力は絶大だが、それでも余計な因子は残る。 例えば、社のホームページでA/Bテストを始めた。 しかし、これはAとBを比較しているのだろうか、 もしかして、以前のホームページからAへの変化と、Bへの変化を比較したのではないか。 Aの方がアクセス数が増えたが、これはAのデザインが一見して派手なので、 単に以前のページからの変化が斬新だったからかも知れない。 このように、何を測ったことになっているのかの理解が、 A/Bテストのブラックボックス性(つまり、「理由は分からないが兎に角こちらが勝ち」性) の故に、覆い隠されてしまうため、テスト結果を正しく生かすことが難しい。 時々、ビジネス書の類が「理由は聞くな、A/Bテストに従え」というような、 激しい主張をしていることがあるが、それは一面の真実ではありつつも、極論の類だろう。 (つまり、残念ながら、ミーティングも上司も必要だ。) 確かに、昔、理由も知らないままに統計学で町をコレラから救った医者がいたかも知れないが、 人類が本当にコレラから救われたのは、我々人間がコレラを理解したからである。

それから、A/Bを比べるための物差しが難しい。 例えば、 "Mynd Daily" の場合、何をもって「勝ち」とすればよいのか。 素朴に考えれば、記事のクリック率だが、本当にそれで良いのか。 既に「フィルターバブル」の話をしたときに、満点が満点ではない、と述べた。 また、通常このようなパーソナライズした推薦システムを試験する時、 その対抗馬には人気ベストテンのようなものが選ばれる。 折角、ユーザ毎の好みにあわせたのだから、少なくとも単なる人気商品セットは超えなければ、 というのだが、本当にそうだろうか。私はそれほど自明ではないと思う。 パーソナライズとは一体何であり、何のためにあるのか。 自分たちは何をしようとしているのか。お客は何を求めているのか。 何を物差しにして測るのかという問題は、 こういった質問に答えない限り解けそうにない。

第三に、弊社のようなベンチャーにとって大問題で、 私が個人的に「スタートアップの鶏と卵の問題」と呼んでいるものがある。 製品を改善するためにA/Bテストを有効に行いたいのだが、 そのためには沢山のユーザ数が必要だ。 しかし、既にその製品が優れていなければ、ユーザが沢山いるはずがない。 ユーザを集めるには先に十分なテストが必要で、 十分にテストするには先に多くのユーザが必要なのである。 この問題はかなり一般的だが、 推薦のような計測が難しく柔らかいシステムにとっては、なおさらクリティカルである。 ベンチャーで成功した人は皆、このジレンマを(偶然の力も借りてのことだろうが) 解いたのだろう。