こんにちは、はてなのアプリケーションエンジニアの id:yanbe です。
先日、アドテク × 機械学習 -オレシカナイト Vol.5というイベントに参加してきました。
オレシカナイトとは?
サイバーエージェントが運営するメディアの広告部門である 「Publisher adTechnology Assosiation」のエンジニアが、 新規技術に挑戦するにあたって学んだことや、プロダクトを開発・運用する過程 で学んだことを皆様に共有する勉強会です。
オレシカナイトについて
発表者は、サイバーエージェント社やその関連会社のアドテク関連部署の方々が中心ですが、最近はサイバーエージェントグループ内にとどまらず、アドテク業界のエンジニアの方が発表者として招かれることもあるようです。
発表が終わった後は、同じ会場で立食形式の懇親会がおこなわれ、さまざま会社でアドテクや関連分野の仕事に関わっている参加者同士で親睦を深めたり、発表者の方々に発表中に気になったことや詳しい話などを聞いたりすることが出来ます。
参加した理由
id:yanbe は、はてな社内では直近2年ほどは、はてな社内で広告関連のエンジニアリングに関する仕事を担当することが多いです。
そのため、2017年9月に開催された Ameba広告システムの裏側見せます - オレシカナイトvol3 にも参加させていただいたのですが、サイバーエージェントさんが自社開発している、広告配信サーバーシステム構成の話が参考になりました。
今回も、id:yanbeがこれから社内で取り組もうとしているプロジェクトの参考になればと思い、参加しました。
サイバーエージェントさんとはてな社は、規模は違いますが、自社で複数の媒体を運営しながら、それらに掲載する広告も大部分は自社で運用し、そのための広告入稿・配信するシステムも自社で開発しているという共通点があります。そのため、 id:yanbe の立場としては何かと参考になる点が多く、こういったイベントに参加させていただいています。
発表の内容
今回のオレシカナイトは4名の方々の発表がありました。
機械学習の推定精度向上のための変数作成方法 ~AbemaTVのユーザ属性推定~
資料
株式会社AbemaTV 広告本部 開発局 でデータサイエンティストをされている、阿部 昌利(あべまさとし)さんの発表でした。
背景
AbemaTVは、ユーザーがサービスを利用を開始するにあたって、ユーザー登録のような仕組みはなく、アプリをインストールするか、Webサイトにアクセスしてすぐに番組の視聴を開始できるつくりになっています。id:yanbe 自身も個人的にAbemaTVを利用しているのですが、たしかに使い始めるときにユーザー登録をした記憶はありません。
一方で、AbemaTVを利用しているユーザーがどういった人たちか、ということを、サービスを運営する側が知ることが出来ると、番組の編成の参考にしたり、サービスの開発の参考にしたり、広告枠を売るにあたっての訴求材料にできるため、サービスを運営したり、サービス内の広告枠を販売する立場からは、ぜひ欲しい情報といえます。これは、はてな社内で広告関連のエンジニアリングを担当してきたid:yanbe自身の色々な経験からも、納得がいくところです。
しかしながら、AbemaTVというプロダクトの方針としては、ユーザーの利用開始の敷居を下げたいため、ユーザー登録フローの中でフォームに年齢と性別を入力させるようなことは、UX上、許されないようです。それでもAmebaTVの各番組を視聴しているユーザーの属性を把握することは重要であるため、AmebaTV内の匿名のユーザー行動ログから、AbemaTVの利用ユーザーの属性を、精度良く推定する必要があります。
ユーザーの属性の定義
ここで扱うユーザーの属性とは、いわゆるデモグラフィック(デモグラ)というもので、サービスの利用ユーザーを性別と年代の軸で分けたものです。このような区分はマーケティングの現場でよく使われているそうです。
男性 | 女性 | |
20歳未満 | Teen | Teen |
20~34歳 | M1 | F1 |
35~49歳 | M2 | F2 |
50歳以上 | M3 | F3 |
匿名のユーザー行動から高精度にデモグラを推定するシステムは、マーケティング的な観点から有用であり需要も大きいため、データサイエンスの分野の中でもとくにお金に直結しやすいそうです。
AmebaTVの利用ユーザーのデモグラ推定方法
AmebaTVのユーザーのデモグラ推定は、以下のようなアプローチでおこなったそうです。
- AbemaTVの利用ユーザー全体のうち、ごく少数の集団に対して、番組の合間などに視聴中のプレイヤー上で簡単なアンケートをとり、その小集団の正確な年齢と性別を把握する
- 1. で得たアンケートの回答データとユーザーの視聴ログを突き合わせて、R言語のパッケージで扱いやすいように加工する
- ここで、ユーザー単位の素性は「チャンネルごとの視聴時間の比率」および「チャンネルごとの視聴回数の比率」とした
- こうすることで、ユ ーザーの行動の特徴を、チャンネル数分の次元をもったベクトルで表現できる
- 2. で加工したデータを教師データと学習データに分けて、回答者のAbemaTVの視聴データ(説明変数)を基に、XGBoost という R言語で利用できる機械学習用のモデル(パッケージ)で予測し、予測の正答率を把握する
- より良い精度が出そうな説明変数を考案するなど工夫する
- いい精度が出たらその説明変数は採用する
- 2. から 4. まで繰り返して、総合的に良い精度が出るまで頑張る
- いわゆるフィーチャーエンジニアリング
予測精度をもう一声あげるための工夫
性別推定の精度は、AbemaTV内に男女間で視聴傾向に差が出やすいチャンネルが存在していたこともあり、満足いく精度が比較的すぐに出たそうです。説明変数として、一番寄与度が高かったチャンネルは以下だそうです。
男性:格闘系の番組を扱ったチャンネル
女性:韓流ドラマなどを扱ったチャンネル
一方で、年齢層の推定精度は、この手のタスクとしてはよく知られた水準ではあるものの、もう一声という状態でした。そこで「曜日+時間別の平均視聴時間の構成比」といった説明変数を考案して試し、少しは精度が上がったものの、推定精度をもう1段階上げたい状況でした。
そこでさらに色々な変数を考案し、試行錯誤する中で着目したのが、視聴ログにかなりの割合で含まれる、ユーザーがAbemaTV上でチャンネルをザッピング*1したときのログ、その中でも「チャンネルの平均ザッピング速度」でした。そこで、
AbemaTVを視聴するユーザーの年齢層が上がるにつれて、平均ザッピング速度は遅くなるのではないか?
という仮説を立て、これを基に、まずAbemaTVのユーザーの視聴ログから、ユーザーの年齢層ごとの平均ザッピング速度の説明変数を作りました。そして、これを利用して年齢層を推定したところ、推定精度が大きく改善したため、これを説明変数として採用したそうです。
感想
匿名のユーザーの行動ログからのデモグラフィック推定という、弊社でも発生しうるタスクの普遍性と、AbemaTVという適用分野がいずれも身近なものだったこともあり、フィーチャーエンジニアリングの奥深さが知れて興味深かったです。
機械学習分野における予測タスクを高い精度で遂行するために、今回の例でいうところの「TV視聴における年齢層によるザッピング速度の違い」のような、応用対象の分野に潜在的に存在する、有用な説明変数を創造的に発見することを「レスポンス・スタイル分析」というそうです。id:yanbeは今までこのようなアプローチは知らなかったのですが、今後、自分の仕事でもどこかで利用できそうだなと感じました。
RTBにおける落札率・落札額予測
株式会社サイバーエージェント アドテク本部 Dynalystカンパニーでデータサイエンティストをされている川瀬 英俊さんの発表でした。
発表資料が非公開なので、簡単な説明に留めます。
近年は、デジタル広告の掲載の仕組みの中にリアルタイムビッディング(RTB)という、複数DSPによる競争入札が取り入れられている場合が多いです。結果として、ユーザーに対して広告を表示する直前にRTBがおこなわれ、最も高い価格で入札したDSPの広告が掲載される、という仕組みになっています。
このような競争環境で有利に振る舞うには、入札候補となっている広告枠の潜在価値を精度よく推定できるとよいです。これを首尾よくおこなうために、問題を落札率と落札額の関係、つまり、「ある広告枠に対して、落札額がいくらなら、どのぐらいの確率で落札できるか」という問題に捉え、落札率と落札額の関係を1つの枠組みで扱えるように定式化し、最適化問題として上手く問題を解くことで、広告枠の入札単価状況を推定する、ということを発表されていました。
RTBの入札最適化における機械学習
株式会社フリークアウト・ホールディングスの 三原 秀司 さん による発表でした。
こちらも発表資料が非公開なので、簡単な説明に留めます。
2010年代に入ってから、インターネット広告におけるReal Time Bidding (RTB) 分野の研究は活発化し、以下のように多くの論文が公開されています。RTBに関する研究の多くは、与えられた環境下でより高いCTRやCVRを達成するための予測アルゴリズムに関するものです。
https://github.com/wnzhang/rtb-papers
DSPやDMPの製品を開発しているフリークアウト社では、こういった研究成果の一部を、実際の広告運用環境で応用しています。実際のDSPにおける広告運用環境では、広告のCTR・CVRを予測して効率的に広告を運用する以外にも、色々と考慮すべきKPIがあります。そのため、仮にCTR予測が精度良く実現出来たとしても、その他の実際の広告キャンペーンの事情を考慮した入札ロジックになっている必要があります。
例えば、CPC(Cost per Click) 課金の広告キャンペーンの場合、DSP側から見た粗利が重要なKPIとなり、これを入札ロジックに反映する必要があります。もちろん、広告主から預かった広告予算には上限があるため、それも制約条件に含める必要があります。さらに、決まった期間にキャンペーンが行われるような場合は、あまり一気に広告予算を消化してしまうと機会損失になるため、予算の消化ペースも重要なKPIになります。
こういった、広告配信におけるCTR・CVR の推定と、顧客の望む予算消化ペースやCPC課金における上限金額、という2つの要求を両立させる制約問題を解くために、入札にまつわるロジックをUtility (最大化したいKPI) と Cost (bidがauctionに勝利したときに期待値) という2つのKPIに抽象化して、入札戦略はこれら両立させる最適化問題として解く、ということを発表されていました。
嘘つくメトリクス
株式会社サイバーエージェント 技術本部 秋葉原ラボでデータサイエンティストの仕事をされているTristan Irvine さんの発表でした。
背景
サイバーエージェントグループが運営する媒体で利用されている広告配信システムに Ameba Infeedというものがあります。これはDSPとSSPの両方の側面があります。
サイバーエージェント社内の広告を運用する部署では、このAmeba Infeed を利用して、顧客(広告主)から預かった広告クリエイティブを、サイバーエージェントグループのメディアの広告枠で適切に運用し、コンバージョンなどの成果につなげる必要があります。しかし、同時に運用すべき広告クリエイティブの種類はとても多く、すべてを人間が手動で運用するのは現実的には難しいです。そのため、人手による運用に加えて、社内にいるデータサイエンティストの方々が日々改良するアルゴリズムによる自動的な広告運用も組み合わせた運用を取り入れているそうです。
発表内容
サイバーエージェント社内のデータサイエンティストの方々の仕事の一部として、Ameba Infeedで運用されている広告のCTR・CVRを改善するために、新しいCTR・CVR予測ロジックを考案し、実装しています。
実装したCTR・CVR予測ロジックの性能を評価する方法として、過去Ameba Infeedでの広告配信ログ(impressionログおよびclickログ)および閲覧ユーザーの属性を用いてます。過去の広告配信ログを利用して、CTR・CVR予測ロジックの性能の評価をおこなって、その結果、有望そうだったらプロダクションの環境に小さい割合で投入し、問題がなければ全体に適用する、ということを業務の中でおこなっています。
この性能評価をおこなう際に、評価に用いる指標(メトリクス)を慎重に選び、過去のログデータを正しく利用して評価するように気をつけないと、過去データを用いた予測では良い結果が得られたロジックでも、プロダクション環境で適用してみると、期待したほど精度が出ない、ということがよくあるそうです。
こういった問題の対策として、データサイエンティストは、単純な指標から複雑な指標まで、なるべく多くの指標を日々モニタリングしておき、それらの指標が妥当性を正しく評価出来るようになっておくことが必要とのことでした。
技術系イベント運営方法として感心した部分
100人以上が参加する技術系イベントは、運営も大変になってくるものだと思います。オレシカナイトVol. 5では、いろいろと感心した部分がありました。
Googleフォームを活用したアンケート収集
イベントの受付で配布される、イベントの趣旨や、当日の発表タイムテーブルが書かれている紙に、QRコードが印刷されていて、それが当日の参加者向けのアンケートのGoogleフォームへのリンクになっていました。これがうまい方法だなと感心しました。
よくこの手のイベントでは、参加者に紙のアンケート用紙を配布して、参加者のアンケート結果を収集・集計して次回の運営に活かす、ということが行われます。しかし、我々の日常を振り返ると、紙にものを書く習慣は減ってきているため、スマホやPCでアンケートを入力する方が楽な人が多いでしょう。また、アンケートを収集して集計し次回の運営に役立てる主催者側の負担も大幅に減ります。
そのため、参加者のほぼ全員がスマートフォンかPCを持参していることが期待できる、今回のようなイベントは、Googleフォームでアンケートを収集するのは上手い方法だなと感じました。紙のアンケート用紙の場合、記入するために場所をとりますし、会場にいる間に回答を書いて提出する必要がある、という制約があります。しかしGoogleフォームなら、イベントが終わった後、帰りの電車の中でGoogleフォームに記入して提出することも出来ます。
そのため、自分が技術系のイベントのの主催側で関わるような機会があったときは真似したいと思いました。
発表資料の柔軟な公開範囲
アドテク系の勉強会において、CTR・CVR予測といった分野の取り組みは、企業の技術的競争力の源泉に近い部分でもあるので、発表者としてあまり広く資料を公開したくない場合もあります。このニーズに運営者の方々が気を配り、資料の公開範囲を柔軟に対応していたのが印象的でした。公開範囲は、以下の3つのパターンがありました。
- 資料はウェブで公開し、Twitter でイベントのハッシュタグをつけて参加者に共有
- 資料は非公開
- イベント開催中の時間帯のみ connpassのイベントのページで資料を公開し、各自のPCで見られるが、イベント終了後は資料をページから引き上げる
こういう風に、発表者の事情や発表内容の機密性に応じて、資料の公開範囲を柔軟にコントロールしてもらえると、アドテクのような発表内容を完全にはオープンにしにくい分野の発表も、登壇者として参加しやすくなりますね。
まとめ
オレシカナイトに参加するのは2回目でしたが、今回も良い刺激を受けることが出来ました。アドテク分野のにおけるRTBの入札ロジックは、機械学習を利用した最適化問題として定式化したものを解く、というやり方がすでに主流になっていて、この業界でデータサイエンティストの肩書をもつ方々が実際にどのように仕事をしているかを垣間見ることが出来ました。
はてな社内において、広告関連の仕事に関わっているエンジニアは、現時点では人数としてはさほど多くないのですが、はてな全体の売上に占める広告関連の収益の割合はそれなりにあり、技術的に改善できそうな部分はまだまだあります。こういったイベントに参加すると、アドテク分野の先端的な事例に触れることができ、今後の社内の取り組みの参考にすることができるので、ありがたいなと思いました。
はてなでは、はてなのサービスで収益を上げるための広告に関する課題にともに取り組むエンジニアを募集しています。
*1:おもしろい番組がないか探すために、チャンネルを数秒で切り替えていく行為