[レポート]ビッグデータオールスターズに参加してきました
こんにちは、入社ほやほやの五十嵐です。さて今回は、8/1(土)に行われた『ビッグデータオールスターズ』のレポートを、これまでビッグデータにはあまり馴染みのなかった私の視点から書いてみたいと思います。内容に不備などがありましたら、コメント等でお知らせ頂ければと思います。
今回参加した目的は、クラスメソッドでもビッグデータを使ったデータ分析などのお仕事を行っているため、社内の会話についていくための情報キャッチアップといったところで参加してみました。
このエントリーでは、まずはじめに全体の所感を述べて、その後で個々のセッションについて書いていきたいと思います。 なお、パネルセッションについては非常にざっくばらんなお話が飛び交っていましたので、レポートは控えさせていただきます。
全体の所感
ビッグデータと一口に言っても、基盤を提供するクラウド事業者やサービス業者・ビッグデータをビジネスとして活用するサービス事業者・ビッグデータを分析する技術者など、 係る人が多く、それぞれのレイヤーで最新の動向や事例などが紹介されました。
基盤を提供するクラウド事業者やサービス業者
クラウドの3巨人であるGoogle,MicroSoft,AWSとTreasureDataが登壇されました(敬称略)。 クラウドのビッグデータ基盤については既に3社とも、『安く・早く・簡単に』ができて当たり前になっていて、 その上で顧客のビジネスに対してどのようにアプローチするかをそれぞれが特色を出しておられるという感じでした。 またTreasureDataについては、先に述べたようにクラウドのビッグデータ基盤は『簡単に』作れる環境ではありますが、 とはいえ、技術を選択・採用する面では知識と経験が必要だったりします。そのような人材が会社にいればよいですが、 そうはいかないのも現実としてありますので、そういう時にはTreasureDataのようなすべてワンセットで提供されるビッグデータ基盤を活用するという方法も良い選択だと思いました。
ビッグデータをビジネスとして活用するサービス事業者
サービス事業者からはYahoo!JAPANとLINEが登壇されました(敬称略)。 どちらも日本トップクラスのビッグデータを扱われている企業であるため、現場で起きる問題点や解決へのアプローチが面白かったです。 中でもLINEのKPI分析における異常値を自動検知する仕組み興味が深かったです。
ビッグデータを分析する技術者
ビッグデータ分析技術の紹介として、リクルートテクノロジーズとCyberAgent、GMOインターネットが登壇されました(敬称略)。 技術寄りな内容で分からないことも結構ありましたが、3者とも共通していたことは「Apache Sparkを使っている」ということでした。 私は「Spark」のことを名前を知っているレベルだったのですが、SparkのSQLやStreaming、MLlibなどを使うことで非常に簡単にビッグデータ分析の導入ができるという印象を持ちました。
セッションレポート
セッション①『ビッグデータ×クラウド』
『Googleが描く、MapReduceを超えたビッグデータの世界』
BigQueryの話をメインにされていました。
BigQueryはリレーショナルなデータ構造を持ち、SQLらしいシンプルな構文でビッグデータを高速に分析できるのが特徴ということでした。
なぜ高速に処理できるのかはいくつか理由があり、
- カラム指向ストレージ(データを収納するストレージをカラム毎に分ける)
- データセンターの数千台のサーバを並列で使っている
- データを集約するネットワークもハードウェアレベルでGoogleが独自で開発している
ということでした。
試しに使いたい場合は、こちらから無料枠で体験できます。
Google BigQuery - フルマネージドのビッグデータ分析サービス — Google Cloud Platform
『Cortana さんが、Azure とやってくる!』
まずはじめに先日リリースされたWindows10の中から、Cortanaの紹介がありました。 Cortanaは自然言語での問い合わせでデータベースを検索できるということです。 例えば、PowerBIの検索ボックスに"sales per month"と入力すると月間の売上データが返されました。 PowerBIは簡単に説明するとクラウド上にある巨大なExcelだということで、ビッグデータの分析結果をグラフなどでリアルタイムに表示することができます。
デモではAzureの機能を組み合わせて、Twitterのツイートをストリーミングデータとして入力しリアルタイムで分析してPowerBIに表示するまでを紹介していただきました。
Azureの構成は以下のとおりです。
- EventHub: データのRead
- StreamAnalytics: データのWrite
- PowerBI: データのOutput
またこれらの機能をひとまとめにした『Cortana Analytics Suite』というサービスが近日公開されるということでした。
『AWS Lambdaがもたらすデータ処理の自動化とコモディティ化』
AWS Lambdaの話を中心にAWSを使ったビッグデータ処理についての紹介がありました。 Lambdaを使うことでイベントドリブンな処理が可能になりEC2などのインスタンスを持つ必要がないということです。
AWSを使ったビッグデータ処理の構成については
- データの入力や収集: S3,Kinesis,DynamoDB
- データの処理: Lambda, KCL Apps, Elastic MapReduce
- データの分析: Elastic MapReduce, RedShift, Machine Leaning
などが挙げられていました。
また事例として、IoT(ラズパイ)を使った温度センサーや、ビッグデータではないですがLambdaでAuroraの性能試験を行う構成などの紹介がありました。
『Treasure Dataの作り方』
Treasure Dataはワンストップで使えるデータ分析のプラットフォームをクラウド上で提供されているサービスです。 クラウドを使いつつも内部は独自で作られているものも多く、そこから生まれたものはOSSとして公開する文化があるということです。 その1つとして、Fluentdなどがあります。
セッションの中では独自で開発されている部分のアーキテクチャや高速化の仕組みを紹介していただきました。
Session2 『ビッグデータ×ウェブビジネス』
『ビッグデータとウェブビジネス』
まずはじめにYahoo!JAPANで行われているライブテストのご紹介がありました。 同社では常時40程度のライブテストを行っており、それらにまつわるノウハウが紹介されました。
- インパクトの大きなテストをやった後は暫く時間を置く
- デバイスごとにテスト設計を変える(例えば、デバイスごとに色味が異なる)
- 繁忙期などはユーザの行動が通常と違うので参考にならない
- サービス関連系(例えば、検索結果からオークションサービスへ移動した時の表示順)もしている
- テストの効率化(マルチレイヤー化)は今後の取り組み
次に検索エンジンから見る競合分析の事例を紹介いただきました。検索エンジンの履歴(ビッグデータ)を使うことで、どのようなユーザ層がどのような行動をしているのかが分かるということです。システム構成はHadoop+SolrCloudということです。
『グローバル化・多様化するウェブサービスに対峙する分析環境』
はじめにLINEのデータ分析基盤の紹介がありました。
ちょっと難しかったのでまとめだけ紹介しますと、以下の様な構成を使われているということでした。
- データの収集: Fluentd, Hadoop
- データの集計: Hive, Shib, Norikra
- データの可視化: IBM Cognos, etc...
- データの抽出: Presto, infiniDB, etc...
またもうひとつのテーマとして、サービスがグローバル化・多様化したことによる問題点と解決策の取り組みの紹介がありました。
問題点としては、サービスが成長するとともにKPIが激増し、その結果KPIの結果を見なくなるということが起きるそうです。 そこで『KPI Monitoring』というKPIの結果を自動評価する仕組みを開発されたそうです。 これは、統計処理・機械学習などにより、あらかじめKPIの結果値を予測し、実際の値とのズレがあればアラートを出す仕組みだということです。 実際に予測と結果のグラフが紹介されましたが、かなり高い精度で予測がされていました。
セッション③『ビッグデータ×ウェブ事業を支える技術』
『検索基盤Qass 〜 情報検索の品質と「見る」検索品質のハイブリッドエンジンの追求 〜』
リクルートテクノロジーズで開発された検索基盤である『Qass』の紹介と、 たくさんのサービスを展開されるリクルートならではの検索チューニングについて紹介がありました。
Qassについては@ITの記事に詳しく載っています。
Elasticsearch+Hadoopベースの大規模検索基盤大解剖(1):リクルート全社検索基盤のアーキテクチャ、採用技術、開発体制はどうなっているのか (1/2) - @IT
検索のチューニングについて
一般的に検索品質は以下の3要素で決まるそうです。
- 再現率: ユーザが求めた情報が検索結果に含まれていた割合
- 適合率: 検索結果にユーザが求めた情報が含まれていた割合
- F値: 適合率と再現率の重み付き調和平均
また、システム的に再現率と適合率は相反するので、 適合率をあげようとすると再現率が下がり、再現率を上げようとすると適合率さがるということです。
再現率を上げるには
- 形態素辞書の拡充
- クエリ展開
適合率を上げるには
- 文字の正規化
- 表記ゆれ
- 同義語・略語
などを行うと良いということでした。
また、もう一つ別の方法として『見える検索』ということも取り組んでおられました。 『見える検索』とは検索条件にベストマッチする(検索品質の高い)情報だけを与えるのではなく、 ある程度散らした情報をKKD(感と経験と度胸)で与えるという考え方です。
どのように使い分けるのかというと、 食事や旅行などの比較的判断が軽い情報については『検索品質』、 結婚や修飾などの比較的判断が重い情報については『見る検索』をユーザは求めているということでした。
その他にも、ランキングの最適化や色々な要素を利用したスコア付けなどをハイブリットで取り入れているということです。
『広告配信現場で使うSpark機械学習』
Apache Sparkを使い、CTR推定(Click Through Rate: 広告のクリック率)を行うサンプルを紹介されていました。
私は数学などには疎いので1つ1つの言葉の意味は分かりませんでしたが、数学的(?)な手法を用いた分析が非常に簡単にできるという印象でした。
手順としては3ステップです。
- sparkでCSVファイルを読み込む
- 特徴ベクトルを作る
- ロジスティック回帰による確率推定
またローカル環境でApache Sparkを動かすときは、Apache Zeppelinを使うとインタラクティブな環境でコードを実行したりグラフを表示したりできるOSSだそうです。
『Spark Streaming と Spark GraphX を使用した Twitter解析によるレコメンドサービス例』
Sparkの研究目的で開発された、Mikasa、Inazumaの紹介です。
仕組みとしては以下のようになっています。
- TwitterのストリームをSparkStreamingで取得・集計する
- 日本語解析にはkuromojiを使う
- Apache Kafkaに情報を保存する
- Twitterに投稿したりWebで表示したりする
ソースはそれぞれ公開されています。
動画
ここまでのセッションの内容はYouTubeにも公開されていますので、興味があるセッションがあればチェックをしてみてはいかがでしょうか。