こんにちは。AI Services LabチームのMLエンジニアHeewoong Parkです。私たちのチームでは、オープンチャットに関するさまざまなAI/MLモデルを開発し、提供しています。以前、「機械学習を活用したオープンチャットのクリーンスコアモデル開発記(韓国語)」という記事で、「不適切なコンテンツのやりとりがなく、会話中のエチケットがどれだけ守られているか」という観点から各オープンチャットを評価し、スコア化する「オープンチャットのクリーンスコアモデル」を紹介しました。今回は「オープンチャットのパーソナライズレコメンドモデル」をどのように改善しているのかを紹介します。
オープンチャットのレコメンドサービスとレコメンドモデルの紹介
オープンチャット(OpenChat)とは、興味の似ている匿名のユーザーが集まり、LINEの友だちになっていなくてもトークができるオープンなチャットサービスです。現在、日本やタイ、台湾でサービスを行っています。
オープンチャットのモバイルアプリのメインページでは、ユーザーがオープンチャットを検索できます。さらに気に入ったオープンチャットを見つけて参加できるように、オープンチャットの検索窓やオススメのオープンチャット、オープンチャットのランキングを表示しています。この記事では、2023年11月現在、オープンチャットのメインページ上部に表示されている「あなたへのオススメ」というオープンチャットのパーソナライズレコメンドサービスについて紹介します。
オープンチャットのレコメンドサービスの特徴
オープンチャットサービスは、速いスピードで変化するダイナミックなサービスです。企画・運営チームはユーザーのニーズに合わせて、新しい機能のリリース、メイン設定画面の改善、マーケティングイベントの実施などを継続的に行っています。それにより、既存ユーザーの活動を促進したり、新しいユーザーをサービスへ誘導したりします。
この活動によってユーザー層が変化し、サービスが成熟すると、それに応じてサービスを利用するユーザーの行動や使い方が変わることもあります。こうした変化はモデル自体のパフォーマンスとは別に、レコメンド指標に直接影響を与えます。
また、オープンチャットはさまざまなコンテンツを含むサービスで、固定的なものではありません。一度作成するとほとんど変化しない投稿や動画、販売商品とは異なり、常に参加メンバーが変わり、新しいメッセージを作成します。ひとつのオープンチャットの中には複数のサブトークルームを作成でき、それぞれのトークルームではテキストだけでなく、画像や動画、投稿形式のメッセージなど、さまざまなメッセージをやりとりできます。
オープンチャットのレコメンドモデルは、多くの種類のデータをフィーチャー(モデルが学習するための入力変数)として利用する必要があり ます。アイテムやユーザーのフィーチャーを抽出する際には、同じ対象に対しても最新の情報が反映されるように、繰り返し行う必要があります。
オープンチャットは、一人のユーザーが短時間に連続して、複数のオープンチャットへの参加しないという特徴もあります。オープンチャットのユーザーは、気に入ったオープンチャットを発見して参加すると、そこでの活動や滞在の時間が長くなり、他のオープンチャットに参加したいと言う気持ちが減ります。オススメが適切だった場合、この特性は、継続的なアイテムの消費につながる短い形式のコンテンツレコメンドとは対照的です。ですので、短い形式のコンテンツレコメンドのようなサービスに適したセッションベース(session-based)、またはシーケンシャル(sequential)レコメンドは、オープンチャットには適していません。
またオープンチャットの場合、同じオープンチャットへの再参加はあまりありません。一度参加した履歴があるオープンチャットは、多様性などを考慮してレコメンドの対象から除外したほうがいいでしょう。つまりオープンチャットのレコメンドは、再購入パターンの反映が重要なオンラインショッピングのアイテムのレコメンドとも異なります。
オープンチャットのレコメンドモデルの紹介
オープンチャットのパーソナライズレコメンドモデルは、レコメンドシステムで広く活用されている2段階(two-stage)のフレームワークを採用しています。このフレームワークは、数百、数千の候補アイテムを少ない計算量で選定する候補選定(candidate selection)段階と、より精密なモデルで各候補を順位付けるランキング(ranking)段階で構成されます。
候補の選定には、ユーザーを推定した上で人口統計学的情報(年齢や性別など)を利用して人気のあるオープンチャットをマッチングする手法があります。さらにインタラクションが発生したオープンチャットと、参加メンバーが多く重なるオープンチャットを選択する手法を使います。
ランキングモデルでは、ユーザーとアイテムとのインタラクションを二次項として、考慮しながら効率的に計算できるField-aware Factorization Machines(FFM)モデルを採用しました。ランキングモデルは、常に変化するオープンチャットの活動性や好み、流行などを反映するために毎日学習します。モデルの更新完了時期を早めるため、事前学習(pre-training)と微調整(fine-tuning)を並行して行います。微調整の場合、以前に事前学習されたモデルから短時間で訓練できます。微調整を完了したモデルから、毎日推論してパーソナライズされたレコメンドの結果を生成します。さらに活動性の高いユーザーに対しては、1時間ごとに更新されるフィーチャーを反映して、オススメ一覧を更新します。
オープンチャットのレコメンドモデルに関連しては、LINE Engineeringブログに掲載された「LINE TIMELINEの新たな挑戦vol.3 - ディスカバー・レコメンド・モデル」を読んで、LINE VOOM投稿のレコメンドモデルとオープンチャットのレコメンドモデルを比較するのもいいでしょう。