SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Workshipにおける
レコメンドエンジンの実装について
〜僕ならこうやる〜
1
目次
● 発表の目的
● 参考論文の紹介
● Workship のレコメンドエンジンの精度を上げるための提案
2
Workship のレコメンド精度
を上げる提案をする
3
Deep Neural Networks for
YouTube Recommendations
YouTube で使用されているレコメンドエンジンに関する論文。
4
全体の構造
1. 全ビデオから候補生成
○ ユーザ情報や視聴履歴を
考慮
2. 選ばれしビデオをラン
キング
○ 特別な候補を追加
○ ユーザ周辺情報に加え、
ビデオ情報を考慮
3. さらに選ばれしビデオ
を提供
5
Neural Network の基礎 - 全体
● 脳内ネットワークを簡単に模倣した
モデル
○ 脳は、およそ150億のニューロンという
神経細胞がシナプスによって結合した莫
大なネットワーク
● 説明事項
○ 各ノードは複数の入力を用いて出力を決
定
○ 右図の縦のノードの集合を層と呼ぶ
○ 層間の結合は全結合 (であることが多
い)
6
Neural Nets の基礎 - ノード内部
● ノード内部において、活性化関数
f を用いることで、入力値に応じ
てどのような出力をするのかを決
定する
○ 右図のノードにおいては以下を入力と
する。w を重みと呼び、各入力の重要
度を決定づける
○ 最終的に、上記の入力を任意の関数 f
にかませて出力 y を得る
7
候補生成
● 訓練フェーズ
a. 入力ベクトル作成
b. ReLU に 3 回突っ込む
c. softmax で正規化し、各ビデオ
の視聴確率を算出
● 本番フェーズ
a. ユーザ情報と各ビデオの視聴確
率を用いて協調フィルタリング
b. トップから N 個を候補に認定
8
ReLU (Rectified Linear Unit)
● 負の入力値を 0 とし、正数には干
渉しない活性化関数
○ Deep Learning 界隈では、シンプルか
つ強力であるためにしばしば用いられ
る
9
ReLU 層を通すことで機械が特
徴を勝手に見つけてくれること
が重要!
softmax
● 出力を確率として扱いたいときに利用される活性化関数
○ 自分の値を全体の値で割って確率を出しているだけ
○ ただし、ネイピア数 ( e = 2.72… ) の乗数で考えているため、max 値が強調される
● 例:当たりが必ず 1 つだけ含まれているクジ 10 本
10
のびた しずか すねお たけし
引いたクジ数 1 2 2 5
softmax 値 0.016... 0.045... 0.045... 0.89...
ランキング
● 訓練フェーズ
a. 入力ベクトル作成
b. ReLU に 3 回突っ込む
c. ロジスティック回帰モデル
に入力し、各ビデオの視聴
時間と照らし合わせて
ReLU層を最適化
● 本番フェーズ
a. 訓練された ReLU 層の出
力から視聴時間を予測
b. 予測時間にもとづいてラン
キング
11
ロジスティック回帰
● (元々は) 確率を予測するアルゴリズム
○ 機械学習系では予測した確率をもとにクラス分類を行うことが多い
■ 確率がある閾値を超えていれば A, そうでなければ B に分類
● 目的:正事象の確率を p とするとき、最適な重み w を求めること
● Workship における使用例
○ ある案件をクリックする確率を p とするとき、x (過去の閲覧履歴、性別、年齢、etc...) を
入力すると訓練によって求められた w を用いて p を算出
○ 上記を案件毎に計算し、p の大小にもとづいて表示順序を決定
12
x : 入力 (説明変数)
提案セクション
13
Workship のレコメンド精度をあげる手段
● 0 or 1 から [0, x] へ
● ReLU による新たな特徴ベクトルの獲得
● 大量のデータ獲得後は候補生成とランキングを変更
● A/B テストで試行錯誤
14
0 or 1 から [0, x] へ
● 値を 0 or 1 の2値ではなく、複数の離散値か範囲のある連続値にする
○ つまり、空間を広げて線引きしやすくする
15https://www.albert2005.co.jp/knowledge/marketing/recommendation_basics/collaborative_filtering
ReLU による新たな特徴ベクトルの獲得
● ReLU を通すことによって、
元々の入力値を機械が整形し、
謎だけど良い感じの特徴ベクト
ルを獲得
○ 意味のある (人間が理解できる) 特
徴ベクトルをモデルに直接入力して
もある程度精度は出るが、そもそも
機械はそれぞれの特徴量を等しく扱
うため、抽象化しても何の問題もな
い。むしろ抽象化し、機械にとって
わかりやすい表現にすることで、精
度を上げるべき。ただし、人間にと
っては意味がわからなくなり、説明
できないものになる。
16
大量のデータ獲得後は候補生成とランキングに分割
● 大量のデータ全てに対し、全特徴量を用いて計算を行うことは時間的に困難
● 解決方法
○ 候補生成
■ 全データに対して、少ない特徴量を用いてそこそこの精度で選び出す
○ ランキング
■ 選ばれしデータに対して、多くの重要な特徴量を用いて高い精度で順位づける
● 重要な特徴量:出力に関連度合いの強い特徴量。例えば、ある商品が売れる確率
に対して、現在の価格は重要な特徴量であるが、過去の価格は重要な特徴量であ
るとは限らない。
● 特徴量エンジニアリング
○ 手持ちの特徴量のどれを用いるか選択したり、新たな特徴量を生成することによって、(でき
る限り) 最適な特徴ベクトルを構築
○ 例:ある部屋を賃貸する確率
■ 生成:費用に対する洋間の広さ (畳/円)
17
A/B テストで試行錯誤
● 戦略の良さは、結局のところやってみて統計をとらないとわからないことが
多いため、コストが莫大でない限りはとりあえずやってみよう
● YouTube のA/Bテストシナリオ
○ YouTube は初めはクリック率を判断基準としていた
○ しかし、誤クリックや開始 5 秒での離脱率、視聴回数アップを狙う攻撃などのノイズが精度
を低くする要因となってしまった
○ そこで、「興味のあるビデオは長い時間見られるはずだ」という仮定のもと、視聴時間を判
断基準とすることとした
○ 視聴時間を算出するようにモデルを改造し、A/Bテストを行なった結果、おすすめ動画の視
聴時間が増大することを確認した
18
判断基準として、適切な指標を
用いることが重要!
まとめ
● YouTube の事例
○ 候補生成とランキングに分割
○ 候補生成ではざっくり協調フィルタリング、
ランキングでは精密にロジスティック回帰
● Workship のレコメンド精度向上手段
○ 0 or 1 から [0, x] へ
○ ReLU による新たな特徴ベクトルの獲得
○ 大量のデータ獲得後は候補生成とランキン
グを変更
○ A/B テストで試行錯誤
19
参考
● Deep Neural Networks for YouTube Recommendations
○ https://static.googleusercontent.com/media/research.google.com/ja//pubs/archive/45530.pdf
● 協調フィルタリングとは
○ https://www.albert2005.co.jp/knowledge/marketing/recommendation_basics/collaborative_filtering
● Scikit-learn でロジスティック回帰 (確率予測編)
○ https://qiita.com/0NE_shoT_/items/c42d8093e2fed9bf1b7a
● Softmax って何をしてるの?
○ http://hiro2o2.hatenablog.jp/entry/2016/07/21/013805
● ニューラルネットワークの基礎を初心者向けに解説してみる
○ https://www.yukisako.xyz/entry/neural-network
● ニューラルネットワーク
○ https://ja.wikipedia.org/wiki/%E3%83%8B%E3%83%A5%E3%83%BC%E3%83%A9%E3%83%AB%
E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF
20
Good is good.
We provide opportunities to the SEKAI by fusing technology and ideas.
テクノロジーとクリエイティブでセカイをより良くする
のこと

Weitere ähnliche Inhalte

Was ist angesagt?

インストールマニアックスセミナー - Windows Azure 基本講演
インストールマニアックスセミナー - Windows Azure 基本講演インストールマニアックスセミナー - Windows Azure 基本講演
インストールマニアックスセミナー - Windows Azure 基本講演
満徳 関
 

Was ist angesagt? (18)

jubarecommenderの紹介
jubarecommenderの紹介jubarecommenderの紹介
jubarecommenderの紹介
 
Jubakit の紹介
Jubakit の紹介Jubakit の紹介
Jubakit の紹介
 
"アレ"からJubatusを使う
"アレ"からJubatusを使う"アレ"からJubatusを使う
"アレ"からJubatusを使う
 
jubabanditの紹介
jubabanditの紹介jubabanditの紹介
jubabanditの紹介
 
Movie Format in a Nutshell 2013
Movie Format in a Nutshell 2013Movie Format in a Nutshell 2013
Movie Format in a Nutshell 2013
 
Elasticsearct2.1
Elasticsearct2.1Elasticsearct2.1
Elasticsearct2.1
 
インストールマニアックスセミナー - Windows Azure 基本講演
インストールマニアックスセミナー - Windows Azure 基本講演インストールマニアックスセミナー - Windows Azure 基本講演
インストールマニアックスセミナー - Windows Azure 基本講演
 
ベンチマーク勉強会#02
ベンチマーク勉強会#02ベンチマーク勉強会#02
ベンチマーク勉強会#02
 
苫小牧高専 ソフトウェアテクノロジー部 enchant.jsでゲーム作り 5
苫小牧高専 ソフトウェアテクノロジー部 enchant.jsでゲーム作り 5苫小牧高専 ソフトウェアテクノロジー部 enchant.jsでゲーム作り 5
苫小牧高専 ソフトウェアテクノロジー部 enchant.jsでゲーム作り 5
 
Technical session 2 iaa s 始めました~自社内にある windows も linux もそして sql server も azur...
Technical session 2 iaa s 始めました~自社内にある windows も linux もそして sql server も azur...Technical session 2 iaa s 始めました~自社内にある windows も linux もそして sql server も azur...
Technical session 2 iaa s 始めました~自社内にある windows も linux もそして sql server も azur...
 
Isca13 study
Isca13 studyIsca13 study
Isca13 study
 
Jubakitの解説
Jubakitの解説Jubakitの解説
Jubakitの解説
 
Cloudshare のご紹介
Cloudshare のご紹介Cloudshare のご紹介
Cloudshare のご紹介
 
Jubaanomalyについて
JubaanomalyについてJubaanomalyについて
Jubaanomalyについて
 
インフラエンジニアがUnityをやるべきたった一つの理由
インフラエンジニアがUnityをやるべきたった一つの理由インフラエンジニアがUnityをやるべきたった一つの理由
インフラエンジニアがUnityをやるべきたった一つの理由
 
EthernetやCPUなどの話
EthernetやCPUなどの話EthernetやCPUなどの話
EthernetやCPUなどの話
 
最近のJuju/MAASについて 〜 15分版 - OpenStack最新情報セミナー 2017年11月
最近のJuju/MAASについて 〜 15分版 - OpenStack最新情報セミナー 2017年11月最近のJuju/MAASについて 〜 15分版 - OpenStack最新情報セミナー 2017年11月
最近のJuju/MAASについて 〜 15分版 - OpenStack最新情報セミナー 2017年11月
 
20130601わんくま「序hpcクラスターを作ろう!まずはオンプレで」公開用
20130601わんくま「序hpcクラスターを作ろう!まずはオンプレで」公開用20130601わんくま「序hpcクラスターを作ろう!まずはオンプレで」公開用
20130601わんくま「序hpcクラスターを作ろう!まずはオンプレで」公開用
 

Ähnlich wie LT13(後半)Workshipにおけるレコメンドエンジン実装

Ähnlich wie LT13(後半)Workshipにおけるレコメンドエンジン実装 (20)

Recsys2016勉強会
Recsys2016勉強会Recsys2016勉強会
Recsys2016勉強会
 
20110819 関西 kinect勉強会 初級編
20110819 関西 kinect勉強会 初級編20110819 関西 kinect勉強会 初級編
20110819 関西 kinect勉強会 初級編
 
Chainer on Azure 2 年の歴史
Chainer on Azure 2 年の歴史Chainer on Azure 2 年の歴史
Chainer on Azure 2 年の歴史
 
ニューラルネットワーク勉強会1
ニューラルネットワーク勉強会1ニューラルネットワーク勉強会1
ニューラルネットワーク勉強会1
 
Development and Experiment of Deep Learning with Caffe and maf
Development and Experiment of Deep Learning with Caffe and mafDevelopment and Experiment of Deep Learning with Caffe and maf
Development and Experiment of Deep Learning with Caffe and maf
 
Canonicalが支える、さくっと使えるUbuntu OpenStack - OpenStack Day in ITpro EXPO 2014
Canonicalが支える、さくっと使えるUbuntu OpenStack - OpenStack Day in ITpro EXPO 2014Canonicalが支える、さくっと使えるUbuntu OpenStack - OpenStack Day in ITpro EXPO 2014
Canonicalが支える、さくっと使えるUbuntu OpenStack - OpenStack Day in ITpro EXPO 2014
 
Introduction to NetOpsCoding#2
Introduction to NetOpsCoding#2Introduction to NetOpsCoding#2
Introduction to NetOpsCoding#2
 
モバイル(エッジ)向け ニューラルネットワーク推論エンジンの紹介
モバイル(エッジ)向け ニューラルネットワーク推論エンジンの紹介モバイル(エッジ)向け ニューラルネットワーク推論エンジンの紹介
モバイル(エッジ)向け ニューラルネットワーク推論エンジンの紹介
 
モバイル向けニューラルネットワーク推論エンジンの紹介
モバイル向けニューラルネットワーク推論エンジンの紹介モバイル向けニューラルネットワーク推論エンジンの紹介
モバイル向けニューラルネットワーク推論エンジンの紹介
 
20180729 Preferred Networksの機械学習クラスタを支える技術
20180729 Preferred Networksの機械学習クラスタを支える技術20180729 Preferred Networksの機械学習クラスタを支える技術
20180729 Preferred Networksの機械学習クラスタを支える技術
 
Getting Started with Deep Learning using Scala
Getting Started with Deep Learning using ScalaGetting Started with Deep Learning using Scala
Getting Started with Deep Learning using Scala
 
2015-ShowNetステージ-ファシリティ
2015-ShowNetステージ-ファシリティ2015-ShowNetステージ-ファシリティ
2015-ShowNetステージ-ファシリティ
 
エヌビディアが加速するディープラーニング ~進化するニューラルネットワークとその開発方法について~
エヌビディアが加速するディープラーニング ~進化するニューラルネットワークとその開発方法について~エヌビディアが加速するディープラーニング ~進化するニューラルネットワークとその開発方法について~
エヌビディアが加速するディープラーニング ~進化するニューラルネットワークとその開発方法について~
 
2018/06/22 Neural Network Console Tutorial
2018/06/22 Neural Network Console Tutorial2018/06/22 Neural Network Console Tutorial
2018/06/22 Neural Network Console Tutorial
 
第2回名古屋CV・PRML勉強会 「Kinectの導入」
第2回名古屋CV・PRML勉強会 「Kinectの導入」第2回名古屋CV・PRML勉強会 「Kinectの導入」
第2回名古屋CV・PRML勉強会 「Kinectの導入」
 
OpenStack管理者入門 - OpenStack最新情報セミナー 2014年12月
OpenStack管理者入門 - OpenStack最新情報セミナー 2014年12月OpenStack管理者入門 - OpenStack最新情報セミナー 2014年12月
OpenStack管理者入門 - OpenStack最新情報セミナー 2014年12月
 
経済学のための実践的データ分析 5.特許データの分析
経済学のための実践的データ分析 5.特許データの分析経済学のための実践的データ分析 5.特許データの分析
経済学のための実践的データ分析 5.特許データの分析
 
NXT走行体サンプルプログラム(ETロボコン向けTOPPERS活用セミナー3)
NXT走行体サンプルプログラム(ETロボコン向けTOPPERS活用セミナー3)NXT走行体サンプルプログラム(ETロボコン向けTOPPERS活用セミナー3)
NXT走行体サンプルプログラム(ETロボコン向けTOPPERS活用セミナー3)
 
XenServerによるお手軽開発サーバ運用
XenServerによるお手軽開発サーバ運用XenServerによるお手軽開発サーバ運用
XenServerによるお手軽開発サーバ運用
 
Canonicalが支える、さくっと使えるUbuntu OpenStack - OpenStack Day in ITpro EXPO 2014
Canonicalが支える、さくっと使えるUbuntu OpenStack - OpenStack Day in ITpro EXPO 2014Canonicalが支える、さくっと使えるUbuntu OpenStack - OpenStack Day in ITpro EXPO 2014
Canonicalが支える、さくっと使えるUbuntu OpenStack - OpenStack Day in ITpro EXPO 2014
 

Mehr von GIG inc.

Mehr von GIG inc. (20)

Lt41
Lt41Lt41
Lt41
 
Lt40
Lt40Lt40
Lt40
 
Lt39
Lt39Lt39
Lt39
 
LT38テーマ3-2
LT38テーマ3-2LT38テーマ3-2
LT38テーマ3-2
 
LT38テーマ3-1
LT38テーマ3-1LT38テーマ3-1
LT38テーマ3-1
 
LT38テーマ2-2
LT38テーマ2-2LT38テーマ2-2
LT38テーマ2-2
 
LT38テーマ2-1
LT38テーマ2-1LT38テーマ2-1
LT38テーマ2-1
 
LT38テーマ1-2
LT38テーマ1-2LT38テーマ1-2
LT38テーマ1-2
 
LT38テーマ1-1
LT38テーマ1-1LT38テーマ1-1
LT38テーマ1-1
 
lt37
lt37lt37
lt37
 
lt23後半
lt23後半lt23後半
lt23後半
 
lt23前半
lt23前半lt23前半
lt23前半
 
LT.22 GitHub Actionsを触ってみた話
LT.22 GitHub Actionsを触ってみた話LT.22 GitHub Actionsを触ってみた話
LT.22 GitHub Actionsを触ってみた話
 
LT.22 機械学習におけるPDCAを回せる環境構築の話
LT.22 機械学習におけるPDCAを回せる環境構築の話 LT.22 機械学習におけるPDCAを回せる環境構築の話
LT.22 機械学習におけるPDCAを回せる環境構築の話
 
LT.21 SPIN法を活用した人心掌握術
LT.21 SPIN法を活用した人心掌握術LT.21 SPIN法を活用した人心掌握術
LT.21 SPIN法を活用した人心掌握術
 
LT.21 スゴいチームになるフィードバック術
LT.21 スゴいチームになるフィードバック術LT.21 スゴいチームになるフィードバック術
LT.21 スゴいチームになるフィードバック術
 
LT.20 コーディングとマジックナンバー
LT.20 コーディングとマジックナンバーLT.20 コーディングとマジックナンバー
LT.20 コーディングとマジックナンバー
 
LT.20 Wordpress x nuxt.jsで実現するSPA
LT.20 Wordpress x nuxt.jsで実現するSPALT.20 Wordpress x nuxt.jsで実現するSPA
LT.20 Wordpress x nuxt.jsで実現するSPA
 
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(DONGURI)」
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(DONGURI)」【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(DONGURI)」
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(DONGURI)」
 
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(GIG)」
 【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(GIG)」 【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(GIG)」
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(GIG)」
 

LT13(後半)Workshipにおけるレコメンドエンジン実装

  • 2. 目次 ● 発表の目的 ● 参考論文の紹介 ● Workship のレコメンドエンジンの精度を上げるための提案 2
  • 4. Deep Neural Networks for YouTube Recommendations YouTube で使用されているレコメンドエンジンに関する論文。 4
  • 5. 全体の構造 1. 全ビデオから候補生成 ○ ユーザ情報や視聴履歴を 考慮 2. 選ばれしビデオをラン キング ○ 特別な候補を追加 ○ ユーザ周辺情報に加え、 ビデオ情報を考慮 3. さらに選ばれしビデオ を提供 5
  • 6. Neural Network の基礎 - 全体 ● 脳内ネットワークを簡単に模倣した モデル ○ 脳は、およそ150億のニューロンという 神経細胞がシナプスによって結合した莫 大なネットワーク ● 説明事項 ○ 各ノードは複数の入力を用いて出力を決 定 ○ 右図の縦のノードの集合を層と呼ぶ ○ 層間の結合は全結合 (であることが多 い) 6
  • 7. Neural Nets の基礎 - ノード内部 ● ノード内部において、活性化関数 f を用いることで、入力値に応じ てどのような出力をするのかを決 定する ○ 右図のノードにおいては以下を入力と する。w を重みと呼び、各入力の重要 度を決定づける ○ 最終的に、上記の入力を任意の関数 f にかませて出力 y を得る 7
  • 8. 候補生成 ● 訓練フェーズ a. 入力ベクトル作成 b. ReLU に 3 回突っ込む c. softmax で正規化し、各ビデオ の視聴確率を算出 ● 本番フェーズ a. ユーザ情報と各ビデオの視聴確 率を用いて協調フィルタリング b. トップから N 個を候補に認定 8
  • 9. ReLU (Rectified Linear Unit) ● 負の入力値を 0 とし、正数には干 渉しない活性化関数 ○ Deep Learning 界隈では、シンプルか つ強力であるためにしばしば用いられ る 9 ReLU 層を通すことで機械が特 徴を勝手に見つけてくれること が重要!
  • 10. softmax ● 出力を確率として扱いたいときに利用される活性化関数 ○ 自分の値を全体の値で割って確率を出しているだけ ○ ただし、ネイピア数 ( e = 2.72… ) の乗数で考えているため、max 値が強調される ● 例:当たりが必ず 1 つだけ含まれているクジ 10 本 10 のびた しずか すねお たけし 引いたクジ数 1 2 2 5 softmax 値 0.016... 0.045... 0.045... 0.89...
  • 11. ランキング ● 訓練フェーズ a. 入力ベクトル作成 b. ReLU に 3 回突っ込む c. ロジスティック回帰モデル に入力し、各ビデオの視聴 時間と照らし合わせて ReLU層を最適化 ● 本番フェーズ a. 訓練された ReLU 層の出 力から視聴時間を予測 b. 予測時間にもとづいてラン キング 11
  • 12. ロジスティック回帰 ● (元々は) 確率を予測するアルゴリズム ○ 機械学習系では予測した確率をもとにクラス分類を行うことが多い ■ 確率がある閾値を超えていれば A, そうでなければ B に分類 ● 目的:正事象の確率を p とするとき、最適な重み w を求めること ● Workship における使用例 ○ ある案件をクリックする確率を p とするとき、x (過去の閲覧履歴、性別、年齢、etc...) を 入力すると訓練によって求められた w を用いて p を算出 ○ 上記を案件毎に計算し、p の大小にもとづいて表示順序を決定 12 x : 入力 (説明変数)
  • 14. Workship のレコメンド精度をあげる手段 ● 0 or 1 から [0, x] へ ● ReLU による新たな特徴ベクトルの獲得 ● 大量のデータ獲得後は候補生成とランキングを変更 ● A/B テストで試行錯誤 14
  • 15. 0 or 1 から [0, x] へ ● 値を 0 or 1 の2値ではなく、複数の離散値か範囲のある連続値にする ○ つまり、空間を広げて線引きしやすくする 15https://www.albert2005.co.jp/knowledge/marketing/recommendation_basics/collaborative_filtering
  • 16. ReLU による新たな特徴ベクトルの獲得 ● ReLU を通すことによって、 元々の入力値を機械が整形し、 謎だけど良い感じの特徴ベクト ルを獲得 ○ 意味のある (人間が理解できる) 特 徴ベクトルをモデルに直接入力して もある程度精度は出るが、そもそも 機械はそれぞれの特徴量を等しく扱 うため、抽象化しても何の問題もな い。むしろ抽象化し、機械にとって わかりやすい表現にすることで、精 度を上げるべき。ただし、人間にと っては意味がわからなくなり、説明 できないものになる。 16
  • 17. 大量のデータ獲得後は候補生成とランキングに分割 ● 大量のデータ全てに対し、全特徴量を用いて計算を行うことは時間的に困難 ● 解決方法 ○ 候補生成 ■ 全データに対して、少ない特徴量を用いてそこそこの精度で選び出す ○ ランキング ■ 選ばれしデータに対して、多くの重要な特徴量を用いて高い精度で順位づける ● 重要な特徴量:出力に関連度合いの強い特徴量。例えば、ある商品が売れる確率 に対して、現在の価格は重要な特徴量であるが、過去の価格は重要な特徴量であ るとは限らない。 ● 特徴量エンジニアリング ○ 手持ちの特徴量のどれを用いるか選択したり、新たな特徴量を生成することによって、(でき る限り) 最適な特徴ベクトルを構築 ○ 例:ある部屋を賃貸する確率 ■ 生成:費用に対する洋間の広さ (畳/円) 17
  • 18. A/B テストで試行錯誤 ● 戦略の良さは、結局のところやってみて統計をとらないとわからないことが 多いため、コストが莫大でない限りはとりあえずやってみよう ● YouTube のA/Bテストシナリオ ○ YouTube は初めはクリック率を判断基準としていた ○ しかし、誤クリックや開始 5 秒での離脱率、視聴回数アップを狙う攻撃などのノイズが精度 を低くする要因となってしまった ○ そこで、「興味のあるビデオは長い時間見られるはずだ」という仮定のもと、視聴時間を判 断基準とすることとした ○ 視聴時間を算出するようにモデルを改造し、A/Bテストを行なった結果、おすすめ動画の視 聴時間が増大することを確認した 18 判断基準として、適切な指標を 用いることが重要!
  • 19. まとめ ● YouTube の事例 ○ 候補生成とランキングに分割 ○ 候補生成ではざっくり協調フィルタリング、 ランキングでは精密にロジスティック回帰 ● Workship のレコメンド精度向上手段 ○ 0 or 1 から [0, x] へ ○ ReLU による新たな特徴ベクトルの獲得 ○ 大量のデータ獲得後は候補生成とランキン グを変更 ○ A/B テストで試行錯誤 19
  • 20. 参考 ● Deep Neural Networks for YouTube Recommendations ○ https://static.googleusercontent.com/media/research.google.com/ja//pubs/archive/45530.pdf ● 協調フィルタリングとは ○ https://www.albert2005.co.jp/knowledge/marketing/recommendation_basics/collaborative_filtering ● Scikit-learn でロジスティック回帰 (確率予測編) ○ https://qiita.com/0NE_shoT_/items/c42d8093e2fed9bf1b7a ● Softmax って何をしてるの? ○ http://hiro2o2.hatenablog.jp/entry/2016/07/21/013805 ● ニューラルネットワークの基礎を初心者向けに解説してみる ○ https://www.yukisako.xyz/entry/neural-network ● ニューラルネットワーク ○ https://ja.wikipedia.org/wiki/%E3%83%8B%E3%83%A5%E3%83%BC%E3%83%A9%E3%83%AB% E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF 20
  • 21. Good is good. We provide opportunities to the SEKAI by fusing technology and ideas. テクノロジーとクリエイティブでセカイをより良くする のこと