2015年度〜2019年度 これまでの採用問題振り返り

2019年度採用
アルゴリズム百人一首しりとり
五度目, 2019 年度の B コース(超理系採用)は「しりとり」がテーマでした.
誰もが一度が遊んだことのあるゲームですが,少しだけルールが違うものです.
問題
問題は「アルゴリズム百人一首しりとり」という,百人一首としりとりとの合わせ技です.
 
皆さんにはチャットのようなインターフェースを用いて我々が用意したしりとりアルゴリズム「Hakubot」としりとりをプレイしてもらいました.しかし,ただのしりとりではありません.百人一首の上の句,下の句のペアから好きなものを選び,(1) 自分が上の句の単語を使用し,(2) Hakubot が下の句を使用するまでに交わした会話のターン数を可能な限り短くしなければなりませんでした.
 
更に,今回は使用できる単語の数に伴って三段階の難易度の問題を準備していました.最も簡単な難易度の問題はちょっと考えれば簡単に Hakubot に下の句を言わせることができるようになっていますが,最も難しい難易度の問題は様々な試行錯誤を行わないと下の句はおろか,皆さんが上の句を使用することすらできない難易度になっていました.
背景
今回のテーマは「心を動かす」という採用活動のキャッチコピーからスタートしています.人の心を動かす上で重要な働きかけの一つに「対話」が存在しているでしょう.また,近年ではチャットボットやスマートスピーカーなど,「対話」にもとづく操作やナビゲーションが一般的になっています.
では,「対話」をゲームとして出題するにはどうしたらいいだろう,と考えた時に真っ先に思いつくのがしりとりです.しかし,一般的なしりとりでは既に様々な既存研究が存在しています.
「心を動かす」しりとりとは何か,と考えた末に辿り着いたのが「自分の言いたいことを伝え,心を動かし,相手から言葉を引き出す」というコンセプトです.こうして「では百人一首の上の句と下の句を通過するしりとりではどうか」となり,「アルゴリズム百人一首しりとり」が完成しました.
解答例
多くの解答は
 
・Hakubot がどのような規則にもとづいて単語を選んでいるかを推測する
・その規則を踏まえてどのように Hakubot を誘導するかを検討する
 
という二段階の作業を行っていました.
 
まず, Hakubot が単語を選ぶ規則は何度か挑戦するうちに推測がつくよう比較的単純なものを設定していました.そのため,多くの方が複数回挑戦するうちに見抜いていたようでした.
その上で,どのように思い通りに Hakubot に単語を選ばせるか,また,どの句のペアを用いることでターン数が最も短くなるかを各自工夫して求めていました.
 
また,今回は Hakubot とのしりとりを特設サイトからだけでなく,プログラム経由でも行えるよう,アプリケーションプログラミングインターフェース (API) と呼ばれる仕様とそのためのサンプルプログラムを公開していたことも特徴的でした.この API を用いることで,プログラムの力を十分に活用して(人によってブルートフォースと言われる総当たりで)問題に取り組んだ方も複数名いらっしゃいました.
 
嬉しい誤算だったのは,最も短いターン数で解答してくださった三名の方々はいずれもプログラミングを用いず,それぞれの方法でその解答に辿り着いていたことです.そのうちの一人には「こんなに簡単な問題で本当に良いのか疑ってしまいました」というコメントまで貰っています.
意図
この課題の意図は三つありました.
一つ目は「ゲームとして馴染みが深い『しりとり』を数理パズルとして捉えてほしかった」というものです.しりとりのように普段深く考えずに行っている遊びや,その戦略を具体的な手続きとして記述し,抽象化して取り組むという一連の作業は実は博報堂・博報堂DYメディアパートナーズでの日々の業務でも行われていることです.我々自身も含めた生活者の毎日の何気ない振る舞いを一度抽象化して捉え,その上で見過ごしていた知見を見つけ出し,具体的なコミュニケーションに繋げ実行する,という一連の流れを体感していただけなのではないでしょうか.
 
二つ目は「膨大な単語の一覧にひるまない」というものです.今回はしりとりにて使用可能な単語を制限しましたが,その一覧をひと目見ただけでは量の多さに一瞬ひるんでしまったかもしれません.しかし,落ち着いて考えてみるとしりとりで重要なのは読み仮名における先頭と末尾の文字だけです.つまり,いくら単語の量が多くても,考える必要があるのは最大でも 46 x 2 = 92 個の組合せとそれらが何度登場しているかが重要であるというわけです.このような,言ってしまえば単純な見方の変換ができると複雑な問題に取り掛かりやすくなりますし,私たちも日々の業務にて「どうにか簡単な形で解けないか」と常に検討していることです.
 
三つ目はより専門的な話です.今回の問題は数理的には探索のモデルとしても捉えることができます.単純なしりとりであれば線形計画問題などで定式化が可能ですが,今回のように Hakubot がどの単語を選ぶかわからない時や,百人一首の句を経由しなければならないといったような,線形制約として表現しにくい制約を持つ場合には木やネットワーク(数学的にはグラフ)の探索を行うことが多くあります.広告の総到達人数を最大化するための広告出稿計画や,総売上を最大化するためのリソース配分計画を計算する上でも同様で,単純な最大化であればよく知られた問題に帰着しますが,生活者の細かなニーズに寄り添った制約を加える場合にはそれら全てを満たす答えを探索する必要があります.博報堂・博報堂DYメディアパートナーズでの数理的な業務の一部が皆さんに体験していただければ幸いです.
参考文献
2018年度採用
どうぶつせんきょ
四度目, 2018 年度の B コースは「選挙」がテーマでした.
2016 年には様々な選挙が行われ話題となったことから選ばれたテーマでしたが,
ただの選挙ではありません.どうぶつの選挙です.
問題
どうぶつ界の長を決める「どうぶつせんきょ」が開催されることになり,ゴールデンモンキー,ジャイアントパンダ,ダイオウイカの三匹が立候補しました.参加者はある候補のプロデューサーとなり,その候補への得票率を高めるための広告戦略を練らなければなりません.
しかし,
・放映できる広告には限りがある
・どの広告を流すとどの有権者がそれを視聴するのかは一部しか知ることができない
・そもそも,有権者がどのように広告を視聴すると投票先が変わるのかは明らかではない
・放映した広告によっては,ライバル候補に投票先を変えてしまうしてしまうかもしれない
という様々な問題があります.
プロデューサーとして与えられたデータから仮説を構築し,「これだ!」と思う広告を 10 本選び,放映することによって得票率を計算し,他の参加者と競い合う,というのが「どうぶつせんきょ」の概要です.
背景
私たちは,「生活者はどのように行動するか」また「どのようなコミュニケーション戦略を取るべきか」という問いに日々直面し,様々な手法・データ・実験を用いて答えを探しています.「どうぶつせんきょ」では,有権者の投票予測とそれに基づく広告選択を通して,私たちの業務の一端を体験してほしい,という思いがありました.この課題は,いくつかの問題から構成されています.
まず一つ目は「広告の接触回数と人の気持ちの変化はどのような関係があるのか」という問題です.マーケティング分野では,態度変容の推定問題として古くから研究され,様々なモデル化が行われています.
二つ目は「誰がどの広告に接触するのか」という問題です.2017 年度と同様に,一部の「誰が」「どのメディアに」という関係を用いて未知の部分を推定する「行列補完問題」として捉えることができます.実際の業務においては,今回のように対象となる人全員のメディアに対する接触傾向を知ることはできないため,この推定がとても重要かつ困難です.
最後に,「どのような組み合わせで広告を選ぶと効果が最大になるか」という組合せ最適化の問題です.広告の分野においては特に「予算配分問題」と呼ばれ,こちらも様々な研究[1, 2]が行われています.
今回の「どうぶつせんきょ」はポップでキュートなどうぶつ達のイラストも相まって一見ゆるい課題に見えつつも,このような複合的な問題から構成されていました.
解答例
このような課題に対する参加者のみなさんのアプローチは大きく分けて二つありました.
多くの参加者は,「(問題文にも書かれていたように)関心と政策との相関関係が強ければ強いほど投票するはずだろう」という仮説の下で,自身が担当する候補の政策と有権者との関心との相関関係を確認し,もっとも投票してくれそうな有権者に届くように広告を選択していました.この方針によって,ある程度までは得票率を伸ばすことができます.
得票率上位の皆さんはここからもう一歩工夫を行っていました.「この有権者はどう頑張っても投票行動が変えられない」と見切りをつけ,より有力な有権者を見つける方もいらっしゃいましたし,有権者の名前に着目して背後のストーリーを考えながら取り組むという方もいました.変わったところでは,「一日三回まで投稿が可能」というレギュレーションに対してブラウザの情報を削除することによって一日に三回以上投稿し,試行錯誤のサイクルを早める方もいらっしゃいました.
もう一つのアプローチでは,より緻密に有権者ごとの広告接触と投票行動との関係をモデル化するところから始まっていました.その上で,推定した投票行動をもとに遺伝的アルゴリズムを用いたり,線形計画問題として捉えることによって最適な広告を見つけようとしていました.こちらのアプローチは最適解を得ることが可能ですが,それは投票行動の真のモデル化ができた場合の話です.限られた投稿回数で良いモデル化を行うために様々な工夫が行われていたことが非常に興味深かったです.
意図
この課題の意図は二つありました.
一つは「馴染みの無い題材にもひるまずに取り組めるか」ということです.
過去の B コースの問題は「じゃんけん」や「OXクイズ」など,背後に潜む問題の複雑さはさておき,比較的聞き覚えのある課題が多かったかと思います.しかし今年は選挙.皆さんの中には選挙の広報活動に馴染みがあるという方はそう多くはいなかったのではないでしょうか.また,問題文と共に配布した Excel ファイルも例年に比べ数が多く,「とっつきにくい」というのが第一印象だったかと思います.
しかし一度取り組んでみると何をすべきかが明瞭になったかと思います.そのような「まずはやってみる」ということを体験していただけたのならば幸いです.
もう一つは「独自の視点で課題を深堀りできるか」です.数理の知識がある方は様々なアルゴリズムを使って取り組めるような課題でしたが,そうでなくても
・そもそも選挙の時に人はどのように投票するだろうか
・わざわざどうぶつがある程度種族ごとに存在しているのはなぜだろうか,何か背後にストーリーや設定があるのではないか
・試しに広告を選んでみると有権者の行動はどのように変化するだろうか,その差分はどのように検証できるだろうかなど,複数の切り口から取り組める課題であったかと思います. 私たち博報堂・博報堂DYメディアパートナーズにおける業務はまさに,このような複数の異なる視点を持つ人々抜きには不可能です.
真に解決したい問題は何か,その解決に向けてどのような内容のコミュニケーションを作るべきか,そのコミュニケーションをどのような人々に向けて発信すべきか,それはどうすれば実現できるかとといった日々の取り組みにおける様々な課題は,どれか一つの領域の専門家だけでは解決できません.複数の専門を持つ人々が協力して取り組むことにより,ようやく解決の糸口が見えてくるものです.
この課題を解く過程で選んだアプローチや問題の捉え方は,そのまま業務において活かすことができると私たちは考えています.皆さんの粒違いのアプローチを,これからも私たちはお待ちしています.
参考文献
2017年度採用
超◯×クイズ
三度目である 2017 年度の B コースは「◯×クイズ」がテーマでした.
「○×クイズ」といっても,世間一般の雑学やうんちくを問うようなものではありません.私たち人間は,たとえ同じ時代・場所に生きていても,一人ひとりが全然違う考え方をして暮らしています.そんな私たち一人ひとりの心の中の「○」「×」を当ててみよう,それがこの「超○×クイズ」です.
問題
まず B コースにエントリーを希望してくれた方には,エントリーの際にアンケートに答えていただきました.アンケートの内容は
「そういえば今日,誰とも会話してない」 「外で食事する際,できれば一人が良い」 といった大学生活に関するものや, 「会社説明会で,人事の話には積極的に頷くようにしている」 「たとえ『平服でお越しください』と言われていても,採用面接にはスーツで臨む」 といった就職活動に関するものなど,「○」か「×」で答えられる身近な 60 問です. こうして集められた参加者一人ひとりの「○」「×」どちらが入った回答は,その一部を「?」で伏せた上で表データとして全参加者に公開されました.「超○×クイズ」とは,この伏せられた「?」それぞれが「○」なのか「×」なのかを予想すること.参加者のみなさんには,この 10,000 問以上におよぶ○×クイズに取り組んでもらい,その正解率を互いに競い合ってもらいました.
参加された方の中には,解答用のファイルを開いた瞬間目の前に広がるデータの羅列に面食らったという声も聞かれました.
背景
この「超○×クイズ」のような「行列に存在する欠けた値(欠損値)を推定する」という問題は,一般には「行列補完問題」 (Matrix completion) と呼ばれており,実は世の中の様々な状況で現れます.
例えば,「どのユーザがどの商品を購入したか」という購買履歴について考えてみましょう.この購買履歴は商品を列に,人物を行に対応させることで行列として表現することができます.この行列における欠損値を補完することは「どのユーザがどの商品を購買するだろうか?」を予測していることにほかなりません.もし,広告の配信などを行う場合,補完の良し悪しが商品の売上などに直結するため,高い精度で補完を行わなければなりません.
そのため,機械学習という分野において今この時にも様々な手法が研究されています[1, 2, 3]
解答例
この問題に対して参加者のみなさんがどのような方法でこの問題にアプローチしたのかを紹介しましょう.
シンプルなものではすべて「○」や「×」で埋める,という方法があります.質問ごとに「多数決」を取り,多く回答されていたものを採用する,といった方法もありました.まずはこれらの手法を試し,データの全貌を捉えるというアプローチは実務においても非常に重要です.
その上で多くの参加者は,設問同士の関係を確認し,データの傾向を見ながら取り組みやすい設問・参加者に当たりをつけながら補完を行ったようです.「この人はすべての設問に◯と答えている」という特異な参加者を見つけた方,値を予測するために重回帰分析を『再発明』した方,中にはニューラルネットワークを用いた方もいました.
意図
この「超○×クイズ」は,機械学習や統計,データマイニングといった領域に精通している方には若干有利だったでしょう.
しかし,これら専門知識を勉強していないと解けないかというと,決してそんなことはありません.
クイズの対象となったのは,就活生のみなさんにとって身近な内容の設問です.一つひとつの回答をじっくり眺めてみると,案外とアンケートに答えた人の人となりが見えてきます.
「単順にアンケート全体を見ると◯が多いけれど,設問の組み合わせを見るとさまざまな個性を持った人が隠れているようだ」
「いつもみんなと食事をしている人っているよな~.ああいう人は就職活動ではどう振る舞っているのだろうか?」
「なんとなくこの人は友人とキャラが似ているな……彼ならばこの質問にどう答えるだろうか?」
難しい技術を駆使することも解き方の一つですが,意外とこうした「データ(=答えた人)の気持ちになって考えること」が正解への近道でもあります.私たち博報堂・博報堂DYメディアパートナーズは,日々さまざまな課題 ,データと向き合っています.シンプルな集計から最先端の手法まで多種多様な分析を行う中でも,一番大事なのは,データの奥にいる生活者の気持ちを忘れないことだと肝に命じています.
参考文献
2016年度採用
初夏のAIじゃんけん大会
二度目である 2016 年の B コース採用は「ジャンケン大会」がテーマでした.
「解けたとき,周りの人に自慢したくなる問題がいいな」と考えたのが
出発点でした.
問題
ジャンケン大会のルールは次のとおりです.
1. 参加者は他の参加者全員とそれぞれ 10,000 回のジャンケンをする.
2. ジャンケンはどの手で勝つかで点数が異なる.グー・チョキは 3 点だがパーで勝てば 4 点もらえる.
3. 10,000 回のジャンケンの合計点が相手よりも多ければ勝ち.
4. 全参加者との勝負の中で勝率を競い,一番勝率が高い人が優勝.
5. 博報堂社員が作成したダミーも参加する.このうち 100 名分の 10,000 手が参考情報として開示されている.
このルールのもとで,参加者は 10,000 手のグー・チョキ・パーをテキストデータで提出して戦う,という問題です.
背景
ジャンケン大会というと一見運に左右されてしまうような気がします.しかしこのジャンケン大会は,じっくり考えた人はしっかり高い点が取れるような仕掛けになっています.
この問題の考えどころは二つあります.
まず一つは,グー・チョキ・パーで点数が異なるということです.「パーで勝つとおトクだから当然パーを多めに出したくなる.でもそれは相手も同じだから,チョキを多めに出したほうが勝率は高くなるかも…….でもそれは相手も同じだから…….」というようなジレンマが背後に隠れています.参加者は,こうした歪な状況を適切に整理・分析する必要があります.
このような問題は「ゲーム理論」と呼ばれ,様々な研究[1]が行われ.ノーベル経済学賞も贈られています.研究の詳細は知らなくても「囚人のジレンマ」[2]という単語に聞き覚えのある方もいらっしゃると思いますし,実はインターネットオークションにもこの理論が活用されています.参加者の中には,ゲーム理論に深く踏み込んで戦略を考察してくれた方もいらっしゃいました.
もう一つの考えどころは,一部の手に関する情報をあらかじめ開示したというところです.既に述べたように,参加者には博報堂社員が作成したダミーの手が公開されていました.参加者はこのダミーの手をヒントに「どうやらチョキが多そうだからグーを多めに出しておこう」「少なくともダミー 100 人相手には高い勝率が出せるようにしよう」などと戦略のチューニングができるようになっています.参加者は,公開されたデータをハンドリング・集計してダミーの傾向を把握する必要がありました.表計算ソフトを使ったり, R や Python といったスクリプト言語を駆使して複雑な分析をしてくれた参加者もいらっしゃいました.
意図
ジャンケン大会というと,一見お遊びのように見えてしまうかもしれません.
しかしその実体は「初めて出会う不確実な問題に対して,わずかなヒントに基づいて自分の戦略を組み立てる」というチカラを参加者一人ひとりに問う装置になっています.
これは博報堂・博報堂DYメディアパートナーズが日々取り組んでいるマーケティング課題にも通底すること.このジャンケン大会を通して,私たちが日々取り組んでいる課題の奥深さと面白さが就活生のみなさんに少しでも伝われば,というのが隠れたねらいでした.
博報堂・博報堂DYメディアパートナーズのジャンケン大会,みなさんは優勝できる自信がありますか?
参考文献
[1] J.F. Nash, Jr. Equilibrium Points in n-Person Games. PNAS, 1950.
[2] W. Poundstone. Prisoner s Dilemma, 1992.
2015年度採用
暗号問題
博報堂・博報堂DYメディアパートナーズが初めて行った B コース採用,
テーマは「暗号」でした.
問題
B コースの参加者に向けて公開されたのは,「以下の課題にチャレンジしてみてください。※説明文は文字化けではありません。ある法則に
のっとった暗号文ですので解読を試みてください。」という文章と,次の三つの暗号文が書かれた 18 ページの |PDF ファイルただ一つでした.
第一章 : %E3%81 から始まる全 4,374 文字の暗号文
第二章 : %37%250 から始まる全 8,705 文字の暗号文
最終章 : %53%244 から始まる全 19,537 文字の暗号文
最終章についての説明は第二章に,第二章についての説明は第一章に隠されていたため,参加者は暗号文を一つずつ解かなければなりませんでした.
背景
では,それぞれの暗号はどのようにすれば解読できたのでしょうか.
 
第一章の暗号文は,第二章についての説明をパーセントエンコーディング[1]したものでした. 「パーセントエンコーディング」という単語には聞き覚えが無いかもしれませんが,参加者のみなさんは日常的にこの機能を使っていることでしょう. たとえば検索エンジンで何かを検索しようとした時, Web ブラウザのアドレスバーに ...q=%E5%8D%9A%E5... といった文字列が含まれているのを見たことはないでしょうか.このように,URL 内ではそのままでは用いることができない文字(ひらがなや漢字など)を用いる際に二つの 16 進数と % 記号の組み合わせで置き換えることをパーセントエンコーディングと呼びます.
 
第二章の暗号文も一見パーセントエンコーディングされたもののように思えます.しかし,よく見ると暗号文の中にはアルファベットが一文字も使われておらず,中には三文字で一組を構成しているものも含まれています.この暗号は RSA 暗号[2]に使われているアルゴリズムを元にした手続きを用いて復号することができます.とはいっても膨大な桁数の素因数分解を行うわけでも, RSA 暗号についての詳細な知識が求められるわけでもありません.第一章に書かれた方法にもとづき,試行錯誤さえすれば復号が可能でした.
 
最終章は,文それ自体は第二章と同じやり方で復号できます.しかしそれで終わりではなく,最後に線形合同法[3]を用いて適切な選択肢を選ぶ必要がありました.なおかつ,これまでの暗号とは違い,得られる値は参加者ごとに異なっていました.たとえ計算機科学に詳しくない方でも,ここまで辿り着いたならば,きっと正しい値を導き出すことができたのではないでしょうか.
意図
ではなぜ記念すべき第一回目の B コース採用が「暗号」をテーマにしたものだったのか,それにはいくつかの理由がありました.
 
興味を持っていただきたかった
B コースは通常の問題とは大きく異なっています.このような取り組みは博報堂・博報堂DYメディアパートナーズにおいてはじめてだったため,まずは B コースそのものに興味を持ってもらいたいと考えました.第一章の暗号文が Web ブラウザによってはアドレスバーに貼り付けるだけで元の文に戻ってしまうという,比較的簡単なものを用意したのはそのためです.
 
頭と手を使ってもらいたかった
われわれはみなさんに RSA 暗号や線形合同法など,種明かしをすれば難解な理論や数式を下敷きにした暗号を出題しました.しかし,今回の暗号解読に必要なのはコンピュータや数学の知識ではありません.暗号文から現れるのは,プログラムを使わずとも標準的な表計算ソフトで計算可能な数理パズルです.そのような問題に怯むこと無く試行錯誤できる人であるならば,日々の業務で生じる様々な課題にも同様に取り組んでくれるだろう,とわれわれは考えました.
 
基礎に触れることで役に立ちたかった
大学生活と就職活動とを同時にこなしているみなさんの貴重な時間をただの暗号解読で奪ってしまうのはあまりに勿体無い,せっかくならばいつかこの知識を思い出してもらおう,とわれわれは考えました.第二章で題材にした RSA 暗号は安全なインターネット通信の根幹に関わる非常に重要なアルゴリズムです.第三章で手を動かしていただいた線形合同法は機械学習において非常に重要な「乱数」を生み出す基礎的なアルゴリズムです.そのような基礎に触れることで,将来ふとした瞬間に「そういえばこの手法,博報堂の採用問題で解かされたな」と思い出していただければ,それにまさる喜びはありません.
参考文献
[1] RFC3986 Section 2.1
[2] R. L. Rivest, A. Shamir, and L. Adleman. A Method for Obtaining Digital Signatures and Public-Key
Cryptosystems.Commun. ACM, 1978.

[3] D. H. Lehmer. Mathematical methods in large-scale computing units. Proceedings of a Second Symposium on
Large-Scale Digital Calculating Machinery, 1951.