僕の頭の備考欄

徒然なるままに日々の発見を書き綴ります.数学/情報技術/ダンス 要するに雑記です.

エージェンシーの新卒データサイエンティスト1年目回顧録

2019年4月に入社してもう1年が経ち、新卒1年目の期間が終わりました。

丁度いい節目なので1年目の振り返りもかねて、広告会社の新卒データサイエンティストがこの1年間何をやってきたかを書き留めておきます。

実案件のことはあまり具体的には書けないのでぼかしつつ概要程度になりますが悪しからずです...。

バックグラウンド

念のために僕のバックグラウンドを書いておきます。

学生時代は理学部数学科で代数幾何学を専攻していました。学部卒です。(数式処理システムなどについて勉強していました。) バイトで塾の先生やマーケティングリサーチ、webデザインの受託をちょっとやっていました。

あと、温泉巡りやダンスが趣味だったりします。

会社のこと

会社と役割

所属は大手の広告代理店グループで主にデジタルマーケティング領域のソリューション開発をするチームです。 クライアントのマーケティング課題を解決する何でも屋です。

その中で僕はデータ分析を中心としたマーケティングソリューションの開発と運用、提案業務を担っています。 広告配信ログやクライアントのwebログデータ、CRMシステムのデータを分析し、広告配信の最適化や施策方針・意思決定支援などを行います。

作業としては、分析やシステム構築がメインですが、フロントに立ってソリューションの提案のためにクライアントに赴くこともあり、案件によって入り方はやや変則的です。

ワークシェアとしては分析・開発 : クライアントワーク = 7 : 3くらいです。

会社の文化・環境

基本的にはかなり自由な文化で、服装自由、フレックスタイム勤務が認められており、成果や態度次第で若手にも大きな裁量を与えてもらえます。 若手の意見や提案もしっかり拾ってもらった上で、よいものは随時採用してもらえます。 若手中心でギルド的に立ち上がったプロジェクトチームがインパクトのある事例を輩出して高く評価されていたりします。

求められる役割とカバーする事業領域が広いことや多様性を尊重する文化があることから、広告会社には様々な性格・バックグラウンドを持った人たちが集まっています。 変な人が多いです。 チームにはアナリストや機械学習エンジニア、提案経験豊富なコンサルタントが、他の部署に行けばフロントエンド・ソフトウェアエンジニア、マーケティングプランナー、メディアコンサルタント、クリエイティブのデザイナーなどあらゆる領域の専門家がいます。 困ったときに相談できる専門家が社内にいるのは心強いですし、知見が広がって楽しいです。

先輩データサイエンティストは勉強熱心な人が多く、技術書も経費で買えるのでスキルアップの環境としては申し分ないです。

ただ、組織がが大きいとやはりトップダウンマネジメント・縦割り構造になりがちというのが現状で、若干動きが重たいなとか、現場の認識とずれているなと感じるときも結構あります...。事業部・グループが細分化されすぎていて、あのチームって何やってるとこだっけ?というのもしばしばです。 案件管理を工夫したり、積極的に事例共有をするなど、部署間での連携を高めたり現場の実情を把握しやすくする取り組みを進めているところです。

扱っている案件のこと

クライアントの業種・業態や事業規模は多種多様です。案件規模もアドホックに来る相談もあれば、何社も巻き込んだ大きなプロジェクトもあります。スパンも1か月以内で収まるものから、扱いが継続される限りずっと向き合い続けるものまで。本当に様々です。

クライアントと1対1で向き合うことよりも、グループ会社やメディア会社、制作会社や調査会社など第三者ともコミュニケーションをとりながら進めるケースが多かったりします。

やってきたこと

だいたい時系列順です。

新卒研修 (4, 5月)

元号"令和"の発表で盛り上がった入社式の翌日から、2か月間の全体研修がありました。 会社のミッションや制度、ケイパビリティや各部署の説明、名刺交換や立ち居振舞い、パワポ・エクセル講座、広告媒体やツールの説明、広告・マーケティングの何たるかを理解するためのワークショップなど実にいろいろなことをやりました。

ほぼ座学です。開始1週間ほどで腰痛が出始めます。

何かと虚無が多いイメージの新卒研修ですが、5%くらいは有意義なお話もあります。 新参者は黙って素直に聞いてみるものです。

退屈な時間は支給された社用PCの開発環境構築などを黙々と進めていました。 ちなみにPCは全員一律でWindows機です。後に申請すればMacに交換もできます。(なら最初から選ばせて...) 慣れてしまったのと、結構環境作りこんでしまったのでなんやかんやでずっとWindows機のまま過ごしています。

研修の最後にそれまで学んだことを使って、実際に過去にクライアントから受けた与件に対してマーケティング施策を考えてプレゼンテーションする模擬提案コンペのようなものがありました。

いくつかのチームに分かれ、2日間かけてチームで提案内容を考え、最終発表の内容の質を競うのですが、かなり濃密なディスカッションができ、これは楽しかったです。 具体的な課題の内容は書けないのですが、テーマは既存サービスのグロースハックで、実際にあった案件を題材にしているのでリアリティがあり取り組み甲斐がありました。 市場環境の分析から、ターゲットペルソナを設計とサービス利用イメージの深化、アイディア出し、説得材料の用意など一つ一つのアプローチを丁寧に進め、新規性とビジネスインパクト、実現可能性を併せ持った提案をチームメンバーと協力して作りました。

コンセプトを明快にした実現性の高いストーリ設計ができたことでチームとして優勝できたことは自信になりました!

社としては新卒は一括の総合職採用なので、エンジニア研修のようなものはありませんでした。

趣味程度のPythonとRの経験と唯一謎に自信のあったVim捌きで下記の仕事に立ち向かうのでした。 (開発スキルは仕事を進めながら自習し、先輩のレビューを受けながら磨いていくことになります)

web広告配信ログ分析 (6, 7月)

配属直後から実案件を任されます。 最初に任されたのは、web広告配信ログの集計・分析とレポーティング作業でした。ショットのものも含めこの手の相談はよく来るので何度か対応しました。 SQLを書いてログデータベースからデータを抽出・加工し、重複リーチの集計やアトリビューション分析、配信設計のABテストなどを行った上で、日次で自動的にスプレッドシートに更新されるようプログラムします。

毎度分析設計には時間をかけ、自分の持っている知識と併せて書籍や過去事例から勉強しつつ慎重に行いました。 SQLは経験があったのですが主にwebサイトのDB構築で使った程度であったため、複雑な集計を実現するクエリを書くために、データテーブルの設計を細かく確認したり使ったことのない関数を調べたりと、初日からわりと苦労しながら作業したのをよく覚えています。

データ抽出や基礎的な集計・分析処理をサクッと書けるように、空き時間にSQLで遊びながら練習していました。

先輩の訪問提案・定例会同行 (6月)

雰囲気をつかむために最初の1か月ほどは、先輩の訪問提案や定例会議にちょこちょこ同行させてもらっていました。

ケイパ資料作成 (6月)

先輩が新規扱い獲得のために訪問に行くということで資料を作りました。 クライアントにこちらのケイパビリティを理解してもらえるよう絵をかきます。

広告会社というのは謎にパワポへのこだわりが強く、小綺麗な資料を作ることを求めてくる空気があります。 個人的にはそこまで嫌いな作業ではないので、淡々とやっています。

時間があるときに自分用のマスターを用意し、レイアウトや素材のテンプレを作ってデザインルールを決めておくと、いざ資料作らなきゃとなったときにサクッと作れちゃいます。

KPI予測モデル・データ分析基盤構築 (7月~継続)

ダイレクト系のクライアントの案件で、各種KPIの予測モデルの作成とその推論パイプラインの構築に取り組みました。

こういった取り組みは多く、統計モデル・機械学習モデルなど状況に応じたアプローチで指標を予測し広告運用などマーケティング施策につなげています。 既に構築されていた分析基盤を拡張開発しつつ、他案件の例を参考にしながら実装を進めました。

クライアントから大切なCRMシステムデータをお預かりして分析を行うのでデータ管理には慎重になりました。

実ビジネスのデータを用いたモデル作成やデータパイプラインの構築は初めての作業だったのでかなり苦労しまくりの日々でした...。

Dockerやワークフローエンジンなど、知っているつもりで全然よくわかっていないものを1から勉強する必要がありました。 適切な手法選択のため、勾配ブースティングやグラフ畳み込みNNなどお気持ち程度にしか理解できていなかった手法について、論文等で知識補完をしながら進めました。 これをやっていたころは1日の流れが速かったような...。

メンテナンスしやすいコードの書き方、ワークフローサーバーの仕組みなど寄り道しつつも細かくゆっくり勉強できてかなり充実していたなと思います。

分析・開発も大変でしたが、この案件ではクライアントへの分析結果の報告も任されていたので報告の準備なども発生しており、やや頭が混乱してきます...。 相手がクライアント社長、以下役員と聞かされて緊張で報告に行く前からもう帰りたくなっていました。

入社後初のプレゼンがクライアント社長プレゼンと相成りましたが、予め降ってくるであろう質問を想定して資料やメモを準備しておき、勢いに任せてしゃべれば緊張は忘れてしまうものだな、という発見がありました。 備えあれば憂いなしです。

クライアントワークは緊張しますが意外とすぐに慣れます。

よくある話ではありますが、データ活用リテラシーがそれほど高くないクライアントに分析内容を正しく理解していただけるように説明するのは本当に難しい...。

これと同様の案件に複数アサインされ継続的に提案、コンサル~分析業務を行っています。

webサイトログ分析 (8~2月)

キャンペーンサイト、ブランディングLPなどいくつかのwebサイトのログ分析を行いました。 ショットで相談が来た仕事で、技術的には解析ツールを操作したりSQLを書いたりするだけなので難しいことはあまりありませんでしたが、分析設計などには初めて見る業界だとサイトの目的や分析の背景、業界事情などを踏まえて分析設計をしレポートを作成するのはそこそこ時間がかかるものです。集計作業よりも分析設計や、ネクストアクションのための示唆出しにほとんどの時間を使いました。 共分散構造分析やLinGAMを用いた因果探索などが使えるかもと思い、書籍で勉強しながらはめ込んだりしました。

分析基盤構築パッケージ開発 (1月)

クライアントのクラウド環境にデータ分析基盤を構築して分析を請け負う案件が発生した時用に、必要なリソースの構成をできるだけ省力化できるようにIaCを導入してパッケージ化することに取り組みました。 クラウドで手作業で構成設定をするのは結構手間だったりするので、これもコード管理できるようにしようと思いました。

開発者定例会(定期)

隔週で開発業務を担当するメンバーがノウハウを共有する定例会があります。毎週の業務進捗報告会とは別にこのような技術的な共有に特化した会を設けています。

案件で開発したものや分析事例、サーベイしてみたことを中心に、趣味で扱ってみた技術なども積極的に共有するようにしました。 先輩からレビューを受けたり、実装の相談をしたり、他のメンバーが得た知識を共有してもらえたりするので有意義です。

共有ページに書いてシェアするだけでなく、会話しながらより良い実装はないかなど議論する時間が取れるとより理解が深まります。

振り返ってみて

会得したもの

  • コーディング (Python, R, SQL)
  • PowerShell (Windows機使っているので...)
  • バージョン管理 (Git)
  • コンテナ型仮想環境 (Docker)
  • クラウドサービスの知識 (GとかAとか)
  • ワークフローエンジン(Airflow)
  • アーキテクチャ設計法
  • 数理モデル機械学習の理論と実装 (NBDモデル, SVM, XGBoost, LightGBM, CNN)
  • 因果探索、ABテストの理論と実践 (LinGAM, 共分散構造分析, 仮説検定)
  • データ可視化のいろは
  • リーダブルな資料デザイン
  • 法人営業、施策提案の経験
  • webマーケティングのいろは
  • web広告媒体の知識
  • マーケティングプランニングのいろは

開発・分析のむずかしさ

学生時代に趣味でプログラミングをしたりデータ分析をしたりしていましたがガチ情報系の専攻ではなかったので、常に技術力と知識の圧倒的な不足を感じていました。 現場で求められるのは趣味レベルよりも上のもので(まあ当然ですが...)、とりあえずは動くもののぐちゃぐちゃなコードであったり、書籍にある手法をそのまま適用してみたという浅い理解では太刀打ちできないと思い知りました。

メンテナンス性の高い設計・実装法、コンテナやクラウドサービスについての知識、お気持ちレベルにとどまらない分析手法に対する深い理解など未知の技術や理論のキャッチアップは大変ですが、やっていかないとどんどん仕事がつらくなってくると思ったので時間があるときには積極的に取り組みました。

闇雲に勉強するよりも、仕事を進める中で必要になったことを適宜書籍や論文を読みながら学んでいくというやり方が無駄がなく、かつ定着も早くて効率的だと気付きました。

つらいと言いつつ夢中になってやっているときは楽しいです。

クライアントとのコミュニケーションのむずかしさ

主にデータ分析プロジェクトでクライアントと接していて感じたのは、 成果に対するクライアントの期待をうまく制御する、俗にいう期待値コントロールはかなり重要だなということです。 データさえ活用すれば無条件に売り上げは上がるとか、大量のデータさえ用意すれば精度の高い予測モデルができるなどとお考えのクライアントはちらほら存在するもので、こういった過度な期待を与えないようにしつつ分析に投資することの価値を正しく提示する、このバランスは慎重にとりたいと考えるようになりました。

分析設計をする際、そのビジネスや業界の特性についての知識、すなわちドメイン知識が十分に必要ですが、我々のような業態の場合は事前のヒアリングの段階でできるだけそのドメイン知識をクライアントから引き出しておくことが重要になります。 個人的にはこれがかなり難しく、ヒアリング後もクライアントや営業担当に何度も確認するといったこともあり、コミュニケーションに負担を感じました。

事前にどのような情報を引き出すべきか熟考することが必要ですが、それで完全にカバーできるとも限らないもので...クライアントにカジュアルに相談できるくらいの関係値を築くしかないのか?とも思ったり...。 この辺りは試行錯誤だと思っています。

開発とフロント業務の両立のむずかしさ

先述の通り開発業務とフロントの業務を両方ともやっているのですが、これらの両立がなかなかむずかしい...。 分析や開発業務はまとまった時間をとってじっくり考えることが必要になるので、クイックな対応が要求されるフロントの仕事と折り合いをつけて進めるのが最初はかなり大変でした。 プロジェクトや技術向上に遅れが出ないように、週に1, 2日開発業務だけをやる日というのを設けることにしています。

苦労の中に垣間見える楽しさ

前述のような難しさがあるからこそ、1案件区切りがついたときの達成感は大きいです。 様々な案件がありそれぞれ与件が異なるので、毎度新しいことだらけでワクワク感があります。

配属されてから4~5ヶ月くらいして、先輩の補助なしで自分のペースで仕事を回せるようになってくるとだいぶ楽しくなってきます。

あと、自分がコアの部分で関わっているプロジェクトが優秀事例として社内表彰されたのですが、こういうのはやはりうれしい!! 「頑張ってよかった~」と思うことができ、モチベーションになります。

カジュアルな会話の中でも、営業担当やデザイナーなどのメンバーから「この事例のおもしろいところは~なんですよ!」とか「私だったらこの事業は~の方向性でやっていきますね!」といったように、他領域の人の考えを共有してもらうことがあり、自分の中で新しい発見につながるのでこういう機会は個人的には刺激になります。

ビジネスの世界を見渡して

これはこの業界に来た目的でもあるのですが、多様な業種のクライアントの扱いがあるので、様々な業界の情勢を俯瞰できるのは面白いです。 フロントでコミュニケーションをとっていると各業界の風習やトレンド、ビジネスモデルや、経営課題とその対処法などメタなことがいろいろ学べます。 元々どのような事業ドメインが自分にとって楽しいか考えあぐねた結果コンサルティング会社や代理店などに就職のスコープを当てていたという経緯もあり、この仕事を通して今後自分がコミットして楽しめそうな事業はどのようなものかを現場を見ながら考えることができます。

2年目以降に向けて

年次で区切りをつけて考えるのもなんか違う気がしているので、特段大きくやり方を変えたりということは考えていていません。

といいつつも、1年目の間は目の前の課題に必死に向かい続けるので精いっぱいになってしまったので、少し視点を高くしてチームの利得を最大化するために新たにどんなアクションが必要かという部分について考え、提言する機会を増やすというのはちょっとだけ意識したいと思っています。

加えて最近はデータドリブンなデザインやクリエイティブ制作に関心があるので、事例などサーベイしつつ案件でハマりそうな隙があれば手を付けていきたいです!

自分の市場価値を上げつつ、クライアント様のよい製品やサービスをより多くの人に知ってもらえるように引き続き粛々と技術力と経験を身に付けていきます。

ちょっと散文的で長々とした文章になってしまいましたが、最後まで読んでいただきありがとうございます!!

2年目もゴリゴリやっていきます!!٩( 'ω' )و