20150625 cloudera

47
リクルート式HBase使い方 株式会社リクルートテクノロジーズ ITソリューション統括部 ビッグデータ2グループ 池田 裕一

Upload: recruit-technologies

Post on 04-Aug-2015

834 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: 20150625 cloudera

リクルート式HBaseの使い方

株式会社リクルートテクノロジーズ ITソリューション統括部 ビッグデータ2グループ

池田 裕一

Page 2: 20150625 cloudera

2 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

趣味etc

学歴

略歴

所属

氏名

自己紹介

RTC ITソリューション統括部 ビッグデータ2G

池田 裕一

東京大学大学院工学系研究科 精密機械工学専攻

社会人5年目。 某大手メーカー系SIerで3年間、Java・C++を使った位置情報サービスの開発やAndroidアプリの開発に従事。 2014年4月からリクルートテクノロジーズ入社。 レコメンド施策開発のディレクション、自然言語処理やグラフ解析の技術開発に従事。

テニス ゴルフ 旅行 カメラ

Page 3: 20150625 cloudera

3 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

本日覚えて帰って頂きたい事

HBaseを使った

リアルタイムレコメンドの実装方法

Page 4: 20150625 cloudera

4 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

1

2

最近のデータ活用状況紹介

3

4

5

6

HBaseの活用事例

HBaseを使ったユーザー行動ログ収集

HBaseを使ったリアルタイムレコメンド

その他の工夫点

HBaseの導入効果

アジェンダ

7 まとめと今後の展望

Page 5: 20150625 cloudera

5 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

最近のデータ活用状況紹介

Page 6: 20150625 cloudera

6 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

Server Database

数値で見るデータ解析環境

エコシステム

本番98台/開発24台 1 PB

Page 7: 20150625 cloudera

7 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

数値で見るHadoopの使われ方

28,344

1038万

1日あたりの全JOBの数

1日あたりの全Hbaseクエリの数

Page 8: 20150625 cloudera

8 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

数値で見るデータ解析案件状況

約200 データ解析案件数(年間)

ビッグデータ部の案件従事人数 240

Page 9: 20150625 cloudera

9 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

HBaseの活用事例

Page 10: 20150625 cloudera

10 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

HBase導入の背景

Hadoop

レコメンド生成バッチ

ユーザー 行動ログ 集計バッチ ユーザー情報

行動ログ

ユーザー毎の レコメンド

ユーザー毎のパーソナライズレコメンドを日次で実施(主にHive)

Page 11: 20150625 cloudera

11 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

Hiveで解決できないサービス課題

レコメンド更新の リードタイム

コールドスタート問題

Page 12: 20150625 cloudera

12 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

HBase導入の目的

ユーザーがサイト上で アクションしたタイミングで おすすめが変化する

ユーザー毎に おすすめのアイテムを スコアが高い順で 一覧表示する

期待される効果

1. 登録直後のユーザー離脱を防ぐ

2. ユーザーアクションを活性化する

3. 応募数の増加

Page 13: 20150625 cloudera

13 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

HBaseを活用して実現した2つの機能

書き込み API ユーザー行動ログ収集

参照 API リアルタイムレコメンド

Page 14: 20150625 cloudera

14 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

HBaseを使った ユーザー行動ログ収集

Page 15: 20150625 cloudera

15 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

ユーザ行動ログ収集機能のシステム構成

Web

HBase

ユーザ行動ログの書き込みAPI

Hadoop

行動ログ 集計バッチ

検索API

APIリクエスト

検索行動

ユーザー

データ書き込み

エキスポート

Page 16: 20150625 cloudera

16 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

HBase

ユーザ行動ログ収集機能の内部処理

APIリクエスト

tomcat ユーザー行動ログの書

き込みAPI

書き込み専用

ログテーブル

参照兼用書き込み

ログテーブル

Page 17: 20150625 cloudera

17 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

HBase

ユーザ行動ログ収集機能の内部処理

APIリクエスト

tomcat ユーザー行動ログの書

き込みAPI

書き込み専用

ログテーブル

参照兼用書き込み

ログテーブル

バッチでの

分析に使用

全てのユーザーのサイト上での全てのアクション

を格納 key value

Hash化した文字列

文字列

Page 18: 20150625 cloudera

18 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

HBase

ユーザ行動ログ収集機能の内部処理

APIリクエスト

tomcat ユーザー行動ログの書

き込みAPI

書き込み専用

ログテーブル

参照兼用書き込み

ログテーブル

リアルタイムの

レコメンドに使用

全てのユーザーの、直近の特定アクションを格納

key CF1 CF2

アクションCD アクションCD

ユーザーID アイテムCD アイテムCD

Page 19: 20150625 cloudera

19 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

ユーザ行動ログ収集機能のポイント

1. サイト上でのユーザー行動をHBaseのテーブルに入れる

2. 書き込み専用テーブルは、Hash化した文字列をkeyとして、書き込みスピードを担保

3. 参照兼用の書き込みテーブルは、シーケンシャルな文字列をkeyとして、参照スピードを担保

4. カラムのバージョンを設定する事で、直近の行動ログをテーブルに格納する

5. 書き込み専用テーブルのデータはHiveテーブルにエキスポートし、ユーザ行動分析を別途行うためのインプットとして使用する

Page 20: 20150625 cloudera

20 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

HBaseを使った リアルタイムレコメンド

Page 21: 20150625 cloudera

21 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

リアルタイムレコメンド機能のシステム構成

ユーザー

Web

HBase

レコメンドテーブルの参照API

Hadoop

行動ログ 集計バッチ

検索API

APIリクエスト

検索行動

レコメンド取得

レコメンド

バルクロード

テーブル参照

Page 22: 20150625 cloudera

22 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

リアルタイムレコメンド機能の内部処理

HBase APIリクエスト

tomcat

レコメンドテーブル

の参照API

ユーザ情報テーブル

レコメンドテーブル

(属性ベース)

レコメンドテーブル

(アイテムベース)

参照兼用書き込み

ログテーブル

Page 23: 20150625 cloudera

23 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

リアルタイムレコメンド機能の内部処理

HBase APIリクエスト

tomcat

レコメンドテーブル

の参照API

ユーザ情報テーブル

レコメンドテーブル

(属性ベース)

レコメンドテーブル

(アイテムベース)

参照兼用書き込み

ログテーブル

ユーザーIDとレコメンドCDをリクエスト

Page 24: 20150625 cloudera

24 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

リアルタイムレコメンド機能の内部処理

HBase APIリクエスト

tomcat

レコメンドテーブル

の参照API

ユーザ情報テーブル

レコメンドテーブル

(属性ベース)

レコメンドテーブル

(アイテムベース)

参照兼用書き込み

ログテーブル

ユーザーIDをkeyにして、

ユーザーが直近で閲覧したアイテムを返却

key CF1 CF2

アクションCD アクションCD

ユーザーID アイテムCD アイテムCD

Page 25: 20150625 cloudera

25 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

リアルタイムレコメンド機能の内部処理

HBase APIリクエスト

tomcat

レコメンドテーブル

の参照API

ユーザ情報テーブル

レコメンドテーブル

(属性ベース)

レコメンドテーブル

(アイテムベース)

参照兼用書き込み

ログテーブル

アイテムをkeyにして

類似するアイテムを返却

key value

アイテムCD レコメンドリスト

Page 26: 20150625 cloudera

26 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

リアルタイムレコメンド機能の内部処理

HBase APIリクエスト

tomcat

レコメンドテーブル

の参照API

ユーザ情報テーブル

レコメンドテーブル

(属性ベース)

レコメンドテーブル

(アイテムベース)

参照兼用書き込み

ログテーブル

スコアの高いアイテムから順に返却

Page 27: 20150625 cloudera

27 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

リアルタイムレコメンド機能の内部処理

HBase APIリクエスト

tomcat

レコメンドテーブル

の参照API

ユーザ情報テーブル

レコメンドテーブル

(属性ベース)

レコメンドテーブル

(アイテムベース)

参照兼用書き込み

ログテーブル

ユーザーIDをkeyにして

ユーザーの属性情報を返却

key value

ユーザーCD 属性CDリスト

Page 28: 20150625 cloudera

28 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

リアルタイムレコメンド機能の内部処理

HBase APIリクエスト

tomcat

レコメンドテーブル

の参照API

ユーザ情報テーブル

レコメンドテーブル

(属性ベース)

レコメンドテーブル

(アイテムベース)

参照兼用書き込み

ログテーブル

属性情報keyにして、属性に適したアイテムを返却

key value

属性CD レコメンドリスト

Page 29: 20150625 cloudera

29 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

リアルタイムレコメンド機能の内部処理

HBase APIリクエスト

tomcat

レコメンドテーブル

の参照API

ユーザ情報テーブル

レコメンドテーブル

(属性ベース)

レコメンドテーブル

(アイテムベース)

参照兼用書き込み

ログテーブル スコアの高いアイテムから順に返却

Page 30: 20150625 cloudera

30 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

リアルタイムレコメンド機能のポイント

1. ユーザのアクションに即座に対応してレコメンドできる

1. アクションが無いユーザに対しては、ユーザの属性に適したレコメンドができる

2. ユーザ登録直後から全てのユーザに対してレコメンドできる

3. APIのインターフェースを汎用に作ることで、新規のレコメンドテーブルにも対応できる

Page 31: 20150625 cloudera

31 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

その他の工夫点

Page 32: 20150625 cloudera

32 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

その他の工夫点 その1 〜バルクロード

• 1レコードずつPUTする

• 高負荷状態が長時間続く

• データの参照は可能

• テーブルごと更新する

• データ参照が出来ない時間帯がある

負荷低減とテーブルアクセスの担保を両立したい

importTSV CompleteBulkload

Page 33: 20150625 cloudera

33 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

その他の工夫点 その1 〜バルクロード

ZooKeeperでテーブル参照とテーブル更新を管理

ZooKeeper

CompleteBulkload

Page 34: 20150625 cloudera

34 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

HBase

その他の工夫点 その1 〜バルクロード

tomcat

レコメンドテーブル

の参照API

ZooKeeper

レコメンド

テーブル

レコメンド

テーブル

Hadoop

データ更新処理

Page 35: 20150625 cloudera

35 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

HBase

その他の工夫点 その1 〜バルクロード

tomcat

レコメンドテーブル

の参照API

ZooKeeper

レコメンド

テーブル

レコメンド

テーブル

Hadoop

データ更新処理

参照

更新

Page 36: 20150625 cloudera

36 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

HBase

その他の工夫点 その1 〜バルクロード

tomcat

レコメンドテーブル

の参照API

ZooKeeper

レコメンド

テーブル

レコメンド

テーブル

Hadoop

データ更新処理

参照

更新

Page 37: 20150625 cloudera

37 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

その他の工夫点 その2 〜モニタリング

Page 38: 20150625 cloudera

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: 前後の単語の出現確率

𝑝(𝑤(𝑡+𝑖)|𝑤(𝑡))

Page 39: 20150625 cloudera

39 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

リアルタイムレコメンド機能の内部処理

HBase APIリクエスト

tomcat

レコメンドテーブル

の参照API

ユーザ情報テーブル

レコメンドテーブル

(属性ベース)

レコメンドテーブル

(アイテムベース)

参照兼用書き込み

ログテーブル

Page 40: 20150625 cloudera

40 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

サービスA

CVRが 156% 改善

3.57% ⇒ 9.15%

サービスB

CVRが 31% 改善

46.59%⇒ 61.13%

その他の工夫点 その3 〜レコメンドロジック

Page 41: 20150625 cloudera

41 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

HBaseの導入効果

Page 42: 20150625 cloudera

42 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

HBaseを導入した効果

約2.7%改善 ユーザー離脱率

約16.7%改善 ユーザー1人当たりの アイテム閲覧回数

約30.8%改善 ユーザー1人当たりのCVR

Page 43: 20150625 cloudera

43 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

まとめと今後の展望

Page 44: 20150625 cloudera

44 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

まとめ

• HBaseをユーザーのログ収集に活用している

• HBaseを使って、ユーザーのアクションに即座に対応したレコメンドを実現している

• テーブル更新(バルクロード)はZooKeeperを使って、参照用と更新用のテーブルの管理を行っている

• レコメンドの効果測定モニタリングを行っている

• リアルタイムレコメンドによってユーザーのアクション活性化に効果を発揮している

Page 45: 20150625 cloudera

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) ・ ・ ・

Page 46: 20150625 cloudera

46 Copyright © Recruit Technologies Co., Ltd. All Rights Reserved.

ビジネスを踏まえて 泥臭くかつアグレッシブに 分析・エンジニアリングが できる方。

ご連絡ください。

戦友をさがしています。

Yes, We Are Hiring! 池田 裕一

Page 47: 20150625 cloudera

ご清聴ありがとうございました