Amazon Kinesis や AWS Lambda によって従来は難しかったタイムリーでパーソナライズされたレコメンドが可能になりました。
「情報を世界中の人に最適に届ける」という理念を掲げ、ニュースメディアを始めとしたメディア事業や広告事業を展開する株式会社 Gunosy。同社は、数年前から Amazon Kinesis や AWS Lambda を活用し、リアルタイムのストリームデータを分析することによって、パーソナライズされたレコメンドを行い、閲覧記事数やセッション時間の向上を実現しています。また、サービス数やユーザー数が拡大する中、AWS のリソースを有効活用するために、Kubernetes によるコンテナ化も実現。柔軟なスケールの実現とスポットインスタンスの活用によって、コストの削減に大きな期待を寄せています。
「情報を世界中の人に最適に届ける」という Gunosy の理念について、執行役員 CTO の小出 幸典氏は次のように説明します。「膨大な情報があふれている中で、検索のテクニックを持っている人は、自分の求める情報を得ることができます。しかし、そのようなテクニックを持っていない人たちは、必要な情報にたどり着くことが難しいという課題があります。全ての人が有益な情報に出会える世界にしたいというのが我々のミッションです。」
2012 年の創業以来、成長を続ける Gunosy は、ニュースキュレーションの会社だと見られがちですが、「私どもは特にニュースに限定して情報を伝えているわけではありません。ニュースに限らずあらゆる情報においてドメインを限定せずに提供していきたいと考えています。そのため、『グノシー』や『ニュースパス』だけでなく、女性向けの情報を提供する『 LUCRA(ルクラ)』、スポーツ専門の『グノシースポーツ』、クーポン情報の『オトクル』などのサービスを提供し、広告事業なども行っています。」と小出氏は話します。
また、同社は「数字は神よりも正しい」という指針のもとで運営されていることも特徴の 1 つです。「感情的な決定はせずに、ファクトをベースにしっかりと議論を行い、必ず合理的な決定を行うというのが私どものスタンスです。細かな UI/UX の変更やシステムの変更などに対しても、しっかりと A/B テストなどで計測を行い、必ず数値を見て合理的に判断するようにしています。」と小出氏は説明します。
サービスの拡大や成長を続けてきた Gunosy は、創業当初から AWS を活用してきました。その理由を小出氏は、次のように話します。「規模が大きくなれば、クラウドよりもオンプレミスのほうがコスト面で有利ではないかという議論が出てきますが、私どもは AWS のアジリティやスピード感に期待して使い続けてきました。AWS は、新たな技術やサービスが投入されるスピードが速く、使いたいと思ったときにすぐに新サービスを立ち上げることができるため、新たな価値をいち早くお客様に届けることが可能です。」
Gunosy は、サービス開始当初は、全ユーザーに対して複数のパターンのレコメンドをバッチ処理で作っていました。しかし、ユーザー規模が拡大するにつれて、バッチ処理で全てのユーザーに対してのレコメンドを行うことが難しくなってきたと小出氏は振り返ります。「個々のユーザーにパーソナライズされたレコメンドを行うことが理想でしたが、ユーザー数が増えてくると技術的にそれを実現するのは難しくなってきました。そのため、いくつかに分けたセグメントごとに人気のニュースをお勧めすることにしました。しかし、Amazon Kinesis や AWS Lambda などのサービスが登場してきたことで、ストリームデータをリアルタイムに分析して素早くパーソナライズされたレコメンドを出すことができると考え、2017 年頃からプロジェクトを開始し、『ニュースパス』や『グノシー』に実装していきました。雑誌などとは異なり、ニュース記事はその価値が短時間で減衰するため、常に新鮮なニュースを提供する必要があります。バッチ処理では、例えば、1 日に何度もアプリを立ち上げるユーザーに対して毎回新たなコンテンツを示そうとしても、バッチ処理のリードタイムが発生してしまいます。
AWS の新技術によって、技術的にあきらめていた課題を解決することができたことは、感謝しています。一人ひとりに適切な記事を届けることで、記事の閲覧数やセッション時間が大幅に増加することになりました。」
Gunosy では、Kubernetes に注目して Amazon Elastic Kubernetes Service(EKS)によるコンテナ化も行っていると小出氏は語ります。「一般的には、コンテナ化は手元で作った開発環境をそのまま本番に持っていくことがメリットと考えられています。私どもの場合は少し目的が違っており、サーバーの稼働率を上げてリソースを有効利用し、コスト削減を図りたいというものでした。AWS OpsWorks で Chef を活用し、Amazon EC2 をプロビジョニングしていましたが、サービス規模が大きくなりコンポーネントが増えて単機能のサーバーが増えてくると、リソースを有効活用できないという課題が出てきました。そこで、1 台ずつの VM という形ではなく、コンテナ化してクラスタという概念で運用し、スポットインスタンスの活用やスケールの柔軟性も組み合わせてコストを見直そうと考えました。」
現在 Gunosy では、新しいサービスは Amazon EKS で構築するようにし、既存のサービスも徐々に Amazon EKS へと移行していくことを進めています。「注目度の高い速報をプッシュ通知で送ると、20 ~ 30 倍のリクエストが発生するのですが、プッシュ通知を送信するシステムに連動して API サーバーをプロビジョニングする仕組みが以前に比べて速くなり、柔軟性も高くなっていることを実感しています。また、Amazon EKS は、新しいコンポーネントを追加する場合にもスムーズに構築することができるので、今後は社内のスタンダードとなっていく見込みです。現在進行中なので明確なコスト削減効果については言えませんが、3 分の 1 程度のコスト削減が行え、スポットインスタンスを活用することで、さらにコストを削減していけると期待しています。」(小出氏)
今回の Amazon EKS の活用を通じて、小出氏は AWS のサポートを次のように評価しています。「Amazon EKS に関しては、AWS からコンテナのスペシャリストに来ていただき、必要な情報を得ることができたり、構成の相談を行うことができました。大変参考になりました。」
また、今後の展望については、今まで以上に機械学習を駆使してサービスをより高度化していく方針です。「当社には、機械学習エンジニアやデータサイエンティストが多数在籍しています。それらのエンジニアがコードを書く手間を最低限に抑えて分析などに集中できる環境にしたいと考えています。現在、ML Ops に手探りでトライしているところですが、実現できれば、プロダクトに機械学習などを取り込む際に、モデルさえ作ればデプロイできるようになり、試行サイクルを短くしていくことができることを期待しています。」と小出氏は説明します。
「今後も、さまざまな形で、さまざまな情報を扱うことで、多くのお客様により付加価値の高い情報をお届けするということが私どもの使命であることは変わりありません。必要な情報を最適に届けるために、今後もサービスの幅を広げ、よりよいサービスになることを続けていきます。」と小出氏は語ります。