9月21日に開催された、株式会社プリファード・インフラストラクチャー(Preferred Infrastructure(PFI))主催のセミナーに参加した。タイトルは「多様化する情報を支える技術」。場所は日比谷コンベンションホール。
IT業界の人間をスーツ系とギーク系に分ける風習があるが、集まってたのはそのどちらでもないような感じだったな。多分、研究者が多かった気がする。それも大学所属ではなく企業所属の研究者。まあテーマがテーマだからそうなるのか。
一気に書こうと思ったけど力尽きたわ。とりあえず前編。
<追記:2013/1/12>
日が経ちすぎてしまった。もはや後編はない。ただ、日経コンピュータの編集者の「ITに関連する最新の情報はまず経済紙『The Economist』に載る」という報告は面白かった。「クラウド」も「ビッグデータ」もそうだったらしい。ちなみにEconomistがフィーチャーする最新ITワードは「3Dプリンタ」らしい。
基調講演「多様化する情報を支える技術」
講演はPFI代表取締役の西川徹氏。
PFIという会社の社是について。
研究開発には長期的な視点が必要なため、短期での利益を求めがちなベンチャーキャピタルからの融資は受けない。フルスクラッチの受諾開発に拘泥すると社内のリソースがそちらに集中してしまい製品開発ができなくなるため、受諾開発はしない。コンピュータサイエンスの領域は広く、一人で全範囲をカバーすることは不可能。それ故に、社内における技術と人材の多様性を是とする。
ビッグデータ時代のデータには2種類ある。
人が生み出すデータと機械が生み出すデータの2種類だ。
前者はブログ記事やTwitterの書き込みなどの、従来の一般的なビッグデータの文脈において対象となるデータ。後者は、センサーや監視カメラ、GPSやルータといった機械が生成するデータ。これは機械によって自動的に生成されるため、人が生成するデータに比べて量が多く質が低いという特徴を持っている。
「ビッグデータ」という言葉が流行った要因としては、Googleの存在が大きい。Googleが行った分散処理の効率化の試みとその成功は、大規模データ活用の流れを生み出した。
ビッグデータの対象となるデータは多種多様であり、PFIとしてもゲノム情報などを扱うライフサイエンス分野に注目している。
先に挙げた2種類のビッグデータのうち、人が生み出すデータの扱いについては、情報検索技術が有効であると考える。とにかく大量のデータを格納し、検索によってそれを取り出す。データを物理的に格納するレイヤーがあり、そこから個々人に適合したデータ抽出のためのビューとして検索エンジンがあるイメージ。PFIの製品である「Sedue」はこのような利用シーンをサポートしている。
しかし「貯める」「取り出す」では不十分である。「整理」という考えが重要となる。
企業内検索システムにおいては、社員が文書等の情報をアップロードする必要がある。検索エンジンを十分に機能させるためには、それらの情報にラベルやタグといったメタ情報を付与する必要がある。しかしアップロードする際に社員が人手でそれを行うのでは、煩雑さが増し、それ故にアップロードが進まない。必然的に検索エンジンが上手く機能せず、情報共有も上手くいかない。実際、ほとんどの企業内検索エンジンは十分に活用されていない。
このジレンマをテクノロジーを用いて解決することを目指している。そこで使う技術は機械学習だ。アップロードしたいドキュメントをブラウザにドラッグすれば、自動的に分類をサジェストしてくれる機能を現在開発している。
機械が生み出すデータの扱いについて。
近年のデバイスの性能向上により、生成されるデータの量とスピードが爆発的に増加した。これにより、一般的なデータ解析処理に不可欠な「データを貯める」ということが不可能となった。
貯めることが不可能なデータを省スペースで解析するにはどうすればよいか。複合イベント処理(Complex Event Processing:CEP)がその解となる。分散処理のオンライン化、ストリーム化。データを貯めることなく、データが発生したタイミングでリアルタイムに処理する。PFIが開発した「Jubatus」は、そのような利用シーンをサポートする。中央サーバにデータを集めることなく、エッジにあるマシンが機械学習の手法を用い、有用性が一定の閾値を超えたデータのみを別ノードに転送する。
ウェブの発達によって人が生み出す情報が増えた。しかし一方で機械が生み出す情報も増えた。これらはデータの性質も生成のスループットも異なる。故に最適解となる技術も違う。
人が生み出すデータは、格納することは容易だがいかに整理するかが課題となる。機械が生み出すデータは格納すること自体が困難だ。
「ITアーキテクチャはどこへ向かうのか」
講演は統計数理研究所副所長の丸山宏氏。
イアン・エアーズの『その数学が戦略を決める』という本がある。そこでは、勘と経験に支えられたプロフェッショナルの判断を、統計データによる判断が凌駕する事例が書かれている。
データに基づいて立てられたワインの品質を推定するモデルを用いれば、素人でもワインのプロよりも正確に品質についての判断を下すことができる。
大量のデータを見て、それを即座にビッグデータであると判断するのは早計だ。
例えば、あるショッピングサイトのアクセスログは年間で30テラバイトにもなる。このデータを元にどのページがよくアクセスされるかを調べたい。これはビッグデータの問題か? 違う。何故ならこの問題を解くにはランダムサンプリングをすれば十分だからだ。サンプリングをした後、Excelで分析すれば事足りる。
Hadoopのような分散処理でしか解けない問題は意外に少ない。多くのデータは、パソコン1台でも処理できる程度の量か、あるいはHadoopでも間に合わないほどの量である。
因果関係と相関関係は違う。
国立国語研究所が山形県鶴岡市において方言の調査を行っている。ここで得られたデータは、テレビを見る時間が長い人ほど方言の使用率が高いということを示唆しているように見える。しかしテレビは多くの場合共通語が流れており、それを見た人間は共通語を習得するはずで、この結果は直観に反する。
これは因果関係と相関関係を取り違えた例である。高齢者ほどテレビを見る時間が長い。そして同時に、高齢者ほど方言の使用率が高い。そこには相関関係があるだけであり、因果関係はない。
データの理解は、経営の問題である。データから何らかの知見が得られたとしても、経営陣が正しい意思決定ができなければ意味がない。
Googleの検索結果画面には、検索結果(Organic Search)と一緒に検索内容に対応した広告(Paid Search)が表示される。Marriott Hotelというホテルは、Googleに料金を払ってPaid Searchを出していた。しかしある時、Paid Searchに彼らのホテルが表示される際、同時にOrganic Searchにも表示されていることに気付いた。それならばPaid Searchは不要ではないかと試しに2週間Paid Searchを止めてみた。結果、ホテルの予約件数は変わらなかった。
しかし、Marriott Hotelはその後もPaid Searchを出し続けている。これはデータが得られたにもかかわらず意思決定が行われなかった例である。
1980年代は、様々なコンピュータアーキテクチャが提唱された時代だった。
CM-1、SPARC、Transputerといったコンピュータが出現した。
このあたりの動向についてはMark Oskinが「The Revolution Inside the Box」というサーベイを書いている。
しかし90年代に入って、めっきりアーキテクチャの提唱は行われなくなった。
Intelのアーキテクチャが市場を席巻し、ムーアの法則の元に「待っていればIntelがより速いプロセッサを開発してくれる」といった認識が蔓延した。かくして、ハードウェアは隠蔽された。
しかし、今日のビッグデータにおいては、データをどのノードに配置するか、計算をどのノードで行うかが重要となってくる。再びハードウェアを意識しなければならない時代になった。
クラウドの次に来る新しいアーキテクチャは何か?
PFIの岡野原氏が言った言葉が参考になる。Edge-Heavy Data。中央サーバに大量のデータを集めるのではなく、末端のそれぞれのノードに大量のデータがあることを前提としたアーキテクチャ。
機械によって自動で生成される大量のデータには、本質的でない副産物的なデータが多く含まれている。データ量は増えたが、1ビット当たりのデータの価値が下がっている。
これはデータの価値と独立性を重んじ、データセンターに置くことを奨励された我々世代の考え方とは異なる。
2011年には国内に2,010万台のスマートフォンが出荷された。そのそれぞれに10GBのスペースがあるとすれば、全部で200PBのデータが入ることになる。マッキンゼーのレポートによれば、国内のデータ総量は年間400PBらしい。エッジであるスマートフォンに、国内のデータの半分を入れるキャパシティがあることになる。
Edge-Heavy Dataに特化したアーキテクチャを考える必要がある。
複数台の監視カメラに対して、そのすべてのカメラに写っている人物を取得するクエリを投げるとする。この目的を達成するためには、それらのカメラ間においてデータのマッチングが必要となる。カメラ間でサマリ情報を交換する必要がある。
分布表現をファーストクラスオブジェクトとする言語が必要だ。
センサーのデータは分布表現で表される。値がスカラーか分布かを意識しない言語。
コンピュータサイエンスは欠測値のあるデータに対してあまり考えてこなかったように思う。
アーキテクチャの変節点を見極めよう。
「グローバル化する情報処理」
講演はPFIの伊藤敬彦氏。
Sedueにおける多言語処理の話。
多言語処理とは翻訳のことではなく、システムを任意の自然言語で動作させることを言う。
日本企業のグローバル化によって、現地法人を持つ企業を現れてきた。これにより様々な言語で書かれた社内文書を処理の対象とする必要が生じている。既存のシステムの多くは、英語などの単一の言語でしか動かない場合がある。これでは、その言語以外を用いる社員はシステムの恩恵を受けることができない。
この問題を解決するために、PFIでは多言語解析基盤「Screw」を開発した。
単語分割、正規化、固有表現抽出といった様々な言語処理ツールを組み合わせることができる。入力文書の言語を自動同定してその言語に合った言語ツールで処理してくれる。処理結果はJSON形式で出力できる。
ScrewはSedueに同梱して販売する。順次対応言語を増やしていく。
将来的にはScrew単体で販売することを考えている。