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.

機械学習の推定精度向上のための変数作成方法 ~AbemaTVのユーザ属性推定~

8,635 views

Published on

2018年2月23日(金)に開催されたオレシカナイトvol.5(https://cyberagent.connpass.com/event/77000/)での発表スライドです

Published in: Data & Analytics
  • Be the first to comment

機械学習の推定精度向上のための変数作成方法 ~AbemaTVのユーザ属性推定~

  1. 1. CyberAgent, Inc. All Rights Reserved. 機械学習の推定精度向上のための変数作成方法 - AbemaTVのユーザ属性推定 - Date : 2018 Feb 23 Presenter : ABE Masatoshi
  2. 2. 本日お伝えしたいこと01
  3. 3. お持ち帰り頂けたらうれしい言葉 本日お伝えしたいこと01 レスポンス・スタイル 機械学習の説明変数(特徴量)として、 「レスポンス・スタイル」的な観点から 作成した変数は、推定精度向上に寄与する 場合がある。
  4. 4. 自己紹介02
  5. 5. 自己紹介02 の前に
  6. 6. 自己紹介02 メディア事業は、今AbemaTVに投 資をしている段階です。数字はまだ 公表するつもりはないのですが、 AbemaTV自体の広告の売 上も順調にPump Upする 時期だと、今年度を位置付け ています。要は、コストを増 やしているものの売上も 増やしており、その数字が 入ってきています。 by 代表取締役社長 藤田晋 2018年1月25日 ㈱サイバーエージェント 2018年9月期第1四半期決算説明会
  7. 7. 自己紹介02 最近、私の所属 ㈱AbemaTV 広告本部 は盛り上がっています。
  8. 8. 現所属 自己紹介02 株式会社AbemaTV 広告本部 開発局 データサイエンティスト 阿部 昌利
  9. 9. スキル自己評価 自己紹介02 データ サイエンス ビジネス データ エンジニア
  10. 10. スキル自己評価 自己紹介02 データ サイエンス ビジネス データ エンジ ニア 3.8 5 1 市場平均を3点とすると、こんな感じかなと
  11. 11. ビジネス3.8点の材料 自己紹介02 14年 17年 4月 7月 ’18.01  分析提供者 = 日銀からラーメン屋まで  取扱データ = 企業間取引データからガチャのログまで ’14.04 ’11.04 ’17.07 社会人7年目で4社目。データサイエンティストとして、社内外 向け問わず、様々なビジネスモデルの組織で分析を経験
  12. 12. AbemaTVへの転職理由や職務内容は上記事をご覧下さい AbemaTVへの転職理由や職務内容 自己紹介02
  13. 13.  統計学関連の本を6冊 分担執筆  スポーツの予測指標で 特許取得(特許6186061) サイエンス5.0点の材料 自己紹介02
  14. 14. AbemaTVでの機械学習適用03
  15. 15. 機械学習のテーマ AbemaTVでの機械学習03  属性推定 ユーザが下記7属性のいずれに分類されるか推定する 男性 女性 20歳未満 Teen 20~34歳 M1 F1 35~49歳 M2 F2 50歳以上 M3 F3 AbemaTVの広告配信サービスの仕様上、 このデモグラでユーザを区分できるとビジネス的にうれしい
  16. 16. 前提 AbemaTVでの機械学習03  AbemaTVは受け身メディア  暇だったらAbemaTVをひらいても らうのが目標  開けたらすぐ始まるとか、登録い らないとか簡単にした 参照:下記記事 https://ferret-plus.com/5542 http://jp.techcrunch.com/2016/12/15/abematv-at-tc-tokyo-2016/ https://www.videor.co.jp/digestplus/media/2017/07/2337.html AbemaTVは視聴ログ以外のユーザ情報を 基本的に取得していない
  17. 17. 目的変数の教師データ AbemaTVでの機械学習03 ただし、一定数のユーザに、アプリ内でアンケートを実施。 その回答を教師データとする
  18. 18. 今回やってみた機械学習の概要 AbemaTVでの機械学習03 過去のアンケート回答者でモデルを作成して、 最近の回答者の推定結果で精度を確かめる 学習データ 2017年11月までのアンケート回答者の視聴データ 性別推定モデル / 年代推定モデル Rのxgboostライブラリ メリット:高精度なモデルつくりやすい、説明変数の数多くて似通っていてもOK デメリット:計算コスト大きくて学習データが数GB超えるときつい、パラメータ調整が奥深い 評価用データ 2017年12月以降のアンケート 回答者の視聴データ ①モデル構築 ②入力 ③出力 推定結果 男性確率 or 年代該当確率
  19. 19. 説明変数の元 AbemaTVでの機械学習03 主なログは大体、  ユーザ×番組 単位のレコード(合計何秒見たかなど)  ユーザ×広告 単位のレコード(合計何秒見たかなど) で集計された形式で格納されている ①ユーザが アプリを利用 ②色々経て ③Big Queryに ログ貯蓄
  20. 20. 説明変数 AbemaTVでの機械学習03 まずは、オーソドックスにチャンネル別の 視聴時間・回数を説明変数として推定(全48変数) 累計 視聴時間 (秒) 全23チャンネルの視聴時間構成比 News 新作 TVアニメ 家族 アニメ … ドキュ メンタリー 麻雀ch 3,600 10% 10% 10% 10% 10% 累計 視聴回数 全23チャンネルの視聴時間構成比 News 新作TV アニメ 家族アニメ … ドキュメン タリー 麻雀ch 50 5% 5% 5% 5% 5% ■データ例(※ダミーデータ)
  21. 21. 性別の推定結果 AbemaTVでの機械学習03 性別類推はざっと試してみて、満足できる精度 (数字出せなくて申し訳ありません…) アンケート回答 計 正答率 (precision)a_男性 b_女性 推定結果 (推定値>0.5は男性 推定値<=0.5は女性) 1_男性 2_女性 計 再現率(recall) • Xgboostのパラメータはデフォルト通り。最適な木の探索数はmax100回として、交差データにて最も誤判別率が小さくな る場合を採用 悪くないぞ
  22. 22. 性別推定に効果的な変数 AbemaTVでの機械学習03 チャンネル変数で推定に効果的なのは 男性は「格闘」、女性は「K WORLD」
  23. 23. 年代の推定結果 ver1 AbemaTVでの機械学習03 年代推定の精度も悪くなかったが、もう少し高められそう アンケート回答 計 正答率 (precision) 20歳 未満 20~ 34歳 35~ 49歳 50歳 以上 推定結果 (最も推定値 の高い グループに 分類) 20歳未満 20~34歳 35~49歳 50歳以上 計 再現率(recall) • Xgboostのパラメータはデフォルト通り。最適な木の探索数はmax100回として、交差データにて最も誤判別率が小さくな る場合を採用 もう一声!
  24. 24. 自己紹介02もう少し精度を向上させたい
  25. 25. 曜日・時間(hour)の説明変数追加 AbemaTVでの機械学習03 曜日、時間の視聴時間構成比を説明変数に追加 + + 曜日別の視聴時間構成比 月曜日 火曜日 … 日曜日 15% 15% 15% 時間別の視聴時間構成比 0時台 1時台 … 23時台 8% 8% 8% 累計 視聴時間 全23チャンネルの視聴時間構成比 News 新作 TVアニメ 家族 アニメ … ドキュ メンタリー 麻雀ch 3,600 10% 10% 10% 10% 10% 累計 視聴回数 全23チャンネルの視聴時間構成比 News 新作TV アニメ 家族アニメ … ドキュメンタ リー 麻雀ch 50 5% 5% 5% 5% 5% ■データ例(※ダミーデータ) 視 視
  26. 26. 若干、精度向上 年代の推定結果 ver2(+曜日・時間) AbemaTVでの機械学習03 アンケート回答 計 正答率 (precision) 20歳 未満 20~ 34歳 35~ 49歳 50歳 以上 推定結果 (最も推定値 の高い グループに 分類) 20歳未満 20~34歳 35~49歳 50歳以上 計 ver1比 101.08% 再現率(recall) • Xgboostのパラメータはデフォルト通り。最適な木の探索数はmax100回として、交差データにて最も誤判別率が小さくな る場合を採用
  27. 27. 自己紹介02 ここから伸び悩む
  28. 28. 死屍累々 説明変数の試行錯誤 AbemaTVでの機械学習03 • 説明変数を追加してもモデルを作成した場合の全体正答率の変化 モデル No. 説明変数 モデルNo.1比の全体正 答率(precision)の 上昇率 1 視聴時間・回数(総計およびチャンネル別構成比) 100% 2 + 曜日・時間別の視聴時間構成比 101.08% 3-1 + 視聴予約(合計&チャンネル別回数) 101.09% 3-2 + コメント(回数総計およびデバイス別、 アプリ内 or Twitter別の回数) 101.07% 3-3 + OS, デバイス別視聴時間 101.11% 3-4 + 最長視聴番組(絶対値および平均比) 101.09%
  29. 29. 自己紹介02 苦肉の策
  30. 30. 自己紹介02 レスポンス・スタイル 心理学の用語。調査票への回答スタイル。 「日本人は中間回答を好み、極端回答を避ける」など、 特定の属性に見られる回答内容ではなく、 回答の仕方自体の特徴。 「何を答えたか」ではなく「どう答えたか」に着目する
  31. 31. 自己紹介02 Webログにこの考え方を適用すると… 例えば、特定の属性のみ、 ・ログの発生間隔が短かい ・ログが周期的に発生する ・不正なログが多い など、ログの発生の仕方に、属性特有のバイアスが 生じていないか。 →もしバイアスがあるならば属性推定に役立つ
  32. 32. 自己紹介02 今回のケースで 着目してみたのは
  33. 33. 自己紹介02 ザッピング
  34. 34. 番組視聴ログの結構な割合を、 視聴時間5秒未満のザッピングが占める 視聴時間の分布 AbemaTVでの機械学習03 • 2017年4月17日~2018年2月16日の番組視聴ログ全件の視聴時間の分布を1秒刻みで図示したのが下図 件数 視聴時間 番組視聴時間ごとのログ件数分布 5秒未満 一定値以上
  35. 35. 自己紹介02 ザッピングのログの中身は 意味に乏しい
  36. 36. 自己紹介02 が、もしかすると 年をとっていくと、 ザッピングするのが、 遅くなるんじゃないか?
  37. 37. BINGO! 年齢別の平均ザッピング所要時間 AbemaTVでの機械学習03 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 15 20 25 30 35 40 45 50 55 60 65 70 秒数 年齢 ザッピング(5秒以下の視聴ログ)の平均所要時間 • 2017年4月17日~2018年2月16日の視聴ログ全件のうち視聴時間が、5秒未満のログに限定して平均視聴時間を1歳刻みで図 示したのが下図
  38. 38. 推定の説明変数に加えると、精度もちょっぴり向上 説明変数の試行錯誤 AbemaTVでの機械学習03 • 説明変数を追加してもモデルを作成した場合の全体正答率の変化 モデル No. 説明変数 全体正答率 (precision) 1 視聴時間・回数(総計およびチャンネル別構成比) 100% 2 + 曜日・時間別の視聴時間構成比 101.08% 3-1 + 視聴予約(回数総計およびチャンネル別回数) 101.09% 3-2 + コメント(回数総計およびデバイス別、 アプリ内 or Twitter別の回数) 101.07% 3-3 + OS別視聴時間 101.11% 3-4 + 最長視聴時間番組(絶対値および平均比) 101.09% 3-5 + 平均ザッピング時間 101.74%
  39. 39. まとめ まとめ04 ① 機械学習のとき、レスポンス・スタイル の観点で作成した変数を使ってみよう 属性推定の際の変数として、ログの意味内容だけでな く、ログの発生の仕方自体の特徴を表す変数をつくって みると推定精度の向上に寄与する場合がある。 あと1ptくらい機械学習モデルの精度をあげたいけど、 万策尽きたときに使ってみるといいかもしれません。 機械学習の説明変数は自由だ! ② AbemaTVの広告本部もアドテク頑張っ ていきます
  40. 40. 自己紹介02 ありがとうございました! のちほど懇親会でお話ししましょう

×