20150625 cloudera
-
Upload
recruit-technologies -
Category
Technology
-
view
831 -
download
1
Transcript of 20150625 cloudera
リクルート式HBaseの使い方
株式会社リクルートテクノロジーズ ITソリューション統括部 ビッグデータ2グループ
池田 裕一
2 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
趣味etc
学歴
略歴
所属
氏名
自己紹介
RTC ITソリューション統括部 ビッグデータ2G
池田 裕一
東京大学大学院工学系研究科 精密機械工学専攻
社会人5年目。 某大手メーカー系SIerで3年間、Java・C++を使った位置情報サービスの開発やAndroidアプリの開発に従事。 2014年4月からリクルートテクノロジーズ入社。 レコメンド施策開発のディレクション、自然言語処理やグラフ解析の技術開発に従事。
テニス ゴルフ 旅行 カメラ
3 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
本日覚えて帰って頂きたい事
HBaseを使った
リアルタイムレコメンドの実装方法
4 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
1
2
最近のデータ活用状況紹介
3
4
5
6
HBaseの活用事例
HBaseを使ったユーザー行動ログ収集
HBaseを使ったリアルタイムレコメンド
その他の工夫点
HBaseの導入効果
アジェンダ
7 まとめと今後の展望
5 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
最近のデータ活用状況紹介
6 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
Server Database
数値で見るデータ解析環境
エコシステム
本番98台/開発24台 1 PB
7 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
数値で見るHadoopの使われ方
28,344
1038万
1日あたりの全JOBの数
1日あたりの全Hbaseクエリの数
8 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
数値で見るデータ解析案件状況
約200 データ解析案件数(年間)
ビッグデータ部の案件従事人数 240
9 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
HBaseの活用事例
10 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
HBase導入の背景
Hadoop
レコメンド生成バッチ
ユーザー 行動ログ 集計バッチ ユーザー情報
行動ログ
ユーザー毎の レコメンド
ユーザー毎のパーソナライズレコメンドを日次で実施(主にHive)
11 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
Hiveで解決できないサービス課題
レコメンド更新の リードタイム
コールドスタート問題
12 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
HBase導入の目的
ユーザーがサイト上で アクションしたタイミングで おすすめが変化する
ユーザー毎に おすすめのアイテムを スコアが高い順で 一覧表示する
期待される効果
1. 登録直後のユーザー離脱を防ぐ
2. ユーザーアクションを活性化する
3. 応募数の増加
13 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
HBaseを活用して実現した2つの機能
書き込み API ユーザー行動ログ収集
参照 API リアルタイムレコメンド
14 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
HBaseを使った ユーザー行動ログ収集
15 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
ユーザ行動ログ収集機能のシステム構成
Web
HBase
ユーザ行動ログの書き込みAPI
Hadoop
行動ログ 集計バッチ
検索API
APIリクエスト
検索行動
ユーザー
データ書き込み
エキスポート
16 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
HBase
ユーザ行動ログ収集機能の内部処理
APIリクエスト
tomcat ユーザー行動ログの書
き込みAPI
書き込み専用
ログテーブル
参照兼用書き込み
ログテーブル
17 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
HBase
ユーザ行動ログ収集機能の内部処理
APIリクエスト
tomcat ユーザー行動ログの書
き込みAPI
書き込み専用
ログテーブル
参照兼用書き込み
ログテーブル
バッチでの
分析に使用
全てのユーザーのサイト上での全てのアクション
を格納 key value
Hash化した文字列
文字列
18 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
HBase
ユーザ行動ログ収集機能の内部処理
APIリクエスト
tomcat ユーザー行動ログの書
き込みAPI
書き込み専用
ログテーブル
参照兼用書き込み
ログテーブル
リアルタイムの
レコメンドに使用
全てのユーザーの、直近の特定アクションを格納
key CF1 CF2
アクションCD アクションCD
ユーザーID アイテムCD アイテムCD
19 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
ユーザ行動ログ収集機能のポイント
1. サイト上でのユーザー行動をHBaseのテーブルに入れる
2. 書き込み専用テーブルは、Hash化した文字列をkeyとして、書き込みスピードを担保
3. 参照兼用の書き込みテーブルは、シーケンシャルな文字列をkeyとして、参照スピードを担保
4. カラムのバージョンを設定する事で、直近の行動ログをテーブルに格納する
5. 書き込み専用テーブルのデータはHiveテーブルにエキスポートし、ユーザ行動分析を別途行うためのインプットとして使用する
20 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
HBaseを使った リアルタイムレコメンド
21 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
リアルタイムレコメンド機能のシステム構成
ユーザー
Web
HBase
レコメンドテーブルの参照API
Hadoop
行動ログ 集計バッチ
検索API
APIリクエスト
検索行動
レコメンド取得
レコメンド
バルクロード
テーブル参照
22 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
リアルタイムレコメンド機能の内部処理
HBase APIリクエスト
tomcat
レコメンドテーブル
の参照API
ユーザ情報テーブル
レコメンドテーブル
(属性ベース)
レコメンドテーブル
(アイテムベース)
参照兼用書き込み
ログテーブル
23 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
リアルタイムレコメンド機能の内部処理
HBase APIリクエスト
tomcat
レコメンドテーブル
の参照API
ユーザ情報テーブル
レコメンドテーブル
(属性ベース)
レコメンドテーブル
(アイテムベース)
参照兼用書き込み
ログテーブル
ユーザーIDとレコメンドCDをリクエスト
24 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
リアルタイムレコメンド機能の内部処理
HBase APIリクエスト
tomcat
レコメンドテーブル
の参照API
ユーザ情報テーブル
レコメンドテーブル
(属性ベース)
レコメンドテーブル
(アイテムベース)
参照兼用書き込み
ログテーブル
ユーザーIDをkeyにして、
ユーザーが直近で閲覧したアイテムを返却
key CF1 CF2
アクションCD アクションCD
ユーザーID アイテムCD アイテムCD
25 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
リアルタイムレコメンド機能の内部処理
HBase APIリクエスト
tomcat
レコメンドテーブル
の参照API
ユーザ情報テーブル
レコメンドテーブル
(属性ベース)
レコメンドテーブル
(アイテムベース)
参照兼用書き込み
ログテーブル
アイテムをkeyにして
類似するアイテムを返却
key value
アイテムCD レコメンドリスト
26 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
リアルタイムレコメンド機能の内部処理
HBase APIリクエスト
tomcat
レコメンドテーブル
の参照API
ユーザ情報テーブル
レコメンドテーブル
(属性ベース)
レコメンドテーブル
(アイテムベース)
参照兼用書き込み
ログテーブル
スコアの高いアイテムから順に返却
27 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
リアルタイムレコメンド機能の内部処理
HBase APIリクエスト
tomcat
レコメンドテーブル
の参照API
ユーザ情報テーブル
レコメンドテーブル
(属性ベース)
レコメンドテーブル
(アイテムベース)
参照兼用書き込み
ログテーブル
ユーザーIDをkeyにして
ユーザーの属性情報を返却
key value
ユーザーCD 属性CDリスト
28 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
リアルタイムレコメンド機能の内部処理
HBase APIリクエスト
tomcat
レコメンドテーブル
の参照API
ユーザ情報テーブル
レコメンドテーブル
(属性ベース)
レコメンドテーブル
(アイテムベース)
参照兼用書き込み
ログテーブル
属性情報keyにして、属性に適したアイテムを返却
key value
属性CD レコメンドリスト
29 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
リアルタイムレコメンド機能の内部処理
HBase APIリクエスト
tomcat
レコメンドテーブル
の参照API
ユーザ情報テーブル
レコメンドテーブル
(属性ベース)
レコメンドテーブル
(アイテムベース)
参照兼用書き込み
ログテーブル スコアの高いアイテムから順に返却
30 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
リアルタイムレコメンド機能のポイント
1. ユーザのアクションに即座に対応してレコメンドできる
1. アクションが無いユーザに対しては、ユーザの属性に適したレコメンドができる
2. ユーザ登録直後から全てのユーザに対してレコメンドできる
3. APIのインターフェースを汎用に作ることで、新規のレコメンドテーブルにも対応できる
31 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
その他の工夫点
32 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
その他の工夫点 その1 〜バルクロード
• 1レコードずつPUTする
• 高負荷状態が長時間続く
• データの参照は可能
• テーブルごと更新する
• データ参照が出来ない時間帯がある
負荷低減とテーブルアクセスの担保を両立したい
importTSV CompleteBulkload
33 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
その他の工夫点 その1 〜バルクロード
ZooKeeperでテーブル参照とテーブル更新を管理
ZooKeeper
CompleteBulkload
34 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
HBase
その他の工夫点 その1 〜バルクロード
tomcat
レコメンドテーブル
の参照API
ZooKeeper
レコメンド
テーブル
レコメンド
テーブル
Hadoop
データ更新処理
35 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
HBase
その他の工夫点 その1 〜バルクロード
tomcat
レコメンドテーブル
の参照API
ZooKeeper
レコメンド
テーブル
レコメンド
テーブル
Hadoop
データ更新処理
参照
更新
36 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
HBase
その他の工夫点 その1 〜バルクロード
tomcat
レコメンドテーブル
の参照API
ZooKeeper
レコメンド
テーブル
レコメンド
テーブル
Hadoop
データ更新処理
参照
更新
37 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
その他の工夫点 その2 〜モニタリング
38 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
その他の工夫点 その3 〜レコメンドロジック
アイテムの類似度計算にword2vecを活用
各単語を表現するベクトルを学習
単語から文書中でその単語の前後に現れる単語を予測できるような表現を学習
単語を表す1-of-k表現のベクトルを入力とし、その単語の前後にある単語の出現確率を出力とするニューラルネットを学習させ、その中間層の値を単語を表現するベクトルとして用いる
w(t)
w(t-1)
w(t+1)
w(t+2)
w(t-2)
INPUT PROJECTION OUTPUT 目的関数
log𝑝(𝑤 𝑡 + 𝑖 |𝑤 𝑡 )𝑖,−𝐶≤𝑖≤𝐶,𝑖≠0𝑡
INPUT: 単語の1-of-k表現
PROJECTION: 単語
線形変換 階層的
soft-max
OUTPUT: 前後の単語の出現確率
𝑝(𝑤(𝑡+𝑖)|𝑤(𝑡))
39 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
リアルタイムレコメンド機能の内部処理
HBase APIリクエスト
tomcat
レコメンドテーブル
の参照API
ユーザ情報テーブル
レコメンドテーブル
(属性ベース)
レコメンドテーブル
(アイテムベース)
参照兼用書き込み
ログテーブル
40 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
サービスA
CVRが 156% 改善
3.57% ⇒ 9.15%
サービスB
CVRが 31% 改善
46.59%⇒ 61.13%
その他の工夫点 その3 〜レコメンドロジック
41 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
HBaseの導入効果
42 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
HBaseを導入した効果
約2.7%改善 ユーザー離脱率
約16.7%改善 ユーザー1人当たりの アイテム閲覧回数
約30.8%改善 ユーザー1人当たりのCVR
43 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
まとめと今後の展望
44 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
まとめ
• HBaseをユーザーのログ収集に活用している
• HBaseを使って、ユーザーのアクションに即座に対応したレコメンドを実現している
• テーブル更新(バルクロード)はZooKeeperを使って、参照用と更新用のテーブルの管理を行っている
• レコメンドの効果測定モニタリングを行っている
• リアルタイムレコメンドによってユーザーのアクション活性化に効果を発揮している
45 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
今後の展望
リアルタイムレコメ
ンドの実装
リアルタイムでの
ユーザー志向分析
グラフ分析及び
グラフDBの導入
A B
C
D
E
w(t)
w(t+1)
w(t+5)
・ ・ ・
w(t-1)
w(t-5) ・ ・ ・
46 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.
ビジネスを踏まえて 泥臭くかつアグレッシブに 分析・エンジニアリングが できる方。
ご連絡ください。
戦友をさがしています。
Yes, We Are Hiring! 池田 裕一
ご清聴ありがとうございました