蛍光ペンの交差点[別館]

"どの点に関心をもつべきか ―をわれわれが学びとるのは,もっぱら仮説からだけである"

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

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

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

 

 

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

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

 

 

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

 

 

ア)研究職にとって

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

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

 

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

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

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

 

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

 

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

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

 

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

 

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

 

 

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

 

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

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

 

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

 

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

 

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

そこから始まる。