Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

20181228 ncf to_azure_batch

304 views

Published on

Xit おすすめ番組の改善

Published in: Technology
  • Be the first to comment

  • Be the first to like this

20181228 ncf to_azure_batch

  1. 1. Xit おすすめ番組改善 株式会社ピクセラ ソフトウェア開発本部 先端技術開発部 © 2017 PIXELA CORPORATION|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 2018年12月30日
  2. 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. 3. おすすめ番組とは Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 3
  4. 4. これまで Xit おすすめ番組 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 4 Azure Functionsが該当 WebAPIが該当
  5. 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. 6. Neural Collaborative Filtering Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 6 これから
  7. 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. 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. 9. MLP Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 9
  10. 10. NCF => 線形性GMF ⊕ 非線形性MLP Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 10
  11. 11. Tensorflow Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 11
  12. 12. Tensorflow Architecture Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 12 データが公開されている 一般的なもの && モデルも公開されているもの && 学習方法も一般的 → ほとんどTensorflow用意 のものだけでいける = 要求条件次第で、 ほぼプログラミングレス 程度まで 抽象化が進んでいる。
  13. 13. Tensorflow Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 13 モデル作成 推論 学習 データ前処理 取り込み設定
  14. 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. 15. Docker Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 15
  16. 16. Docker Basics Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 16
  17. 17. Docker ウェブサーバ比較例
  18. 18. Docker 利点
  19. 19. Azure Batch, ship-yard Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 19
  20. 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. 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. 22. ACR ○ Docker image レポジトリ ○ git みたいなもん ○ ImageのタグはレポジトリURI/image名:タグ となる。 ○ ACRにおいたimage を 各サービスで引っ張れる。 ○ ACRを読める権限設定する必要がある。
  23. 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. 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. 25. Kubernetes & AKS Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 25 補足資料
  26. 26. クラウドでのDocker利用利点 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 26
  27. 27. Docker オーケストレーション要求 問題 ○ どのホストにどのコンテナがあるか ○ ノード(コンテナホストインスタンス)死亡時の対応 要望 ○ ノード管理 (含スケール) ○ コンテナバージョン管理と更新動作 ○ ノード間協調 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 27
  28. 28. Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 28
  29. 29. Kubernates cluster diagram Master : 1 VM … cluster管理 Node : 各1VM
  30. 30. Deployした状態 〇が1つのサービスを内包する (複数のコンテナ、ストレージ、 1意のIPが入る) => 1Pod 1Node 中に複数 Pod入れる。 また複数Nodeで Podスケーリング も可能 Deployはいくつも行える。
  31. 31. AKS ○ Full-managed kubernetes service ○ マスター隠ぺい ○ Cloud-vendorで管理 ○ 監視、ログ機能、復旧自動化 ○ HTTPアプリケーションルーティング (外部公開)も自動設定
  32. 32. 階層 ○ AKS kubernetes サービスの提供 ○ Kubernetes ○ Kubernetes-cluster ○ Master … AKS では azureが管理. Deploy情報の管理? ○ Nodes (on VM) … Dockerワーカー ○ Pods ( コンテナ群, ストレージ, 1意のIP 1サービス単位) • Docker-containers (Imageからビルド. ACR や Docker hub等から引っ張る)

×