このページの本文へ

業界を知り、業界をつなぐX-Tech JAWS 第14回

第6回 X-Tech JAWSのトップバッターはNewsTech

スマートニュース、動画チャンネルでのMLサービス活用を語る

2019年01月18日 07時00分更新

文● 大谷イビサ/TECH.ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

 2019年1月10日、渋谷のスマートニュースにおいて、第6回となる「X-Tech JAWS」が開催された。「あなたの身近な生活を支えるAWSを使ったサービスの秘密」をテーマにした今回も、さまざまな業界でのAWS活用事例がビジネスとテクノロジーの両面から語られた。

ソフトウェアエンジニアの真幡康徳さん

3500万人がダウンロードするニュースアプリを支えるシステム

 第6回目のX-Tech JAWSトップを飾ったのは、会場提供元のスマートニュース。ソフトウェアエンジニアの真幡康徳さんが「スマートニュースにおけるニュースパイプラインの進化」というタイトルでニュース配信の舞台裏を語った。

 ご存じSmartNewsは日米で3500万人がダウンロードするニュースアプリで、旬なニュースを「スマートビュー」でさくさく読めるという特徴を持つ。社長が漫画喫茶にこもって書いていたと言われる創業期は、ニュースの収集や分析、インデックス化などを単一の配信サーバーが担うというアーキテクチャだったが、近代ではEC2やDynamoDB、CloudSearchなど複数のAWSサービスを複数組み合わせている。

ひたすらシンプルだった創業期

近代のSmartNewsのアーキテクチャ

 SmartNewsにおけるニュース配信は、記事の収集と分析を行なう「オフライン処理」と記事配信や検索を行なう「オンライン処理」の大きく2つに分けられる。

 オフライン処理では、契約した媒体のニュース記事をクロールしたり、ポピュラリティ(注目度)を分析したり、機械学習での記事カテゴリ判定、人名や地名、組織名など固有表現判定などを行なっている。クローラーで集められた記事はKinesis経由でインデクサーに渡され、必要なものがデータ分析にかけられ、結果はDynamoDBに格納される。

 一方、アプリに対してニュースを配信するオンライン処理はユーザー体験に直結されるため、リアルタイム性が要求されるという。SmartNewsの場合は1日4回のプッシュがあり、これをトリガにピークタイムが訪れるため、APIサーバーのスケールアウトが容易なアーキテクチャになっている。「検索エンジンを挟んでオンライン処理とオフライン処理に分かれているけど、オンライン側から見た検索エンジンは最後の砦。なるべくクエリは投げたくない」と真幡さんは語る。

 オンライン・オフライン処理ともEC2インスタンスはすべてASG(Auto Scaling Group)で管理されており、一部はECS(Elastic Container Service)も導入されている。また、CPUやメモリの使用率など各種メトリクスはDatadogで収集しており、障害につながりそうな場合はSlackやPagerDutyに通知させている。パフォーマンス監視に関してはNew Relicを採用。ただ、コスト面の問題から全面的にはなく、小規模なASGでの検証にとどまるという。

MLサービスはAWSとGoogleの両刀遣い

 創業期、近代に続いていよいよ“現代”は、動画ニュース用の専用チャンネルを追加され、システム面でもいくつかの変更が行なわれた。とはいえ、このときは抜本的なシステム刷新は行なわず、既存のシステムにSageMakerやElasticsearch、Google Cloud Vision APIを追加するという形でスピーディにリリースした。

SmartNewsの動画機能

 このうち機械学習(ML:Machine Learning)用のプラットフォームであるSageMakerは、今までニュース専用だった分類器を、動画でも利用えきるようにするためのもの。開発はカリフォルニアの部隊が担当したが、エンドポイントがオートスケールでき、検証やモデル変更の影響を受けない点がメリットだったという。

 Elasticserachの導入に関しては、今使っているCloudSearchの将来に不安を感じたから。真幡さんは、「利用できるインスタンスがm3.2xlarge止まりだし、公式サイトも2015年3月以来更新されていない」と指摘する。また、Elasticsearchを使うことで、既存のニュースとビデオをシステム的に分けてリスクを分散できるほか、今後のアーキテクチャ刷新を見据えた試金石としても試す価値はあったという。

 Google Cloud Vision APIはTwitterなどでバズッた動画を収集し、ラベルを付けるのに用いられている。なぜGoogle Cloud Vision APIを選んだかというと、少なくとも半年前の時点では、もっとも精度が高いラベルを戻してくれたからだという。「たとえば、ゲーム実況動画であれば、Google Cloud Vision APIはゲームのタイトルまで返してくれる。他のサービスだとゲーム動画であることを返してくれればまだいい方なので、ゲームのタイトルまで返してくれるのは、ちょっとすごすぎるレベル」と真幡さんは評価した。

UGCの動画収集機能

 最後、真幡さんは海外渡航や英語学習の補助、専属マッサージなどの社内制度で採用アピールし、セッションを終えた。身近なニュースアプリの舞台裏を垣間見られた興味深いセッションだった。

カテゴリートップへ

この連載の記事