この企画は、有名企業で活躍するエンジニアと杯を交わしつつ
酒の力を借りてホンネを探るという、かつて無かったインタビュー企画である。
【小飼弾×ドワンゴエンジニア】ユーザーと一緒に文化を創る。
最適解より重要な“ニコニコのカオス感”とは?
株式会社ドワンゴ
再生中の動画上にコメント付加し、共有することができる動画サービス「ニコニコ動画」の運営で名高い企業。「ニコニコ動画」は世界に類のないコンテンツプラットフォームとして、2014年9月時点での登録会員は4,336万人を数える。2014年10月には(株)KADOKAWAとの経営統合により誕生した持株会社 ・(株)KADOKAWA・DOWANGOの完全子会社になり、今後の動向にますます注目が集まっている。
どうも、こんにちは。小飼弾です。
お酒を飲みながらエンジニアさんの本音に迫るこの企画、今回でもう第3回になりました。フリークアウトさん(第1回)、DeNAさん(第2回)に続いて今回やってきたのは、ニコニコ動画で有名なドワンゴさん。
今日も、普段じゃ聞けないニコニコの裏側をいっぱい聞き出すぞ~。
まず社内を案内していただいていると、活動中の格ゲー部に遭遇。会社にゲームがあるなんてスゴ……え、社内に美容室もあるの!?
いやあ、いい!これはすごくイイですよ!聞くと表参道に本店がある超有名な美容室とのこと。羨ましいなあ。
広々とした共有スペースにはタリーズコーヒーも。こういった環境が充実していることは、働く上でもすごく重要なことだよね。
さあ、今回のメンバーはこちらのお三方。皆さんとても個性溢れる方で楽しみです。
会社からほど近くにある、お店に場所を移して、インタビュー(飲み会)スタート!
それでは、カンパーイ!!
清水俊博さん
プラットフォーム事業本部 技術コミュニケーション室 室長。開発環境、教育、採用、仕組みを支えるツール作りなど、エンジニアの生産性を高める仕事全般を手がける。お酒は何でも好きだが、ワインをよく飲む。特に「モンテプルチアーノ種」のぶどうを使った銘柄がお気に入り。
志村誠さん
プラットフォーム事業本部 基盤システム開発部 知能情報セクション セクションマネージャ。分析周りのツール導入から、アーキテクチャ構築などを担う。お酒はもっぱらビール。最初から最後までずっとビール。
小田桐優理さん
プラットフォーム事業本部 基盤システム開発部 知能情報セクション レコメンドグループリーダー。ニコニコ全般に使用されるレコメンドシステムを開発している。ドワンゴ出社初日から、着物を着ている。好きなお酒は、ラガヴーリンやアードベッグなどアイラモルト。
ドワンゴ入社のキッカケは、
自分が好きなサービスを手掛けていたから
— 小飼:まずはじめに、皆さんがドワンゴへ入社した理由から聞かせてもらえますか?
— 清水:新卒でSIerに入ったのですが、業界の構造にちょっと納得いかないところがありました。そんなときに、「java-ja」という外部の勉強会でドワンゴの人と知り合ったことがきっかけで会社を見学させていただくことになりまして、「こういう環境だったら自分の力を発揮しやすいかな」と思い、2009年9月に入社しました。現在は、エンジニアが働く環境や生産性の向上、エンジニアの教育や採用に関するところもメインで行っていますね。
— 小飼:SI業界のどのようなところに納得がいかなかった?
— 清水:「もっと良い開発方法があるのに」と自分が思っても、上の方で決められた仕様・設計に縛られてしまうことが多かったところですね。しかも、コードを書いたことのないような人が設計していたり、もしくはCOBOLの知識でJavaの設計をしていたりとか。そういうケースを目にすることがありました。
— 小飼:なるほど。それがなんでまかり通っているのか、僕にとってもかなりの謎ですね。一度きちっと聞いてみたいところでもあります。次に、志村さんはいかがですか?
— 志村:私は前職のベンチャー企業で、データ分析や開発を担当していました。ドワンゴへ入社したのは2011年の春。いわゆる「ビックデータ」というものがちょうど注目されはじめるくらいの時期で、せっかくなら大きなデータをちゃんと扱いたいなと思うようになりました。そこで当時、大きなデータを持っていた会社の中で、自分自身が好きなサービスを手掛けていたドワンゴへ入社しました。現在は、例えば検索やランキングといった個別機能に対して数値分析的な観点からの改善や、各サービスのKPIに対するアドバイスといった、社内におけるデータ活用を推進していく仕事をやっています。
— 小飼:うpするユーザーたちが自分で勝手に広告を貼ったりとか、ニコニコのサービスってかなり人力感があるじゃないですか。なので、いわゆるまっとうなデータ分析もやっているというのは、なんだか新鮮な驚きがあるなあ。
— 志村:そういうユーザーさんたちが楽しめて、自分から動きたくなるようにするにはどうすればいいのか。まさにそれを、データ分析を通して考えるのが我々の仕事ですね。
— 小飼:なるほど。ユーザーが自ら動きたくなるよう、いかにくすぐるかっていうところですね。では、最後に小田桐さんはいかがでしょう?
— 小田桐:ドワンゴに入ったのは2014年2月で、それまではITコンサル会社のR&D部署にいました。そこでデータ分析なんかを担当していたんですが、やっぱり自分自身がサービスの中身までを理解していないと良い仮説も立てられないし、モデルも作れないということを痛感しまして、自社サービスを運営しているところにそろそろ転職したいなと考えていました。そこで、サービス開始直後のときから「これすごいな」と注目して、実際に動画投稿など利用していたニコニコを運営するドワンゴを選ぶことにしました。
現在は、レコメンドエンジンの開発を担当しています。「この動画を観ている人はこの動画も観ています」といった種類のものだけではなく、動画だったり生放送だったり静画だったり、各サービスを横断する形で幅広く活用できるレコメンドエンジンを作っています。
— 小飼:小田桐さんの部署の皆さんの特徴ってありますか?データ分析とかアカデミックな統計屋さん?
— 小田桐:私の部署には、純粋な統計屋さんっていうよりも、各サービスとの連携を意識したコードをしっかりと設計できるレベルの、エンジニアリングが得意なメンバーが多くいます。数理モデルを作るだけでなく、サービスとしてシステムにそれを組み込む部署だという点もありますが、全員コードを書いているということは、すごく良いことだと思っています。
開発言語は何でもいい。
たくさんの言語が乱立するカオスも、「多様性こそがドワンゴ」
— 小飼:ところで、「ドワンゴって言えばこの言語」みたいなイメージがないんだけど、開発言語は主にどんな言語を使用しているんですか?
— 清水:目的に合わせて様々ですね。例えばですが、とあるシステムの構築にはErlangをばりばり使っています。というのも、Erlangがすごい得意な子が一人いまして。「こういうシステムを作ろうとしているんだけど」って検討してたら、その子が「それだったらErlangですよ」ということで、初めて候補に上がった感じなんです。そこからScalaとも比較した結果、「このシステムは落ちないことが最重要だし、確かにErlangの方がいいね」ということで決まりました。
— 小飼:今の話からすると、言語や環境は相当自由に決めている?
清水
もともと僕が入社した2009年とか2010年あたりはPHPがメインで、ニコニコ動画のフロント自体もPHPでできていました。あとはバックエンドの管理ツールとかでJavaを使っていたり、コメントをやりとりするサーバではC++を使っていたりというくらいで、言語としてはその3つのみがデファクトだったんですね。
「本来このシステムにはこういう機能が求められるので、こういうアーキテクチャであるべきだ」と考えるべきなのに、それ以外の言語を使おうとしても、運用する側のインフラエンジニアを説得しなきゃいけないハードルもあって、ほとんど採用されないというのが実情でした。それで「このままだと、ちょっとエンジニアとして働きにくいよね」という思いもあり、「そういった事実上の制限みたいなものを撤廃しよう」となったんです。
— 小飼:それはいつぐらいの話?
— 清水:2012年の末から2013年の初めくらいですね。まずはやりたいことに合わせて採用する技術を決める。そのあとで、その技術を知っている人が少ないのなら、社内で増やしていけばよいという考え方ですね。さっきのErlangも、最初は知っているのがその彼一人くらいの状態だったんですけど、ペアプロとかをしながら教育をしていき、今ではErlangを書ける人間は10人近くまで増えています。
— 小飼:「自分もできるようになりたい」と、個々人が手を挙げることで自主的に学習がスタートするの?
— 清水:Erlangに関しては、今はまだ実際にErlangを書いている部署の中でのみ広まっている感じです。それ以外の部署にまで自主的に広まっているかっていうと多分そこまでではないですね。ただ、Erlangに限らず新しい知識を習得することを嫌がる人は、基本的に採用しないようにしているため皆必要に応じて自主的に学習を行っています。
— 小飼:江添さん(*C++のエンジニアとして有名な江添亮氏)が C++以外のことをやっているなんて想像つかないもんね。
— 清水:江添さんはC++以外のことはやってないですね(笑)
志村
まあ、いろんな言語が社内で乱立しているので、外から見たらすごいカオスに感じるかもしれません。江添さんの影響で「ドワンゴはC++の会社」って思う人もいれば、Scalaをすごく使っているって話を聞いて「Scalaの会社」って思っている人もいるでしょうし、「ニコニコはPHPなんだからPHPの会社でしょ」と思う人もいる。でも、すごいカオスに見えるわりに、社内的にはAPI経由でやりとりしているだけなので、実際に混乱はありません。
小田桐
私のグループだけでも、APIサーバはGo言語とJavaで、分析にはRやPythonで、ジョブ連携の処理やツール類はRubyで書いてます。今のレコメンドエンジンはJavaですが、新しいレコメンドエンジンはSpark上で動くように開発中で、それはScalaです。ちなみに、データストアはCassandraとMariaDBを使ってますが、別の部署ではHBaseやRiak等も使っています。
何も全員が全言語を書ける必要はありません。言語やミドルウェア選択は適材適所であるべきです。実際には「なんでも良い」というわけではなく「様々な選択肢から、様々な観点をもって最善を選べる」ことが大事だと思っています。特定の言語や技術だけで会社が染まると、その言語の未来が怪しくなったときに転換するのはものすごく大変ですからね。
— 清水:言語も人も、“diversity”っていうか「多様性」を本当に意識しています。社内には様々なエンジニアがいて、使っている言語も人間性も多様。それでこそ、イノベーションが生まれると思っています。
ニコニコの本質は、ユーザーの興味をタコツボ化させないカオス感
— 小飼:ニコニコのレコメンドに関する話も聞かせてほしいなあ。
— 小田桐:今、ニコニコで「あなたにオススメの動画」みたいなものをTOPページに出しているんですが、普通であれば、いわゆる視聴履歴に基づいた「あなたに視聴傾向が似ている人はこの動画を見ています」的なアプローチでレコメンドするケースが多いと思います。ただ、ニコニコの場合、ユーザーさんが動画に色々なタグを積極的につけてくれていて、実は、ユーザーさんが動画を見る時には、このタグにすごく注目しているんですね。
— 小飼:いくつくらいが真面目なタグで、いくつくらいが「病院逃げて」みたいなやつなのかね?
— 全員:(笑)
— 小飼:あれが大好きでね。動画もロクに見ずに、あの面白タグだけを見てるところもあって……。
— 小田桐:レコメンドにタグ情報を活用する時には、タグ同士の全体的な関係性、例えばその一つとして共起関係を見ていくわけですけど、それをみるとタグの包含関係の木構造のようなものが見えてきます。特にその枝葉になるところに注目します。その末端の部分にユーザーさんの趣味や嗜好の色がよりはっきりと出てくるんですよね。『ゲーム』タグよりも『ゲーム実況』タグの方が、更にそれよりも『女性実況part1リンク』タグの方が、レコメンドとしては有用なタグです。
このような関係性を元に、『このタグからオススメされました』という機能を実現するわけです。レコメンドは「オススメされた理由」に納得してもらうことが実は重要で、理由なしで「総合的に判断してこれがオススメです」だと、レコメンド内容が良くても反応が薄いんですよ。
— 小飼:タグを見てると、ニコニコ大百科とうまくつないでる部分もあるよね。
小田桐
そうですね。ニコニコのタグ文化って初めて来た人にはなかなか理解できないところもあったりするので、動画であれば動画の上につけられているタグの隣に大百科へのリンクを貼って、飛べるようになっていたりします。いわゆる、ニコニコ独特の文化圏のワードが自然に身につくようなサービス間の連携っていうのはありますね。あとはタグ検索したときに、検索結果のところに、大百科の文言が前半のとこだけ、ちょこっと出てくるみたいなのもやっています。
楽しい内輪感って、その界隈でしか通じない用語によって生み出されている部分も大きいです。そのこと自体は全く否定すべきじゃなくて、「一見さんお断り」になりがちということが問題で、ニコニコ大百科との連携は、そのコンテクストの高さの壁を超えるには非常に重要だと思ってます。
— 志村:ニコニコの検索という観点から見てみると、ユーザーさんのほとんどはデフォルトの検索結果のソート順をいじらないんですよね。再生数が多い順だとか、コメントが新しい順だとかって色々あるんですけど、ほとんどいじらない。じゃあ、どんなソート順をデフォルトにしたら、ニコニコの文化が発展していくのだろうか。そういったところが、ニコニコとしてしっかりと考えているところであったりはします。例えば、ニコニコ動画のだいぶ初期には、コメントが新しい順っていうのを出してたんですよ。
— 小飼:なってた!あれがデフォルトでしたね。
— 小田桐:その機能があることで、ユーザーがワイワイしている感じが出せたりもするわけです。
— 小飼:まあ再生数で言ったら、Fooさん(*削除動画の再生時に流れる曲を演奏している「ふえのおにいさん」)の一人勝ちでしょうからね。
— 全員:(笑)
— 小田桐:総再生数の多い順をデフォルトにしちゃうとずっと過去の伝説の作品ばっかり出て、新しいものが全然注目されないことになってしまいますからね。他のジャンルや新しいものに、ユーザーさんの視点や興味をいかに自然と移させるかをだいぶ考えて作っているところです。レコメンドって、素直にユーザーさんの短期的な満足度を視点にして実装するとどんどん偏食化しちゃうんですよ。自分の好きなものしか集まらなくなってしまって。
— 小飼:その辺はもうAmazonとか諦めてますよ。「僕の本をなんでレコメンドするんだよ、本人だぞ」っていつも思ってる。
— 全員:(笑)
— 小田桐:ずっとボカロだけを見てる人に対して、ボカロの有名Pの投稿した作品だけをレコメンドで出しつづけていたら、そのユーザーさんはそれはそれで満足するのかもしれません。ただ、例えば、他にもニッチオタク系のものだったりとかを出してあげたら、そっちのほうに興味が行く新たな可能性だって生まれるかもしれません。なので、偏食が進み過ぎないないように色々なものを見る機会を作ろうというのは、サービス全体として考えています。
— 小飼:「タコツボ化」を防ぐってことだね。
清水
その典型的にわかりやすい例が「超会議」でしょうね。一つのイベントを見に行くというよりは、 そこに行くだけで、今まで目に入らなかった色々なものに出会える。そして、興味が自然と生まれる。珍しいイベントです。そんなカオス感が、ニコニコの本質というかコアになっているところなのかもしれません。
そういう場所って、散歩したくなるじゃないですか。ずっと滞在してうろうろしたくなる。そして、ずーっとうろついているうちに、これの二次創作つくろうみたいなクリエイターの創作意欲が刺激されて、新たに投稿者が生まれてくる。そんなサイクルがあるんです。
ニコニコは、YouTubeと同じことをやっても意味がない。
— 小田桐:YouTubeについて色々と自分で調べたら結構面白くて、動画タイトルから勝手にタグを裏側で生成してるんですよね。Googleはオントロジーというか語彙をすごくちゃんと持っていて、それに基づいてレコメンドするっていう仕様になっていて、「コンテンツベース」に近いところなのかなと。
— 小飼:それだと、ニコニコの「病院逃げて」みたいなのは対応が難しいよね。
— 小田桐:そうですね。ニコニコでは、コンテンツっていうよりも「コンテキスト」が大きな価値を持っていることは特徴だと思います。
— 志村:要は、同じユーザーさんが生放送もするし、動画もあげているし、実は絵も書いて投稿しているみたいなことがある時に、それぞれを別個で終わらせてしまうことなく、サービスをクロスさせていく形というのは考えていますね。
— 小飼:ただ、「タコツボってくれたほうが売上的にはいいよね」ということもあるはずだけど、ニコニコはそっちの方向へ進む気配が全然ないよね。
志村
YouTubeさんと同じことをやっていても意味がないというのは結構ありますね。我々はYouTubeとは別のフィールドを探しましょう、と。ニコニコ動画にはそもそもユーザーさんが自分たちで盛り上げて作るという要素があるので、その部分をより強めようっていうのが今も続いている流れなのかと思います。
— 清水:「オレが育てた感」というか、そういうのを持ってくれると嬉しいですね。
ユーザーの共通体験を生む、ふざけ方の絶妙なバランス
— 小飼:でも、僕はなにがニコニコ動画かって言われたら、やっぱりFooさんは外せないなと思うんです。コンテンツホルダーとここまできちんと折り合いをつけているサービスってないですよ。
— ドワンゴ全員:そうですね。
— 小飼:しかも、かなり初期からやってたでしょ? そして「元々アングラなサービスだったのに、このままきれいなジャイアンみたいになっちゃうのかな」と思いきや、ちゃんとカオス感も保っているわけで、これはかなり奇跡的なことだなと思います。
もちろん営利企業がやっていることなので、きちっと利益も出てなきゃいけないんだけど、そこもちゃんと成立しているわけじゃないですか。やっぱり1番大きかったのはYouTubeに蹴られた時にすぐにサーバーを立てたことで、その次には、あのJASRACとすらもしっかりと折り合いをつけているってことでしょうね。
— 清水:そうですね。日本のコンテンツを守るっていうのはとても意識しています。
— 小飼:折り合いをつける時に、やっぱりFooさんの笛の音はものすごく救いになったんじゃないかと思うんです。あそこでつっけんどんに「著作権法違反で削除されました」という文言を出すんじゃなくて。
— 清水:他の動画サービスでは「誰々さんの申告により…」っていうのが表示されるだけですからね。
— 小飼:そう、そう、そう、そう。サーっていうホワイトノイズが出るだけです。まあ、来る時は100万再生でも容赦なくそれが来るわけですが、そんなときにも「これは仕方がないな」、「あーあ、引っかかっちゃったな」と思えるFooさんの笛。あのおかげでかなりの力が抜けるわけじゃないですか。
— 小田桐:あと時報も。
— 清水、志村:時報ね(笑)
— 小田桐:強制的に割り込まれて動画が止まって、「ドワンゴが午前0時をお知らせします」って。
— 全員:(笑)
— 小田桐:私としては、本当にうざいだけなんですけど、その時間に動画を見ているすべてのユーザーさんが同時に同じ体験をする。見てる全員が、コメントで「うぜー」っていうんです。
— 全員:(笑)
— 志村:みんなで運営を叩けるといった共通体験があると、よりユーザー同士の密接感が生まれますよね。
— 小飼:うん、ふざけかたのバランスが絶妙なんですよね。これ以上サービスをふざけたら止まるぞっていうギリギリのラインで抑えておいて、もちろん止まらないし。ふざける一方で、ちゃんと偉い人にも筋を通していますし。
— 小田桐:たしかに、そのバランスはかなり慎重に考えなきゃいけないと思っています。やっぱり時報にしても、普通の商業広告がその時間に表示されるだけだったら、ユーザーさんが本当に離れてしまう効果にしかならなかったかも知れません。
ニコニコが目指すべき正解は、ユーザーが創った文化を育てること
— 小飼:でも、なんでふざけられてるのかと言えば、ちゃんと実収入があるからなわけだ。
志村
そうですね。ただ、ここで金を荒稼ぎに行くぞっていう儲かるポイントで一点突破しちゃえば、当然短期的には上手くいくとは思うんですけど、3年後や5年後を見据える必要があると思っています。プラットフォーム全体で考えてみたときにどうかと言ったら、おそらくダメなんだろうと。
— 清水:今稼いだせいで、長期的なプラットフォームとしては、もう焼け野原になってしまうというか。
— 志村:そして、次の焼け野原にする候補先を新たに探す。そんなパターンに陥ってしまう危険性があるのではないかと思うんです。
— 小飼:たぶん、最適解だけでいいんだったらYouTubeがあれば済むんでしょうね。そうじゃないからこそ、面白いわけで。だから、ニコニコはネットのオアシスみたいなところもあるね。
小田桐
ニコニコの場合だと、「ユーザーが築いた文化を有機的につないでいく」というところが最も大事だと思っています。レコメンドの話に戻れば、ユーザーさんの好みを正確に反映したTOP10を表示するという一般的な最適解が正解ではなくて、それではむしろ長期的には文化がすぼんでしまう。
— 小飼:なるほど。やっぱり、Nice Boatで斧をレコメンドするとか、ああいうのがいいんだよね(笑)
— 全員:(笑)
ニコニコのチャレンジは、自分が考えることからスタートする
— 小飼:今後、技術的なチャレンジとしてはどんなことを?
— 小田桐:技術的に注力しているところといえば、主に二つあって、一つはDocker等のコンテナ技術の適用です。今はpull requestを出したら、その瞬間にそれに対応したAPIサーバ、データストア、バッチサーバ等のシステム一式のコンテナ群が立ち上がって、実際にその環境を触って確認することができる、みたいなことを実現できています。また、Dockerのコンテナイメージをそのままデプロイして、動的にサーバリソースを最適にコントロールができるように、KubernetesというDockerのクラスタスケジューラの本番適用への取り組みも始めています。
— 小飼:もう一つは?
— 小田桐:もう一つはストリーム処理です。今、各サービスからのリアルタイムログ収集基盤を構築しています。fluentdというログ収集ミドルウェアを使っていて、アクセスログやコメントログなどをリアルタイムに収集しています。それと並行して、ログストリームに対してリアルタイム集計処理等を行うために、Norikraというストリーム処理エンジンの適用に取り組んでいます。
— 小飼:それをどうサービスに適用するの?
小田桐
例えばニコ生の現在のコメントの雰囲気がどうなっているのかについて、直近のコメントストリームをコメント内容を分類しつつ毎秒集計処理する、みたいなこともできます。ニコニコのコメントは一般的な自然言語では無いので一筋縄ではいかないですが…(笑)。
これがレコメンドに応用できると、今までバッチベースでやっていたレコメンドが本当に大きく変わります。今まさにコメントが盛り上がっている番組をレコメンドしたり、コメント傾向が似ている人が集まってきた番組をレコメンドする、みたいなことも可能になります。また、各番組に対してどの経路から視聴しに来ているかや視聴者層のようなという指標やレコメンドの反応率等もリアルタイムに取れるようにもなって、これは様々な応用ができると思っています。
— 小飼:上からそれをやれとかって言われるの?
— 小田桐:それはないですね。例えば、ユーザー生放送は30分で放送枠が終わるため、特にリアルタイム性が重要なので、バッチ処理でのレコメンドは本質的に不向きで、生放送で適切なレコメンドをするにはストリーム処理が必要だということを自分なりに考えて、決めていった感じです。
— 清水:上からの要望としては、「いいレコメンドを作ってね」だけですね。
— 小飼:すごいざっくりしてるね(笑)
— 志村:私のところも「よしなにやって」という以上のことはないですね。
— 小飼:なるほど。さすが川上さん。ちなみに、今でも川上さんがCTOっていうのはなんでなの?
— 清水:この前は、「CTOは名誉職なので」って言ってましたね(笑)
— 小飼:いいなあ……名誉職としてのCTO。憧れるなあ。
— 全員:(笑)
インタビュー後記
「文化を育てる」という開発は、ニコニコという独特のカルチャーがあるドワンゴのエンジニアさんならではの面白みだよね。文化という計れないものだからこそ奥が深そう。今回も楽しすぎて、ついつい飲み過ぎてしまったなあ……(笑)
独自性の高いサービスでインターネット文化を育ててきたと言っても過言ではないドワンゴ。エンジニア一人ひとりが自分で考えて、モノづくりに没頭できる環境っていうのは、なかなか他の会社では味わえない醍醐味かもしれないね。今、サービスの拡充に携わるエンジニアを大募集しているというから、我こそはという方はぜひ求人情報もチェックしてみてはどうだろう?
この記事はいかがでしたか? ★をクリック!(必須)