ミクシルでは、新卒スタッフの成長の軌跡をシリーズでお伝えしています。どのような成功体験や失敗体験を経験し、どんな風に成長したのか?スキルやマインドの成長に大きく役立ったターニングポイントとは?について迫ります。
今回登場してくれたのは、2018年9月から1年7ヵ月のインターンを経て、2020年4月に新卒入社をした登内(とのうち)。機械学習エンジニアとして活躍する彼が、入社当初から取り組んでいる一大プロジェクトについて話を伺いました。
登内 雅人(とのうち まさと)
みてね事業部 開発グループ MLエンジニア
2018年 静岡大学 情報学部 情報科学科卒。2020年 横浜国立大学大学院卒。2020年 MIXI新卒入社。
就活しなかったのは、MIXIの環境が魅力的だったから
━━登内さんは、入社前の学生時代はどのような研究をしていたのですか?
私は大学と大学院、どちらも情報系の学部に所属していました。大学の研究室ではセキュリティをメインに学んでいたのですが、4年目の終わり頃から機械学習が注目されるようになってきたんですよね。自分も機械学習に興味を持ち勉強を始め、大学院では機械学習を専攻しました。そして大学院1年目の9月頃からMIXIのインターンに参加し始めたんです。
━━インターンを始めたきっかけは何でしたか?
せっかく関東の大学院に入学したので、Web系の企業で働いてみたいという思いがあったんです。色々と企業を探していたところ、MIXIでは画像系の研究開発に取り組んでいたので興味を持ちました。インターンではスマートヘルス領域の研究開発に関わっていたのですが、事業のクローズと共に『家族アルバム みてね』の開発チームへ異動となりました。
━━なるほど。他企業でもインターンを経験しましたか?
いえ、MIXIだけですね。僕はあまり就活をしたくなかったので(笑)、インターンが終わった後、新卒面接を受けて、そのまま正社員として入社しました。
━━インターンの時に、MIXIで働く魅力を感じられたということですよね。
そうですね。インターンや内定者アルバイトを通じて、技術的に成長できる実感もありましたし、働きやすい環境があるところにも惹かれました。また“ユーザーサプライズファースト”というユーザーに寄り添うサービス運営が実践されている点や、アプリ上で完結するのではなくサービスを介してコミュニケーションが生まれるというコンセプトにも深く共感できました。実際、『みてね』のユーザーさんからは、とても感謝される機会が多いんですよね。コンセプトをブレずにサービス運営をしているところがMIXIの魅力の一つだと思います。
社内外で前例のないプロジェクトに挑む
━━『みてね』の開発グループではどのような仕事を担当していますか。
機械学習システムに関する開発に関わっています。実は『みてね』では、さまざまな機械学習システムが動いているんです。例えば、ユーザーがアップロードした動画を1秒ずつ繋ぎ合わせた「1秒動画」、自動提案フォトブック、DVD作成時の「1枚にまとめる」機能などです。なかでも私が力を入れているのは、アップロードした写真や動画を人物ごとに自動分類する「人物ごとのアルバム機能」です。この機能を実現するために、合計6つほどのAIモデルやアルゴリズムが稼働しています。入社時からそれらのAIモデルやアルゴリズム改善に関わっています。特に重要なのが、特徴抽出モデルの精度改善です。
━━特徴抽出モデルとは?
顔画像を分類するために使う特徴ベクトルを抽出するためのAIモデルです。この特徴ベクトルの集合に対してクラスタリングを行うことで、お子さんごとの個別アルバムを作成します。現在はこの顔識別結果は個別アルバム機能でのみ使用されていますが、顔識別の精度が上がればさまざまな施策に展開することができるので、精度改善が非常に重要な課題となっています。実はこちらのAIモデルは私が入社した当初から、数年をかけてずっと改善に取り組んでいるモデルなのですが、まだ更新できていないプロジェクトなんですよね。というのも、色々な問題があって、一つひとつクリアしている状況です。
━━問題というのは?
少し専門的な話になってしまいますが、モデルを更新するにあたって、現行の特徴抽出モデルが抽出した顔の特徴ベクトルと、新しく作成したモデルが抽出する特徴ベクトルとの間に互換性がないとクラスタリングが機能しなくなってしまうんです。互換性を担保せずに新モデルに変えると、過去解析分の大規模なデータに再推論処理が必要になったり、移行のための作業やコストも莫大にかかってしまいます。例えるとモデル更新の度に、データベース移行に近い開発・作業が必要となるわけです。
━━それはかなりパワーがかかりますね…!
普通、AIモデルの精度が上がっていればすぐにサービスインできるのですが、互換性を保ちつつ精度を上げていくのは非常に難易度が高くなります。さらにユーザー数増加に伴う多様化を踏まえると、課題はどんどん山積みに…。分かりやすいものでは、海外展開によって、さまざまな人種や年齢に対応したシステムが必要になるからです。
そこで、特徴抽出モデルの精度改善をすべく、まず学習用のデータセットの作成から着手しました。それを作るのにかかった期間は、まさかの1年。そこから実験にも1年ほどかかっているという状況です。他のAIモデルやアルゴリズムとも並行してにはなりますが、特徴抽出モデルについてはまだ更新できていないのが現状です。他のAIモデルの改善であれば、基本的に1ヵ月もあれば最新のモデルに入れ替えることができるのですが、この特徴抽出モデルは先ほどの互換性の問題含め、色々な問題を抱えていたので、一つひとつ時間を掛けてクリアするしかありませんでした。
社内の機械学習エンジニア同士で輪読会を開催
━━そういう場合は、他社の研究開発などを参考にするのですか?
いえ、特徴抽出モデルの改善において、古いモデルと互換性を保ちつつ更新したという事例は聞いたことがありませんでした。なので、色々な論文を読み漁って試しながら、自分で正解を見つけるしかなかったんです。
━━過去に前例のない挑戦だったんですね…!
最終的にはCVPR2020というコンピュータビジョン系のトップカンファレンスの論文の中から、課題に合致した手法があったので、それを採用しました。これは特徴ベクトルの互換性に関する課題解決に向けた大きな一歩となりました。
この件は社外の勉強会でも発表し、スポンサー賞をいただくなどの評価をしてもらったこともあります。
━━すばらしいですね!ちなみに、このプロジェクトについて周りからどんなサポートがありましたか?
機械学習の研究をメインに担当するエンジニアは開発グループ内に私しかいないのですが、AIモデルの本番導入周りでチームの人の助けを得たり、データに関するセキュリティやプライバシー面はセキュリティ室や部署内のSREグループにも助言をいただいたりしていました。また、データセット作成のためのアノテーションツールの開発は外部に委託したり、アノテーション作業については仙台のMIXI EMPOWERMENTのメンバーにお願いしていました。研究開発自体は独立して進めていましたが、このように困ったことがあったら上司やチームをはじめ、他部署のメンバーもサポートしてくれる体制は整っていると思います。
━━とはいえ、開発グループ内に機械学習エンジニアが一人というのはかなり大変ですよね。
そうですね。でも他部署には機械学習エンジニアがいて、交流を持つ機会があるので助かっています。
━━そうなんですね。具体的にはどのようなことをしていますか?
週に1回、輪読会を開催しています。輪読会というのは、機械学習系の技術書や論文を読んで、内容の発表や議論を行う会です。基礎の部分を振り返ったり、最近トレンドにもなっている機械学習のプライバシー・著作権問題などについても議論するいい機会になっていますね。また『みてね』には技術顧問がいるので、月に1回ミーティングを開催しています。研究方針や技術選定の壁打ち相手になっていただいていて、外部に気軽に相談できる相手がいるのもすごくありがたいです。
機械学習の知見を、新事業に活かしたい
━━今後の目標について聞かせてください。
『みてね』における目標は2つあります。1つ目が、古いモデルを全て更新するということ。2つ目が新機能開発で、直近ではアルバム内の写真の検索・レコメンドのために、画像に対するイベント・タグ付けの研究開発を行っています。写真に対して、「クリスマス」や「誕生日」、「集合写真」などのタグをAIモデルを使って自動で付与していくイメージです。『みてね』のユーザーさんのなかには、写真や動画が多くて、「フォトブック」や「写真プリント」に使う素材を探すのが大変という方も多いんですよね。ユーザーさんが目的の写真を探しやすいようにタグで検索できるようにしたり、自動提案してあげるために機械学習を取り入れていきたいと考えています。
━━ご自身のキャリアについてはいかがですか?
機械学習以外にも、できることをどんどん増やしていきたいと思っています。今はソフトウェアアーキテクトにも興味が強く、DDDやマイクロサービスアーキテクチャなどについての勉強会に参加したり、個人開発で規模の大きめなサービスを開発して知見を溜めているところです。『みてね』自体もリアーキテクティングを検討するフェーズに入ってきているので、この知識がいつか役に立つ時がくると思っています。また今後、機械学習のシステムを使う事業が出てきたら、自分が培ってきた知見をどんどん提供していきたいですね。継続的に機械学習のモデルを改善していく環境整備や画像系の解析など、かなり知見が溜まってきていると思うので。
━━なるほど。開発グループの今後についてはどう考えていますか?
『みてね』の開発グループでは、ユーザーがアップロードしてくれた写真や動画に付加価値を付け、充実したユーザー体験を提供するということをミッションに掲げて、日々サービス向上に向けて頑張っているところです。今後もその方針は変わりません。ただ社内全体として機械学習エンジニアの数が少ないので、新しいメンバーを迎えたいというのが正直なところです。新メンバーが入ってきてくれたら、お互いに勉強したことを共有し合い、よりクオリティの高いサービスを提供できるようになると考えています。
▼関連する求人はこちら
【開発本部】データエンジニア(データマネジメント/全社横断組織)
【家族アルバム みてね】 Rails エンジニア(Data Engineering グループ)
【家族アルバム みてね】Androidエンジニア
※上記求人は、本記事公開時の募集情報です。
※募集終了の場合、募集職種一覧ページが表示されます。