2019-10-07

データ分析系3daysインターンシッププログラムで伝えたかったこと

担当した3daysインターンシッププログラムが無事に終ったので、自分が何を考えていたかをまとめます。いわゆる「機械学習エンジニア」向けのインターンです。

https://voyagegroup.com/internship/adventure/

背景

期間3日でやりたいと打診を受けた時に真っ先に思いついたのはコンペ形式のプログラムでした。しかしKaggleを筆頭に実際のビジネスで発生したデータを使ったEDAおよび機械学習予測モデルの開発ができる機会は今やいくらでもあるため、Kaggleそのままの形式では目新しさに欠ける。さらに実際の開発業務では求めた予測値を使って意思決定を自動化する所までが求められるため、予測器を作って精度を見て終りというのは片手落ちとなってしまう。よって、求めた予測値を利用して意思決定を行なうアプリケーションを実装してビジネス指標が出力として得られる部分までを範囲としました。

内容

ハンズオンチュートリアル形式でアドネットワークの広告配信ロジックの開発およびデータ分析を行ないました。配信ロジックは「広告リクエストに対してどの広告を返すか」と「広告のクリック単価をいくらにするか」を広告リクエストを受けた時に決める処理です。

開発は運営が用意したPython環境で起動しているJupyter Notebook上で行ない、これは参加者それぞれ専用のサーバーで動作しています。用意したPython環境にはアドネットワークシミュレーターがインストールされており、参加者は実装した配信ロジックを即座に実行して結果を確認する事ができます。結果には広告キャンペーン毎の獲得コンバージョン数やメディア毎の収益額が含まれており、任意の加工を行ない可視化する事で動作確認が可能です。

個々のトピックとして次の物を取り上げました
  • 両面市場(Two Sided Market)における値付け
  • 多腕バンディット方策による累積報酬最大化
  • 広告配信ログの分析
  • 機械学習によるCVR予測
  • 推論処理のアプリケーション組み込み
  • フィードバック制御によるリカバリ
収益予測と広告選択ロジックが実装する範囲

出題の意図

講義ノートの所々に仕込んだ練習問題や、全体の流れの意図のネタばらしです。

顧客の問題を解決しよう

アドネットワークというビジネスには広告主とパブリッシャーという2つの顧客グループが存在し、それぞれが何を求めているかという点から配信ロジックに求められる要件を解説しました。この考え方が出来ると「予測できて何が嬉しいのか、ビジネスにどんな貢献をするのか」という視点に常に立ち戻れます。機械学習が好きな人は「予測ができる事」に目が行きがちですが、時間をかけていらない物を作ってしまうリスクを減らす為にも重要な考え方だと感じています。

検証方法を考えよう

実装したロジックが意図通りに動いているか、どの様に確認すべきでしょうか? 実務では自分で考える他ないので同様に体験してもらいました。特に確率的なふるまいをするロジックのリリース後の動作確認は難しく、どのデータを取りどの様な可視化を行なうと自信を持ってバグが無いと言いきれるのか、頭を悩ます点でもあります。

予測誤差を意識しよう

広告キャンペーン毎のコンバージョン率を誤差範囲と共にプロットする課題を用意しました。それぞれサンプルサイズが異なる事から誤差範囲もバラバラ、よって平均値の比較だけでは何も言えません。意思決定には予測誤差を考慮する必要がある点は多腕バンディット方策の活用と探索の話に繋がります。また確率pがゼロに近いため二項分布の正規近似で上手くいかない点もミソです。

予測が外れる事を前提として自動リカバリ手段を用意しよう

予測精度100%というのはまずありえないので、予測を誤った時にどうするかが重要となります。自動リカバリの手法としてフィードバック制御を紹介して、みなさんに実装してもらいました。

コールドスタート問題をなんとかしよう

コンバージョン率予測モデルで新規の広告キャンペーンに対しては未学習となっている状態を見せました。コールドスタート方策の一つとしてパラメータのThompson Sampling (ロジスティック回帰ならベイジアンロジスティック回帰) があり、これはパラメータ推定値の誤差の大きさを行動に反映できます。

単一の指標で評価しない

Kaggleの様に何らかの評価指標に絞ってロジックの性能を評価するのはやめました。プラットフォームを運営するのであれば買い手を優遇したい時期、売り手を優遇したい時期、またプラットフォーマーの粗利額を優先したい時期どれもあります。プラットフォーマーの短期的な利益を削ってプラットフォームの成長を促したり、売り手間の公平性を考慮したりと様々な実装が出て来た方が面白いと考えました。

高速に動作するプログラムを書こう

広告配信ロジックにおける処理は広告リクエスト に対して配信可能な広告 a A それぞれについてのクリック率 P(click = 1 | X, a)・コンバージョン率 P(cv = 1 | X, a, click=1)を求める必要があります。ここからアドサーバーにおける推論速度の要件を解説しました。10ミリ秒以内に100回の前処理と推論をしたいという事も普通にあるので、遅いコードはそもそもリリースできません。
しかしこれは説明するまでもなく、遅いコードを書くとシミュレーターの動作がどんどん遅くなっていくため気づけたかと思います。事前に配信候補の数を絞る方策も有効ですが3日間という期間を考慮して省きました。

まとめ

インターンシッププログラムの内容を考えて講義資料を作り、専用システムを開発するのは初めてだったのですが学ぶ所が多くありました。また実務のエッセンスをどう伝えるかはまだまだ改良の余地があるので、次回があれば良くしていきます。


このエントリーをはてなブックマークに追加

2019-08-06

KDD2019本会議の聴講リスト

明日からKDD2019の本会議なので聴講リストを整備した。マーケットデザイン・オンライン広告・バンディットアルゴリズムが中心。

招待講演

口頭発表

ポスター



このエントリーをはてなブックマークに追加

2019-08-05

「WTF経済 ―絶望または驚異の未来と我々の選択」感想

ティム・オライリーの視点でここ数年のテック業界でどのような変化が起きているか纏めてあり、トピックは多岐に渡る。その中でも下記の2点は広告業界のソフトウェアエンジニアとして思いをめぐらす所があった。

WTF経済 ―絶望または驚異の未来と我々の選択
オライリー・ジャパン
Tim O'Reilly (著), 山形 浩生 (翻訳)
O'reillyAmazon
原著: WTF: What's The Future and Why It's Up To Us

アルゴリズムの管理者としてどうあるべきか

本書の前半はUber, Lift, Google検索を例に価値創造の場におけるアルゴリズムの重要性を説いている。そしてプログラマーは管理職でありプログラムが労働者であると。Googleの検索品質改善の例では、利用者の求めていない低品質なサイトが検索結果の一番上に表示される状況をどう改善したかの紹介がある。すぐに思いつく手段の一つはルールを追加して低品質なサイトを検索結果から除外しまう事だが、彼らはユーザーが検索結果をクリックした後の遷移先の滞在時間をスコアとして利用し、スコアの低い検索結果を除外した。
ルールベースのアルゴリズムは理解が容易で、何かまずい事が起きた時の暫定対応としてプロダクションに投入しがちである。しかしユーザーのフィードバックを利用した方が汎化性能が高くロバストなソリューションになる事はランキングやリコメンド開発者として頭に留めておきたい。

またFacebookにおける見出し詐欺、実際の記事の内容とは異なる刺激的なタイトルを使って利用者を釣っている記事への対応のくだり。
グーグルは、その検索アルゴリズムの厳密な細部は公開しない。ランキングを上げようとする連中に悪用されるのを恐れるからだ。同様に、フェイスブックが見出し詐欺の記事を取り締まったとき、ニュースフィードの製品管理担当副社長アダム・モセリはこう書いた。「フェイスブックは見出し詐欺を定義する複数ページにわたるガイドラインを公開したりはしません。というのもその大部分は実際にスパムであり、もし我々がずばり何をどのようにしているか明らかにすれば、リバースエンジニアリングされて、それを回避する方法を見つけられてしまうからです」
ネット広告における不正対策に繋がる部分であるが、どの様なふるまいを不正とみなすかは公開する事はやはりできない。利用規約にどこまで詳細に記すか、問いあわせにどこまで答えるかの議論が度々発生するが堂々と非公開にして良いのだ。

インターネット広告がネットメディアに与える影響

ネットメディアが主に収益源とする広告収益のもたらす影響について。
検索エンジンやソーシャルメディアで関心を集める必要性は、ニュースメディアの低劣化、偉大な出版物ですらのお手盛り、インチキな論争など、トラフィックを増やす各種技法への堕落をもたらしている。どん底への競争の一部は、ニュース産業の収入が購読料から広告収入に大きくシフトした結果である。
辛辣な表現だが事実として受け止めるべきだろう。Webサイトの価値としてPV数と広告のクリック率が通貨さながらの扱いを受けているのは違和感を禁じえない。しかしインターネット広告がある事でそのようなインセンティブを与えてしまっているのだ。今日たまたま学会で聴いた話で、マイクロソフトの検索エンジンの開発者は「ユーザーが得られた情報の量を操作数で割った物」を指標にしているとの事だった。

https://sites.google.com/view/kdd2019-exp-evaluation/ より

Information Gainの計測はクリックの様な明示的なフィードバックの集計だけで済まないためコストはかかる*1が、情報検索を役目とするサービスの指標として秀逸さに感銘を受けた。広告業界もネットメディアがこのような指標に集中できるような仕組みを目指すタイミングであると思う。そのためにはメカニズムデザインや因果推論が重要な役割を果たすのではと考えている。

*1: 検索結果のリストを見て満足してサイトを去るケースがあるため

このエントリーをはてなブックマークに追加

2019-05-14

「戦略的データサイエンス入門」がOJTの参考書として良さそうだった

配属された新人氏に勧められるか確認すべくあらためて読み直した。データサイエンスのビジネス適用という主題で様々なトピックに触れているが自分は次の3点に注目した。

  • ビジネス課題をどのようにデータサイエンスの手法で解決するか、どのように対応方法がわかっているサブタスクへ分解するかのアプローチ
  • モデル評価の方法
  • データサイエンス組織の運用・育成
感想はサービス開発現場のソフトウェアエンジニアとしてのものです。まずは書籍の基本情報と目次。

戦略的データサイエンス入門
―― ビジネスに活かすコンセプトとテクニック
オライリー・ジャパン
Foster Provost、Tom Fawcett 著、竹田 正和 監訳、古畠 敦、瀬戸山 雅人、大木 嘉人、藤野 賢祐、宗定 洋平、西谷 雅史、砂子 一徳、市川 正和、佐藤 正士 訳
O'reillyAmazon
原著: Data Science for Business

目次

1章 はじめに:データ分析思考
2章 ビジネス問題とデータサイエンスが提供するソリューション
3章 予測モデリング:相関から教師ありセグメンテーションへ
4章 モデルをデータにフィットさせる
5章 オーバーフィッティングとその回避方法
6章 類似度、近傍、クラスタ
7章 意思決定のための分析思考:良いモデルとは何か
8章 モデル性能の可視化
9章 エビデンスと確率
10章 テキスト表現とテキストマイニング
11章 意思決定のための分析思考Ⅱ:分析思考から分析工学へ
12章 その他のデータサイエンスの問題と技法
13章 データサイエンスとビジネス戦略
14章 おわりに

感想

まず前書きでデータ活用の3要素が提示されており、ぐっと惹きつけられた。
  • データを効率的に収集・処理する事
  • データを適切に取り扱い、妥当かつ汎用的な成果を残すこと
  • データをビジネスの枠組みの中にうまく組み込むこと
まさに自分が成すべき事そのものである。そして1章はデータサイエンスによってどの様な成果があげられるのかという具体例を上げ、またデータが投資対象である旨を説明している。得られた成果よりも日々のストレージコストの方が高かった、といった事があると困るので投資と回収の感覚は身につけたい。

2章はデータサイエンスプロジェクトの序盤で必要なソリューション設計について。ビジネス課題を解決方法がわかっているタスクに分解し、解決できる状態にする能力が重要であると述べている。このトピックに焦点を置いた文献はあまり知らないので非常に貴重だと感じた。他にも良い文献があったら知りたい。

7章のモデル評価の章ではモデルを実際に利用した時に得られる収益の期待値を使って評価を行なう方法を紹介している。Accuracy, f1-scoreが単純すぎて使えないというのは自分も実務で試して経験したので先にこの本を読んでおけばと思った次第。また学習曲線・over-fitting検知用のフィッティンググラフといった常識的に確認しておくべきポイントは押えてあるのが良い。11章ではさら進んでLiftを使ったモデル評価にも言及している。

ナイーブベイズ・SVM・ロジスティック回帰といった個別アルゴリズムの詳細には触れていないが例えば「ナイーブベイズが素性間の独立性を仮定しているのに上手く動作するのは何故か?」といったエッセンスについては数式込みで紹介しているし、前処理の章は無いがリーク(leakage)については事例を交えて解説がある塩梅。

2章と13章ではデータサイエンスチームの運用・チームメンバーの能力評価に触れているのと、付録にあるデータマイニングプロジェクトに対するレビュー項目リストは便利そう。関係者とのコミュニケーションにおける要所が都度補足されているのは親切だなと。

総じて「大学で機械学習をやっていたがサービス開発現場でやるのは初めて」というの人にはオススメできる内容で、150を越える大学で教科書として採用されているだけはあるなと思いました。

このエントリーをはてなブックマークに追加

2019-04-08

Repro Tech #7でオンライン意思決定の話をしました

Practical AIがテーマの会で「機械学習の予測モデルをどう使うか」という話をしました。自分が最近気にしているのがアプリケーションへの組み込み時の予測値の扱いなので、その辺りにフォーカスしています。アクティブラーニング、貪欲法、予測時にパラメータを事後分布からサンプルするThompson Sampling、オンライン凸最適化等です。

スライド: 予測の不確実性と上手く付き合う意思決定の手法 




このエントリーをはてなブックマークに追加