1
Log 解析の超入門
@acrovision 菊池佑太
2
QUESTION
気になる画像は?
3
A. 車
引用 :http://www.audi.co.jp/
4
B. 化粧
  品
引用 :http://www.shiseido.co.jp/
5
C. 転職
    引用 :https://www.pakutaso.com
6
D. アニメ
    引用 :http://august-soft.com/
7
男性、車好き、お金持ち?
8
過去の Log から
予測する
9
人工知能
機械学習
10
今日から
自分で始める
11
Log 記録
性別推定
Recommend
Agenda
12
UI/UX ABTest
Marketing
I'm Sorry...
13
I'm Sorry...
GPS
Realtime
Search
14
Log 記録
15
Log = Evidence
16
MapReduce
引用 : http://dme.rwth-aachen.de
17
Log Forward
18
Clowd / OnMemory
19
Business Intelligence
20
収集および解析
技術の進歩
21
Log = Evidence
Log = Strategy
22
AccessLog
ErrorLog
23
Architecture
24
RealTime : fluent-d
Batch : rsync
Log Forward
25
Browser Cookie
Login Cookie
26
初回アクセス
Cookie に識別子
属性付与
27
host:::1<Tab>ident:MTkyLjE2OC41Ni4xMDE0MDkxMTk2ODQ<Ta
b>user:1<Tab>time:[08/Apr/2015:10:00:00
+0900]<Tab>Request:GET /sample HTTP/1.1<Tab>status:
200<Tab>size:5039<Tab>referer:foo.com<Tab>agent:Mozilla/5.0
(iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.4
(KHTML, like Gecko) Version/8.0 Mobile/12A365
Safari/600.1.4<Tab>attr:Mjg0ZmUyMzk0Yzg0ZGIzZTIzYTI3N2ExY
zhm
One Line
28
host:::1<Tab>ident:MTkyLjE2OC41Ni4xMDE0MDkxMTk2ODQ<Ta
b>user:1<Tab>time:[08/Apr/2015:10:00:00
+0900]<Tab>Request:GET /sample HTTP/1.1<Tab>status:
200<Tab>size:5039<Tab>referer:foo.com<Tab>agent:Mozilla/5.0
(iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.4
(KHTML, like Gecko) Version/8.0 Mobile/12A365
Safari/600.1.4<Tab>attr:Mjg0ZmUyMzk0Yzg0ZGIzZTIzYTI3N2ExY
zhm
One Line
29
Parse
30
BrowserID : MTkyLjE2OC41Ni4xMDE0MDkxMTk2ODQ
遷移先 URL http://acrovision.com/sample
遷移元 URL http://foo.com
Attribute : 30 代 男性
UserAgent or Device : Safari / iPhone
One Line Summary
31
正解データ
を含む Log
32
Storage
に格納
33
KVS / Nosql
引用 :http://bynatures.net
34
KVS
Key : Identifier
SubKey : Map
Map : Label, Attr
35
Example
{ MTkyLjE2OC41Ni4xMD... :
{ Query => ' ガンダム ': 2},
{ PageView => '/foo' : 4},
{ Gender => 'Male' : 100}
}
36
性別推定
37
未知への拡張
20%
50%
20%
38
検索 Log
39
条件付き確率
P( 男 | ガンダム ) = 0.8
40
まずは
1 台の PC でも
41
<?php
namespace Algorithms;
class NaiveBayes {
public function add_instance(){}
public function train(){}
public function predict(){}
...
}
42
訓練
推定
評価
43
{ 正解 : {KW : 回数 } }
{ 男性 : { ガンダム : 5 , AC ミラン : 8 } }
{ 女性 : { 化粧水 : 2 , 日焼け止め : 7 } }
・
・
・
44
$nb = new NaiveBayes();
// iteration
$nb->add_instance( 'label' => ' 正解 ',
'attributes' => 'KW : 回数 ' );
$nb->train();
45
訓練
推定
評価
46
{ 未知 : {KW : 回数 } }
{ ? : { ガンダム : 3 , シャア : 2 } }
・
・
・
47
// iteration
$res = $nb->predict( 'attributes' => 'KW :
回数 ' );
foreach($res as $label => $p) {
echo $label . "t" . $p . "n";
}
// 男性 : 0.878
// 女性 : 0.122
48
推定結果は
KVS へ格納
49
訓練
推定
評価
50
「 PR 曲線」
51
Balance
精度
拡張量
{ 精度 : 70%, 拡張量 : 30% 増 }
52
Compare
精度
拡張量
既存 Model
新 Model
53
応用
54
Hadoop Streaming
Hive,Pig で Modeling
Spark でもできそう
55
特徴を追加して
精度を上げる
56
Cross Validation
57
Recommend
58
性別推定結果に
対して Contents を
推薦
59
集団行動履歴から
Contents を推薦
60
Collaboration Filterling
引用 : http://theegeek.com/
61
商品 A を買った人は
商品 B も買うだろう
62
商品特徴を
Vector で表現
63
似ている商品
Vector が似ている
64
Cosine Similarity[0,1]
65
User | Item いちご めろん ぶどう すいか
User-A Buy! Buy!
User-B Buy! Buy!
User-C Buy! Buy! Buy!
User-D Buy! Buy! Buy!
User Item Matrix
66
Vector
⇓
購入共起人数
67
Item | Item いちご めろん ぶどう すいか
いちご - 3 人 1 人 0 人
めろん 3 人 - 2 人 1 人
ぶどう 1 人 2 人 - 1 人
すいか 0 人 1 人 1 人 -
Item Item Matrix
68
Vector
いちご ={ めろん :3, ぶどう :1, すいか :0}
めろん ={ いちご :3, ぶどう :2, すいか :1}
ぶどう ={ いちご :1, めろん :2, すいか :1}
すいか ={ いちご :0, めろん :1, ぶどう :1}
69
Cosine Similarity[0,1]
いちごとめろんは
類似度 0.3
70
問題
71
Sparse
A={0,0,0,1,...0}
B={1,0,0,0,...0}
72
Dimension
A={1,1,0,1,...0}
・
・
N={1,1,1,0,...1}
73
Hashing
b-bit-min
local-sensitive
Matrix
Factorization
74
まとめ
75
ログの記録
性別推定 (NaiveBayes)
Collaboration Filterling
76
ご清聴
ありがとうござい
ました

Log解析の超入門