pixiv 夏インターンに行ってきたよ

2018年夏、ピクシブ株式会社さんが開催されたインターンシップ、題して

pixiv SUMMER BOOTCAMP 2018

に参加してきました。

 

pixiv SUMMER BOOTCAMPは、Web・アプリ開発から機械学習まで様々な事業を手掛けるピクシブ株式会社のサービスの一員となって、各分野のエキスパートとともに開発に携わり、1週間がたったころには圧倒的猛者へと成長している、というプログラムです。

 

ちゃんとした説明が見たい方はこちら↓

recruit.pixiv.net

  

今回僕はこのpixiv SUMMER BOOTCAMPで、8月22日~28日の1週間「機械学習コース」に参加させていただきました。とても濃い5日間だったので、そこでの体験を綴っていこうと思います。

 

 

モチベーション


僕は普段大学ではCV・CGを研究していて、インターンでも画像+機械学習で何か業務体験がしたいなと考えていました。とはいえ「機械学習」という分野は相変わらず流行り散らかしており、某就活サイトで検索をかけても無限に募集が出てきます。

そんな中でピクシブを選んだ最も大きな理由は「イラストのデータを無限に持っている」という点でした。

この分野に触ったことのある人ならデータの重要さは嫌でも身に染みる話ですが、やはりユニークなデータを持っているというのは大きなアドバンテージになります。pixivには何万人もの絵描きが書いた何千万ものイラストが投稿されており、「こんな良いデータセットは他にない!」ということで応募しました。

 

選考


選考方法には通常選考とGitHubアカウントのみで応募できるGitHub選考の2種類があります。

僕のGitHubは物置と化しているので通常選考を選択、住んでいる場所の都合上Skypeでの面接を行いました。

面接はお話+軽いコーディングテストで合わせて30分ほど。お話の内容は自己紹介から研究・サービスの話が主でした。実はインターンの面接は初めてだったのですが、和やかな雰囲気で(画面越しなこともあって)緊張せずに話すことが出来たと思います。

 

 

オフィスがすごい


来る8月22日、ついにインターンが始まります。

出社してまず思ったのが、「オフィスがすごい!!」

 

f:id:Nabe0812:20180911154654j:plain

 

上にも書いたように面接はリモートだったのでここで初めてオフィスを見たのですが、とにかく内装が最☆高。センスあふれる配色もさることながら、あらゆる場所に配置されたイラストが素晴らしい。有名な大先生方のイラストが壁に机に散りばめられ、イラスト好きにはたまらない環境です。

 

f:id:Nabe0812:20180911154706j:plain

(僕が尊敬してやまないA村先生のイラストも飾ってあってぜひ載せたかったのですが、残念ながら写真を撮るのを忘れていました...。)

 

 

初日


初日は主に同じインターン生や社員さんとの自己紹介・交流、開発環境やタスクの設定を行いました。

特に開発環境については至れり尽くせりで、MacBookProが1人1台支給、AWSGPUインスタンスが常時立てられ、さらにありがたいことにcondaの仮想環境が各Pythonのversion×フレームワークごとにすでに用意されていました。

データセットに関しても、あらかじめタスクをメールで話し合っていたこともあり、すぐに学習に利用できる形で準備していただいていました。正直データ準備と環境構築には苦い思い出しかなく、丸1日は使うだろうなと考えていたので、これらに時間を割くことなく初日からコードを書けたのがとてもとてもありがたかったです。

 

また途中「全社会」という社内全体のミーティングに参加させていただきました。ここではピクシブが手掛けている様々な事業について「これインターン生が聞いてええんか...?」ってくらいリアルなお話を聞くことが出来ました。

 

2日目~4日目


2日目以降は実際にゴリゴリタスクを進めていきます。

今回のインターンでの僕の課題は

「タグ情報からのイラスト生成」

と題して、具体的にはpixivにある沢山のタグからお目当てのイラストが作れると楽しいね、というものです。

イメージとしてはかの有名なMakeGIrlsMoeがかなり近いのですが、pixivの投稿作品はイラストもタグもとにかく多様性に富んでいるので、こう一筋縄ではいかないなという感じです。

make.girls.moe

 

1週間という期間で0から手法を考えるのはどんな天才でも無理があるので、今回は既存手法を適用・ブラッシュアップするという方向で進めました。

最初に適用しようと考えていたのはText-to-ImageのSOTA(いかんせん生成なので厳密にそうとは言えませんが)であるStackGAN++だったのですが、諸事情により断念。結局単純なConditionalDCGANで実装しました。

[1710.10916] StackGAN++: Realistic Image Synthesis with Stacked Generative Adversarial Networks

また、それにともないタグ情報としては「金髪」「青目」「笑顔」などといった見た目に直結したものに限定しました。本当は「ふつくしい」「ここに住みたい」などの抽象的なものも使ってみたかったのですが、Embeddingなしで入れてもうまく行く見込みがないので今回はスルー。

 

あくまでインターンの振り返り記事なので手法や実装には細かく触れませんが、GANそのものについては↓のページで分かりやすく説明してくれてるので、知識ゼロの方は読んでもらえるとイメージが湧きやすいかと思います。

はじめてのGAN

ちゃんと学びたい人はGoodfellowさんの本が無料で公開されているのでおすすめ(日本語版は有料)。

Deep Learning(無料英語版)

https://www.amazon.co.jp/dp/B07GQV1X76/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1(日本語版)

 

 

いざタスクが決まれば実装そのものはあまり時間を取らなかったので、あとはひたすら回してはチューニングを繰り返す...。1回の学習に数時間はかかる中、1週間という期限内で成果が出るのか正直不安でしたが、途中から複数のGPUを用意していただき、とにかく回す、回す。

 

ようやくまだ見れるイラストが生成されてきたのが4日目の朝。正直クオリティとしては「ふーん」程度のものでしたが、期間を考えれば頑張った方だと思います、思いたい。

 

f:id:Nabe0812:20180911194450p:plain

↑生成された画像の一例。各列が異なる潜在変数、各行がコンデションのラベルに対応してます。(目の色とか髪の色)

 

 

 

またこの期間にはいろいろな社員さんにご飯に連れて行っていただいたのですが、その中で「イラストブートキャンプ」なるものの存在を知りました。なんでも有志で集まってイラストの練習・発表会を定期的に行っているとのこと。僕も絵描きの端くれなのでメンバーの方々とお話させていただいたのですが、イラスト好きな人が集まっているのもピクシブの良いところなあだと思いました。

 

最終日


そうして迎えた最終日5日目。

今回のインターンでは全部で8人のインターン生が参加していたのですが、ピクシブのサービスの幅広さもあって、ほぼ全員が全く別分野のタスクを手掛けていました。そのため、他の人の発表を見るのが楽しみで、また社員の方々も様々なチームからたくさん集まってくださいました。

 

f:id:Nabe0812:20180911192915j:plain

 

みんなの発表を聞いて思ったこと。

 

「あれ、僕だけあんま会社の役に立ってなくね?笑」

 

他のみんなの成果は素晴らしく、実際に本実装された機能を開発したり、短期間で収益を大きく向上したりと、社員さん顔負け(社員さん談)の実績を挙げていました。

(ほかのインターン生の成果の一部はこちらから↓↓)

medium.com

kawamk4.hatenablog.com

 

ただ、僕のタスクは「好みのイラストが欲しい!」という人類の夢には沿っているものの、実際にpixivのサービスに組み込まれるにはほど遠い内容...。普段大学で好きに研究しているせいなのか、圧倒的にサービス視点が足りていないなあと感じました。これが今回のインターンでの反省点。

ただ、そんな好き勝手なタスクでも1週間しっかりとサポートしていただき、発表の際も興味を持って沢山コメントしていただいたのは、ありがたいなあと感じました。

 

 

そんな反省はさておき、発表が終わってからはみんなで打ち上げに行きました。打ち上げでは酒をガバガバ飲み、その後オフィスに再び舞い戻って深夜まで疑似アニクラ、楽しかったです。

 

感想


今回のピクシブの夏インターン、とても濃い5日間でした。自分の成果としてはちょっとやりきらない部分もあったけど、ピクシブの自由な社風を思う存分味わい、またサービス視点の大切さを学べたことは、とても貴重な経験でした。

また個人的には、僕のように普段アカデミックに漬かっている人ほど、参加してほしいインターンだなと思います。僕はこのインターンで、いつの間にか自分の視野が狭くなっていたことを強く感じました。就活と研究の板挟みになっている大学院生の同志、教授の目を盗んでぜひ参加してみてはいかがでしょうか。