SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
1
hivemallを使って
4日間で性別推定した話
2
自己紹介
名前 : 渡辺将人
職業 : フリーランスのIT系なんでも屋
現在はScaleout社のデータ分析の仕事を手伝い中
(Webサイトのカテゴリ分類とか、ユーザの行動から性別年
代推定とか、さらっとできることを担当)
                副業募集中デス
3
本日のお題
 Scaleout社(DSP)のデータについて
 hivemallの利用事例(性別年代推定)
4
DSPについて
というオークション形式の広告の買い付けを
日に何十億回とやるシステム
というオークション形式の広告の買い付けを
日に何十億回とやるシステム
SSP「今、この枠にリクエスト来てるけど、
広告出さない?」
DSP「その枠だったら、0.042円で買うよ」
SSP「他の会社が高値付け
たから、そっちに売っちゃった」
SSP「よし、売った」
5
1日のリクエスト
 日によって増減があるけど数十億/日
(日々増加してて辛い)
 ユーザ数は約1億弱
(過去2週間以内に3日間以上リクエストが来てるユーザ。2週間以
内に消されたクッキーも含んでる)
6
ログに記録されてる主な情報
 広告枠のID
(どのURLに貼れている広告はたいていわかる。どの場所に表示
されるかは実はよくわからない)
 Cookieに記録されているユーザのID
(Cookieが消えればなくなる揮発性)
 HTTPリクエストに含まれる一般的な情報
(user-agent / referer等々)
広告オークション市場のログが
記録されているとも言える
広告オークション市場のログが
記録されているとも言える
7
性別・年代推定について
●
性別ははっきりした傾向を持つ行動をしていれ
ば、85%以上は正解できる
● 年代は難しく50%弱しか精度が出ない
(ないよりはマシ程度)
という情報があるという前提で
ここから性別・年代推定のお話
という情報があるという前提で
ここから性別・年代推定のお話
8
推定方法
● Demographic Prediction Based on User’s
Browsing Behavior を少し参考に
(http://www2007.org/papers/paper686.pdf)
● Microsoftが出した論文で、ユーザの行動履歴から性
別は約80%、年代は約60%推定できたらしい
9
利用データ
● 閲覧サイト(ドメイン) : 約14万件
(一部ドメインは下位階層まで取得)
● 閲覧サイトのカテゴリ : 146件
(カテゴリ分類器で自動分類したもの+出現上位のみ人力)
● 閲覧広告サイト : 可変(3000〜6000件)
(クリック・コンバージョンに限らず広告サイトへのリーチ)
15万次元 × 300万のsparseな行列
hiveならこれくらいは軽い
15万次元 × 300万のsparseな行列
hiveならこれくらいは軽い
10
書いたコード(1)
● hivemallの形式で情報を出力するMapReduce
処理
(64行。Scala。Hiveでcreate tableの際に指定したseparatorで区
切ってwriteして、LOAD DATA INPATH)
(そのうちUDFで書こうと思って半年間放置)
ID0001 ["101511:0.5","2117:0.027","2114:0.027","2017:0.189","2015:1.0", ...
ID0002 ["118882:0.5","2020:1.0","102901:1.0","2105:0.25","127341:0.5","2015:0.5", ...
ID0003 ["2117:0.0714","2014:0.142","103698:1.0","100757:0.5","2015:1.0", ...
11
書いたコード(2)
hivemallで教育用データを準備するクエリ (51
行。testデータ分割。rand_amplify x3)
● hivemallでtrainするクエリ
(28行。multiclass_scw利用)
●
検定用クエリ(53行。80%でtrain、20%でtest)
呼び出すシェルを含めても200行ちょっと
書くだけなら1日、あと3日は検証
呼び出すシェルを含めても200行ちょっと
書くだけなら1日、あと3日は検証
12
正解率
● hivemallでのclassification
case when sum(m.weight * t.value) > 0.0 then 1 else -1 end
(https://github.com/myui/hivemall/wiki/Iteration-training-of-new20-
binary-multiclass-classification-with-CW-multiclass-CW)
● 0.0付近のデータは「男性なのか女性なのかよくわか
らない人」が集まる
● 分類を0.0からずらすと正解率が変化する
case
when sum(m.weight * t.value) > 1.0 then 1
when sum(m.weight * t.value) < -1.0 then -1
else 0 end
●
13
正解率の変化(男性)
● 0.5 0.529
● 1.0 0.584
● 1.5 0.627
● 2.0 0.668
● 2.5 0.705
● 3.0 0.724
● 3.5 0.751
● 4.0 0.773
● 4.5 0.790
● 5.0 0.804
● 5.5 0.822
● 6.0 0.833
● 6.5 0.846
● 7.0 0.849
● 7.5 0.861
● 8.0 0.862
● 8.5 0.871
● 9.0 0.867
● 9.5 0.876
● 10 0.875
● sum(m.weight * t.value)が0.0〜0.5区間は正解率52.9%
5.0~5.5区間で80.4%、9.5〜10.0区間で87.5%
● sum(m.weight * t.value)が0.0〜0.5区間は正解率52.9%
5.0~5.5区間で80.4%、9.5〜10.0区間で87.5%
14
正解率の変化(女性)
● -0.5 0.558
● -1.0 0.600
● -1.5 0.650
● -2.0 0.686
● -2.5 0.718
● -3.0 0.739
● -3.5 0.766
● -4.0 0.776
● -4.5 0.794
● -5.0 0.808
● -5.5 0.816
● -6.0 0.823
● -6.5 0.828
● -7.0 0.844
● -7.5 0.848
● -8.0 0.851
● -8.5 0.858
● -9.0 0.865
● -9.5 0.865
● -10 0.871
● sum(m.weight * t.value)が-0.0〜-0.5区間は正解率55.8%
5.0~5.5区間で80.8%、9.5〜10.0区間で87.1%
● sum(m.weight * t.value)が-0.0〜-0.5区間は正解率55.8%
5.0~5.5区間で80.8%、9.5〜10.0区間で87.1%
15
実行時間(train)
● train_multiclass_scw利用
(scw, cw, lr等使ってみましたが、accuracyはほぼ同じくらいで日
によって逆転するくらいの僅差)
● rand_amplify x3
 cpu_time: 2:45:08, real: 5:31
● rand_amplify x6
 cpu_time: 5:25:19, real: 7:09
● rand_amplify x9
 cpu_time: 8:11:15, real: 6:01
● rand_amplify x12
 cpu_time: 10:02:07, real: 6:18
16
実行時間(graph)
cpu timeは増加
2953x+1604
実行時間は
ほぼ一定
並列化の恩恵でほぼ同時間で処理可能並列化の恩恵でほぼ同時間で処理可能
17
hivemallのメリット
●
学習コストが低い
(Mahout, Pythonも使ってるけど、最も楽だった。Hive運用してる会社が
少ないのがデメリットか)
●
引き継ぎが楽
(最も強調したいメリット。流しのdata miningエンジニアは、作ったは良
いけど引き継げる相手がいないことが多い)
●
データ量の増加に対応しやすい
(作り始めた時は対象ユーザが2000万だった)
18
今後の課題
●
正解データなしでも推測できるようにしたい
(確実に男性or女性が来ているサイトをシードに推測すれば、正解デー
タの束縛から解放される)
● サイトのドメインではなくurl+トピック抽出で推定
(同じスケート関連のニュースでも、羽生結弦と浅田真央のタグでは傾
向が違うはず)
●
年代推定の精度を上げる
(topic使用。活動時間からの推定)
19
最後に
Scaleout社では大量データと戯れて過ごしたい
エンジニアを募集しています

Mais conteúdo relacionado

Mais procurados

Deep learning Libs @twm
Deep learning Libs @twmDeep learning Libs @twm
Deep learning Libs @twmYuta Kashino
 
人工知能Xファッション最前線
人工知能Xファッション最前線人工知能Xファッション最前線
人工知能Xファッション最前線Kazuki Baba
 
Cloud DatalabとBigQueryを使ったアドホックデータ解析
Cloud DatalabとBigQueryを使ったアドホックデータ解析Cloud DatalabとBigQueryを使ったアドホックデータ解析
Cloud DatalabとBigQueryを使ったアドホックデータ解析hagino 3000
 
アドネットワークのデータ解析チームを支える技術
アドネットワークのデータ解析チームを支える技術アドネットワークのデータ解析チームを支える技術
アドネットワークのデータ解析チームを支える技術hagino 3000
 
Machine learning microservice_management
Machine learning microservice_managementMachine learning microservice_management
Machine learning microservice_managementyusuke shibui
 
初心者のためのRとRStudio入門 vol.2
初心者のためのRとRStudio入門 vol.2初心者のためのRとRStudio入門 vol.2
初心者のためのRとRStudio入門 vol.2OWL.learn
 
R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜機会学習・データビジュアライゼーション事始め〜
R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜機会学習・データビジュアライゼーション事始め〜R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜機会学習・データビジュアライゼーション事始め〜
R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜機会学習・データビジュアライゼーション事始め〜Yasuyuki Sugai
 
Scikit-learnを使って 画像分類を行う
Scikit-learnを使って 画像分類を行うScikit-learnを使って 画像分類を行う
Scikit-learnを使って 画像分類を行うArata Honda
 
日本のアニメ産業を爆速させるアニメAPIの開発と活用事例 (ニコニコ超会議2016 大和証券ステージ)
日本のアニメ産業を爆速させるアニメAPIの開発と活用事例 (ニコニコ超会議2016 大和証券ステージ)日本のアニメ産業を爆速させるアニメAPIの開発と活用事例 (ニコニコ超会議2016 大和証券ステージ)
日本のアニメ産業を爆速させるアニメAPIの開発と活用事例 (ニコニコ超会議2016 大和証券ステージ)Junichi Noda
 
Kaggle の Titanic チュートリアルに挑戦した話
Kaggle の Titanic チュートリアルに挑戦した話Kaggle の Titanic チュートリアルに挑戦した話
Kaggle の Titanic チュートリアルに挑戦した話y-uti
 
タクシードライブレコーダーの動画処理MLパイプラインにkubernetesを使ってみた
タクシードライブレコーダーの動画処理MLパイプラインにkubernetesを使ってみたタクシードライブレコーダーの動画処理MLパイプラインにkubernetesを使ってみた
タクシードライブレコーダーの動画処理MLパイプラインにkubernetesを使ってみたTetsutaro Watanabe
 
秋葉原IT戦略研究所のご紹介(2016/05/04)
秋葉原IT戦略研究所のご紹介(2016/05/04)秋葉原IT戦略研究所のご紹介(2016/05/04)
秋葉原IT戦略研究所のご紹介(2016/05/04)Junichi Noda
 
Jupyter Notebookでscikit-learnを使った機械学習・画像処理の基本
Jupyter Notebookでscikit-learnを使った機械学習・画像処理の基本Jupyter Notebookでscikit-learnを使った機械学習・画像処理の基本
Jupyter Notebookでscikit-learnを使った機械学習・画像処理の基本Norihiko Nakabayashi
 
傾向スコアを使ったキャンペーン効果検証V1
傾向スコアを使ったキャンペーン効果検証V1傾向スコアを使ったキャンペーン効果検証V1
傾向スコアを使ったキャンペーン効果検証V1Kazuya Obanayama
 
[データマイニング+WEB勉強会][R勉強会] 創設の思い・目的・進行方針
[データマイニング+WEB勉強会][R勉強会] 創設の思い・目的・進行方針[データマイニング+WEB勉強会][R勉強会] 創設の思い・目的・進行方針
[データマイニング+WEB勉強会][R勉強会] 創設の思い・目的・進行方針Koichi Hamada
 
(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第4回
(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第4回(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第4回
(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第4回Project Samurai
 
NLP2021 AI王 解法紹介 8
NLP2021 AI王 解法紹介 8NLP2021 AI王 解法紹介 8
NLP2021 AI王 解法紹介 8Takamichi Toda
 
気象庁XMLのSPARQL APIを利用してデータを俯瞰しよう -SPARQLとRによる可視化-
気象庁XMLのSPARQL APIを利用してデータを俯瞰しよう -SPARQLとRによる可視化-気象庁XMLのSPARQL APIを利用してデータを俯瞰しよう -SPARQLとRによる可視化-
気象庁XMLのSPARQL APIを利用してデータを俯瞰しよう -SPARQLとRによる可視化-Yasuyuki Sugai
 

Mais procurados (20)

Deep learning Libs @twm
Deep learning Libs @twmDeep learning Libs @twm
Deep learning Libs @twm
 
人工知能Xファッション最前線
人工知能Xファッション最前線人工知能Xファッション最前線
人工知能Xファッション最前線
 
Cloud DatalabとBigQueryを使ったアドホックデータ解析
Cloud DatalabとBigQueryを使ったアドホックデータ解析Cloud DatalabとBigQueryを使ったアドホックデータ解析
Cloud DatalabとBigQueryを使ったアドホックデータ解析
 
アドネットワークのデータ解析チームを支える技術
アドネットワークのデータ解析チームを支える技術アドネットワークのデータ解析チームを支える技術
アドネットワークのデータ解析チームを支える技術
 
Machine learning microservice_management
Machine learning microservice_managementMachine learning microservice_management
Machine learning microservice_management
 
初心者のためのRとRStudio入門 vol.2
初心者のためのRとRStudio入門 vol.2初心者のためのRとRStudio入門 vol.2
初心者のためのRとRStudio入門 vol.2
 
R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜機会学習・データビジュアライゼーション事始め〜
R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜機会学習・データビジュアライゼーション事始め〜R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜機会学習・データビジュアライゼーション事始め〜
R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜機会学習・データビジュアライゼーション事始め〜
 
Scikit-learnを使って 画像分類を行う
Scikit-learnを使って 画像分類を行うScikit-learnを使って 画像分類を行う
Scikit-learnを使って 画像分類を行う
 
Internship @ pixiv
Internship @ pixivInternship @ pixiv
Internship @ pixiv
 
日本のアニメ産業を爆速させるアニメAPIの開発と活用事例 (ニコニコ超会議2016 大和証券ステージ)
日本のアニメ産業を爆速させるアニメAPIの開発と活用事例 (ニコニコ超会議2016 大和証券ステージ)日本のアニメ産業を爆速させるアニメAPIの開発と活用事例 (ニコニコ超会議2016 大和証券ステージ)
日本のアニメ産業を爆速させるアニメAPIの開発と活用事例 (ニコニコ超会議2016 大和証券ステージ)
 
Kaggle の Titanic チュートリアルに挑戦した話
Kaggle の Titanic チュートリアルに挑戦した話Kaggle の Titanic チュートリアルに挑戦した話
Kaggle の Titanic チュートリアルに挑戦した話
 
タクシードライブレコーダーの動画処理MLパイプラインにkubernetesを使ってみた
タクシードライブレコーダーの動画処理MLパイプラインにkubernetesを使ってみたタクシードライブレコーダーの動画処理MLパイプラインにkubernetesを使ってみた
タクシードライブレコーダーの動画処理MLパイプラインにkubernetesを使ってみた
 
秋葉原IT戦略研究所のご紹介(2016/05/04)
秋葉原IT戦略研究所のご紹介(2016/05/04)秋葉原IT戦略研究所のご紹介(2016/05/04)
秋葉原IT戦略研究所のご紹介(2016/05/04)
 
Jupyter Notebookでscikit-learnを使った機械学習・画像処理の基本
Jupyter Notebookでscikit-learnを使った機械学習・画像処理の基本Jupyter Notebookでscikit-learnを使った機械学習・画像処理の基本
Jupyter Notebookでscikit-learnを使った機械学習・画像処理の基本
 
傾向スコアを使ったキャンペーン効果検証V1
傾向スコアを使ったキャンペーン効果検証V1傾向スコアを使ったキャンペーン効果検証V1
傾向スコアを使ったキャンペーン効果検証V1
 
[データマイニング+WEB勉強会][R勉強会] 創設の思い・目的・進行方針
[データマイニング+WEB勉強会][R勉強会] 創設の思い・目的・進行方針[データマイニング+WEB勉強会][R勉強会] 創設の思い・目的・進行方針
[データマイニング+WEB勉強会][R勉強会] 創設の思い・目的・進行方針
 
TokyoR42_around_chaining
TokyoR42_around_chainingTokyoR42_around_chaining
TokyoR42_around_chaining
 
(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第4回
(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第4回(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第4回
(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第4回
 
NLP2021 AI王 解法紹介 8
NLP2021 AI王 解法紹介 8NLP2021 AI王 解法紹介 8
NLP2021 AI王 解法紹介 8
 
気象庁XMLのSPARQL APIを利用してデータを俯瞰しよう -SPARQLとRによる可視化-
気象庁XMLのSPARQL APIを利用してデータを俯瞰しよう -SPARQLとRによる可視化-気象庁XMLのSPARQL APIを利用してデータを俯瞰しよう -SPARQLとRによる可視化-
気象庁XMLのSPARQL APIを利用してデータを俯瞰しよう -SPARQLとRによる可視化-
 

Destaque

Hivemallmtup 20160908
Hivemallmtup 20160908Hivemallmtup 20160908
Hivemallmtup 20160908Kazuki Ohmori
 
3rd Hivemall meetup
3rd Hivemall meetup3rd Hivemall meetup
3rd Hivemall meetupMakoto Yui
 
2nd Hivemall meetup 20151020
2nd Hivemall meetup 201510202nd Hivemall meetup 20151020
2nd Hivemall meetup 20151020Makoto Yui
 
Hivemallで始める不動産価格推定サービス
Hivemallで始める不動産価格推定サービスHivemallで始める不動産価格推定サービス
Hivemallで始める不動産価格推定サービスKentaro Yoshida
 
Sano tokyowebmining 201625_v04
Sano tokyowebmining 201625_v04Sano tokyowebmining 201625_v04
Sano tokyowebmining 201625_v04Masakazu Sano
 

Destaque (6)

Hivemallmtup 20160908
Hivemallmtup 20160908Hivemallmtup 20160908
Hivemallmtup 20160908
 
20160908 hivemall meetup
20160908 hivemall meetup20160908 hivemall meetup
20160908 hivemall meetup
 
3rd Hivemall meetup
3rd Hivemall meetup3rd Hivemall meetup
3rd Hivemall meetup
 
2nd Hivemall meetup 20151020
2nd Hivemall meetup 201510202nd Hivemall meetup 20151020
2nd Hivemall meetup 20151020
 
Hivemallで始める不動産価格推定サービス
Hivemallで始める不動産価格推定サービスHivemallで始める不動産価格推定サービス
Hivemallで始める不動産価格推定サービス
 
Sano tokyowebmining 201625_v04
Sano tokyowebmining 201625_v04Sano tokyowebmining 201625_v04
Sano tokyowebmining 201625_v04
 

hivemallを使って4日間で性別推定した話