狠狠撸

狠狠撸Share a Scribd company logo
Xit おすすめ番組改善
株式会社ピクセラ
ソフトウェア開発本部
先端技術開発部
? 2017 PIXELA CORPORATION|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
2018年12月30日
Agenda
○ これまで Smart Adaptive Recommendations
○ これから Neural Collaborative Filtering
○ Tensorflow
○ Docker
○ Azure Batch, Batch ship-yard
○ (補足資料) Kubernetes & ACR & AKS
Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
2
おすすめ番組とは
Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
3
これまで Xit おすすめ番組
Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
4
Azure Functionsが該当
WebAPIが該当
これまで
○ Smart Adaptive Recommendations (SAR) Algorithmを使用
? https://github.com/Microsoft/Product-Recommendations/blob/master/doc/sar.md
○ SARとは
? ユーザ履歴(usage)とアイテム説明(catalog)を元にした高速でスケール可能な
個人レコメンドのアルゴリズム
? 協調フィルタリング(ItemToItem, UserToItem)をベースにしている
○ SARの特長
? ユーザの明示的な評価値を必要としない(履歴の時間から自動で評価値設定)
? アイテム説明に独自のパラメータを設定可能(パラメータは未評価アイテム、新
アイテムのレコメンドを可能にする)
Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
5
Neural Collaborative Filtering
Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
6
これから
RecommendationとCollaborative Filtering
https://www.comp.nus.edu.sg/~xiangnan/papers/ncf.pdf
○ ユーザー、アイテムをベクトルで表現
○ ユーザーとアイテムを結びつける手段としてのフィルタリング
○ 従来の内積表現による予測
Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
7
GMF
Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
8
= edge function (sigmoid 等) (1 / 1 + exp(-x))
= activation function ( RELU等) ( x = x if x > 0 , else 0)
MLP
Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
9
NCF => 線形性GMF ⊕ 非線形性MLP
Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
10
Tensorflow
Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
11
Tensorflow Architecture
Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
12
データが公開されている
一般的なもの
&&
モデルも公開されているもの
&&
学習方法も一般的
→ ほとんどTensorflow用意
のものだけでいける
= 要求条件次第で、
ほぼプログラミングレス
程度まで
抽象化が進んでいる。
Tensorflow
Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
13
モデル作成
推論
学習
データ前処理
取り込み設定
Tensorflow NCF Model の例
user_input = tf.keras.layers.Input(tensor=users)
item_input = tf.keras.layers.Input(tensor=items)
# Embedding layers of GMF and MLP
mf_embedding_user = tf.keras.layers.Embedding(…), mf_embedding_item = tf.keras.layers.Embedding(…)
mlp_embedding_user = tf.keras.layers.Embedding(…), mlp_embedding_item = tf.keras.layers.Embedding(…)
# GMF part
mf_user_latent = mf_embedding_user(user_input), mf_item_latent = mf_embedding_item(item_input) , mf_vector = tf.keras.layers.multiply(…)
# MLP part
mlp_user_latent = mlp_embedding_user(user_input), mlp_item_latent = mlp_embedding_item(item_input) , mlp_vector = tf.keras.layers.concatenate(…)
for layer in xrange(1, num_layer):
model_layer = tf.keras.layers.Dense(…)
mlp_vector = model_layer(mlp_vector)
# Concatenate GMF and MLP parts
predict_vector = tf.keras.layers.concatenate([mf_vector, mlp_vector])
# Final prediction layer
logits = tf.keras.layers.Dense(…)
Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
14
Docker
Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
15
Docker Basics
Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
16
Docker ウェブサーバ比較例
Docker 利点
Azure Batch, ship-yard
Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
19
AKS or Azure Batch
今回のNCF処理性質
一定時間毎のバッチ処理
AKS
○ GPU-Instance コスト高い
Azure Batch
○ バッチ処理
○ 低優先度インスタンスプラン
○ 通常の専有プランより80%-off
だが、“割り当てられない場合や割り込みが発生する場合があります”
Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
20
Azure Batch ship-yard
○ Azure Batch、生で設定がめんどくさい
○ オーケストレーションツール ship-yard
○ yaml
やってくれること。
○ VM-Instance プール作成
○ VM-Instance 種類指定起動
○ OS
○ インスタンス種類
○ VM-Instance への
○ Azure Blob マウント
○ 注 BlobとInstanceのリージョンを合わせないと、パフォーマンス低
○ ACR から Docker-Image Pull
○ バッチ指示
○ スクリプトキックコマンド
○ バッチ期間
Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
21
ACR
○ Docker image レポジトリ
○ git みたいなもん
○ ImageのタグはレポジトリURI/image名:タグ となる。
○ ACRにおいたimage を 各サービスで引っ張れる。
○ ACRを読める権限設定する必要がある。
result.json
Azure Diagram
Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
23
Azure
shipyard
ACR
Batch
Blob
NCFContainerImage
Instance
Pix local
mount
Provisioning
Image Push
exp.files
Docker Mount
BookingRecords
Get BookingRecords
Batch処理設定
最後に ML/AI に限らないこと
○ X as a Code … X =
○ Environment
Docker & Docker-compose 稼動場所移行が行いやすい( 他ローカルPC, クラウド上)
○ Cloudインフラ & サービス
サーバ環境 → イミュータブルサーバ
○ Cloudは極力メンテナンスレスなサービスを利用しましょう (No more raw VM)
#1 プログラムレスサービス
#2 Lambda系 (サーバレス)
#3 Batch || AKS (極力管理レス)
ストレージは AWS S3/ Azure Blob 等に接続し、ノードに残さない
DB は 極力NoSQLサービス (ストレージ無限系 AWS DynamoDBとか)
どうしてもSQLなら、Serverless SQLサービス
Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
24
Kubernetes & AKS
Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
25
補足資料
クラウドでのDocker利用利点
Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
26
Docker オーケストレーション要求
問題
○ どのホストにどのコンテナがあるか
○ ノード(コンテナホストインスタンス)死亡時の対応
要望
○ ノード管理 (含スケール)
○ コンテナバージョン管理と更新動作
○ ノード間協調
Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
27
Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
28
Kubernates cluster diagram
Master : 1 VM … cluster管理
Node : 各1VM
Deployした状態
〇が1つのサービスを内包する
(複数のコンテナ、ストレージ、
1意のIPが入る)
=> 1Pod
1Node 中に複数 Pod入れる。
また複数Nodeで Podスケーリング
も可能
Deployはいくつも行える。
AKS
○ Full-managed kubernetes service
○ マスター隠ぺい
○ Cloud-vendorで管理
○ 監視、ログ機能、復旧自動化
○ HTTPアプリケーションルーティング (外部公開)も自動設定
階層
○ AKS kubernetes サービスの提供
○ Kubernetes
○ Kubernetes-cluster
○ Master … AKS では azureが管理. Deploy情報の管理?
○ Nodes (on VM) … Dockerワーカー
○ Pods ( コンテナ群, ストレージ, 1意のIP 1サービス単位)
? Docker-containers (Imageからビルド. ACR や Docker hub等から引っ張る)

More Related Content

20181228 ncf to_azure_batch

  • 1. Xit おすすめ番組改善 株式会社ピクセラ ソフトウェア開発本部 先端技術開発部 ? 2017 PIXELA CORPORATION|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 2018年12月30日
  • 2. Agenda ○ これまで Smart Adaptive Recommendations ○ これから Neural Collaborative Filtering ○ Tensorflow ○ Docker ○ Azure Batch, Batch ship-yard ○ (補足資料) Kubernetes & ACR & AKS Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 2
  • 3. おすすめ番組とは Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 3
  • 4. これまで Xit おすすめ番組 Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 4 Azure Functionsが該当 WebAPIが該当
  • 5. これまで ○ Smart Adaptive Recommendations (SAR) Algorithmを使用 ? https://github.com/Microsoft/Product-Recommendations/blob/master/doc/sar.md ○ SARとは ? ユーザ履歴(usage)とアイテム説明(catalog)を元にした高速でスケール可能な 個人レコメンドのアルゴリズム ? 協調フィルタリング(ItemToItem, UserToItem)をベースにしている ○ SARの特長 ? ユーザの明示的な評価値を必要としない(履歴の時間から自動で評価値設定) ? アイテム説明に独自のパラメータを設定可能(パラメータは未評価アイテム、新 アイテムのレコメンドを可能にする) Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 5
  • 6. Neural Collaborative Filtering Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 6 これから
  • 7. RecommendationとCollaborative Filtering https://www.comp.nus.edu.sg/~xiangnan/papers/ncf.pdf ○ ユーザー、アイテムをベクトルで表現 ○ ユーザーとアイテムを結びつける手段としてのフィルタリング ○ 従来の内積表現による予測 Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 7
  • 8. GMF Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 8 = edge function (sigmoid 等) (1 / 1 + exp(-x)) = activation function ( RELU等) ( x = x if x > 0 , else 0)
  • 9. MLP Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 9
  • 10. NCF => 線形性GMF ⊕ 非線形性MLP Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 10
  • 11. Tensorflow Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 11
  • 12. Tensorflow Architecture Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 12 データが公開されている 一般的なもの && モデルも公開されているもの && 学習方法も一般的 → ほとんどTensorflow用意 のものだけでいける = 要求条件次第で、 ほぼプログラミングレス 程度まで 抽象化が進んでいる。
  • 13. Tensorflow Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 13 モデル作成 推論 学習 データ前処理 取り込み設定
  • 14. Tensorflow NCF Model の例 user_input = tf.keras.layers.Input(tensor=users) item_input = tf.keras.layers.Input(tensor=items) # Embedding layers of GMF and MLP mf_embedding_user = tf.keras.layers.Embedding(…), mf_embedding_item = tf.keras.layers.Embedding(…) mlp_embedding_user = tf.keras.layers.Embedding(…), mlp_embedding_item = tf.keras.layers.Embedding(…) # GMF part mf_user_latent = mf_embedding_user(user_input), mf_item_latent = mf_embedding_item(item_input) , mf_vector = tf.keras.layers.multiply(…) # MLP part mlp_user_latent = mlp_embedding_user(user_input), mlp_item_latent = mlp_embedding_item(item_input) , mlp_vector = tf.keras.layers.concatenate(…) for layer in xrange(1, num_layer): model_layer = tf.keras.layers.Dense(…) mlp_vector = model_layer(mlp_vector) # Concatenate GMF and MLP parts predict_vector = tf.keras.layers.concatenate([mf_vector, mlp_vector]) # Final prediction layer logits = tf.keras.layers.Dense(…) Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 14
  • 15. Docker Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 15
  • 16. Docker Basics Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 16
  • 19. Azure Batch, ship-yard Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 19
  • 20. AKS or Azure Batch 今回のNCF処理性質 一定時間毎のバッチ処理 AKS ○ GPU-Instance コスト高い Azure Batch ○ バッチ処理 ○ 低優先度インスタンスプラン ○ 通常の専有プランより80%-off だが、“割り当てられない場合や割り込みが発生する場合があります” Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 20
  • 21. Azure Batch ship-yard ○ Azure Batch、生で設定がめんどくさい ○ オーケストレーションツール ship-yard ○ yaml やってくれること。 ○ VM-Instance プール作成 ○ VM-Instance 種類指定起動 ○ OS ○ インスタンス種類 ○ VM-Instance への ○ Azure Blob マウント ○ 注 BlobとInstanceのリージョンを合わせないと、パフォーマンス低 ○ ACR から Docker-Image Pull ○ バッチ指示 ○ スクリプトキックコマンド ○ バッチ期間 Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 21
  • 22. ACR ○ Docker image レポジトリ ○ git みたいなもん ○ ImageのタグはレポジトリURI/image名:タグ となる。 ○ ACRにおいたimage を 各サービスで引っ張れる。 ○ ACRを読める権限設定する必要がある。
  • 23. result.json Azure Diagram Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 23 Azure shipyard ACR Batch Blob NCFContainerImage Instance Pix local mount Provisioning Image Push exp.files Docker Mount BookingRecords Get BookingRecords Batch処理設定
  • 24. 最後に ML/AI に限らないこと ○ X as a Code … X = ○ Environment Docker & Docker-compose 稼動場所移行が行いやすい( 他ローカルPC, クラウド上) ○ Cloudインフラ & サービス サーバ環境 → イミュータブルサーバ ○ Cloudは極力メンテナンスレスなサービスを利用しましょう (No more raw VM) #1 プログラムレスサービス #2 Lambda系 (サーバレス) #3 Batch || AKS (極力管理レス) ストレージは AWS S3/ Azure Blob 等に接続し、ノードに残さない DB は 極力NoSQLサービス (ストレージ無限系 AWS DynamoDBとか) どうしてもSQLなら、Serverless SQLサービス Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 24
  • 25. Kubernetes & AKS Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 25 補足資料
  • 26. クラウドでのDocker利用利点 Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 26
  • 27. Docker オーケストレーション要求 問題 ○ どのホストにどのコンテナがあるか ○ ノード(コンテナホストインスタンス)死亡時の対応 要望 ○ ノード管理 (含スケール) ○ コンテナバージョン管理と更新動作 ○ ノード間協調 Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 27
  • 28. Copyright ? PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 28
  • 29. Kubernates cluster diagram Master : 1 VM … cluster管理 Node : 各1VM
  • 30. Deployした状態 〇が1つのサービスを内包する (複数のコンテナ、ストレージ、 1意のIPが入る) => 1Pod 1Node 中に複数 Pod入れる。 また複数Nodeで Podスケーリング も可能 Deployはいくつも行える。
  • 31. AKS ○ Full-managed kubernetes service ○ マスター隠ぺい ○ Cloud-vendorで管理 ○ 監視、ログ機能、復旧自動化 ○ HTTPアプリケーションルーティング (外部公開)も自動設定
  • 32. 階層 ○ AKS kubernetes サービスの提供 ○ Kubernetes ○ Kubernetes-cluster ○ Master … AKS では azureが管理. Deploy情報の管理? ○ Nodes (on VM) … Dockerワーカー ○ Pods ( コンテナ群, ストレージ, 1意のIP 1サービス単位) ? Docker-containers (Imageからビルド. ACR や Docker hub等から引っ張る)