Facebook News Feed インフラ責任者がスマニュー新VPoEに。「社内開発プラットフォームを作り、エンジニアを全力支援する」

f:id:smartnews_jp:20190726160457j:plain
Youlin Li(左)と前田俊太郎(右)

Facebook で News Feedのインフラ責任者を務めた Youlin Liが、スマートニュースの Vice President of Engineering, Backend System and Foundation に就任しました。

about.smartnews.com

Youlin の来日に合わせて、Vice President of Ad Product の前田俊太郎がインタビューしました。Facebook でどんなことをしてきたのか、その経験を生かしてスマートニュースで何を成し遂げようと考えているのか、徹底的に聞きました(構成:スマートニュース通訳・翻訳チーム&スマQ編集部)。

Facebook を支える「社内開発プラットフォーム」の重要性

前田 よろしくお願いします。まずは自己紹介を。

Youlin Youlin Li です。私はテクノロジーに情熱を燃やすエンジニアとしてキャリアをスタートしました。2004年からシリコンバレーの Yahoo!・Microsoft・Google などのインターネット企業でマネージャーを務めました。その後、中国でプロフェッショナル向けのSNS、モバイル・インターネット、フィンテックの分野で新規プロダクトの立ち上げに取り組みました。2016年にアメリカに戻って Facebook に入社し、News Feedのインフラ責任者になりました。

f:id:smartnews_jp:20190726160443j:plain

前田 ありがとうございます。Facebook の中核とも言える News Feed インフラ責任者、とても興味があります。具体的には、どんなことをしてきたんですか?

Youlin Facebook では3つの課題を解決しました。

 1つ目は、News Feed のバックエンドシステムのマイクロサービス化です。当時 News Feed は巨大でモノリシックな Ranking サーバーでした。そこから Inference サービス、Feature Extraction サービス、Recommendation サービスなど主要なコンポーネントを切り出し、バックエンドエンジニアの開発の効率化を実現しました。

 2つ目は、Feature Engineering プラットフォームを構築して、機械学習エンジニアが開発しやすい環境を整えました。

 3つ目は、leaf と呼ばれる Realtime Indexing サービスのスケールアップです。当時、Realtime Index はすべて in-memory に保管されていたため、Index(News Feed のストーリーなど)を数日間しか保持できないという制約がありました。このシステムにフラッシュベースの分散型 KVS を導入することで、Realtime Index が保存する期間を数日から14日間に伸ばすことができ、レプリカをより一貫性のあるものにできました。

 インフラを全体的に改善する中で、他のプロダクトチームも似たような機能を必要としていることが分かったので、プラットフォーム化の取り組みを始めました。その結果、他のユースケースにも我々のインフラを適用しやすくなり、最終的には Ranking、Recommendation、Feature Engineering のクロス・プロダクト・チームのプラットフォームになったんです。

前田 Facebook プロダクトに限った話ですか? それとも、Instagram など他のプロダクトも含まれている?

Youlin プラットフォーム側では Facebook プロダクトのみをサポートしていましたが、News Feed のみではありません。Stories と User Growth もサポートしました。Instagram は我々のデータプラットフォームサービスの一部を使用しました。

前田 すごい。つまり、社内のほとんどのプロダクトが News Feed のインフラを利用していたということですよね。

Youlin その通り。

前田 プラットフォームという言葉が何度か出てきました。ここで言っているのは社内での開発のためのプラットフォームだと思うんですが、詳しく教えてください。

Youlin 会社がスケールアップして、新しいプロダクトや機能を持つようになるにつれて、共通のコンポーネントがあることに気がつきました。なので、プラットフォームを構築することで、異なるユースケースでも有効活用できるようにしました。

 例をあげると、データプラットフォームの場合、何らかの方法でデータを集積してそれぞれのサービスに提供する必要があります。この場合、個々のチームが別々のデータマネジメントシステムを作るよりも、1つのチームが開発を1回やる方が、はるかに効果的です。

 異なるプロダクト間のデータ共有も強化されます。最終的にすべてのデータを1カ所に集めることで、統合されたユーザーモデルを構築し、News Recommendation や Ads Recommendation などの異なるプロダクトに提供できます。

 プラットフォームは会社をスケールさせます。また、強固なプラットフォームは、プロダクトが市場を勝ち取ることを可能にします。

f:id:smartnews_jp:20190726160452j:plain

前田 Facebook は “Move Fast and Break Things” というカルチャーで知られているけど、プラットフォームがあったから、そういう開発スタイルが可能になったのかな。

Youlin その通り。Facebook では、エンジニアにより良い開発体験をもたらし、安定したインフラのもと迅速に物事を進められるよう、さまざまなツールやプラットフォームの開発に投資しています。それから、常にアンケートを実施し、どのようなペインがあるのか、どれぐらい生活や仕事を楽しんでいるのか、調査を行なっていました。もし比率が一定レベルよりも下がった場合、マネジメント層は危険信号であると捉えます。エンジニアには最良のプラットフォームとツールを提供し、ミッションを達成するために最大限の能力を引き出すためです。

「ミッション」に共鳴し「成長のポテンシャル」にワクワクしたからスマートニュースへ

前田 Facebook や Google などでキャリアを積んできて、今回、日本のスタートアップに入社したわけじゃないですか。どうしてスマートニュースに入ることにしたんですか?

Youlin この会社には素晴らしいポテンシャルがあるからです。それから、「高度でスケーラブルなインフラが必要とされる」という今のスマートニュースの課題が、ちょうど私自身の経験してきたものと合致したことも理由のひとつです。スマートニュースはプロダクトを10億人以上のユーザー数のレベルに成長させたいと考えていて、私自身にはその経験がある。良いマッチングだと感じます。

 アメリカでは、パーソナライズされた News Recommendation に大きな需要があります。でも、成功しているニュースアプリはまだありません。Facebook はソーシャルアプリであって、友だちのコンテンツが強調されている。SmartNews はニュースや良質な情報をユーザーに制約なく送り届けることにフォーカスしている。ここは大きな違いです。

 中国には、すでに1億ユーザーを超え、滞在時間も長く、大きく成功しているニュースアグリゲーションサービスが複数あります。SmartNews は日本では非常に長い滞在時間を得ていますし、アメリカで展開されているニュースアプリの中でも長い滞在時間を誇ります。この領域にはチャンスがあると、非常にワクワクしています。

前田 SmartNews のミッションと成長ポテンシャルに期待していると。

f:id:smartnews_jp:20190726160435j:plain

Youlin ええ。それから、一部調査などによると、SNSを使用すればするほど幸福度が下がる可能性があると言われています。スマートニュースでは、プロダクトに気をつければ、ユーザーによりポジティブな体験をしてもらえると思っています。ユーザーをフィルターバブルに閉じ込めることなく、バランスの取れた多様な視点からの情報を提供したい。さまざま情報を入手可能にすることによって、ユーザーにより良い判断をしてほしいんです。

 一方で、大量のニュースや情報であふれてしまって読む方は大変……ということも理解しています。そこで、もう1つやりたいのが、忙しい人でもサッと読めて、バランスの取れた形で情報を入手できるような体験を作り上げることです。いずれも、とても重要なミッションで、実現すればユーザーの「ニュースを読む」という行動を根本的に変えることにつながります。すごくワクワクしますね。

前田 「バランスの取れた視点」という話があったけど、アメリカにおけるバランスの問題についてはどう考えていますか?

Youlin アメリカでは、人々はさまざまな理由で二極化してしまい、両サイドでお互い共通の視点や価値観を持たなくなってしまった。より分断してしまい、憎しみ合っています。バランスの取れた情報提供が必要なんです。

 ニュースアプリを提供するにあたっては、ユーザーに「バランスの取れた視点とは何か」を理解してもらわないといけません。なぜ反対側の意見や話にもっと触れた方がよいかを伝えていかなければならない。我々が絶えず取り組み続けるべきことだと思います。

前田 来年(2020年)には、アメリカ大統領選もあるし、SmartNews の未来を作り上げていく上で重要なポイントになりますね。

自分のミッションは「世界一のニュースアプリを作り上げること」

前田 Youlin 自身のスマートニュースでのミッションは何ですか?

Youlin 優秀なエンジニアや他の部門のメンバーと共に、世界一のニュースアプリを作り上げることです。野心的な目標ですけど、ミッションドリブンで優れたチームであれば成し遂げられるはず。

 エンジニアリングで重要なのは、このミッションをサポートする全社的なプラットフォームを作り上げることです。データは我々の最重要資産になるので、Ranking、Data Storage、そしてデータ処理のためにスケーラビリティに優れたインフラを構築しなければなりません。

f:id:smartnews_jp:20190726160454j:plain

Youlin コンテンツ理解とユーザー理解を担う強いチームが必要です。コンテンツサイドでは、記事の内容を理解し、政治的観点を理解し、サマリーをどうやって作るかを理解し、誰についての記事か、その人に対してどんな意見があるかを理解する必要があります。そのため、解決しなくてはならない自然言語処理の問題がたくさんあります。記事にどのような画像や動画が入っているかを理解する必要もありますね。

 もう1つはユーザー理解について。暇つぶしで見ているのか、しっかりニュースを読みたいのか、もしくは興味がある特定の分野について調べたいのか……。適切なときに適切なコンテンツをユーザーに提供するためには、これらすべてが役に立つ。質の高い、ユーザーにとって非常に関連性の高い良質な情報を、適切なときに提供することが、我々のミッションなんです。

機械学習をもっとパワフルに

前田 どうすれば機械学習を使って、より大きなインパクトを与えることができるようになるか、もう少し詳しく教えてください。スマートニュースでは、どのチームが機械学習をサポートしていくことになりそうですか?

Youlin 機械学習エンジニアの手助けをするエンジニアたちによる “AI Infrastructure” というチームを考えています。このチームのミッションは、AI プラットフォームを構築し、膨大な量のデータと複雑なディープラーニングモデルにより機械学習の能力を高めることです。機械学習エンジニアたちにツールを提供する必要もあります。例えば Jupyter Notebook という、新しいモデルのプロトタイプや実験に使用するツールをサポートする予定です。

 このチームは Feature Engineering のプラットフォームを維持し、学習データセットを作成し、新しいモデルや特徴量をいじりやすい環境を提供します。また、TensorFlow や PyTorch など、主要な機械学習フレームワークもサポートして、新しいモデルの学習を大規模に展開できるようにします。

 AI Infrastructure チームのもう1つの役割は推論に関するものです。我々のモデルが洗練され重要度が増すにつれて、推論の部分もそれに合わせて拡大させたい。モデルが大きくなりすぎて1つのサーバーメモリにおさまらなくなるにつれ、分散環境での推論サービスも求められていきます。

 トレーニングも、このチームの重要なミッション。プロダクトが成長すれば、データも成熟し、より複雑になっていきます。そうすると、スケーラブルなトレーニング構造が必要となり、分散学習も当然、必要になります。

 一方で、我々のAIプラットフォーム上でモデルを育成するにあたって、機械学習エンジニアが必要とするデータを提供できるデータプラットフォームも重要です。

 データプラットフォームは会社全体を支えなければいけません。News Recommendation にも、Ads の構築にも、収益の創出にも活用できます。また、当社の主要KPIや各システムのモニタリングにも活用できます。

前田 データの可視化にも役立つはずですよね。

エンジニアがドメインの専門家になれるよう全力支援する

前田 スマートニュースに入社して1ヶ月以上が経ちました(編注:インタビュー時点)。スマートニュースのエンジニアを見て、どのように思いましたか?

Youlin とても優秀なエンジニアたちだと思います。ただ、現在の当社のインフラはプラットフォーム化されておらず、10倍の規模にスケールする準備はできていないと思います。当社エンジニアの業務は、よりビジネスに直結したものになっています。

 また、特定の分野に専門的に対応したり深掘りしたりできるようにするための、明確に定義されたロールやチームがありません。AI Foundation や AI Infrastructure など、インフラ用の組織を作るべきだと思います。そして、この分野にもエンジニアを配置し、より専門的なドメインで彼らの能力を伸ばしていく。今後、多くのトレーニングを行い、彼らがよりドメインの専門家になれるよう全力支援したい。

f:id:smartnews_jp:20190726160440j:plain

前田 日本の企業だと、エンジニアはより一般的な責任を負う傾向にあるけど、専門性を持てるようになるのはとても良いことだと思います。スマートニュースのエンジニアは、データプラットフォームや機械学習、あるいはインフラなど、ある分野において、より専門性を持てるような機会があるということですね。

Youlin そうです。専門的な課題に立ち向かう機会は確実にありますね。私の過去の経験はそれに役立つと思いますが、会社ごとに状況や課題は異なるので、正解を見つけるために、エンジニアと一緒に取り組んでいかないといけないと思っています。エンジニアのエンパワーメントは大事です。エンジニアには自分で判断をし、自分の考えを持ってもらいたいです。また、自身の日々のエンジニアリング業務を管理してほしいです。

 彼らをうまくサポートするのも、私と前田さんのミッションです。スマートニュースのエンジニアたちがより素早く立ち回れるようにするなど、生産性をあげるために、より良いエンジニアリングプロセスやツール、プラットフォームなどを通じて全力支援していきましょう。

ペインポイントを理解すればエンジニアとしてもっと早く成長できる

前田 どんなエンジニアにスマートニュースに入社してほしいですか?

Youlin 自ら考え自ら行動できる、積極的なエンジニアを求めています。当社のコアバリューの1つである “be the owner” を体現している人、とも言えます。エンジニアには、自分が当事者意識を持って取り組むべき分野はここだ、と理解してほしいです。あらゆる手段を使って成功に導くために、エンジニアは積極的にならなければなりません。例えば、エンジニアにはプロダクトマネージャと話し、正解を引き出してくれることを期待します。不明瞭な状況下においても素早く物事を進めていけるよう、方向性のギャップを埋めていかなければなりません。

 また、保守運用を厭わないことも求められます。私の感覚では、日本のエンジニアはアメリカのエンジニアと違って、あまり保守運用をやりたがらない気がします。前職では、保守運用をチーム全体でシェアし対応するという文化がありました。変なコードを書いてあとは他の人にお任せというのは、おかしいですもんね。

f:id:smartnews_jp:20190726160448j:plain

Youlin 保守運用を通じて「そうか、自分のコードはチームやサービスにこれだけのインパクトをもたらすんだから、よりクオリティに気をつけないといけないんだ」というペインポイントを理解できます。このような経験はエンジニアに改善を促します。

 オペレーショナルタスクをできる限りコンスタントに自動化できるよう、エンジニアが対応すべきことを最小限にすることも目標として捉えています。このような自動化ツール構築を支援するために DevOps チームを作ります。

 オペレーショナルタスクを自分の手でやりたくないのであれば、自動化しなければいけません。他の人に「これやって」ではいけないのです。チームとして働く環境の中で、こうしたことにも対応できるエンジニアを求めています。

前田 例えば Google では、各サービスに SRE チームがありますよね。状況としてはだいぶ異なると思います。

Youlin その通りです。Facebook のチームにはオーナーシップがあるからこそ、エンジニアの成長が早いんだと思っています。

 Facebook のエンジニアからよく出てくるフィードバックは、オンコールを好まないということ。でも、オンコールはエンジニアの成長を促進し、サービスのペインポイントの理解や、より信頼性があって効率的にするにはどうしたら良いかを考えることにつながります。全体像を理解すると共に、成長の機会を与えるものなんです。

前田 私も前職ではオンコールがありました。基本的に毎日オンコールがあって大変なんですけど、対応することによって、信頼性の高いシステム構築を意識するようになるんですよね。

Youlin その通り! “Eat your own dog food” という表現を聞いたことがあると思います。つまり、何かを作ったのなら、それがうまくいくかどうか、実際に食べて(試して)確認しないといけないんです。

日本発、初めてグローバルで成功するソフトウェア企業に

前田 スマートニュースは今後さらにグローバルになっていくと思います。グローバルなエンジニアカルチャーについて、例えばダイバーシティや言語の観点から、どんな会社になっていくと思いますか?

Youlin グローバルな言語、つまり英語に今後は統一していくと思います。日本人エンジニアはおそらく読み書きのスキルはあるのですが、話すことを躊躇してしまう人が少なくないように思います。実際は、結構うまく話せていると思いますが。

前田 そうなんですよね。躊躇してしまうのは、結構ありがちなんです。

Youlin もっと学べてもっと躊躇なく英語で話せるような英語環境を作りたいですね。もちろん通訳の支援もあるので、よりグローバルカルチャーにフィットできる最高のタイミングだと思います。インターネット業界で、日本発で、グローバルで成功する初めての会社にしたいです。

f:id:smartnews_jp:20190726160446j:plain

前田 日本のソフトウェア企業で、真の意味でグローバルになった会社は、まだないかもしれないですね。ハードウェアではあっても、ソフトウェアでは、まだ、ない。

 私自身はこれから Youlin と働くにあたって、とにかくプラットフォームを作るのが楽しみです。グローバル企業の基盤となるプラットフォームを構築するという経験は、その会社のグロースフェーズでしか経験できません。スマートニュースはまさにそういう時期にさしかかっていて、数年前でも数年後でもなく、今この瞬間でしかできない面白いチャレンジがあります。すでに知見がある Youlin と共に推進していけるのが、本当に楽しみです。

 エンジニアにとって、とっても面白いフェーズだと思うので、Youlin と一緒に働きたいという人は、ぜひこのチャレンジに参加してほしいと思います。今日はありがとうございました。

日本、アメリカ、中国でエンジニア積極採用中