読者です 読者をやめる 読者になる 読者になる

F.O.X初の単独勉強会!! 「TVCM分析機能の開発秘話」レポート

F.O.X 勉強会 アドテク Scala OSS AWS

こんにちは、新卒エンジニアの今森&中村です!

今回は、F.O.X初の単独勉強会となりました、 『Scalaノチカラ~CyberZ「F.O.X」におけるTVCM分析機能の開発秘話や失敗談まで~@ヒカ☆ラボ 』の様子をレポートしたいと思います。

レバレジーズさんが主催するヒカ☆ラボにて、弊社のF.O.X 開発エンジニア三人が登壇しました。 F.O.Xの新機能である TVCM 分析機能についての話が中心となり、 Web業界、ひいてはIT業界でもなかなか話を聞くことの少ないTVCMに関する勉強会となりました。 また、後半では同じくF.O.X 開発エンジニアである石橋も加わって、 パネルディスカッション形式でTVCM分析機能の開発秘話などを聞くことができました。

発表内容

はじめにレバレジーズさんの方から挨拶があり、その後、発表が始まりました。
登壇者と発表内容は下記のようになっています。

発表スライドは来ていただいた方限定にさせていただきました。ご了承ください。

CyberZ と F.O.X について(門田)

はじめに門田からの CyberZ と F.O.X についての話がありました。

f:id:cyberz-dev-writer:20160714185441j:plain

CyberZ を知っているかどうかを来場者の方に聞くと、予想を上回る人数の方が手を上げてくださいました。 弊社の認知度が上がってきているのを肌で感じます。 F.O.X についても、ネット広告に詳しくない来場者の方々もいらっしゃったことから、 実例と数値を交えて説明がありました。新卒の私達にとっても改めて自社プロダクトを振り返る良い機会となりました。

F.O.X の TVCM 分析開発の背景と概要(遠藤)

続いてはいよいよ、遠藤から今回の勉強会の目玉である TVCM 分析機能開発についての話です。

f:id:cyberz-dev-writer:20160714185849j:plain

F.O.X の TVCM 分析機能には、「TVCM モニタリング機能」と「TVCM 分析効果測定機能」の2つがあります。 TVCM モニタリング機能は、TVCM がいつどれだけ流れたのかを可視化する機能で、日毎やスポンサーごとに集計することができます。 TVCM 分析効果測定機能は、TVCM によってどのような広告効果があったのかを分析し可視化する機能で、 TVCM によってどのくらいの数のユーザが流入したのかを推定し、アプリの1インストールあたりのコストを知ることができます。

TVCM 分析機能を開発した背景には、スマホアプリの TVCM 増加があります。 みなさんも年末年始にアプリの TVCM をよく目にしたのではないでしょうか。 CyberZ は、スマホアプリ広告のマーケティングカンパニーです。 WEBやアプリに配信される広告だけではなく、 TVCM をもカバーすることで、顧客のアプリプロモーションやマーケティングに貢献したいという思いがあり、 開発に至りました。

TVCM 分析のロジックを簡単に説明すると、CM が見られた量とアプリのインストールが連動しているかどうかに注目し、 その連動の仕方をみて、TVCM による効果がどの程度だったのかを統計的に処理します。 本機能では、状態空間モデルを用いて分析を行いました。

TVCM という WEB 業界では今まであまり扱われてこなかった題材へのチャレンジであり、そこで発生した問題点などとても勉強になりました。 また、AbemaTV に代表されるように、WEB 業界と TV 業界の関係も強くなっており、今回の知見が今後活かされるのではないでしょうか。

An Archtecture オブ TVCM Analytics(鈴木)

最後の発表は鈴木から TVCM 分析機能のシステムアーキテクチャについてです。

f:id:cyberz-dev-writer:20160714185349j:plain

来場者の方々はIT業界の方々が多いことから、まずは TVCM についての説明がありました。 TVCM の効果を測定する上で重要になってくる指標の一つに GRP というものがあります。

 GRP = 視聴率 × CM 放送回数
     = CM の閲覧数

TVCM 効果分析では、顧客の所有している GRP データをもとに、 TVCM によってアプリがどれだけインストールされたのかを予測することが目的になります。 初期の設計では、Scalaで作られたAPIサーバ上で重回帰分析によりTVCM分析を行っていましたが、 重回帰分析では十分な予測精度が出なかったため、状態空間モデルへと変更しました。 状態空間モデルは計算量が大きいため、API サーバに対する負荷が大きくなり、別に計算サーバを導入する必要が......
そこで、計算サーバでは Rを用いて計算を行い、APIサーバ(Scala)は R スクリプトを呼び出すという構成になりました。 機械学習などを行うシステムを設計する場合、 ロジックの変更に強い作りにした方が良いというメッセージをしっかりと心のノートに残しておきたいと思います。

下記は開発の過程で鈴木が自作した重回帰分析の Scala ライブラリになります。

パネルディスカッション「TVCM開発秘話と失敗談」(門田、遠藤、鈴木、石橋)

f:id:cyberz-dev-writer:20160714185504j:plain パネルディスカッションでは、登壇者の三名に加えて石橋も参加し、 TVCM開発に関する秘話と失敗談を紹介しました。 下記のようなお題がありました。

他にもあったのですが流石にアレ過ぎて書けない内容でしたので伏せさせていただきます。。。

Spark の検証用に立てた AWS インスタンスが必要以上にリッチなタイプであり、 それを起動させっぱなしにしたことによって、 まだリリースしていないにもかかわらずコストが膨らんでしまってプロジェクトマネージャに怒られた話や、分析モデルの変更によって、当初予定していた Spark の導入が難しくなった経緯など、 私達にとっても、いつか役に立つような頭の隅においておきたいことばかりでした。

懇親会

発表のあとは来場者の方々と登壇者の懇親会です。 お酒とお菓子を囲みながら、発表内容や普段の仕事の話など、話題は尽きることがありませんでした。 前回の勉強会の経験もあってか、私達の名刺渡しスキルも向上しているのを感じました。

f:id:cyberz-dev-writer:20160714185218j:plain

まとめ

f:id:cyberz-dev-writer:20160714185523j:plain

今回はF.O.X初の単独勉強会の様子をレポートさせていただきました。 TVCM 分析機能開発は新卒の私達が入社する前の話だったので、 存在は知っていても詳しい内容は知りませんでした。 今回の勉強会で TVCM 分析機能がどのように分析しているのかや、 どのような開発体制で行っていたのかを知ることができ、私達自身学ぶことの多い勉強会となりました。

また、今回の勉強会には、ここには書けない裏話などたくさんありました。 気になる方は、ぜひ CyberZ の行っている勉強会に参加いただければと思います。

勉強会告知

直近では、CyberZ、セプテー二・オリジナル、オプトの三社による勉強会を開催予定です。

弊社エンジニアが参加した直近の勉強会についてのレポートも、順次掲載していく予定です。
お見逃しなく◎

それでは以上、今森&中村でした。