「Mobageを支える技術」を執筆しました

Mobageを支える技術」が 6/13 に発売されました。DeNAの11人の著者によりMobageの各技術領域の執筆が行われています。私は13章の「大規模データマイニング」を執筆しました。

Mobageを支える技術 ~ソーシャルゲームの舞台裏~ (WEB+DB PRESS plus)

Mobageを支える技術 ~ソーシャルゲームの舞台裏~ (WEB+DB PRESS plus)

内容・思い

13章「大規模データマイニング」の35Pageでは、読まれた方々が実際に大規模データを対象としたデータマイニング機械学習を「実行できる」ようになることを意図し執筆を行いました。Mahoutを用いたデータマイニング機械学習自体の実行とともに、Mahout実行に必要なデータの前処理や、活用に必要な結果データの解析の実装方法も含め、紹介しています。本章を読まれた皆さんそれぞれが、実際に大規模データを対象としたデータマイニング機械学習の実行を試し、各サービスをより魅力的なものとすることの一助となれたら嬉しいです。


当初、担当として与えられた35Pageをどう使うか、内容をどう絞るか、に最も悩みました。本技術領域は、統計解析、データマイニング機械学習、分散処理、等の各技術要素が絡んでおり、大規模分散での実行や活用に関し、日々挑戦を続けている領域です。理論・アルゴリズムから書き出すとその一部だけで全担当ページ数が埋まってしまいますし、固有のデータ・解析に特化しすぎたり専門的すぎる内容もまた読まれた方々自身での活用を困難にしてしまいます。
世の中のより多くのサービスで蓄積データが解析・活用され、継続的なサービス洗練が行われることに役立てる構成にしたい。そう考え、本章では、読まれた方々が実際に大規模データを対象として、Mahout を用い重要手法に関する一連の実行を行えることを意図した内容構成としています。Mahout が発展途上であるゆえに存在する、分野外の人に対する高い敷居を軽減し、データマイニング機械学習自身とともに、必要な関連するデータ前処理や、結果解析の実装・実行も行え、一連の実行を行えるよう意図しています。


Mahout は データマイニング機械学習の分散実装も提供されている非常に有用なライブラリです。しかしながら発展途上のためドキュメントがほとんどなくソースから読み解く必要があり、かつ、実装を理解するには 分散処理とともに、データマイニング機械学習の知識が必要であり、さらには、実行するためには、Mahout 実装にあった入力データ形式へ変換する実装を行う必要があり、結果を活用するためにも結果ファイルの実装も必要である、という様々な敷居が高く存在していると感じます。そして、それらを説明するドキュメントや書籍が欠けている状況。
担当章の内容が、これらの欠けている箇所を埋め敷居を下げ、読まれた皆さんそれぞれが実際に大規模データを対象とし、データマイニング機械学習の実行を試し、それぞれのサービスをより魅力的なものとすることに少しでも役に立てたら嬉しいです。

Mobage解析事例・構成

今回はページ数の制約上、実行を中心に書いていますが、Mobageでの大規模データマイニング事例、関連構成、PDCAサイクル、等に関し、カンファレンスで話した資料も以下に記載します。ぜひご覧下さい。

データマイニング機械学習 手法

また、データマイニング機械学習の各種方法論に関しても、導入的な内容から講師を行った内容を資料公開していますので興味がある方はこちらをご覧下さい。

データマイニング機械学習の実サービス適用事例

各サービス・ビジネス領域でのデータマイニング活用に関する事例に関しても、運営しているコミュニティで分野を越えてノウハウ共有・議論を行っています。興味のある方はこちらをご覧頂けたらと思います。

Mobageを支える技術

Mobageを支える技術DeNAの各技術領域に関し豪華執筆メンバーが執筆しています。興味がある分野がありましたらぜひご一読頂けたら嬉しいです。

Amazon 執筆者一覧

目次

Part1 ソーシャルゲーム開発技術
1章 ソーシャルゲーム概論
1-1 ソーシャルゲームとは
1-2 ソーシャルゲーム運用


2章 ブラウザベースのソーシャルゲーム(フィーチャーフォン)
2-1 フィーチャーフォンとは
2-2 フィーチャーフォン向けWebアプリケーション開発
2-3 フィーチャーフォン向けのHTML
2-4 Flash Lite
2-5 ソーシャルゲームのUI設計
2-6 セキュリティ対策


3章 ブラウザベースのソーシャルゲーム(スマートフォン)
3-1 スマートフォンの利点
3-2 UIとUXにおける工夫
3-3 ハイパフォーマンス・ソーシャルゲーム
3-4 アニメーションテクニック


4章 アプリケーション版のソーシャルゲーム開発
4-1 アプリケーション方式の構成
4-2 アプリケーション形式のメリットとデメリット
4-3 ゲームエンジンを使う


Part2 ソーシャルゲーム運用技術
5章 35億PV/dayをさばくインフラ構成
5-1 ソーシャルゲームインフラの構成
5-2 Webアプリケーション層における工夫


6章 データベースのレプリケーション
6-1 DB層で重要視される指標
6-2 レプリケーションの活用
6-3 レプリケーション遅延への対策
6-4 レプリケーション遅延を防ぐベストプラクティス


7章 データベースの高性能化/高可用性化
7-1 性能管理と台数削減
7-2 マスター分割(Sharding)の戦略
7-3 サービスの拡大/集約と無停止メンテナンス
7-4 マスターの自動フェイルオーバ


8章 数千台のサーバを運用する技術
8-1 サーバ情報の管理
8-2 サーバセットアップ
8-3 監視


Part3 ソーシャルゲーム効率化技術
9章 MySQLとの付き合い方
9-1 大規模環境におけるデータベースプログラミング
9-2 データベースプログラミングにおけるテスト手法
9-3 MySQLのストアドプロシージャ/トリガ/イベントスケジューラ
9-4 RESTful APIの考え方と実際


10章 Job QueueとMessage Queue
10-1 Job Queue/Message Queueの概要
10-2 Q4Mを利用したworkerの実装


11章 アプリケーションチューニング
11-1 キャッシュを利用する
11-2 さまざまなDNSのキャッシュ
11-3 アプリケーションのチューニング


12章 DevOps
12-1 ログ監視
12-2 運用


Part4 ソーシャルゲーム分析技術
13章 大規模データマイニング
13-1 ユーザの楽しさの法則とサービス洗練
13-2 Clustering
13-3 Frequent Pattern Mining
13-4 Classification
13-5 Recommendation

Mobageを支える技術 ~ソーシャルゲームの舞台裏~ (WEB+DB PRESS plus)

Mobageを支える技術 ~ソーシャルゲームの舞台裏~ (WEB+DB PRESS plus)