GMOインターネットのインターンに参加させていただきました

GMOインターネットの10 daysインターンに参加してきました!

こんにちは。 自分は修士1年なので、就活の夏です。インターンのことについて、まとめたいと思います。

前回はCyberAgentのインターンについて感想を書きました。

今回はインターンでGMOインターネットのインターンに参加しました。インターンシップの内容についてはほぼ言わず、大体感想です。

基本的には、データ分析型のコンペティションを呈したインターンシップという形でした。アルバイト代もでるので定時があってその時間内はほぼ作業をしていますが、かなり制限はなく自由にやらせてもらえます。10時から19時でした。Pythonを用いて分析を行い、最終的にはその分析の結果について発表を行います。コンペと異なる点は、スコアを争っているわけではないという点です。秘密データは一応分離されていましたが、そのスコアの高さを競うというわけではなく、どういったベースラインを設定し、評価をして、特徴量生成をしたかなど、取り組み方やその丁寧さなど、過程がが重要になります。

データの中身は、詳しくは言いませんが、いわゆる広告データです。イメージはこちらのkaggleのコンペが参考になります。要するに広告がクリックされたかされてないかを予測します。評価は不均衡データなのでAUCが用いられていました。

データは時系列なので、時系列クロスバリデーションを行いますが、可能であればクロスバリデーションをどうしてcv=5にしたかなどその辺も説明できるといいななどあります。また、特徴量生成も時系列なので、未来の情報をみないように気をつけないと、「商品を買ったということは、このタイミングでクリックしているに違いない」とか予測しかねません。また特徴には、ユーザーや企業IDなどはありますが、ユーザーの性別などの特徴や企業の商品などの特徴はありません(得られないため)。

まとめると、

不均衡データ + 大量のデータ(数百万件) + 少ない情報

というような感じです。

自分が何を行ったかという話ですが、

最初の5日間程度は、基本的なデータサイエンスをゴリゴリ行いました。具体的には、特徴量を生成したり、時系列に考慮したpandasの処理や、クロスバリデーションの手法を決めたりという感じです。

最後2日間は最後の発表に向けて頑張りました。特に自分が注目した「興味」という点で分析を行いました。具体的には、数少ない「クリックした」という情報ですが、「同じ人に同じ広告をみせる」というシーンがあり、「同じ人に同じ広告を2回みせて1回目はクリックされたけど、2回目はクリックされてない」のようなシーンがあることに気がつきます。これはシンプルな話、「ユーザーは興味があるから広告をクリックした」けれども、「興味はあるけど、過去にクリックしたことがあって広告の中身をしっているからクリックしなかった」というデータが存在しているわけです。

特に問題なのは、1回目でクリックした広告に2回目でクリックしなかった場合、ほとんどの特徴(企業やユーザーに関する特徴)が一致してしまいます。ほぼ同じ特徴量で「0」と「1」の行があるというのは好ましくありません。

そこで、1回目でその広告をクリックしていた場合、2回目はクリックしていなかったとしても「興味あり(=1)」としてモデルに出力をさせると、広告システムは「興味がある人に有効な広告を提案する」という比較的好ましい形になるのではと考えました。結果的にはAUCは向上し、この内容でメンター陣に発表したところ非常に良いFBが得られて嬉しかったです。ある意味コンペ慣れしていたからこそ、ちょっと広い視点でみることができたのかなと思います。

何より楽しかった!

Select Texture

Hide

You can use the showPicker property in _config.yml to hide this picker permanently.

You can use the texture property in _config.yml to apply a texture permanently.