IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エヌ・ティ・ティ・コムウェア株式会社の特許一覧

特開2024-16526推薦装置、推薦方法、およびプログラム
<>
  • 特開-推薦装置、推薦方法、およびプログラム 図1
  • 特開-推薦装置、推薦方法、およびプログラム 図2
  • 特開-推薦装置、推薦方法、およびプログラム 図3
  • 特開-推薦装置、推薦方法、およびプログラム 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024016526
(43)【公開日】2024-02-07
(54)【発明の名称】推薦装置、推薦方法、およびプログラム
(51)【国際特許分類】
   G06N 3/02 20060101AFI20240131BHJP
【FI】
G06N3/02
【審査請求】有
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2022118716
(22)【出願日】2022-07-26
(11)【特許番号】
(45)【特許公報発行日】2023-10-19
(71)【出願人】
【識別番号】397065480
【氏名又は名称】エヌ・ティ・ティ・コムウェア株式会社
(74)【代理人】
【識別番号】100083806
【弁理士】
【氏名又は名称】三好 秀和
(74)【代理人】
【識別番号】100101247
【弁理士】
【氏名又は名称】高橋 俊一
(74)【代理人】
【識別番号】100095500
【弁理士】
【氏名又は名称】伊藤 正和
(72)【発明者】
【氏名】川前 徳章
(57)【要約】
【課題】異種のデータ構造を扱うレコメンド条件に対応するレコメンド技術を提供する。
【解決手段】事前処理部11は、ユーザごとのアイテムと時間情報のペアのデータセットと、アイテムごとのユーザと時間情報のペアのデータセットを生成する。計算処理部12は、マルチビューアテンションメカニズムを導入したTransformer encoderに、ユーザ、アイテム群、および離散化した時間情報のベクトルを入力し、ユーザを与えないときのユーザの予測精度を表す目的関数と、アイテムの一部を除いたときの当該アイテムの予測精度を表す目的関数と、ユーザの所定の時刻におけるアイテムの選択確率を表す目的関数を最大化するようにパラメータを学習する。計算処理部12は、ユーザとアイテムを入れ替えてパラメータを学習する。入出力部20は、レコメンド条件に相当するベクトルを計算結果記憶部40から検索し、ベクトルの和に相当するレコメンド結果を計算結果記憶部40から検索する。
【選択図】図2
【特許請求の範囲】
【請求項1】
行動履歴を入力して、ユーザごとのアイテムと時間情報のペアの集合で構成されるデータセットと、アイテムごとのユーザと時間情報のペアの集合で構成されるデータセットを生成する事前処理部と、
トークンの前後関係に基づいて他のトークンへのアクセスを制御するマルチビューアテンションメカニズムを導入したTransformer encoderに、ユーザのベクトルと当該ユーザに関連するアイテム群のベクトルをトークンとして入力するとともに、離散化した時間情報のベクトルを入力し、アイテム群からのユーザの予測精度を表す目的関数と、アイテムの一部を除いたときの当該アイテムの予測精度を表す目的関数と、ユーザの所定の時刻におけるアイテムの選択確率を表す目的関数を最大化するように前記ユーザ、アイテム、および時間情報のベクトルを含むパラメータを学習し、さらに、ユーザとアイテムを入れ替えて前記パラメータを学習する学習部と、
前記学習部で学習したユーザ、アイテム、および時間情報のベクトルを記憶する結果記憶部と、
レコメンドの条件を入力し、レコメンドの条件に相当するベクトルを前記結果記憶部から検索し、当該ベクトルの和を求めて、求めたベクトルの和に相当するユーザ、アイテム、または時間情報を前記結果記憶部から検索してレコメンドとして出力する入出力部を備える
推薦装置。
【請求項2】
請求項1に記載の推薦装置であって、
レコメンドの条件としてユーザ、アイテム、および時間情報のうちのいずれか2つを入力し、入力していない種別をレコメンドとして出力する
推薦装置。
【請求項3】
コンピュータによる、
行動履歴を入力して、ユーザごとのアイテムと時間情報のペアの集合で構成されるデータセットと、アイテムごとのユーザと時間情報のペアの集合で構成されるデータセットを生成するステップと、
トークンの前後関係に基づいて他のトークンへのアクセスを制御するマルチビューアテンションメカニズムを導入したTransformer encoderに、ユーザのベクトルと当該ユーザに関連するアイテム群のベクトルをトークンとして入力するとともに、離散化した時間情報のベクトルを入力し、アイテム群からのユーザの予測精度を表す目的関数と、アイテムの一部を除いたときの当該アイテムの予測精度を表す目的関数と、ユーザの所定の時刻におけるアイテムの選択確率を表す目的関数を最大化するように前記ユーザ、アイテム、および時間情報のベクトルを含むパラメータを学習し、さらに、ユーザとアイテムを入れ替えて前記パラメータを学習するステップと、
学習したユーザ、アイテム、および時間情報のベクトルを結果記憶部に記憶するステップと、
レコメンドの条件を入力し、レコメンドの条件に相当するベクトルを前記結果記憶部から検索し、当該ベクトルの和を求めて、求めたベクトルの和に相当するユーザ、アイテム、または時間情報を前記結果記憶部から検索してレコメンドとして出力するステップを有する
推薦方法。
【請求項4】
請求項3に記載の推薦方法であって、
レコメンドの条件としてユーザ、アイテム、および時間情報のうちのいずれか2つを入力し、入力していない種別をレコメンドとして出力する
推薦方法。
【請求項5】
請求項1または2に記載の推薦装置の各部としてコンピュータを動作させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、推薦装置、推薦方法、およびプログラムに関する。
【背景技術】
【0002】
レコメンド技術では、個人の履歴や属性を利用して各ユーザの嗜好および行動を予測し、それに合う情報やアイテムを推薦する。商品購入、コンテンツの視聴、またはWebサイトへのアクセスといった行動履歴や個人の属性だけでなく、各行動の時間情報や位置情報も利用することで、予測の精度および推薦の質を高めることができる。非特許文献1ないし4で提案されているモデルは、時間情報を取り込んだレコメンドモデルである。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Jiaxi Tang and Ke Wangy, "Personalized Top-N Sequential Recommendation via Convolutional Sequence Embedding", WSDM, 2018, pp. 565-573
【非特許文献2】Lu Yu, Chuxu Zhang, Shangsong Liang, and Xiangliang Zhang, "Multi-Order Attentive Ranking Model for Sequential Recommendation", AAAI, 2019, pp. 5709-5716
【非特許文献3】Jiacheng Li, Yujie Wang, and Julian J. McAuley, "Time Interval Aware Self-Attention for Sequential Recommendation", WSDM, 2020, pp. 322-330
【非特許文献4】Liwei Wu, Shuqing Li, Cho-Jui Hsieh, and James Sharpnack, "SSE-PT: Sequential Recommendation Via Personalized Transformer", RecSys, 2020, pp. 328-337
【発明の概要】
【発明が解決しようとする課題】
【0004】
時間は連続値であって、アイテム、属性、あるいは行動などの離散値のデータとはデータの形式が異なる。そのため、データの変換等の前処理が必要となり、モデルの精度がこの前処理に依存するという課題がある。そのため、時間情報を含む異種のデータ構造を対象とするレコメンド条件に対応しにくい。
【0005】
本発明は、上記に鑑みてなされたものであり、異種のデータ構造を扱うレコメンド条件に対応するレコメンド技術を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一態様の推薦装置は、行動履歴を入力して、ユーザごとのアイテムと時間情報のペアの集合で構成されるデータセットと、アイテムごとのユーザと時間情報のペアの集合で構成されるデータセットを生成する事前処理部と、トークンの前後関係に基づいて他のトークンへのアクセスを制御するマルチビューアテンションメカニズムを導入したTransformer encoderに、ユーザのベクトルと当該ユーザに関連するアイテム群のベクトルをトークンとして入力するとともに、離散化した時間情報のベクトルを入力し、アイテム群からのユーザの予測精度を表す目的関数と、アイテムの一部を除いたときの当該アイテムの予測精度を表す目的関数と、ユーザの所定の時刻におけるアイテムの選択確率を表す目的関数を最大化するように前記ユーザ、アイテム、および時間情報のベクトルを含むパラメータを学習し、さらに、ユーザとアイテムを入れ替えて前記パラメータを学習する学習部と、前記学習部で学習したユーザ、アイテム、および時間情報のベクトルを記憶する結果記憶部と、レコメンドの条件を入力し、レコメンドの条件に相当するベクトルを前記結果記憶部から検索し、当該ベクトルの和を求めて、求めたベクトルの和に相当するユーザ、アイテム、または時間情報を前記結果記憶部から検索してレコメンドとして出力する入出力部を備える。
【0007】
本発明の一態様の推薦方法は、コンピュータによる、行動履歴を入力して、ユーザごとのアイテムと時間情報のペアの集合で構成されるデータセットと、アイテムごとのユーザと時間情報のペアの集合で構成されるデータセットを生成するステップと、トークンの前後関係に基づいて他のトークンへのアクセスを制御するマルチビューアテンションメカニズムを導入したTransformer encoderに、ユーザのベクトルと当該ユーザに関連するアイテム群のベクトルをトークンとして入力するとともに、離散化した時間情報のベクトルを入力し、アイテム群からのユーザの予測精度を表す目的関数と、アイテムの一部を除いたときの当該アイテムの予測精度を表す目的関数と、ユーザの所定の時刻におけるアイテムの選択確率を表す目的関数を最大化するように前記ユーザ、アイテム、および時間情報のベクトルを含むパラメータを学習し、さらに、ユーザとアイテムを入れ替えて前記パラメータを学習するステップと、学習したユーザ、アイテム、および時間情報のベクトルを結果記憶部に記憶するステップと、レコメンドの条件を入力し、レコメンドの条件に相当するベクトルを前記結果記憶部から検索し、当該ベクトルの和を求めて、求めたベクトルの和に相当するユーザ、アイテム、または時間情報を前記結果記憶部から検索してレコメンドとして出力するステップを有する。
【発明の効果】
【0008】
本発明によれば、異種のデータ構造を扱うレコメンド条件に対応するレコメンド技術を提供できる。
【図面の簡単な説明】
【0009】
図1図1は、本実施形態の推薦システムの構成の一例を示す図である。
図2図2は、提案するモデルの一例を示す図である。
図3図3は、自己アテンションマスクの一例を示す図である。
図4図4は、レコメンド処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
[システム構成]
以下、本発明の実施の形態について図面を用いて説明する。
【0011】
図1は、本実施形態の推薦システムの構成の一例を示す図である。同図に示す推薦システム1は、学習部10、入出力部20、データ保存部30、および計算結果記憶部40を備える。推薦システム1は、離散データ(ユーザとアイテム)と連続データ(時間)を同一空間のベクトルで表現し、任意の履歴や時間を与えると、これらのベクトルの演算によりレコメンドを実施する。推薦システム1が備える各部は、演算処理装置、記憶装置等を備えたコンピュータにより構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムは推薦システム1が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリなどの記録媒体に記録することも、ネットワークを通して提供することも可能である。
【0012】
学習部10は、ユーザ、アイテム、および時間の時間的因果関係を、同一モデル内でユーザとアイテムを入れ替えて学習することで、これらを全て同じ空間にベクトルとして埋め込み、かつベクトルの和が予測として使えるように学習する。学習部10は、「出現順序や位置」を学習するといったレコメンドと自然言語理解の類似性に着目し、Transformer encoderを利用して、ユーザ、アイテム、および時間情報の埋め込み表現を学習する。アイテムは、例えば、ユーザが購入した商品、ユーザが視聴したコンテンツ、またはユーザがアクセスしたサイトなどのユーザの行動の対象である。時間情報はアイテムの購入日時、視聴日時、またはアクセス日時である。以下では、ユーザのアイテム購入履歴に基づくレコメンドについて説明するが、コンテンツの視聴履歴やサイトへの訪問履歴などの他の行動履歴にも同様に適用できる。
【0013】
学習部10は、事前処理部11と計算処理部12を備える。
【0014】
事前処理部11は、処理対象の行動履歴からユーザ識別子(以下、ユーザと称する)、アイテム識別子(以下、アイテムと称する)、および時間情報を取り出し、ユーザごとの、アイテムと時間情報のペアの集合で構成されるデータセットと、アイテムごとの、ユーザと時間情報のペアの集合で構成されるデータセットを生成する。
【0015】
計算処理部12は、時間情報を離散化し、ユーザ、アイテム、および時間情報を後述の提案モデルに投入して、目的関数を最大化するように、ユーザ、アイテム、および時間情報の埋め込み表現(ベクトル)を含むパラメータを学習する。学習時、計算処理部12は、データセットを入れ替え、ユーザとアイテムを入れ替えて学習する。例えば、計算処理部12は、各ユーザがアイテムを購入した履歴のデータセットと、各アイテムがユーザによって購入された履歴のデータセットを学習する。
【0016】
入出力部20は、レコメンドの条件を入力し、レコメンドを出力する。具体的には、入出力部20は、レコメンドの条件のベクトルを計算結果記憶部40から検索し、検索したベクトルの和を求め、求めたベクトルに対応する対象を計算結果記憶部40から検索してレコメンドとして出力する。例えば、入出力部20は、レコメンド条件としてユーザと時間情報(例えばセール期間情報)を入力し、ユーザのベクトルと時間情報のベクトルを計算結果記憶部40から検索してベクトルの和を求め、求めたベクトルに対応するアイテムを計算結果記憶部40から検索し、セール期間にそのユーザに対して推薦するアイテムを出力する。あるいは、入出力部20は、アイテムと時間情報を入力し、アイテムを推薦する対象のユーザを出力してもよいし、入出力部20は、ユーザとアイテムを入力し、ユーザにアイテムを推薦する時間情報を出力してもよい。
【0017】
データ保存部30は、学習用の履歴を保持する。データ保存部30の保持するデータは、学習部10の学習に用いられる。
【0018】
計算結果記憶部40は、学習部10で学習したユーザ、アイテム、および時間情報のベクトルを保持する。計算結果記憶部40は、その他の学習したパラメータを保持してもよい。
【0019】
[提案モデル]
図2および図3を参照し、本実施形態で提案するモデルについて説明する。図2に示す提案モデルは、2つのTransformer encoderで構成される深層学習モデルであり、上段のTransformer encoderはmasked self-attentionを備え、トークンの前後関係に基づいて他のトークンへのアクセスを制御するマルチビューアテンションメカニズムを導入した。マルチビューアテンションメカニズムでは、Transformer encoderのパラメータを学習する際に、例えば、ある時刻においてユーザが購入したアイテムについて、それ以前に購入したアイテムは参照するが、それ以降に購入したアイテムは参照しないで学習する。
【0020】
Transformer encoderのそれぞれには、ユーザとそのユーザに関連するアイテム群の埋め込み表現(TOKEN EMBEDDING)、時間情報の埋め込み表現(TIME EMBEDDING)、およびデータ形式の埋め込み表現(SEGMENT EMBEDDING)の総和のシーケンスを入力し、後述の目的関数を最大化するようにパラメータ(ユーザ、アイテム、および時間情報の埋め込み表現を含む)を学習する。さらにユーザとアイテムを入れ替えて、アイテムとそのアイテムに関連するユーザ群の埋め込み表現を入力して学習する。TOKEN EMBEDDINGのeはユーザまたはアイテムの埋め込み表現である。[CLS],[SEP],[EOS]は、開始、区切り、終了を示すトークンである。TIME EMBEDDINGのp1からpNはユーザがアイテムを購入した時間情報またはアイテムがユーザによって購入された時間情報を離散値へ変換後の埋め込み表現である。SEGMENT EMBEDDINGはトークンがユーザまたはアイテムか、ユーザの購入したアイテムリストかアイテムを購入したユーザリストかを示す。なお、ユーザ、アイテム、および時間情報の埋め込み表現には任意の初期値を与える。
【0021】
学習時には、次式で表される、ユーザuの時刻t-1までの履歴を用いた時刻tにおけるアイテムiの選択確率を表す目的関数を最適化する。
【0022】
【数1】
【0023】
データセットxは履歴から作成したユーザごとのアイテムとそのタイムスタンプのペアの集合であり、次式で表される。
【0024】
【数2】
【0025】
ここで、u={u1, u2, ..., uM}はユーザの集合、I={i1, i2, ..., iN}はアイテムの集合、t∈Tはタイムスタンプ(時間情報)の集合である。
【0026】
また、ユーザとアイテムを入れ替えて、アイテムごとのユーザとタイムスタンプのペアのデータセットxを作成し、ユーザとアイテムを入れ替えた目的関数も最適化する。
【0027】
図3に、自己アテンションマスクの一例を示す。図3の上段の自己アテンションマスクは図2の上段のTransformer encoderが使用する自己アテンションマスクであり、図3の下段の自己アテンションマスクは図2の下段のTransformer encoderが使用する自己アテンションマスクである。図3では、縦方向に参照元のインデックスとリストを並べ、横方向に参照先のインデックスとリストを並べた。インデックスとリストは、Transformer encoderに投入するトークンに対応する。データセットxを投入する場合は、ユーザがインデックスであり、アイテム群がリストである。データセットxを投入する場合は、アイテムがインデックスであり、ユーザ群がリストである。図の右側または下側に行くほど、時間情報(購入時刻)が後(未来)になる。網掛けのマスは参照可能なトークンを示し、白抜きのマスは参照しないトークンを示す。例えば、上段の自己アテンションマスクでは、リストの1番目はインデックスとリストの1番目自身を参照するが、リストの1番目より後に購入したリストの2番目以降は参照しない。下段の自己アテンションマスクでは、インデックスとリストのいずれも全てのインデックスとリストを参照する。以下、マルチビューアテンションメカニズムを導入したTransformer encoderについて説明する。マルチビューアテンションメカニズムはTransformer encoderを構成するパラメータを更新する。
【0028】
アテンションとはトークン(インデックスとリスト)間の関連度を表すスコアである。各トークンがQ(クエリ),K(キー),およびV(バリュー)のベクトルを持つ。次式のように、アテンションは、Vの加重和であり、その加重はQとKを使って計算される。本実施形態では、アテンションの計算にマルチビューアテンションメカニズムを導入し、別のトークンへのアクセスを制御した。
【0029】
【数3】
【0030】
l Q,Wl K,Wl V∈Rd h ×d kは、Q,K,V∈Rx×d kのそれぞれを計算するための学習可能な重みである。xは入力したインデックスとリストのトークン数である。d、dh、およびdkはクエリとキーの共有次元数である。M∈Rx×xは自己アテンションマスクであるアテンションを求める際に、リストのトークンについては後続(i<j)のリストを参照しないように無限に小さい値とする。なお、図3の下段の自己アテンションマスクは全ての要素が0である。
【0031】
Transformer encoderを構成するパラメータHは次式で表される。
【0032】
【数4】
【0033】
a 0はTransformerへの入力であって、各トークンについて、TOKEN EMBEDDING, TIME EMBEDDING, SEGMENT ENBEDDINGを合わせたものである。Ha lはl番目のレイヤの出力であり、次のレイヤへの入力である。
【0034】
続いて、時間情報の離散化について説明する。TIME EMBEDDINGに用いる、l番目の時間tを離散化したベクトルtel,iは次式で表される。iはベクトルの次元である。
【0035】
【数5】
【0036】
ここで、dはエンコーディングの次元数である。e,t,λはそれぞれネイピア定数、現在までの経過時間、減衰定数である。任意の固定オフセットkに対して、tel,i+kはtel,iの線形関数として表すことができるので、sinとcosの組み合わせで相対的な位置を注目できる。
【0037】
続いて、学習に用いる目的関数について説明する。提案モデルは学習タスクとしてMICとMIMを導入した。MICによりインデックス(ユーザまたはアイテム)の予測精度を向上させる。アイテム群からユーザを予測するMICの目的関数は次式で定義される。
【0038】
【数6】
【0039】
MICの目的関数はリストからのインデックスの予測精度を表す。入力jにおけるユーザ群をuj={uj,1, uj,2, ..., uj,i}、アイテム群をij={ij,1, ij,2, ..., ij,i}とする。ζは学習するパラメータ(ユーザ、アイテム、時間情報の埋め込み表現を含む)である。
【0040】
MIMによりマスクしたリストの予測精度を向上させる。アイテムを予測するMIMの目的関数は次式で定義される。
【0041】
【数7】
【0042】
MIMの目的関数はリストの一部(アイテムまたはユーザ)を除いたときの当該アイテムまたはユーザの予測精度を表す。バックスラッシュを付したmはm番目のアイテムを除いた(マスクした)ことを表す。
【0043】
ユーザがアイテムを購入する予測確率は、前述のLUI2vec(θ)を拡張した次式で定義する。右辺第2項はオーバーフィッティングを防止するための正則化項である。λは正則化パラメータである。
【0044】
【数8】
【0045】
モデルの学習は、MIC、MIM、および予測確率を合わせた以下の目的関数を最大化することで実施する。
【0046】
【数9】
【0047】
ここで、I[y=1]は、ユーザがアイテムを買ったこと、またはアイテムを買ったユーザであることを示すインジケータである。
【0048】
なお、ユーザとアイテムを入れ替えて学習するときは、データセットxiを用い、目的関数のiとuを入れ替える。
【0049】
[動作]
次に、図4のフローチャートを参照し、レコメンド処理について説明する。
【0050】
ステップS11にて、入出力部20は、ユーザ端末5からレコメンドの条件を入力する。レコメンドの条件は、例えば、ユーザまたはアイテムと、時間情報である。
【0051】
ステップS12にて、入出力部20は、レコメンドの条件に対応するベクトルを計算結果記憶部40から検索し、ベクトルの和を求める。例えば、入出力部20は、ユーザのベクトルと時間情報のベクトルを計算結果記憶部40から得る。
【0052】
ステップS13にて、入出力部20は、ステップS12で求めたベクトルに応じたレコメンドを出力する。例えば、入出力部20は、ステップS12で求めたベクトルに対応するアイテムを計算結果記憶部40から検索し、レコメンドするアイテムとしてユーザ端末5に返却する。
【0053】
以上説明したように、本実施形態の推薦システム1は、事前処理部11、計算処理部12、入出力部20、データ保存部30、および計算結果記憶部40を備える。事前処理部11は、データ保存部30から行動履歴を入力して、ユーザごとのアイテムと時間情報のペアの集合で構成されるデータセットxと、アイテムごとのユーザと時間情報のペアの集合で構成されるデータセットxを生成する。計算処理部12は、マルチビューアテンションメカニズムを導入したTransformer encoderに、ユーザのベクトルと当該ユーザに関連するアイテム群のベクトルをトークンとして入力するとともに、離散化した時間情報のベクトルを入力し、アイテム群からのユーザの予測精度を表す目的関数と、アイテムの一部を除いたときの当該アイテムの予測精度を表す目的関数と、ユーザの所定の時刻におけるアイテムの選択確率を表す目的関数を最大化するようにパラメータを学習し、さらに、データセットを入れ替えて(ユーザとアイテムを入れ替えて)パラメータを学習する。計算結果記憶部40は、学習したユーザ、アイテム、および時間情報のベクトルを記憶する。入出力部20は、レコメンドの条件を入力し、レコメンドの条件に相当するベクトルを計算結果記憶部40から検索し、ベクトルの和に相当するユーザ、アイテム、または時間情報を計算結果記憶部40から検索してレコメンドとして出力する。これにより、ユーザ、アイテム、および時間情報の埋め込み表現(ベクトル)を同一空間に配置し、レコメンド条件をベクトルの和で記述できる。また、レコメンド条件としてユーザ、アイテム、および時間情報の任意の組み合わせを用いることができる。さらに、履歴の少ないユーザに適切なレコメンドを提供できないコールドスタートプロブレムの解決にも繋がる。
【符号の説明】
【0054】
1…推薦システム
10…学習部
11…事前処理部
12…計算処理部
20…入出力部
30…データ保存部
40…計算結果記憶部
5…ユーザ端末
図1
図2
図3
図4