スマートニュースのエンジニアチームとこれから

Youlin Li氏:みなさん、本日は来ていただき、ありがとうございます。本日は、SmartNewsが直面している世界的な技術的課題、そしてどのようにして強いエンジニアリングチームを構築して取り組んでいくのかについて話します。

まず自己紹介です。

はじめまして。みなさんにお目にかかれてすごくうれしいです。私はすでにこの業界ではかなり古株なのですが、ソフトウェアエンジニアとしてキャリアをはじめました。

Yahoo!でエンジニアリングマネージャーになり、Microsoft、Googleを経験したあと、中国のGoogleに関わり、その後、中国版Facebookと呼ばれていたRenrenという会社に入りました。

そこではJingweiという中国版のLinkedInのようなサービスに携わりました。その後、2014年からTCLという会社にモバイルインターネットのジェネラルマネージャーとして入社し、ゲームセンター、アプリストア、などのエコシステム作りに携わりました。

その後、Mashang Finance Corporationに入りました。ここは消費者金融に特化した企業で、政府から認定を受けて、P2Pのインターネットファイナンシングを展開していました。

ただ、私の家族が米国に残っていましたので米国に戻り、Facebookに入りました。こちらでは2017〜2019年の間に、ニュースフィードのインフラストラクチャーの責任者として関わりました。当時、ちょうどさまざまなネガティブニュースが流れていたので、フェイクニュースに対する取り組みや、Facebookをより良い環境にするためにさまざまなことに取り組みました。

Facebookはこのようにさまざまな社会的な問題を抱えているわけですが、SmartNewsは非常にコンシューマドリブンなプロダクトで、そこでスケーラブルなインフラストラクチャーを構築し、そしてユーザーに提供することで、公共の利益になるようなことをやりたく、スマートニュースに入社しました。

本日は、まずはSmartNewsについてお話したあと、コアバリューについて、そして我々が今作ろうとしているテクノロジーについてもお話ししたいと思います。そして、どのようにしてEngineering Divisionをつくるか、最後に、なぜみなさんにスマートニュースに入ってきていただきたいかについてもお話しします。

スマートニュースの今

まずスマートニュースの戦略についてお話しします。我々のミッションは「世界中の良質な情報を必要な人に送り届ける」です。

ほかのニュースアプリと異なる点は、「情報を発見する」という点です。ですので、新しい経験、そういったところを発見するためには、発見という要素が重要となります。そして、より良質な情報を送り届けること。これはニュースを消費し、そしてより偏りのない見解を持つことが非常に重要だと考えているからです。

SmartNewsでは、現在ニュース、広告、ビデオ、クーポンが配信されていますが、今後はコンテンツの量もどんどん増えていきます。例えば、タイムセール、天気情報などが含まれます。

現在のSmartNewsの状況です。現在、米国でも急成長しています。我々の戦略というのは、グローバルで勝ち残ることです。

これまでやってきたことは、グローバルメディアパートナーシップを組むことです。すでに我々がアグリゲートしているコンテンツは2019年6月末時点で900チャンネル(日米)を超えています。SmartNews上ではすでに多くのメディアの記事を読むことができますが、今後も、日本や米国だけでなく世界中のメディアとパートナーシップを組んで行きます。

現在社員は全世界で200名を超え、日本・米国・中国をはじめとして、10以上の国籍の社員が在籍しています。

これは去年行ったグローバル全社会議の様子です。全社全員集めて、今後グローバルカンパニーになっていくにあたって、どんなことをやっていくかという話をしました。

米国ではサンフランシスコ、パロアルト、そしてニューヨークにオフィスがあります。ニューヨークはパブリッシャー関係のチームがあり、上海にはリサーチチームがあります。

我々のプランとしては、2〜5年以内にグローバルで競争できる力をつけたいと思っています。 我々は可能だと考えていますが、みなさんの手助けが必要です。

AIは競争力の源泉です。我々の差別化要因は、「Personalized Discovery」、情報を発見するということです。さまざまなサービスでパーソナリゼーションを行っていますが、パーソナリゼーションとは過去の経験を基に、新しい発見を提供するものです。新しい発見を提供するためには、フィルターだけでなく、さまざまな異なるマインドセットが必要です。

例えば、AIと医療を組み合わせることで、新薬の開発を行う。そういったやり方が研究されています。これらはAIを使うことで改善できることがわかっています。私たちはこれをニュースの分野でも適用しようと考えています。

あとは、ナレッジグラフの作成です。例えば新たな治療法が作られたり、AIが作られたり、新しい分野でなにか新しいものが作られたら、これらのナレッジグラフにつなげていくということを考えています。これを有効活用して、新しい発見をつくることができると考えています。

この分野でユーザーを獲得することによって、新しい分野での成長が可能であると考えています。これをどのように達成するのか、後ほど詳細を話したいと思います。

スマートニュースに入社して驚いたこと

次に、私がスマートニュースのどんなことに驚いたかについて、話をしたいと思います。

今25パーセントぐらいのエンジニアが日本以外からやってきていて、60パーセントくらいの日本人エンジニアは英語が流暢に話せます。ですので、言葉の壁は大きな問題ではありません。これは非常にすばらしいことだと思います。

ただ、英語を学んでいたらいいというわけではありません。英語力は読み書きすることに非常に重要です。多くの文献が英語で用意されていますので、そういったところはソフトウェアエンジニアとして成功するには重要だと思います。

ただ、スマートニュースで成功するためには、英語力が必ずしも強みでなければいけないわけではありません。なぜかというと、会社では同時通訳も提供していまして、今みなさんが聞いているように、私が英語で話している内容を即座に通訳できます。こういったサポートがあり、言葉の壁を乗り越えることができますので、まったく問題にはなりません。

通訳の人たちにはいつもお世話になっていますので、みなさんぜひ拍手をしていただければと思います。みなさん、ありがとうございます。

(会場拍手)

ほかのおもしろい話としましては、社内食堂がありまして、ここでランチが提供されます。

Facebookにいた頃、私は常に中華料理ばかり食べていました。ですがここでは、FacebookやGoogleと比べるとまだまだバラエティは少ないですが、さまざまな食べ物にトライできるよう、バラエティ豊かな料理を提供してくれます。和食、洋食、中華料理、メキシコ料理、いろいろありますので、これまで食べたことがない料理にトライすることもできます。

1つだけ制約がありまして、ここではお皿に取るべき目安の量が決められています。以前、私はそれを知らずにおいしそうなものをばかり取っていたんですが、ここでは取る量もある程度決まっているので、特定の食べ物だけでなくさまざまなものを食べるよう推奨されています。ここにもDiscoveryの要素が組み込まれています。

他にはコーヒースタンドもありまして、さまざまなコーヒーを味わうこともできます。私はコーヒーが大好きですので、これは非常にハッピーです。スマートニュースに面接に来る人や、ランチに呼ばれた場合でも、こういった食事やコーヒーを味わうこともできます。

3つのコアバリュー

では、スマートニュースのコアバリューについてお話ししたいと思います。

この3つがコアバリューとなっています。非常なシンプルな内容です。

まず1つ目、「For the Common Good」ということです。これは ニュースアプリとして非常に重要です。

このような事例があります。ユーザーはフィルターバブルがあったとき、それに気づかないことがあります。2016年の米国大統領選挙における国民投票の得票差が非常に少なかったということがありました。つまり、バイアスは私たちにとって非常に重要なテーマになります。

これは長期的な人間の共栄の部分の話になると思います。民主主義とは、よりニュートラルでバランスが取れていなければいけません。なので、SmartNewsを用いて公共に資する価値を作ろうと考えています。

これはもしかしたらほかの会社ではすでに失敗した事かもしれません。Googleはすでにシステムを使っていました。ですが、アルゴリズムの中でバイアスがかかっている可能性があります。

ですので、このコアバリューは非常に重要だと思っています。私たちのシステムやアルゴリズム副作用があるということを認識して、かつ、社会に対して長期的な貢献をしようとしています。

2つ目は「Be the Owner」です。自ら責任を持ってリーダーになって、自らなにかをできる人になってほしいなと思っています。

私たちはマイクロサービスを採用しています。そうすることで、エンジニアは自分のやり方でサービスを作ることができます。ほかのサービスと切り離されているので、エンジニアとしてより速く動ける自由があるわけです。

なので、私たちのサービスには非常にたくさんの言語が使われています。このような当事者意識は、満足感やワクワク感、そして自己成長のために非常に重要だと思っています。

3つ目は「Have Appreciation」ということです。

というのは、マイクロサービスに関しては、インテグレーションが難しくなりますし、テストも難しくなります。かつ、失敗の難易度も上がっていきます。

なので、このようなインパクトがマイクロサービスに存在していることを理解しなければいけません。つまり、ボトムアップが重要であるということです。これが上から下へのトップダウンになってしまうと、私やマネージャーが言っていることにしたがってそのままやることになってしまい、それがうまくできないと失敗してしまいます。

なので私たちはこのコアバリューを尊重して、さらにチームとして成功することに貢献しようと考えています。

スマートニュースのテクノロジーについて

ここまでがコアバリューについての話でした。では、もっとワクワクするようなテクノロジーの話をさせていただきたいと思います。

スマートニュースはMachine Learning、機械学習の会社です。ワールドクラスのCapabilityを持つためには、3つの要素を組み合わせなければいけないと考えています。インフラとアルゴリズムとビッグデータです。

GoogleやFacebookはアルゴリズムを公開していますし、みなさんのレジュメの中を見ていると、最先端なアルゴリズムをやっていることをアピールしているのをよく見ます。なので、アルゴリズムについて書くのはそんなにおもしろいことではないかなと思っていますので、今回は、インフラストラクチャーやビッグデータについて重点的にお話しします。

よりデータをタイムリーにプロトタイピングできるのかどうか、ワールドクラスのAI Capabilityを実現することを重視しています。

実はスマートニュースに入社して2ヶ月ほどなんですが、私たちのボトルネックはアルゴリズムではないと思っています。これは私たちは早急に対応しなければならない課題だと認識しています。

実はSmartNewsのインフラは、すでに大きな規模になっています。というのは、1秒ごとに3万のリクエストがありますし、プッシュ通知は5分以内に2,500万のユーザーに対して送っています。これは非常にすばらしいことだと思います。

ログアグリゲーションに関してですが、1日あたり5億のログをとっています。かつ、これは推測になってしまいますが、AWS Nodesに関しても1日あたり3,000という数字になっています。

ですが、これを10倍・100倍にスケールする必要があるので、このアーキテクチャを自動的にスケールアウトできるようにしなければいけません。なので、現在サービスにおいてやらなければいけないことがたくさんあります。現状を維持するだけではこれは達成できないと思っているので、私たちにとって非常に大きな課題です。

また、私たちはデベロッパーの成長もスケールしたいと思っています。

並行して開発できたり、簡単にプロダクションにシフトしたいと考えています。また、継続的にインテグレーションすることが、物事を速く進めていく上で非常に重要だと思っていますので、ここも課題の分野の1つです。

つまり、エンジニアがエンパワーされるカルチャーをつくっていきたいと思っています。

120以上のマイクロサービスが存在

最後に、グローバルインフラストラクチャーについてです。

現在のサービスはAWSを使っているのですが、日本のデータセンターを使用しています。つまりアメリカのユーザーが太平洋を越えてくる形になっています。なので、レイテンシーに課題があります。ユーザーエクスペリエンスを最適化するために、私たちはインフラストラクチャーをグローバルにデプロイしなければいけません。

これは非常に大きなチャレンジです。AWSに対応していない地域の場合、各地域のプロバイダーと連携をしなければいけません。場合によっては、もしかしたら私達自身が作らなければいけない可能性も出てきます。

また、マイクロサービスによる複雑さにも課題があります。現在、フロントエンドからバックエンドまで、120以上のマイクロサービスを使っています。

というのは、エンジニアにはそれぞれ好きにマイクロサービスを開発する自由を与えたいと思っています。かつ、自分たちで意思決定ができるようにしたいので、既存のマイクロサービスのインフラストラクチャーとどのように対応していくかも課題の1つです。

また、ビッグデータの課題もあります。ユーザーログやインデックス、広告関連のデータなど私たちのパイプラインには様々なデータが日々入ってきています。

これをリアルタイムにストリーミングしたいと考えています。多くのシグナルやユーザーの挙動の数秒後に反映されるようにしたいと考えているので、非常に大きな課題です。なので、リアルタイムデータストリーミングをどのように改善していくか考えています。

このようなリアルタイムストリーミングはニュースと広告で必要です。もしデータプラットフォームエンジニアであれば、これはもしかしたらすごくワクワクする分野なのではないかと思います。

また、アルゴリズムに関しては、これももちろん公共性に資する必要があります。アルゴリズムはコンテンツとユーザーを理解しているので、これによって新たな情報を発見でき、これが公共性に資する価値のものだと考えています。

また、レコメンデーション以上のことをやりたいと考えています。AIは新しいコンテンツを作ることができます。このようなニーズは実際あります。というのは、各地域のパブリッシャーは、そのビジネスでうまくいっていないこともあるので、ローカルニュースをカバーしなければいけません。例えば自治体レベルまで含めると、1万1,000の選挙があるわけです。なので、このような選挙をすべて理解しなければいけません。

なので、こういった分野では、AIを使って新しいコンテンツを作れると思っています。ニュースやスポーツニュース、ビデオということもあるかもしれません。スポーツニュースに関して言えば、早ければ早いほど良いわけです。このようなことはAIを活用する部分だと思いますし、今後の投資分野になると考えています。

政治的な二極化を防ぐために

AIテクノロジーに関して、もう少しお話をさせていただきたいと思います。2020年、アメリカでは大統領選挙が行われます。そこで、私たちがよりバランスの取れた観点をユーザーに届けたいと思っています。

最も大きな問題として、政治的な二極化が起こっているということが挙げられます。みなさんも、この問題についてご認識されていると思います。

人がさまざまな観点を持つことはいいことだと思いますが、さまざまな要素を踏まえて議論ができれば、もう少し二極化が和らぐのではないかと考えていますので、ユーザーに対してバランスの取れたレコメンデーションをしたいと思っています。

そのためにはコンテンツを学ぶ・知る上でAIが必要になってきます。

なのでやらなければいけないのは、政治に関する話題を分類することです。その記事が意見なのか、それとも事実なのかを分類できなければいけません。

また、選挙に関しては、選挙関係のことなのか、それとも違うことなのかが理解できなければいけません。他には、政治家についての記事なのか、政策についての記事なのか。もしそれが政治家の話だったら誰のことなのか。トランプなのかそれともほかの候補者のことなのかを分類していきます。政策だった場合については、後ほどお話しさせていただきます。

あとは、スタンスも分類しなければいけません。例えば、その記事は特定の政治家に対して賛成しているのか反対しているのかということです。また、心情も分析しなければいけません。怒りなのか喜びなのか、そういったような心情の分析もAIで行っています。

このような分析をすることによって、政治的なニュースの分類に役立ちます。

政治的なニュースを分類する仕組み

このようなタスクは4つのステージがあります。

ニュースを受け取った時、それが政治なのかエンタメなのかを分類していきます。これが政治だった場合、大統領選挙なのかどうなのかを判断します。大統領選挙だった場合、どんな政策について話しているのか、そのスタンスはどうなのか、支持なのか反対なのかを分類していくわけです。

その次はデータコレクションの方法です。モデルをいいものにするためには教師データが必要になってきますので、トップダウンとボトムアップの両方を組み合わせています。

トップダウンの中では、プロダクトマネージャーやエンジニアやデータサイエンティストがポリシーの定義をします。そしてガイドラインをそれに基づいて書き、クラウドソーシングを用いてラベリングをします。Figure Eightを使っています。教師データを得てから訓練モデルを作って、評価を行います。

次にやることはボトムアップです。例えば、これをトップダウンで評価してから、このデータはもしかしたらラベリングが間違っているかもしれないので、より精密してモデルをトレーニングしていきます。

こちらのほうが、分類タスクが非常に大事だということがわかっていますので、記事によってはラベリングが難しいんです。ポジティブなのかネガティブなのか、このような境界線上にあるようなものを判断することが正しい解答を出すためには大事ですので、ボトムアップをやることによってより精度を高めて、より良いモデルのクオリティを保っています。

現在は1万のサンプルがあります。もう少し均等な配分を求めているのですが、サンプル数自体は小さいので、その中で先進的な、革新的な方法でトレーニングをしなければいけません。

こちらには、モデルとしてマルチタスキングの分類モデルと書いてあります。BERTというTransformerやLSTMなどの共通レイヤーから来るレイヤーがあります。それぞれがDense Layerを持っていて、それぞれのタスクの分類を行います。

それぞれのタスクがさまざまなクラスに分類されます。例えば、外交政策に関しては10個のカテゴリが出てきます。このアーキテクチャは、ローレベルな機能を効果的に共有して、データをなるべく活用できる方法だと思っています。

このDense Layerのタスクは、そのタスクの専門性を高める方向性に進んでいます。例えばここはチューニングしたUniversal Sentence Encoderを使います。これはDeep Averaging NetworkやDense Layerを組み合わせたものです。

このモデルを使ったことによって、トレーニングの正確度が92パーセント、バリデーションが90パーセントを記録しました。これは良い結果ですが、最高ではありません。なぜならば、4つのレベルがあります。Politics、Election、Stanceなどなどのステージがありますので、それぞれが90パーセントである場合は60パーセント程度の正確度になってしまいますので、少しずつ改善はしていかなければなりません。