Amazon Personalizeによるレコメンドシステム
FiNCアプリにおいて、もう1つの重要な機能はレコメンドシステムです。ユーザーの体重や、歩数、睡眠情報などは毎日生活習慣としてFiNCアプリに保存されます。また、アプリ内のコンテンツの閲覧履歴や、ECサイトでの購買履歴などあらゆる行動履歴も保存されていきます。そういった情報をもとに各ユーザーにパーソナライズされたコンテンツや商品を提案する機能は非常に重要です。
AIを適用する際に気をつけたいこと
一方で、レコメンドシステムでAIを利用する際には注意も必要です。具体的には以下のケースでAIを活用することは、あまりメリットがないと考えます。
最新の商品やコンテンツ、人気のコンテンツ順に表示されることが良い場合
ユーザーの特性にあまり偏りがなく、基本的に同一のコンテンツを好む傾向がある場合には、コストをかけてパーソナライズを行うよりも、人気順や最新順でコンテンツを並べる方が良い場合があります。
ユーザーの趣向に規則性が全くない場合
レコメンド機能というケースではまれだと思いますが、この場合にはAIを利用しても何かしらの規則性を見いだすことは難しいので、考慮しておく必要があります。
こういった背景の中で、最初から重厚なレコメンドを実装するのではなく、まずはAIによるレコメンドが有効な領域であるかどうかを確認したいといった要望が開発チームの中でありました。そのため、まずは手軽に実装できるAmazon Personalizeを利用することにしました。
Amazon Personalizeによる簡単なレコメンドAPIの構築
Amazon Personalizeはユーザーの行動履歴さえあれば、すぐに使い始められます。行動履歴は具体的には「あるユーザーがいつ何の商品を購入した」「あるユーザーがいつ何かの記事を閲覧した」といった時系列のデータです。
この行動履歴は、USER_ID、ITEM_IDTIMESTAMPの3つのカラムで規定されるレコードデータであり、最低限この3つのカラムを持つデータを1000件程度CSVデータとして用意すれば、Web上で学習を始めることができます。学習が終われば、USER_IDをパラメータとしたおすすめのアイテムをリストで取得するAPIのエンドポイントが提供され、サービス側からは提供されたAPIエンドポイントを叩くだけでそのユーザーにあったおすすめのアイテム情報を取得できます。
これだけでも十分なレコメンド結果を得られるのですが、さらにレコメンドの精度を高めるために、ユーザーの属性情報やアイテムの属性情報を活用することも可能です。例えば、ユーザーであれば年齢や性別といった情報、商品であればカテゴリーや価格などを付加することで、自分と似たユーザーやアイテムであるという情報がレコメンド結果に反映されるようになります。
FiNCではユーザーごとのヘルスケア商品のレコメンドや、特定の商品に対する関連商品としてのレコメンド、またユーザーにあったヘルスケア記事のレコメンドといった場面で利用しています。
Amazon Personalizeを利用したAI戦略
上記のように、Amazon Personalizeを利用すると簡単に検証が行えるため、FiNCでは次のフローでAIの適用を進めています。
- レコメンドシステムを適用できそうな場所で、レコメンドに効きそうなファクターを仮定する(ECサイトであれば購買履歴やデモグラ情報など)。
- Amazon Personalizeを利用し、簡易的なレコメンドシステムを構築し効果を検証する。
- 検証した結果、AIによるレコメンドシステムが有効と判断された場合には、さらにカスタムしたモデルを構築することによってレコメンドの精度が上がるのかを検討する。例えば、Amazon Personalizeでは利用できるパラメータの数に上限があるため、それを増やすことでさらに精度が上がりそうかどうかといったことを検討する。
- カスタムモデルを作成することにした場合には、Amazon SageMakerを利用しモデルの構築と運用を行う。この際に、Amazon SageMakerによる最初のモデルの精度を調べるために、Amazon Personalizeでのレコメンド精度をベースラインとして用いる。
重厚なモデルを構築するには多くのコストを払う必要があるため、このようにコストパフォーマンスの高い戦略を取っています。
AWSを活用した今後のAI利用の予定
これまでのチーム体制では、AI専任エンジニアがいて彼らが食事画像の解析モデルを作成していました。2019年のAWS re:InventでAmazon SageMaker Studioが発表され、AIの開発と運用をさらに一気通貫で行いやすい環境が利用可能になりました。
その結果、専門的なAIの知識がなくても、簡単な解析モデルを作成することができます。FiNC TechnologiesではそういったAIの利用に際してチームの壁を作らずに全エンジニアがAIを活用でき、あらゆる機能の改善において、AIの利用が自然と候補に挙がる体制を作っていきたいと考えています。
これまでもAmazon SageMakerのハンズオンをAWSに協力して行っていただいたり、全てのエンジニアが自由に利用できるハンズオンアカウントを活用したりしています。今後も、こういったサポート体制も含めてAI技術の活用を進めていきます。
AWSソリューションアーキテクトより一言
FiNC TechnologiesのAWSサービス活用のここがポイント!
今回は機械学習の話ですね! FiNCさんは、Amazon SageMakerで独自に構築した推論モデルのAPI エンドポイントをホスティングする、オートスケーリングや重み付けを利用するなど、AWSとAmazon SageMakerの柔軟性や拡張性を使いこなしていることが分かります。
しかし、私がこの記事で一番素晴らしいと思うのは、レコメンドシステムを構築する際のアプローチです。まず素早く導入できるAmazon Personalizeでレコメンドの効果を検証し、さらに踏み込んだカスタムモデルが必要であればAmazon SageMakerを活用する。そしてその評価にはAmazon Personalizeで得た精度を参照し、費用対効果を十分に意識する。
スピードやコスト効率が重要なスタートアップにおいて、非常に合理的な戦略を実現されていると思います。ぜひ皆さんも参考に、まずはAmazon PersonalizeやAmazon Forecastを試してみるなどしてみてください!