SlideShare a Scribd company logo
1 of 17
Download to read offline
お金をかけず広告配信の
ログ分析システムを作った話


    Kauli株式会社
      高田 勝裕
はじめに

• 本日は,私が分析システムを開発したときに,いかにお
 金をかけないように工夫してシステムを構築したかを説
 明します

• ビジネス側面での運用を重視しています
アジェンダ

• 自己紹介

• なぜお金をかけないのか

• 現在のシステムの概要

• 可用性や安定性をあげる努力

• まとめ
自己紹介

• 高田 勝裕, Ph.D.
   •   Handle: Karubi Namuru

   •   Twitter: @karubi

   •   Facebook: http://www.facebook.com/karubi/

• 職業:Kauli株式会社 代表
   •   2009年9月に「Kauli」アドネットワークサービスを開始,現在は広
       告枠の収益最大化プラットフォームとして提供

   •   アルゴリズムの開発,分析システムの構築,そして広告営業

   •   ここ10年は海外も含めて広告の仕事ばかりです
なぜ広告配信で分析システムが必要か

• 配信する広告を閲覧者のニーズに合致させるため
    閲覧者の興味を引く,または潜在的な需要を喚起する

• 広告主に多くの成果を上げてもらうため
    予算内で広告主のサイトに最大の見込み客を送る

• メディア(サイトオーナー)の収益を増やすため
    表示回数において最大の報酬を提供する
なぜお金をかけないのか

• 使えるお金に限界がある
  → まずは営業にお金をかけるべき

• 他社が高級なシステムを導入している
  → 商用DWHとかSPSSとかスタートアップには無理

• 趣味の世界
  → OSSを使い倒したり,300円のサーバで処理させたり

• 思想の世界
  → お金をかけたら負けだと思った
システムの要件

• 使える分析システムには計算能力が必要

• アルゴリズムを時々変えたいので依存性を排除する

• 必要なときにリソースを投入・開放できる仕組み

• OSSでやりくり

• その時々で最も安いリソースに乗り換えたい
おおまかな分析システムの概要



        前処理

        Lucene
                  計算
ストレージ
 サーバ    Hadoop
                 Mahout
        HBase
各パートの役割概要

• 前処理
  •   アクセスログをユニークユーザごとにまとめる仕事

  •   まとめたログを必要な粒度にばらす仕事

• 計算
  •   まとまったデータを分析する仕事

  •   分析結果を評価する仕事
前処理の中身

• データを整形する

  • Lucene
     •   クローラが拾ってきたウェブページから得た特徴語等の処理

     •   その他

• ユニークユーザ別にまとめる

  • Hadoop and HBase
     •   細かくログを切り刻む処理

     •   個別のIDに応じて集合をつくる処理
前処理のこだわった点

• 日々のログの量が一定ではない

  •   単純な作業だがHadoopにまかせること

• アルゴリズムによってデータ構造を変えなければならない

  •   Hadoop and Hbase の組み合わせで楽チン

• 言語別の実装をできる限り楽をしたい

  •   LuceneのAnalyserは多言語対応
具体的な前処理の仕事

• 個々人の意識が明示的なデータの整形
  •   たとえば,クリック,「いいね!」,訪問時刻,ブラウザ(笑

• 逆に暗黙的なデータの整形
  •   たとえば,訪問履歴(URLなど)や頻度,選択内容の組み合わせ,
      閲覧時間,特徴語

• データセットにまとめる
計算の中身

• 傾向に基づく分類

• 頻出パターンの抽出

  • Mahout
計算のこだわった点

• アルゴリズムを時々変えること

  •   Mahoutでサポートされた入力形式を守れば,データ入力の問題
      はない

• ローカルサーバがあふれたときに,ネット上のリソースで仕事を
 させたい

  •   EC2にイメージをつくっていつでも起動できる
計算の具体的な仕事(1)明示的データ

• 容易な方法で分析可能
          演繹的(単純な加算や条件分岐)

• 評価
          大小条件の評価

          プリセット値との対応付け
計算の具体的な仕事(2)暗黙的データ

• データマイニング
  •   発掘や予測などの計算をおこなう

          クリック,ウェブページコンテンツ,訪問頻度,ブラウザ,成果など,複
           数の要素の組み合わせを利用して,意味を持つ組み合わせを発掘
           する


• 評価
  •   正確性の評価

          Recall(再現率),Precision(精度)

          Coverage(全体カバー)や Diversity(多様性)
まとめ

• 広告配信の分析システムをお金をかけず作ったことをお
 話しました

• 御質問などは gogokarubi@gmail.com まで

• なお,広告配信や分析に興味がある方はぜひ当方まで
 連絡をください!
   •   エンジニア(Python使い),学生インターンを募集中

   •   広告営業も常時募集中です

More Related Content

What's hot

Spark Structured StreamingでKafkaクラスタのデータをお手軽活用
Spark Structured StreamingでKafkaクラスタのデータをお手軽活用Spark Structured StreamingでKafkaクラスタのデータをお手軽活用
Spark Structured StreamingでKafkaクラスタのデータをお手軽活用Sotaro Kimura
 
EC-CUBEとAWSの美味しい関係?
EC-CUBEとAWSの美味しい関係?EC-CUBEとAWSの美味しい関係?
EC-CUBEとAWSの美味しい関係?義隆 川路
 
Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会Masakazu Muraoka
 
ちょっと分かった気になるAzure概要
ちょっと分かった気になるAzure概要ちょっと分かった気になるAzure概要
ちょっと分かった気になるAzure概要Keiji Kamebuchi
 
はじめよう、firebase
はじめよう、firebaseはじめよう、firebase
はじめよう、firebaseyumi_chappy
 
JAWS-UG Nagoya in AWS Cloud Roadshow 20141125
JAWS-UG Nagoya in AWS Cloud Roadshow 20141125JAWS-UG Nagoya in AWS Cloud Roadshow 20141125
JAWS-UG Nagoya in AWS Cloud Roadshow 20141125陽平 山口
 
ハンズのDynamoDBクラウドパターン
ハンズのDynamoDBクラウドパターンハンズのDynamoDBクラウドパターン
ハンズのDynamoDBクラウドパターンNaoyuki Yamazaki
 
APIコンテスト02 藤岡宏和 クラベルライブラリ
APIコンテスト02 藤岡宏和 クラベルライブラリAPIコンテスト02 藤岡宏和 クラベルライブラリ
APIコンテスト02 藤岡宏和 クラベルライブラリcalil jp
 
Amazon ec2とは何か?
Amazon ec2とは何か?Amazon ec2とは何か?
Amazon ec2とは何か?Shinya_131
 
Sql world を支える技術
Sql world を支える技術Sql world を支える技術
Sql world を支える技術Oda Shinsuke
 
CloudSearchによる全文検索 - CM:道 2014/08/01
CloudSearchによる全文検索 - CM:道 2014/08/01 CloudSearchによる全文検索 - CM:道 2014/08/01
CloudSearchによる全文検索 - CM:道 2014/08/01 Shuji Watanabe
 
JAWSUG architecture-crowler
JAWSUG architecture-crowlerJAWSUG architecture-crowler
JAWSUG architecture-crowlerTakuro Sasaki
 
利用者主体で行う分析のための分析基盤
利用者主体で行う分析のための分析基盤利用者主体で行う分析のための分析基盤
利用者主体で行う分析のための分析基盤Sotaro Kimura
 
Crawler Commons
Crawler CommonsCrawler Commons
Crawler Commonschibochibo
 
第一回Web技術勉強会 efkスタック編
第一回Web技術勉強会 efkスタック編第一回Web技術勉強会 efkスタック編
第一回Web技術勉強会 efkスタック編tzm_freedom
 
いまいまMySQL@OSC2016長岡
いまいまMySQL@OSC2016長岡いまいまMySQL@OSC2016長岡
いまいまMySQL@OSC2016長岡sakaik
 
Couchbase N1QL (Couchbase Meetup #7)
Couchbase N1QL (Couchbase Meetup #7)Couchbase N1QL (Couchbase Meetup #7)
Couchbase N1QL (Couchbase Meetup #7)bunjik
 
Pyvmomiとansibleのdynamic inventory
Pyvmomiとansibleのdynamic inventoryPyvmomiとansibleのdynamic inventory
Pyvmomiとansibleのdynamic inventoryKentaro Kawano
 

What's hot (20)

Spark Structured StreamingでKafkaクラスタのデータをお手軽活用
Spark Structured StreamingでKafkaクラスタのデータをお手軽活用Spark Structured StreamingでKafkaクラスタのデータをお手軽活用
Spark Structured StreamingでKafkaクラスタのデータをお手軽活用
 
EC-CUBEとAWSの美味しい関係?
EC-CUBEとAWSの美味しい関係?EC-CUBEとAWSの美味しい関係?
EC-CUBEとAWSの美味しい関係?
 
Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会
 
ちょっと分かった気になるAzure概要
ちょっと分かった気になるAzure概要ちょっと分かった気になるAzure概要
ちょっと分かった気になるAzure概要
 
はじめよう、firebase
はじめよう、firebaseはじめよう、firebase
はじめよう、firebase
 
JAWS-UG Nagoya in AWS Cloud Roadshow 20141125
JAWS-UG Nagoya in AWS Cloud Roadshow 20141125JAWS-UG Nagoya in AWS Cloud Roadshow 20141125
JAWS-UG Nagoya in AWS Cloud Roadshow 20141125
 
JAWS-UG Tokyo SAP
JAWS-UG Tokyo SAP JAWS-UG Tokyo SAP
JAWS-UG Tokyo SAP
 
ハンズのDynamoDBクラウドパターン
ハンズのDynamoDBクラウドパターンハンズのDynamoDBクラウドパターン
ハンズのDynamoDBクラウドパターン
 
APIコンテスト02 藤岡宏和 クラベルライブラリ
APIコンテスト02 藤岡宏和 クラベルライブラリAPIコンテスト02 藤岡宏和 クラベルライブラリ
APIコンテスト02 藤岡宏和 クラベルライブラリ
 
Amazon ec2とは何か?
Amazon ec2とは何か?Amazon ec2とは何か?
Amazon ec2とは何か?
 
Sql world を支える技術
Sql world を支える技術Sql world を支える技術
Sql world を支える技術
 
CloudSearchによる全文検索 - CM:道 2014/08/01
CloudSearchによる全文検索 - CM:道 2014/08/01 CloudSearchによる全文検索 - CM:道 2014/08/01
CloudSearchによる全文検索 - CM:道 2014/08/01
 
JAWSUG architecture-crowler
JAWSUG architecture-crowlerJAWSUG architecture-crowler
JAWSUG architecture-crowler
 
利用者主体で行う分析のための分析基盤
利用者主体で行う分析のための分析基盤利用者主体で行う分析のための分析基盤
利用者主体で行う分析のための分析基盤
 
Crawler Commons
Crawler CommonsCrawler Commons
Crawler Commons
 
第一回Web技術勉強会 efkスタック編
第一回Web技術勉強会 efkスタック編第一回Web技術勉強会 efkスタック編
第一回Web技術勉強会 efkスタック編
 
いまいまMySQL@OSC2016長岡
いまいまMySQL@OSC2016長岡いまいまMySQL@OSC2016長岡
いまいまMySQL@OSC2016長岡
 
Couchbase N1QL (Couchbase Meetup #7)
Couchbase N1QL (Couchbase Meetup #7)Couchbase N1QL (Couchbase Meetup #7)
Couchbase N1QL (Couchbase Meetup #7)
 
Pyvmomiとansibleのdynamic inventory
Pyvmomiとansibleのdynamic inventoryPyvmomiとansibleのdynamic inventory
Pyvmomiとansibleのdynamic inventory
 
Talk: serverless-express
Talk: serverless-expressTalk: serverless-express
Talk: serverless-express
 

Similar to 広告ログの解析システム

Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshopDaisuke Sugai
 
初心者向け負荷軽減のはなし
初心者向け負荷軽減のはなし初心者向け負荷軽減のはなし
初心者向け負荷軽減のはなしOonishi Takaaki
 
地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイントKentaro Matsui
 
Snowflake Architecture and Performance
Snowflake Architecture and PerformanceSnowflake Architecture and Performance
Snowflake Architecture and PerformanceMineaki Motohashi
 
20121205 nosql(okuyama fs)セミナー資料
20121205 nosql(okuyama fs)セミナー資料20121205 nosql(okuyama fs)セミナー資料
20121205 nosql(okuyama fs)セミナー資料Takahiro Iwase
 
Firebase & BigQuery で Android アプリの成⻑を支える
Firebase & BigQuery で Android アプリの成⻑を支えるFirebase & BigQuery で Android アプリの成⻑を支える
Firebase & BigQuery で Android アプリの成⻑を支える健一 辰濱
 
OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化Nobuyori Takahashi
 
アジャイルにモデリングは必要か
アジャイルにモデリングは必要かアジャイルにモデリングは必要か
アジャイルにモデリングは必要かHiromasa Oka
 
Jubatusでマルウェア分類
Jubatusでマルウェア分類Jubatusでマルウェア分類
Jubatusでマルウェア分類Shuzo Kashihara
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とToru Takahashi
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とToru Takahashi
 
データ分析を支える技術 DWH再入門
データ分析を支える技術 DWH再入門データ分析を支える技術 DWH再入門
データ分析を支える技術 DWH再入門Satoru Ishikawa
 
Data Engineering at VOYAGE GROUP #jawsdays
Data Engineering at VOYAGE GROUP #jawsdaysData Engineering at VOYAGE GROUP #jawsdays
Data Engineering at VOYAGE GROUP #jawsdaysKenta Suzuki
 
Data Engineering at VOYAGE GROUP #jawsdays
Data Engineering at VOYAGE GROUP #jawsdaysData Engineering at VOYAGE GROUP #jawsdays
Data Engineering at VOYAGE GROUP #jawsdaysVOYAGE GROUP
 
Big data解析ビジネス
Big data解析ビジネスBig data解析ビジネス
Big data解析ビジネスMie Mori
 
【IVS CTO Night & Day】AWSにおけるビッグデータ活用
【IVS CTO Night & Day】AWSにおけるビッグデータ活用【IVS CTO Night & Day】AWSにおけるビッグデータ活用
【IVS CTO Night & Day】AWSにおけるビッグデータ活用Amazon Web Services Japan
 
レコメンデーション(協調フィルタリング)の基礎
レコメンデーション(協調フィルタリング)の基礎レコメンデーション(協調フィルタリング)の基礎
レコメンデーション(協調フィルタリング)の基礎Katsuhiro Takata
 

Similar to 広告ログの解析システム (20)

Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshop
 
初心者向け負荷軽減のはなし
初心者向け負荷軽減のはなし初心者向け負荷軽減のはなし
初心者向け負荷軽減のはなし
 
Hadoop事始め
Hadoop事始めHadoop事始め
Hadoop事始め
 
地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント
 
Snowflake Architecture and Performance
Snowflake Architecture and PerformanceSnowflake Architecture and Performance
Snowflake Architecture and Performance
 
20121205 nosql(okuyama fs)セミナー資料
20121205 nosql(okuyama fs)セミナー資料20121205 nosql(okuyama fs)セミナー資料
20121205 nosql(okuyama fs)セミナー資料
 
Firebase & BigQuery で Android アプリの成⻑を支える
Firebase & BigQuery で Android アプリの成⻑を支えるFirebase & BigQuery で Android アプリの成⻑を支える
Firebase & BigQuery で Android アプリの成⻑を支える
 
OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化
 
JAWS DAYS 2022
JAWS DAYS 2022JAWS DAYS 2022
JAWS DAYS 2022
 
アジャイルにモデリングは必要か
アジャイルにモデリングは必要かアジャイルにモデリングは必要か
アジャイルにモデリングは必要か
 
Jubatusでマルウェア分類
Jubatusでマルウェア分類Jubatusでマルウェア分類
Jubatusでマルウェア分類
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
 
Ocha_MLflow_MLOps.pdf
Ocha_MLflow_MLOps.pdfOcha_MLflow_MLOps.pdf
Ocha_MLflow_MLOps.pdf
 
データ分析を支える技術 DWH再入門
データ分析を支える技術 DWH再入門データ分析を支える技術 DWH再入門
データ分析を支える技術 DWH再入門
 
Data Engineering at VOYAGE GROUP #jawsdays
Data Engineering at VOYAGE GROUP #jawsdaysData Engineering at VOYAGE GROUP #jawsdays
Data Engineering at VOYAGE GROUP #jawsdays
 
Data Engineering at VOYAGE GROUP #jawsdays
Data Engineering at VOYAGE GROUP #jawsdaysData Engineering at VOYAGE GROUP #jawsdays
Data Engineering at VOYAGE GROUP #jawsdays
 
Big data解析ビジネス
Big data解析ビジネスBig data解析ビジネス
Big data解析ビジネス
 
【IVS CTO Night & Day】AWSにおけるビッグデータ活用
【IVS CTO Night & Day】AWSにおけるビッグデータ活用【IVS CTO Night & Day】AWSにおけるビッグデータ活用
【IVS CTO Night & Day】AWSにおけるビッグデータ活用
 
レコメンデーション(協調フィルタリング)の基礎
レコメンデーション(協調フィルタリング)の基礎レコメンデーション(協調フィルタリング)の基礎
レコメンデーション(協調フィルタリング)の基礎
 

More from Katsuhiro Takata

自然言語処理 with NLTK
自然言語処理 with NLTK自然言語処理 with NLTK
自然言語処理 with NLTKKatsuhiro Takata
 
高次元データ処理,手書き編(Dimension Reduction)
高次元データ処理,手書き編(Dimension Reduction)高次元データ処理,手書き編(Dimension Reduction)
高次元データ処理,手書き編(Dimension Reduction)Katsuhiro Takata
 
相関マイニング(バスケット分析)
相関マイニング(バスケット分析)相関マイニング(バスケット分析)
相関マイニング(バスケット分析)Katsuhiro Takata
 
ネットワークマイニング(グラフ構造分析)
ネットワークマイニング(グラフ構造分析)ネットワークマイニング(グラフ構造分析)
ネットワークマイニング(グラフ構造分析)Katsuhiro Takata
 
協調フィルタリング with Mahout
協調フィルタリング with Mahout協調フィルタリング with Mahout
協調フィルタリング with MahoutKatsuhiro Takata
 

More from Katsuhiro Takata (6)

自然言語処理 with NLTK
自然言語処理 with NLTK自然言語処理 with NLTK
自然言語処理 with NLTK
 
高次元データ処理,手書き編(Dimension Reduction)
高次元データ処理,手書き編(Dimension Reduction)高次元データ処理,手書き編(Dimension Reduction)
高次元データ処理,手書き編(Dimension Reduction)
 
Frequency Pattern Mining
Frequency Pattern MiningFrequency Pattern Mining
Frequency Pattern Mining
 
相関マイニング(バスケット分析)
相関マイニング(バスケット分析)相関マイニング(バスケット分析)
相関マイニング(バスケット分析)
 
ネットワークマイニング(グラフ構造分析)
ネットワークマイニング(グラフ構造分析)ネットワークマイニング(グラフ構造分析)
ネットワークマイニング(グラフ構造分析)
 
協調フィルタリング with Mahout
協調フィルタリング with Mahout協調フィルタリング with Mahout
協調フィルタリング with Mahout
 

広告ログの解析システム