Submit Search
Upload
Amebaにおけるレコメンデーションシステムの紹介
•
5 likes
•
12,870 views
cyberagent
Follow
2016年7月25日開催 「夏真っ盛り!Spark + Python + Data Science祭り」
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 27
Download now
Download to read offline
Recommended
Amazon SageMaker で始める機械学習
Amazon SageMaker で始める機械学習
Amazon Web Services Japan
AWSではじめるMLOps
AWSではじめるMLOps
MariOhbuchi
協調フィルタリング入門
協調フィルタリング入門
hoxo_m
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
Shota Imai
NetflixにおけるPresto/Spark活用事例
NetflixにおけるPresto/Spark活用事例
Amazon Web Services Japan
先駆者に学ぶ MLOpsの実際
先駆者に学ぶ MLOpsの実際
Tetsutaro Watanabe
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
Preferred Networks
Recommended
Amazon SageMaker で始める機械学習
Amazon SageMaker で始める機械学習
Amazon Web Services Japan
AWSではじめるMLOps
AWSではじめるMLOps
MariOhbuchi
協調フィルタリング入門
協調フィルタリング入門
hoxo_m
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
Shota Imai
NetflixにおけるPresto/Spark活用事例
NetflixにおけるPresto/Spark活用事例
Amazon Web Services Japan
先駆者に学ぶ MLOpsの実際
先駆者に学ぶ MLOpsの実際
Tetsutaro Watanabe
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
Preferred Networks
推薦アルゴリズムの今までとこれから
推薦アルゴリズムの今までとこれから
cyberagent
型安全性入門
型安全性入門
Akinori Abe
事業の進展とデータマネジメント体制の進歩(+プレトタイプの話)
事業の進展とデータマネジメント体制の進歩(+プレトタイプの話)
Tokoroten Nakayama
MLOpsはバズワード
MLOpsはバズワード
Tetsutaro Watanabe
AbemaTVにおける推薦システム
AbemaTVにおける推薦システム
cyberagent
Active Learning の基礎と最近の研究
Active Learning の基礎と最近の研究
Fumihiko Takahashi
ブレインパッドにおける機械学習プロジェクトの進め方
ブレインパッドにおける機械学習プロジェクトの進め方
BrainPad Inc.
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
ChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AI
Shota Imai
【DL輪読会】Llama 2: Open Foundation and Fine-Tuned Chat Models
【DL輪読会】Llama 2: Open Foundation and Fine-Tuned Chat Models
Deep Learning JP
目grep入門 +解説
目grep入門 +解説
murachue
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
xrmtg20210317
xrmtg20210317
takehitoyoshiki
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
NTT DATA Technology & Innovation
全力解説!Transformer
全力解説!Transformer
Arithmer Inc.
(修正)機械学習デザインパターン(ML Design Patterns)の解説
(修正)機械学習デザインパターン(ML Design Patterns)の解説
Hironori Washizaki
LakeTahoe
LakeTahoe
Yahoo!デベロッパーネットワーク
Hadoop入門
Hadoop入門
Preferred Networks
Pythonによる黒魔術入門
Pythonによる黒魔術入門
大樹 小倉
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
Masahito Zembutsu
Sparkを活用したレコメンドエンジンのパフォーマンスチューニング&自動化
Sparkを活用したレコメンドエンジンのパフォーマンスチューニング&自動化
Nagato Kasaki
広告におけるビッグデータの分析事例
広告におけるビッグデータの分析事例
Ken Takao
More Related Content
What's hot
推薦アルゴリズムの今までとこれから
推薦アルゴリズムの今までとこれから
cyberagent
型安全性入門
型安全性入門
Akinori Abe
事業の進展とデータマネジメント体制の進歩(+プレトタイプの話)
事業の進展とデータマネジメント体制の進歩(+プレトタイプの話)
Tokoroten Nakayama
MLOpsはバズワード
MLOpsはバズワード
Tetsutaro Watanabe
AbemaTVにおける推薦システム
AbemaTVにおける推薦システム
cyberagent
Active Learning の基礎と最近の研究
Active Learning の基礎と最近の研究
Fumihiko Takahashi
ブレインパッドにおける機械学習プロジェクトの進め方
ブレインパッドにおける機械学習プロジェクトの進め方
BrainPad Inc.
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
ChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AI
Shota Imai
【DL輪読会】Llama 2: Open Foundation and Fine-Tuned Chat Models
【DL輪読会】Llama 2: Open Foundation and Fine-Tuned Chat Models
Deep Learning JP
目grep入門 +解説
目grep入門 +解説
murachue
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
xrmtg20210317
xrmtg20210317
takehitoyoshiki
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
NTT DATA Technology & Innovation
全力解説!Transformer
全力解説!Transformer
Arithmer Inc.
(修正)機械学習デザインパターン(ML Design Patterns)の解説
(修正)機械学習デザインパターン(ML Design Patterns)の解説
Hironori Washizaki
LakeTahoe
LakeTahoe
Yahoo!デベロッパーネットワーク
Hadoop入門
Hadoop入門
Preferred Networks
Pythonによる黒魔術入門
Pythonによる黒魔術入門
大樹 小倉
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
Masahito Zembutsu
What's hot
(20)
推薦アルゴリズムの今までとこれから
推薦アルゴリズムの今までとこれから
型安全性入門
型安全性入門
事業の進展とデータマネジメント体制の進歩(+プレトタイプの話)
事業の進展とデータマネジメント体制の進歩(+プレトタイプの話)
MLOpsはバズワード
MLOpsはバズワード
AbemaTVにおける推薦システム
AbemaTVにおける推薦システム
Active Learning の基礎と最近の研究
Active Learning の基礎と最近の研究
ブレインパッドにおける機械学習プロジェクトの進め方
ブレインパッドにおける機械学習プロジェクトの進め方
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
ChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AI
【DL輪読会】Llama 2: Open Foundation and Fine-Tuned Chat Models
【DL輪読会】Llama 2: Open Foundation and Fine-Tuned Chat Models
目grep入門 +解説
目grep入門 +解説
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
xrmtg20210317
xrmtg20210317
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
全力解説!Transformer
全力解説!Transformer
(修正)機械学習デザインパターン(ML Design Patterns)の解説
(修正)機械学習デザインパターン(ML Design Patterns)の解説
LakeTahoe
LakeTahoe
Hadoop入門
Hadoop入門
Pythonによる黒魔術入門
Pythonによる黒魔術入門
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
Viewers also liked
Sparkを活用したレコメンドエンジンのパフォーマンスチューニング&自動化
Sparkを活用したレコメンドエンジンのパフォーマンスチューニング&自動化
Nagato Kasaki
広告におけるビッグデータの分析事例
広告におけるビッグデータの分析事例
Ken Takao
[db tech showcase Tokyo 2016] B15: サイバーエージェント アドテクスタジオの次世代データ分析基盤紹介 by 株式会社サイ...
[db tech showcase Tokyo 2016] B15: サイバーエージェント アドテクスタジオの次世代データ分析基盤紹介 by 株式会社サイ...
Insight Technology, Inc.
サラリーマンのための計算社会科学
サラリーマンのための計算社会科学
Masanori Takano
How Do Newcomers Blend into a Group?: Study on a Social Network Game
How Do Newcomers Blend into a Group?: Study on a Social Network Game
Masanori Takano
How to work Tableau x Google Cloud Platform in CyberAgent AdTech Studio
How to work Tableau x Google Cloud Platform in CyberAgent AdTech Studio
Ken Takao
データにまつわるWeb業界の仕事について
データにまつわるWeb業界の仕事について
Masanori Takano
データファースト開発
データファースト開発
Katsunori Kanda
ソーシャル系Webサービスのデータを用いた社会科学 資料
ソーシャル系Webサービスのデータを用いた社会科学 資料
Masanori Takano
社会関係の強さに基づく社会的グルーミング戦略の適応性
社会関係の強さに基づく社会的グルーミング戦略の適応性
Masanori Takano
MapR Hadoop M7 in CyberAgent AdTech Studio
MapR Hadoop M7 in CyberAgent AdTech Studio
Ken Takao
Ibis: すごい pandas ⼤規模データ分析もらっくらく #summerDS
Ibis: すごい pandas ⼤規模データ分析もらっくらく #summerDS
Cloudera Japan
最新版Hadoopクラスタを運用して得られたもの
最新版Hadoopクラスタを運用して得られたもの
cyberagent
AbemaTV モバイルアプリの開発体制と開発プロセスの話
AbemaTV モバイルアプリの開発体制と開発プロセスの話
Yuji Hato
AbemaTV デザインのBefore & After
AbemaTV デザインのBefore & After
Shunsuke Matsumoto
Pythonで入門するApache Spark at PyCon2016
Pythonで入門するApache Spark at PyCon2016
Tatsuya Atsumi
SEGA : Growth hacking by Spark ML for Mobile games
SEGA : Growth hacking by Spark ML for Mobile games
DataWorks Summit/Hadoop Summit
1000台規模のHadoopクラスタをHive/Tezアプリケーションにあわせてパフォーマンスチューニングした話
1000台規模のHadoopクラスタをHive/Tezアプリケーションにあわせてパフォーマンスチューニングした話
Yahoo!デベロッパーネットワーク
Case Study: OLAP usability on Spark and Hadoop
Case Study: OLAP usability on Spark and Hadoop
DataWorks Summit/Hadoop Summit
データドリブン企業におけるHadoop基盤とETL -niconicoでの実践例-
データドリブン企業におけるHadoop基盤とETL -niconicoでの実践例-
Makoto SHIMURA
Viewers also liked
(20)
Sparkを活用したレコメンドエンジンのパフォーマンスチューニング&自動化
Sparkを活用したレコメンドエンジンのパフォーマンスチューニング&自動化
広告におけるビッグデータの分析事例
広告におけるビッグデータの分析事例
[db tech showcase Tokyo 2016] B15: サイバーエージェント アドテクスタジオの次世代データ分析基盤紹介 by 株式会社サイ...
[db tech showcase Tokyo 2016] B15: サイバーエージェント アドテクスタジオの次世代データ分析基盤紹介 by 株式会社サイ...
サラリーマンのための計算社会科学
サラリーマンのための計算社会科学
How Do Newcomers Blend into a Group?: Study on a Social Network Game
How Do Newcomers Blend into a Group?: Study on a Social Network Game
How to work Tableau x Google Cloud Platform in CyberAgent AdTech Studio
How to work Tableau x Google Cloud Platform in CyberAgent AdTech Studio
データにまつわるWeb業界の仕事について
データにまつわるWeb業界の仕事について
データファースト開発
データファースト開発
ソーシャル系Webサービスのデータを用いた社会科学 資料
ソーシャル系Webサービスのデータを用いた社会科学 資料
社会関係の強さに基づく社会的グルーミング戦略の適応性
社会関係の強さに基づく社会的グルーミング戦略の適応性
MapR Hadoop M7 in CyberAgent AdTech Studio
MapR Hadoop M7 in CyberAgent AdTech Studio
Ibis: すごい pandas ⼤規模データ分析もらっくらく #summerDS
Ibis: すごい pandas ⼤規模データ分析もらっくらく #summerDS
最新版Hadoopクラスタを運用して得られたもの
最新版Hadoopクラスタを運用して得られたもの
AbemaTV モバイルアプリの開発体制と開発プロセスの話
AbemaTV モバイルアプリの開発体制と開発プロセスの話
AbemaTV デザインのBefore & After
AbemaTV デザインのBefore & After
Pythonで入門するApache Spark at PyCon2016
Pythonで入門するApache Spark at PyCon2016
SEGA : Growth hacking by Spark ML for Mobile games
SEGA : Growth hacking by Spark ML for Mobile games
1000台規模のHadoopクラスタをHive/Tezアプリケーションにあわせてパフォーマンスチューニングした話
1000台規模のHadoopクラスタをHive/Tezアプリケーションにあわせてパフォーマンスチューニングした話
Case Study: OLAP usability on Spark and Hadoop
Case Study: OLAP usability on Spark and Hadoop
データドリブン企業におけるHadoop基盤とETL -niconicoでの実践例-
データドリブン企業におけるHadoop基盤とETL -niconicoでの実践例-
Similar to Amebaにおけるレコメンデーションシステムの紹介
20120405 setsunaセミナー
20120405 setsunaセミナー
Takahiro Iwase
pg_bigmを用いた全文検索のしくみ(前編)
pg_bigmを用いた全文検索のしくみ(前編)
NTT DATA OSS Professional Services
HBaseとSparkでセンサーデータを有効活用 #hbasejp
HBaseとSparkでセンサーデータを有効活用 #hbasejp
FwardNetwork
AWSとGPUインスタンスのご紹介
AWSとGPUインスタンスのご紹介
Yasuhiro Matsuo
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Sotaro Kimura
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
Yosuke Mizutani
IoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache Flink
Takanori Suzuki
ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展
Recruit Technologies
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Yoshifumi Kawai
モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)
モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)
株式会社MonotaRO Tech Team
インメモリーで超高速処理を実現する場合のカギ
インメモリーで超高速処理を実現する場合のカギ
Masaki Yamakawa
[Okta x Jamf合同新年会] Okta Workflowsによるノーコード業務改善 〜Jamf APIを使ってMac端末情報を自動収集してみよう〜
[Okta x Jamf合同新年会] Okta Workflowsによるノーコード業務改善 〜Jamf APIを使ってMac端末情報を自動収集してみよう〜
Ryo Sasaki
Hadoop conferencejapan2011
Hadoop conferencejapan2011
Ichiro Fukuda
Introduction to Chainer (LL Ring Recursive)
Introduction to Chainer (LL Ring Recursive)
Kenta Oono
Reactive Workflow Argo Eventsの紹介
Reactive Workflow Argo Eventsの紹介
Daisuke Taniwaki
事例紹介「なうまぴおん」
事例紹介「なうまぴおん」
Eiji Iwazawa
20110519 okuyama tokyo_linuxstudy
20110519 okuyama tokyo_linuxstudy
Takahiro Iwase
第2回 R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜相関分析による需要予測編〜
第2回 R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜相関分析による需要予測編〜
Yasuyuki Sugai
JJUG CCC リクルートの Java に対する取り組み
JJUG CCC リクルートの Java に対する取り組み
Recruit Technologies
pg_bigm(ピージーバイグラム)を用いた全文検索のしくみ
pg_bigm(ピージーバイグラム)を用いた全文検索のしくみ
Masahiko Sawada
Similar to Amebaにおけるレコメンデーションシステムの紹介
(20)
20120405 setsunaセミナー
20120405 setsunaセミナー
pg_bigmを用いた全文検索のしくみ(前編)
pg_bigmを用いた全文検索のしくみ(前編)
HBaseとSparkでセンサーデータを有効活用 #hbasejp
HBaseとSparkでセンサーデータを有効活用 #hbasejp
AWSとGPUインスタンスのご紹介
AWSとGPUインスタンスのご紹介
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
IoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache Flink
ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)
モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)
インメモリーで超高速処理を実現する場合のカギ
インメモリーで超高速処理を実現する場合のカギ
[Okta x Jamf合同新年会] Okta Workflowsによるノーコード業務改善 〜Jamf APIを使ってMac端末情報を自動収集してみよう〜
[Okta x Jamf合同新年会] Okta Workflowsによるノーコード業務改善 〜Jamf APIを使ってMac端末情報を自動収集してみよう〜
Hadoop conferencejapan2011
Hadoop conferencejapan2011
Introduction to Chainer (LL Ring Recursive)
Introduction to Chainer (LL Ring Recursive)
Reactive Workflow Argo Eventsの紹介
Reactive Workflow Argo Eventsの紹介
事例紹介「なうまぴおん」
事例紹介「なうまぴおん」
20110519 okuyama tokyo_linuxstudy
20110519 okuyama tokyo_linuxstudy
第2回 R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜相関分析による需要予測編〜
第2回 R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜相関分析による需要予測編〜
JJUG CCC リクルートの Java に対する取り組み
JJUG CCC リクルートの Java に対する取り組み
pg_bigm(ピージーバイグラム)を用いた全文検索のしくみ
pg_bigm(ピージーバイグラム)を用いた全文検索のしくみ
More from cyberagent
WWW2019で見るモバイルコンピューティングの技術と動向 山本悠ニ
WWW2019で見るモバイルコンピューティングの技術と動向 山本悠ニ
cyberagent
Web フィルタリング最前線: 「「検閲回避」回避」 角田孝昭
Web フィルタリング最前線: 「「検閲回避」回避」 角田孝昭
cyberagent
WebにおけるHuman Dynamics 武内慎
WebにおけるHuman Dynamics 武内慎
cyberagent
Webと経済学 數見拓朗
Webと経済学 數見拓朗
cyberagent
Data Engineering Meetup #1 持続可能なデータ基盤のためのデータの多様性に対する取り組み
Data Engineering Meetup #1 持続可能なデータ基盤のためのデータの多様性に対する取り組み
cyberagent
継続的な開発スタイル AbemaTVのiOSアプリを週1でリリースしている話
継続的な開発スタイル AbemaTVのiOSアプリを週1でリリースしている話
cyberagent
AbemaTV レコメンド開発エンジニアによる RecSys 2018 参加レポート
AbemaTV レコメンド開発エンジニアによる RecSys 2018 参加レポート
cyberagent
機械学習エンジニアを見せたAWSの再:発明とは? 〜re:Invent 2018 参加レポート〜
機械学習エンジニアを見せたAWSの再:発明とは? 〜re:Invent 2018 参加レポート〜
cyberagent
インターネットテレビ局「AbemaTV」プロダクトの変遷
インターネットテレビ局「AbemaTV」プロダクトの変遷
cyberagent
番組宣伝に関するAbemaTV分析事例の紹介
番組宣伝に関するAbemaTV分析事例の紹介
cyberagent
WWW2018 論文読み会 Webと経済学
WWW2018 論文読み会 Webと経済学
cyberagent
WWW2018 論文読み会 WebにおけるHuman Dynamics
WWW2018 論文読み会 WebにおけるHuman Dynamics
cyberagent
WWW2018 論文読み会 Web Search and Mining
WWW2018 論文読み会 Web Search and Mining
cyberagent
サイバーエージェントの機械学習エンジニアが体験したGoogle I/O 2018
サイバーエージェントの機械学習エンジニアが体験したGoogle I/O 2018
cyberagent
ログ解析基盤におけるストリーム処理パイプラインについて
ログ解析基盤におけるストリーム処理パイプラインについて
cyberagent
Orion an integrated multimedia content moderation system for web services
Orion an integrated multimedia content moderation system for web services
cyberagent
Orion an integrated multimedia content moderation system for web services
Orion an integrated multimedia content moderation system for web services
cyberagent
「これ危ない設定じゃないでしょうか」とヒアリングするための仕組み @AWS Summit Tokyo 2018
「これ危ない設定じゃないでしょうか」とヒアリングするための仕組み @AWS Summit Tokyo 2018
cyberagent
"マルチメディア機械学習" の取り組み
"マルチメディア機械学習" の取り組み
cyberagent
サイバージェント 秋葉原ラボのHBase 活用事例
サイバージェント 秋葉原ラボのHBase 活用事例
cyberagent
More from cyberagent
(20)
WWW2019で見るモバイルコンピューティングの技術と動向 山本悠ニ
WWW2019で見るモバイルコンピューティングの技術と動向 山本悠ニ
Web フィルタリング最前線: 「「検閲回避」回避」 角田孝昭
Web フィルタリング最前線: 「「検閲回避」回避」 角田孝昭
WebにおけるHuman Dynamics 武内慎
WebにおけるHuman Dynamics 武内慎
Webと経済学 數見拓朗
Webと経済学 數見拓朗
Data Engineering Meetup #1 持続可能なデータ基盤のためのデータの多様性に対する取り組み
Data Engineering Meetup #1 持続可能なデータ基盤のためのデータの多様性に対する取り組み
継続的な開発スタイル AbemaTVのiOSアプリを週1でリリースしている話
継続的な開発スタイル AbemaTVのiOSアプリを週1でリリースしている話
AbemaTV レコメンド開発エンジニアによる RecSys 2018 参加レポート
AbemaTV レコメンド開発エンジニアによる RecSys 2018 参加レポート
機械学習エンジニアを見せたAWSの再:発明とは? 〜re:Invent 2018 参加レポート〜
機械学習エンジニアを見せたAWSの再:発明とは? 〜re:Invent 2018 参加レポート〜
インターネットテレビ局「AbemaTV」プロダクトの変遷
インターネットテレビ局「AbemaTV」プロダクトの変遷
番組宣伝に関するAbemaTV分析事例の紹介
番組宣伝に関するAbemaTV分析事例の紹介
WWW2018 論文読み会 Webと経済学
WWW2018 論文読み会 Webと経済学
WWW2018 論文読み会 WebにおけるHuman Dynamics
WWW2018 論文読み会 WebにおけるHuman Dynamics
WWW2018 論文読み会 Web Search and Mining
WWW2018 論文読み会 Web Search and Mining
サイバーエージェントの機械学習エンジニアが体験したGoogle I/O 2018
サイバーエージェントの機械学習エンジニアが体験したGoogle I/O 2018
ログ解析基盤におけるストリーム処理パイプラインについて
ログ解析基盤におけるストリーム処理パイプラインについて
Orion an integrated multimedia content moderation system for web services
Orion an integrated multimedia content moderation system for web services
Orion an integrated multimedia content moderation system for web services
Orion an integrated multimedia content moderation system for web services
「これ危ない設定じゃないでしょうか」とヒアリングするための仕組み @AWS Summit Tokyo 2018
「これ危ない設定じゃないでしょうか」とヒアリングするための仕組み @AWS Summit Tokyo 2018
"マルチメディア機械学習" の取り組み
"マルチメディア機械学習" の取り組み
サイバージェント 秋葉原ラボのHBase 活用事例
サイバージェント 秋葉原ラボのHBase 活用事例
Amebaにおけるレコメンデーションシステムの紹介
1.
Amebaにおける レコメンデーションシステムの紹介 2016 July 25 CyberAgent,
Inc. All Rights Reserved
2.
内藤 遥(ないとう よう) ●2012年サイバーエージェント入社 秋葉原ラボ所属 ●やっていること 推薦基盤や検索基盤の開発、運用 ●趣味 カラオケ、炭水化物ダイエット
3.
タイトル TITLE事業内容 インターネット広告事業 メディア事業
ゲーム事業 広告代理事業 自社広告商品 (アドテク) など など など
4.
本日のアジェンダ ①レコメンデーションシステムの概要について ②Item-to-Item Collaborative FilteringのSpark実装について
5.
本日のアジェンダ ①レコメンデーションシステムの概要について ②Item-to-Item Collaborative FilteringのSpark実装について
6.
秋葉原ラボが提供しているレコメンデーションシステム ● A.J.A. Recommend
Engine ○ 外部メディア向けのテキスト類似度を基にしたレコメンド ● Phoenix(プロジェクト名) ○ 協調フィルタリングによるレコメンドがメイン ○ Spark を使って推薦結果を作成 ● バトルレコメンド ○ 各種ゲームのギルドのバトルなどのマッチングをするシステム 以降、レコメンデーションシステム = Phoenix のレコメンデーションシステムとして話を進めていきます 今回のお話
7.
レコメンデーションシステムの利用
8.
Seasparrow (データ解析基盤) レコメンデーションシステム概要 HDFS YARN Spark HBase ZooKeeper Services アクティビティログ ・閲覧 ・購入 ・いいね ・お気に入りなど ● アクティビティログの転送 ○
購入履歴や閲覧履歴といったユーザの行動のログを データ解析用のHadoopクラスタに転送する
9.
Seasparrow (データ解析基盤) レコメンデーションシステム概要 HDFS YARN Spark HBase ZooKeeper Services Job Scheduler Recommendation Program ●
サービスごとに必要なデータソースや推薦アルゴリズムを選択 ● 推薦結果の作成 submit 推薦アルゴリズム ・Matrix Factorization(MLLib) ・Item-to-Item Collaborative Filtering(実装) ・PLSA(実装) など 外部データソース
10.
Seasparrow (データ解析基盤) レコメンデーションシステム概要 HDFS YARN Spark HBase ZooKeeper Services Recommendation Program ● 推薦結果をHBaseに格納 rowkey:
<ソルト(<> ハッシュ値の先頭1byte)> _<推薦ID(service + algorithm)> _ <user or itemID>_<version(timestamp)> value: <> に対する推薦結果(アイテムID, スコアなどのリスト)をシリアライズ ● ZooKeeper上の推薦IDに紐づくversion情報を更新 API notification 推薦ID: version
11.
Seasparrow (データ解析基盤) レコメンデーションシステム概要 HDFS YARN Spark HBase ZooKeeper Services ● 推薦リクエスト ●
imp, clickログの転送 Services Zero (リアルタイムカウンタ) API ・時間 ・推薦ID (service + algorithm) ・枠ID (どの面で推薦結果を表示したか) ・推薦対象 (user or itemID) ・推薦結果 ・imp/click など LB request response ・user or itemID ・推薦ID ・version
12.
Seasparrow (データ解析基盤) レコメンデーションシステム概要 HDFS YARN Spark HBase ZooKeeper Services ● CTRのレポーティング、CTRを基にした推薦結果のリランキング Services Zero
(リアルタイムカウンタ) Counting Program reporting API LB 推薦結果のimp/click バンディットアルゴリズム CTRを基にリランキング counting
13.
本日のアジェンダ ①レコメンデーションシステムの概要について ②Item-to-Item Collaborative FilteringのSpark実装について
14.
Item-to-Item Collaborative Filtering ●
ユーザベースの協調フィルタリング ○ ユーザ間の類似度をアイテムの評価を要素にしたベクトルで求め、自分とよく似 ているユーザの評価が高いアイテムを推薦する ○ 問題点 ■ アイテムの評価が少ないと精度が悪い ■ 計算量が多く、オンラインでの推薦が困難 ● アイテムベースの協調フィルタリング ○ アイテム間の類似度をユーザの評価を要素にしたベクトルで求め、対象のアイテ ムと同じように評価されているアイテムを推薦する ○ 購入履歴などの評価情報をリクエストに含めることで、オンラインでの推薦が可 能 ○ アイテムの評価が少なくても精度の良い推薦ができる
15.
Item-to-Item Collaborative Filtering user
item1 item2 item3 item4 A ◯ ◯ ◯ B ◯ ◯ ◯ C ◯ D ◯ ◯
16.
Item-to-Item Collaborative Filtering user
item1 item2 item3 item4 A ◯ ◯ ◯ B ◯ ◯ ◯ C ◯ D ◯ ◯ アイテム間の共起数 (ユーザの重複数)、 アイテムを評価したユーザ数 がわかればよい
17.
Sparkでの実装(Java) ● 事前準備として、各itemを int
のIDに変換する(データ量によってはuserも) Sparkではzip関数でユニークなIDを付与することもできるが、long型であまり メモリ効率がよくないため、int型のIDに変換する内製のIDMakerを利用している (user ID, item ID) の評価データの集合のRDDを生成する JavaPairRDD<Integer, Integer> userItemPairData = ...
18.
Sparkでの実装(Java) アイテムを評価したユーザ数の取得 JavaPairRDD<Integer, Integer> itemCountData
= userItemPairData.mapToPair(tuple -> { return new Tuple2<>(tuple._2, tuple._1); }).groupByKey().mapToPair(tuple -> { return new Tuple2<>(tuple._1, Iterators.size(tuple._2.iterator())); }); Int2IntMap itemCountMap = new Int2IntOpenHashMap(itemCountData.collectAsMap()); Broadcast<Int2IntMap> broadcastItemCountMap = context.broadcast(itemCountMap);
19.
Sparkでの実装(Java) アイテムを評価したユーザ数の取得 JavaPairRDD<Integer, Integer> itemCountData
= userItemPairData.mapToPair(tuple -> { return new Tuple2<>(tuple._2, tuple._1); }).groupByKey().mapToPair(tuple -> { return new Tuple2<>(tuple._1, Iterators.size(tuple._2.iterator())); }); Int2IntMap itemCountMap = new Int2IntOpenHashMap(itemCountData.collectAsMap()); Broadcast<Int2IntMap> broadcastItemCountMap = context.broadcast(itemCountMap); user, itemの並び替え item ごとに user を連結 Guavaライブラリ
20.
Sparkでの実装(Java) アイテムを評価したユーザ数の取得 JavaPairRDD<Integer, Integer> itemCountData
= userItemPairData.mapToPair(tuple -> { return new Tuple2<>(tuple._2, tuple._1); }).groupByKey().mapToPair(tuple -> { return new Tuple2<>(tuple._1, Iterators.size(tuple._2.iterator())); }); Int2IntMap itemCountMap = new Int2IntOpenHashMap(itemCountData.collectAsMap()); Broadcast<Int2IntMap> broadcastItemCountMap = context.broadcast(itemCountMap); fastutil ライブラリを使って省メモリ・高速化 メモリ量はそんなに大きくならないため、ブロードキャスト変数を利用して各ワーカーに転送 複雑なJoinの操作がなくなり、処理がシンプルに書ける
21.
Sparkでの実装(Java) アイテム間の共起数の取得、コサイン類似度の計算 // アイテムと共起するアイテムリストのRDDを生成 JavaPairRDD<Integer, int[]>
itemCoItemsPairData = userItemPairData.groupByKey().values() .flatMapToPair(items -> { int[] itemArr = StreamSupport.stream(items.spliterator(), false) .mapToInt(i -> i).toArray(); return Arrays.stream(itemArr).mapToObj(i -> new Tuple2<>(i, itemArr)) .collect(Collectors.toList()); });
22.
Sparkでの実装(Java) アイテム間の共起数の取得、コサイン類似度の計算 // アイテムと共起するアイテムリストのRDDを生成 JavaPairRDD<Integer, int[]>
itemCoItemsPairData = userItemPairData.groupByKey().values() .flatMapToPair(items -> { int[] itemArr = StreamSupport.stream(items.spliterator(), false) .mapToInt(i -> i).toArray(); return Arrays.stream(itemArr).mapToObj(i -> new Tuple2<>(i, itemArr)) .collect(Collectors.toList()); }); ユーザごとのアイテムリストにフォーカス primitive の配列を使うとメモリ効率が良い アイテムごとに共起アイテムの配列を紐付け
23.
Sparkでの実装(Java) アイテム間の共起数の取得、コサイン類似度の計算 itemCoItemsPairData.groupByKey().mapToPair(tuple -> { Int2IntOpenHashMap
itemCoMap = new Int2IntOpenHashMap(); int item = tuple._1; Int2IntMap itemCountMap = broadcastItemCountMap.value(); for (int[] coItems : tuple._2) { for (int coItem : coItems) { if (item == coItem) continue; // 自身のitemは含めない itemCoMap.addTo(coItem, 1); } } for (Int2IntMap.Entry entry : itemCoMap.int2IntEntrySet()) { int coItem = entry.getIntKey(); int coCount = entry.getIntValue(); double similarity = coCount / (Math.sqrt(itemCountMap.get(item)) * Math.sqrt(itemCountMap.get(coItem))); ... // sort
24.
Sparkでの実装(Java) アイテム間の共起数の取得、コサイン類似度の計算 itemCoItemsPairData.groupByKey().mapToPair(tuple -> { Int2IntOpenHashMap
itemCoMap = new Int2IntOpenHashMap(); int item = tuple._1; Int2IntMap itemCountMap = broadcastItemCountMap.value(); for (int[] coItems : tuple._2) { for (int coItem : coItems) { if (item == coItem) continue; // 自身のitemは含めない itemCoMap.addTo(coItem, 1); } } for (Int2IntMap.Entry entry : itemCoMap.int2IntEntrySet()) { int coItem = entry.getIntKey(); int coCount = entry.getIntValue(); double similarity = coCount / (Math.sqrt(itemCountMap.get(item)) * Math.sqrt(itemCountMap.get(coItem))); ... // sort アイテムごとの共起アイテムの配列を集める 共起数をカウント コサイン類似度の計算
25.
Tips ● 推薦結果のアイテムを鮮度の新しいものだけにしたい ○ マスターデータから条件に合致する推薦候補のアイテムリストを作成して、ブロー ドキャスト変数として転送 ○
推薦結果作成時にバリデーションをかける IntSet validItemSet = IntOpenHashSet(); ... // 有効なアイテムの追加 Broadcast<IntSet> broadcastValidItemSet = context.broadcast(validItemSet);
26.
Tips ● Spark上のバッチアプリケーションをJMXでモニタリングしたいが、portの管理が面倒く さい ○ 事前にレコメンデーションが使うport
のレンジを決めておき、zookeeper上に最新 バッチで使用しているport番号をセットし、 バッチ実行の度にインクリメントしていく ○ curatorライブラリの DistributedAtomicInteger を使うと便利
27.
メンバーを募集しています! ●詳しくはコーポレートサイトまで! https://www.cyberagent.co.jp/recruit/career/jobs/ ●もしくはお気軽に内藤までお声かけ ください!
Download now