「Mobageを支える技術」を執筆しました
「Mobageを支える技術」が 6/13 に発売されました。DeNAの11人の著者によりMobageの各技術領域の執筆が行われています。私は13章の「大規模データマイニング」を執筆しました。
Mobageを支える技術 ~ソーシャルゲームの舞台裏~ (WEB+DB PRESS plus)
- 作者: DeNA
- 出版社/メーカー: 技術評論社
- 発売日: 2012/06/13
- メディア: 単行本(ソフトカバー)
- 購入: 31人 クリック: 737回
- この商品を含むブログを見る
内容・思い
13章「大規模データマイニング」の35Pageでは、読まれた方々が実際に大規模データを対象としたデータマイニング・機械学習を「実行できる」ようになることを意図し執筆を行いました。Mahoutを用いたデータマイニング・機械学習自体の実行とともに、Mahout実行に必要なデータの前処理や、活用に必要な結果データの解析の実装方法も含め、紹介しています。本章を読まれた皆さんそれぞれが、実際に大規模データを対象としたデータマイニング・機械学習の実行を試し、各サービスをより魅力的なものとすることの一助となれたら嬉しいです。
当初、担当として与えられた35Pageをどう使うか、内容をどう絞るか、に最も悩みました。本技術領域は、統計解析、データマイニング、機械学習、分散処理、等の各技術要素が絡んでおり、大規模分散での実行や活用に関し、日々挑戦を続けている領域です。理論・アルゴリズムから書き出すとその一部だけで全担当ページ数が埋まってしまいますし、固有のデータ・解析に特化しすぎたり専門的すぎる内容もまた読まれた方々自身での活用を困難にしてしまいます。
世の中のより多くのサービスで蓄積データが解析・活用され、継続的なサービス洗練が行われることに役立てる構成にしたい。そう考え、本章では、読まれた方々が実際に大規模データを対象として、Mahout を用い重要手法に関する一連の実行を行えることを意図した内容構成としています。Mahout が発展途上であるゆえに存在する、分野外の人に対する高い敷居を軽減し、データマイニング・機械学習自身とともに、必要な関連するデータ前処理や、結果解析の実装・実行も行え、一連の実行を行えるよう意図しています。
Mahout は データマイニング・機械学習の分散実装も提供されている非常に有用なライブラリです。しかしながら発展途上のためドキュメントがほとんどなくソースから読み解く必要があり、かつ、実装を理解するには 分散処理とともに、データマイニング・機械学習の知識が必要であり、さらには、実行するためには、Mahout 実装にあった入力データ形式へ変換する実装を行う必要があり、結果を活用するためにも結果ファイルの実装も必要である、という様々な敷居が高く存在していると感じます。そして、それらを説明するドキュメントや書籍が欠けている状況。
担当章の内容が、これらの欠けている箇所を埋め敷居を下げ、読まれた皆さんそれぞれが実際に大規模データを対象とし、データマイニング・機械学習の実行を試し、それぞれのサービスをより魅力的なものとすることに少しでも役に立てたら嬉しいです。
Mobage解析事例・構成
今回はページ数の制約上、実行を中心に書いていますが、Mobageでの大規模データマイニング事例、関連構成、PDCAサイクル、等に関し、カンファレンスで話した資料も以下に記載します。ぜひご覧下さい。
データマイニング・機械学習の実サービス適用事例
各サービス・ビジネス領域でのデータマイニング活用に関する事例に関しても、運営しているコミュニティで分野を越えてノウハウ共有・議論を行っています。興味のある方はこちらをご覧頂けたらと思います。
Mobageを支える技術
Mobageを支える技術はDeNAの各技術領域に関し豪華執筆メンバーが執筆しています。興味がある分野がありましたらぜひご一読頂けたら嬉しいです。
目次
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)
- 作者: DeNA
- 出版社/メーカー: 技術評論社
- 発売日: 2012/06/13
- メディア: 単行本(ソフトカバー)
- 購入: 31人 クリック: 737回
- この商品を含むブログを見る
書評
- DeNAさん著の「Mobageを支える技術」を読んだ - 元RX-7乗りの適当な日々
- 「Mobageを支える技術」を読みました - blog.nomadscafe.jp
- ガチでDeNAの技術情報が詰まった「Mobageを支える技術」を読んだ - まいんだーのはてなブログ
- Mobageを支える技術を読んだ ~個人的にベストだったのはxaicronさんの11章~ - marqs blog
- 大規模Webアプリのノウハウが濃縮「Mobageを支える技術」 | Act as Professional
- YappoLogs: DeNA のノウハウが12個も馬鹿正直に書いてある「Mobageを支える技術 ~ソーシャルゲームの舞台裏~」を読んだ