社員紹介

エンジニア:小田桐 優理
エンジニア

ログをリアルタイムに一元的に 収集する基盤を作りたい

エンジニア

小田桐 優理 Odagiri Yuri

2014年2月中途入社。ニコニコ動画、ニコニコ生放送、ニコニ立体等のniconicoサービス全般で広く利用するレコメンドエンジンのシステム開発リーダーを担当。また、レコメンド基盤/ユーザクラスタリング基盤/コメント分析基盤/リアルタイムログ収集基盤の開発グループのマネジメントを担当。

ドワンゴに入社した理由

サービスとエンジニア文化に魅力を感じてドワンゴに入社しました。
niconicoは動画や生放送や静画等の幅広いフォーマットがあり、別ジャンルのコンテンツが相互に絡み合うサービスです。それにより、新しい概念・言葉・文化が生まれるという、コンテンツとコンテクストの両方が絶妙なバランスをとっているプラットフォームであると魅力を感じていました。また、エンジニア文化については、入社以前から勉強会等でドワンゴ社員と話す機会があり、技術面で貪欲な人が多く、常に新しい技術に触れる機会がありそうだと感じました。

印象に残っている仕事

ニコニ立体という、3Dモデルを投稿できるniconicoのサービスがあるのですが、そのサービスのトップページで表示される「あなたへのおすすめ」や個別の作品閲覧ページの「関連度の高い作品」というレコメンド部分の開発は面白かったですね。
レコメンド自体は閲覧/お気に入り/評価などのログを使ってやる方法もありますし、タグやタイトル、投稿者等の情報を使う方法もあります。それらを使ってどういうアプローチでレコメンドするにせよ、納得感のあるレコメンドを出そうと思いました。
最初は、ユーザーの閲覧履歴を基に、コンテンツ間の類似度(ユーザーが同時に見ているコンテンツの類似度が高いと判断)を計算してレコメンドを出してみたのですが、ランキングに入るような露出が多いコンテンツが出てきて、あまり「このコンテンツに関係のあるコンテンツ」という印象が持てない結果となりました。
そこで「より嗜好を表す行動」をベースにして計算する必要があると考えて、単純に視聴履歴全てをそのまま使うのではなく、検索からの視聴履歴を別に扱うようにしてレコメンドを出してみたところ、非常に納得感の高い結果になりました。
検索からの視聴履歴というのは、「こういうモノが見たい」というコンテクストが裏側にあることを意味します。そのため、同一のコンテクストを共有するコンテンツ同士を推薦することはレコメンドとして有用だった、という訳ですね。
一方、ニコニコ動画では、タグ文化が非常に成熟しているため、タグベースでのレコメンドが非常に有用だったりします。
何の情報を基に、どうやってレコメンドするかを考える為には、サービスの特性を理解することがとても重要だということを改めて感じましたね。

困難だった仕事

ログの種類の多様さと質の多様さとデータ量には、なかなか苦労したところでした。
niconicoのサービスには、ニコニコ動画、ニコニコ生放送、ニコニコ静画、ニコニ立体、ニコニコニュース、ニコニコミュニティ等など..それぞれのサービスでレコメンドは必要なのですが、サービス特性毎に有効なレコメンドが異なりますし、レコメンドに利用するログの受け渡しもなかなか大変です。
現在はリアルタイムにログを一元的に収集する基盤を作っていて、これらの問題を解決しようとしています。
また、ログには、ボットや外部サービスからのリクエストなど、いわゆるユーザー履歴以外のログが大量にあります。
それらのデータをそのままにしてレコメンドを行うと良い結果にならないため、ログの事前処理も骨が折れる仕事でしたね。

イメージ画像2

今後どんな仕事に取り組みたいか

一つはリアルタイム処理です。生放送や、リアルでのイベント(超会議、闘会議、ニコニコ本社)など、揮発性が高いコンテンツを扱う世界では、リアルタイムな処理が求められます。
実現するためにはストリーム処理が必要になり、技術面にも挑戦しがいがある取り組みです。
もう一つは、アルゴリズムの高度化とサービス横断レコメンド基盤の構築ですね。
現在はコンテンツのメタデータとログによるレコメンドを行っていますが、複数のレコメンドエンジンを賢く組み合わせるようにしたり、コンテンツそのものの物体認識や音声認識などにも取り組みたいと思っています。現在は、ニコニコ動画だけ利用、あるいはニコニコ生放送だけを利用、のように個別のサービスだけを利用される方が多いのですが、相互にサービスを自然に楽しめるような、サービス横断型のレコメンド基盤に育てたいと思っています。

ひとこと

データマイニングエンジニアは、対象のサービスについて自分なりに仮説を立てて取り組むことが好きな方にとっては、とても力を発揮出来る仕事が出来る場だと思います。
そのためには、数理的な知識、技術的に実現する力、サービスのドメイン知識がそれぞれ必要です。niconicoのサービスを利用していると「この部分の裏側ってどうなっているんだろう?」「こういうデータをこう使ったら面白いんじゃない?」等、気になる点が一杯出てくると思います。普段からサービスをよく見て仮説を立てること、また、モデルを作り、実装して確認すること、を習慣付けると役立ちます。
技術面では、 Deep Learning等の機械学習やSpark等の分散処理など、これから応用可能性が広がる分野については身に付けておくと役に立つと思いますが、ドワンゴのエンジニアは、技術的なバックグラウンドは非常に様々な上で好奇心旺盛なので、他の人がまだ知らない自分の得意領域を持っておくと更に良いと思います。

Favorite

ニコニコ実況

ニコニコ実況は、現在行われているテレビ/ラジオ放送に対してみんなで実況コメントを共有していく為の、リアルタイムコミュニケーションサービスです。
私は元々テレビは持っていなかったのですが、3年前よりテレビはずっとニコニコ実況を使って、コメント重ねつつTVを見てます。

一度慣れちゃうと、コメントが無いと物足りなく感じますね。
http://jk.nicovideo.jp/

同じ職種の社員はこちら