NTT技術ジャーナル記事

   

「NTT技術ジャーナル」編集部が注目した
最新トピックや特集インタビュー記事などをご覧いただけます。

PDFダウンロード

from NTTドコモ

ユーザ行動の時系列予測モデルを利用したレコメンドエンジンの開発

近年、WebにおけるBtoCサービスにおいて商品・コンテンツのレコメンド機能の提供が主流となっています。レコメンドエンジンはさまざまな種類がありますが、多くは人気ランキングに基づいたものであり、これらはユーザのサービス利用の文脈を正しく理解できていませんでした。ユーザの興味を惹くレコメンドを提示するためには、レコメンドエンジンがユーザ文脈を理解し、次に興味を持つコンテンツを予測する必要があります。そこでNTTドコモでは、購買してもらう確率を上げることを目的に、行動を時系列で解釈して予測を行う深層学習アルゴリズムを活用したレコメンドエンジンを開発し、社内サービスに適用しました。これにより、高精度なレコメンド提供が可能となりました。

はじめに

近年、EC(Electronic Commerce)サービスや動画配信などのBtoC(Business to Consumer)サービスでは、商品のレコメンドを行うことが主流となっています。NTTドコモのサービスの多くについても、「ユーザへのおすすめ」としてレコメンド機能が提供されています。レコメンド手法においては、人気ランキングを基にした単純な手法から、機械学習を用いた手法まで幅広く提案されており、特にここ数年では市中で簡便に利用できる機械学習ライブラリが配布されているほか、クラウドサービスを用いたレコメンドサービスが提供され始めています。
レコメンド機能は数年前より提供されていますが、既存では、人気ランキングをベースとしたレコメンドが多く行われていました。人気ランキングベースは、大多数のユーザの嗜好をとらえているため一定のクリック率を稼げますが、異なるユーザ間で同一の商品がレコメンドされるため、人気コンテンツを好まないユーザには響かず、加えて出ているコンテンツが固定化されるため、他の多くの商品はレコメンドされず、ユーザが新しい商品を発見しにくいという課題がありました。また、ユーザは通常、一連のWeb回遊の中で欲しい商品をクリックするという手順を踏むため、レコメンドサービスにおいては、趣味嗜好よりも直前にどのようなコンテンツをクリックしたかという時系列のデータが重要になります。例えば、ポータルサイトで食料品を探しているユーザには、普段の趣味嗜好にかかわらず、Web回遊をしている場面では食料品が提示されることが望ましく、生鮮食品を直前にクリックしているユーザには、続けて生鮮食品を提示することでユーザ所望のコンテンツを推薦することができるようになります。
そこでドコモでは、時系列予測のアルゴリズムであるRNN(Recurrent Neural Network)をレコメンドに適用し、ユーザの長期・短期での興味の推移をとらえることを可能としました。本技術では、直近の興味のあるジャンルを主にレコメンドするほか、定常的に興味があるジャンルも共にレコメンドすることで、パーソナライズしつつ状況に合わせたレコメンドの提示が可能となり、クリック率向上につながりました。ここでは、実際に適用したレコメンドアルゴリズムとサービスでの効果検証について解説します。

RNNのレコメンドへの活用

■RNN概要

RNNは、再帰型ニューラルネットワークと呼ばれ、時系列データなどの連続的なデータのパターンを認識するように設計されたニューラルネットワークのモデルです(1)。従来の一般的なニューラルネットワークモデルでは、固定長の入力層、出力層とその間に中間層が与えられます(図1)。例えば画像認識タスクでは、実際の画像を画素単位で分割し、画素値を入力層として与え、出力層では分類対象のカテゴリを出力します。この場合、入力層は画素数、出力層は分類パターン数となり、それぞれ1つの値となるため、各ノードは固定長として与える必要があります。
一方で、現実のデータは必ずしも固定長で与えられるわけではありません。例えば、文書予測などのタスクの場合、入力としては文章が与えられることになりますが、画像のような固定長でないため、上記のようなモデルでは表現することができません。そこで、可変長のデータを取り扱えるように改良されたモデルがRNNです。RNNでは、可変長データの各地点を時系列として扱い、内部(中間層)に状態という変数を保持します(図2)。入力データに応じて状態が変化していき、その状態が次の時系列ステップに伝搬していきます。そして、状態に応じた値が出力層に提示されます。このように、状態が時系列で伝搬していくというモデルとすることで、可変長データを入力とする対象に対してニューラルネットワークを適用することができます。

■RNNのレコメンドへの適用

上記RNNは、文章認識や機械翻訳などの文章をターゲットとするタスク、および音声認識などの音声をターゲットとするタスクに利用されることが多く、与えられた入力値に対してどのような出力値が与えられるべきか、というデータをネットワークに学習させることで、新しい文章・音声に対して所望の出力値を得ることができます。このような特性から、RNNは時系列予測にも用いることができます。入力と出力の値を同一にして学習させることで、特定の入力が与えられたとき、次にどのような値が来るかを予測させるモデルを構築することができます(2)
近年では、RNNの時系列予測タスクをレコメンドに適用する事例が増えています。1つ当りの入力値を商品クリック・動画視聴といったユーザ行動として定義し、出力値を同様にユーザ行動として与えることで、ある商品・動画に興味を持ったユーザが、次にどのような商品・動画に興味を持つのかユーザの興味(状態)の遷移を予測することができます(図3)。加えて、そのときのユーザ状態に合わせたレコメンドが可能となるため、最新のユーザ行動をモデルに入力することにより、常に最新化されたレコメンドをリアルタイムに提供することができるようになります。

提案手法

■概要

RNNをレコメンドに適用する際、何点かサービスドメインに合わせた改良を行い、さらにユーザの直近の興味に適したレコメンドを出力するために、①階層型RNNを用いた長期予測モデルと短期予測モデルを組み合わせたレコメンド、②異なる情報を用いた複数のRNNを組み合わせたレコメンド、の構築を行いました。

■階層型RNNを用いた長期短期予測モデル

ユーザの興味は一定の周期で移り変わるわけではなく、長期的な興味遷移と短期的な興味遷移があると考えられます(3)。例えば、インストール履歴ベースでユーザにスマートフォンアプリケーション(アプリ)をレコメンドするシステムにおいて、ユーザがX日にSNSアプリを検索しているが、X+1日には動画配信アプリを検索しているという場合が考えられます。その場合、X日にはSNSアプリをレコメンドし、X+1日には動画配信アプリをレコメンドすることが望ましいが、単純なRNNではX日とX+1日の違いを考慮することができないため、X日の履歴を基にX+1日にもSNSアプリをレコメンドしてしまう可能性があります。そのため、X日の中では当日のインストール履歴を基にSNSアプリをレコメンドし、日をまたいだ場合はより長期的な興味遷移を予測してレコメンドする必要があります。
上記の長期・短期でのユーザ興味をとらえたレコメンドを実現するために、階層型RNNを提案しました(図4)。前日までの履歴からレコメンドする内容を決定する日別RNNと、前日と当日の履歴を基に決定する同日RNNの二階層に分けることで、前述の課題を解決することができます。

■異なる情報を用いた複数RNNを組み合わせたレコメンドモデル

商品・動画をレコメンドする際には、それらの内容を踏まえて考える必要があります。一方で、RNNで扱うデータは数値であり、商品や動画は数値データとして扱かわれます。一般的に、商品や動画にはコンテンツIDが割り振られており、RNNではこのIDという数値データの時系列遷移を予測します。この手法では、コンテンツID単位での予測となりますが、同一のコンテンツが過去の履歴に存在していない場合、予測を行うことができません。しかし、コンテンツIDが異なる場合でも、類似のコンテンツであれば同じような時系列推移になると考えられるため、商品や動画の内容(カテゴリ)の考慮を行う必要があります。例えば、飲食カテゴリの商品をクリックしたユーザは続けて飲食カテゴリの商品をクリックする可能性が高いと考えられるため、コンテンツID単位での時系列だけでなく、カテゴリ単位の時系列も併せて予測することになります。
上記のレコメンドを実現するために、複数RNNを組み合わせたレコメンドモデルを提案しました。異なる階層のデータを独立して時系列予測するRNNを組み合わせることにより、コンテンツ単位での細かなレコメンドと、カテゴリ単位での大まかなレコメンドを両方実現できることになり、精度とカバレッジの両方が向上します。

NTTドコモサービスへの適用

上記技術を、実際のNTTドコモサービスに適用して効果検証を行いました。適用したサービスは、ユーザに対してアプリをレコメンドする「おすすめアプリ」と、BtoCサービスの商品をレコメンドするポータルサイト「dマーケット」の2つです。おすすめアプリには「階層型RNNを用いたレコメンド」、dマーケットには「複数RNNを用いたレコメンド」をそれぞれ適用しています。

■おすすめアプリ

おすすめアプリは、ユーザのアプリインストール履歴を基に、ユーザにとって有用と思われるアプリを提示するサービスです。提示したアプリをより多くインストールしてもらうことを目的とし、前述の階層型RNNを用いたレコメンドの効果検証を、実際にユーザに対して行いました。2020年9月より本技術と、履歴によるユーザ特徴量を用いた既存のレコメンドアルゴリズムとのA/Bテストを実施し、既存のアルゴリズムと比較してインストール率2.7倍を達成しました。

■dマーケット

dマーケットは、「お買い物」「グルメ」など16種類のタブで分類された領域において、ユーザへのおすすめコンテンツをサービス横断で表示するサービスです。複数のサービスにまたがって、ユーザがコンテンツに興味を持ち、クリックしてもらうことを目的としてレコメンドを表示しており、また、Web回遊の中で、常にユーザに興味を持ってもらえるよう、表示するたびにレコメンド内容を変化させています。前述の複数RNNを組み合わせたレコメンドの効果検証を実ユーザに対して実施しました。本技術と既存の人気ランキングベースでのレコメンドアルゴリズムとのA/Bテストを行い、2.0%のCTR(Click Through Rate)向上を達成しました。

今後の取り組み

ここでは、RNNを拡張したレコメンドアルゴリズムについて解説しました。サービスドメインの特性に合わせ、長期・短期双方でのユーザ興味推移をとらえるための階層型RNNを用いたレコメンドと、コンテンツの複数の特徴を活用した複数RNNを組み合わせたレコメンドについて紹介しました。両方のアルゴリズムについて実際のNTTドコモサービス上で効果検証を行い、既存のアルゴリズムと比べての精度向上につながることを確認しました。NTTドコモは、レコメンドアルゴリズムについて、今後も最新技術を追求し、サービスの提供価値向上に向けた取り組みを進め、NTTと共に推進している「5G Evolution & 6G powered by IOWN」の取り組みの加速にも貢献していきます。

* 本記事は「NTT DOCOMOテクニカル・ジャーナル」(Vol. 30, No. 1, 2022年4月)に掲載された内容を編集したものです。

■参考文献
(1) J. Li, L. Deng, R. H.-Umbach, and Y. Gong:“Robust Automatic Speech Recognition:A Bridge to Practical Applications,”Academic Press, Oct. 2015.
(2) D. Wierstra, J. Schmidhuber, and F. Gomez:“Evolino:Hybrid Neuroevolution/Optimal Linear Search for Sequence Learning,”Proc. of the 19th International Joint Conference on Artificial Intelligence (IJCAI), Edinburgh, pp. 853–858, July 2005.
(3) B. Hidasi, A. Karatzoglou, L. Baltrunas, and D. Tikk:“Session-based recommendations with recurrent neural networks,”arXiv preprint arXiv:1511.06939, Nov. 2015.

問い合わせ先

NTTドコモ
R&D戦略部
E-mail dtj@nttdocomo.com