(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-24
(45)【発行日】2023-05-02
(54)【発明の名称】直接型ニューラルネットワーク構造を用いてアイテムを推奨するシステム、方法、及びコンピュータプログラム
(51)【国際特許分類】
G06N 3/045 20230101AFI20230425BHJP
G06N 3/084 20230101ALI20230425BHJP
【FI】
G06N3/045
G06N3/084
【外国語出願】
(21)【出願番号】P 2020189584
(22)【出願日】2020-11-13
【審査請求日】2021-03-15
(32)【優先日】2019-11-20
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】399037405
【氏名又は名称】楽天グループ株式会社
(74)【代理人】
【識別番号】100099623
【氏名又は名称】奥山 尚一
(74)【代理人】
【識別番号】100125380
【氏名又は名称】中村 綾子
(74)【代理人】
【識別番号】100142996
【氏名又は名称】森本 聡二
(74)【代理人】
【識別番号】100166268
【氏名又は名称】田中 祐
(72)【発明者】
【氏名】ラミン・ラジパーチコライ
【審査官】坂庭 剛史
(56)【参考文献】
【文献】中国特許出願公開第109376857(CN,A)
【文献】特開昭61-193279(JP,A)
【文献】HE, X., et al.,"Neural Collaborative Filtering",Proceedings of the 26th International Conference on World Wide Web (WWW '17) [online],2017年04月03日,pp. 173-182,[retrieved on 2022-03-10], Retrieved from the Internet: <URL: https://dl.acm.org/doi/abs/10.1145/3038912.3052569>,<DOI: 10.1145/3038912.3052569>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02- 3/10
G06N 20/00-99/00
G06Q 30/02
G06Q 30/06
(57)【特許請求の範囲】
【請求項1】
ニューラルネットワークを用いて1つ以上のアイテムをユーザに自動的に推奨するための、コンピュータシステムによって実行される方法であって、
トレーニングフェーズに関して、
(a)アイテムに関する既知のレイティングを有するトレーニング用データセットにおけるトレーニング用ユーザについて、前記トレーニング用ユーザのユーザデータを有する
複数の入力ベクトルと、前記アイテムのアイテムデータを有する
複数の入力ベクトルとを受け付けるステップと、
(b)符号化用ニューラルネットワークの組を用いて入力ベクトルの各々を低次元ベクトル空間に対応付けて、前記トレーニング用データセットのユーザデータの
複数の低次元ベクトルと、前記トレーニング用データセットのアイテムデータの
複数の低次元ベクトルとを得るステップであって、入力ベクトルごとに異なる前記符号化用ニューラルネットワークが用いられ、
前記符号化用ニューラルネットワークの組は第1の組と第2の組とを有し、前記トレーニング用ユーザのユーザデータを有する複数の入力ベクトルが、前記第1の組に含まれる複数の符号化用ニューラルネットワークにそれぞれ入力され、前記アイテムのアイテムデータを有する複数の入力ベクトルが、前記第2の組に含まれる複数の符号化用ニューラルネットワークにそれぞれ入力され、前記ユーザの低次元ベクトル及び前記アイテムの低次元ベクトルは、対応する前記入力ベクトルに比べて次元が低い、ステップと、
(c)
複数の前記ユーザの低次元ベクトルと
複数の前記アイテムの低次元ベクトルとに基づいて、前記トレーニング用データセットのユーザデータ及びアイテムデータの単一の多次元ベクトル表現を作成するステップと、
(d)予測用ニューラルネットワークを用いて、前記トレーニング用データセットのユーザデータ及びアイテムデータの単一の多次元ベクトル表現から、前記トレーニング用ユーザによる、前記アイテムについての予測されるレイティングを計算するステップと、
(e)前記トレーニング用ユーザの、前記アイテムについて予測されたレイティングと、前記トレーニング用ユーザの、前記アイテムについての既知のレイティングとの間の誤差値を計算するステップと、
(f)前記トレーニング用データセットにおける複数のトレーニング用ユーザについて前記ステップ(a)~(e)を行うステップと、
(g)前記複数のトレーニング用ユーザの誤差値が最小となるように、前記符号化用ニューラルネットワーク及び前記予測用ニューラルネットワークのパラメータを更新するステップと、
(h)前記ステップ(a)~(g)を複数回にわたり繰り返して、前記符号化用ニューラルネットワーク及び前記予測用ニューラルネットワークをトレーニングするステップと
を行うステップと、
予測及び推奨フェーズに関して、
(i)テスト対象ユーザのユーザデータを有する
複数の入力ベクトルと、前記テスト対象ユーザによって評価されていないアイテムのアイテムデータを有する
複数の入力ベクトルとを受け付けるステップと、
(j)前記符号化用ニューラルネットワークの組を用いて入力ベクトルの各々を低次元ベクトル空間に対応付けて、前記テスト対象ユーザのユーザデータの
複数の低次元ベクトルと、前記テスト対象ユーザによって評価されていないアイテムのアイテムデータの
複数の低次元ベクトルとを得るステップであって、入力ベクトルごとに異なる前記符号化用ニューラルネットワークが用いられ、
前記テスト対象ユーザのユーザデータを有する複数の入力ベクトルが、前記第1の組に含まれる複数の符号化用ニューラルネットワークにそれぞれ入力され、前記テスト対象ユーザによって評価されていないアイテムのアイテムデータを有する複数の入力ベクトルが、前記第2の組に含まれる複数の符号化用ニューラルネットワークにそれぞれ入力され、前記テスト対象ユーザのユーザデータの低次元ベクトル及び前記テスト対象ユーザによって評価されていないアイテムの低次元ベクトルは、対応する入力ベクトルに比べて次元が低い、ステップと、
(k)
複数の前記テスト対象ユーザのユーザデータの低次元ベクトル及び
複数の前記テスト対象ユーザによって評価されていないアイテムの低次元ベクトルに基づいて、前記テスト対象ユーザのユーザデータ及び前記テスト対象ユーザによって評価されていないアイテムのアイテムデータの単一の多次元ベクトル表現を作成するステップと、
(l)前記予測用ニューラルネットワークを用いて、前記テスト対象ユーザのユーザデータ及び前記テスト対象ユーザによって評価されていないアイテムのアイテムデータの前記単一の多次元ベクトル表現から、前記テスト対象ユーザによる前記テスト対象ユーザによって評価されていないアイテムについての予測されるレイティングを計算するステップと、
(m)前記テスト対象ユーザと、前記テスト対象ユーザによって評価されていない複数のアイテムとに関して、前記ステップ(i)~(l)を繰り返すステップと、
(n)前記テスト対象ユーザの、前記複数のアイテムについて予測されたレイティングを用いて、1つ以上のアイテムを前記テスト対象ユーザに推奨するステップと
を行うステップと
を含む方法。
【請求項2】
前記トレーニング用データセットのユーザデータは、ユーザの過去のレイティングと、ユーザのプロファイルデータとを含み、前記トレーニング用データセットのアイテムデータは、前記アイテムについて別のユーザから受け付けられた過去のレイティングと、アイテムのプロファイルデータとを含む、請求項1に記載の方法。
【請求項3】
前記ユーザのプロファイルデータは、ユーザの年齢と、ユーザの所在地と、ユーザの性別と、ユーザの職業と、ユーザの所得の範囲とのうちの1つ以上を含む、請求項2に記載の方法。
【請求項4】
前記アイテムのプロファイルデータは、アイテムの説明と、アイテムの価格と、アイテムのカテゴリと、アイテムの画像とのうちの1つ以上を含む、請求項2に記載の方法。
【請求項5】
前記誤差値は、前記トレーニング用ユーザの予測されたレイティングと前記トレーニング用ユーザの既知のレイティングとの平均二乗誤差であり、
前記ステップ(g)において、前記符号化用ニューラルネットワーク及び前記予測用ニューラルネットワークのパラメータは、前記複数のトレーニング用ユーザについての前記平均二乗誤差が最小となるように調整される、請求項1に記載の方法。
【請求項6】
前記予測用ニューラルネットワークが多層パーセプトロンであり、
前記符号化用ニューラルネットワークの組が、多層パーセプトロンと、長・短期記憶ネットワークと、畳込みニューラルネットワークとのうちの1つ以上を含む、請求項1に記載の方法。
【請求項7】
前記トレーニングフェーズ並びに前記予測及び推奨フェーズの双方において、前記単一の多次元ベクトル表現は、
複数の前記ユーザの低次元ベクトルと
複数の前記アイテムの低次元ベクトルとを連結することにより得られる、請求項1に記載の方法。
【請求項8】
前記ステップ(a)~(g)の各反復につき、前記トレーニング用データセットにおける前記トレーニング用ユーザの異なる部分集合が用いられる、請求項1に記載の方法。
【請求項9】
コンピュータシステムにより実行されると、ニューラルネットワークを用いて1つ以上のアイテムをユーザに自動的に推奨する方法を前記コンピュータシステムに実行させるコンピュータプログラムを有する非一時的なコンピュータ可読媒体であって、
前記方法は、
トレーニングフェーズに関して、
(a)アイテムに関する既知のレイティングを有するトレーニング用データセットにおけるトレーニング用ユーザについて、前記トレーニング用ユーザのユーザデータを有する
複数の入力ベクトルと、前記アイテムのアイテムデータを有する
複数の入力ベクトルとを受け付けるステップと、
(b)符号化用ニューラルネットワークの組を用いて入力ベクトルの各々を低次元ベクトル空間に対応付けて、前記トレーニング用データセットのユーザデータの
複数の低次元ベクトルと、前記トレーニング用データセットのアイテムデータの
複数の低次元ベクトルとを得るステップであって、入力ベクトルごとに異なる前記符号化用ニューラルネットワークが用いられ、
前記符号化用ニューラルネットワークの組は第1の組と第2の組とを有し、前記トレーニング用ユーザのユーザデータを有する複数の入力ベクトルが、前記第1の組に含まれる複数の符号化用ニューラルネットワークにそれぞれ入力され、前記アイテムのアイテムデータを有する複数の入力ベクトルが、前記第2の組に含まれる複数の符号化用ニューラルネットワークにそれぞれ入力され、前記ユーザの低次元ベクトル及び前記アイテムの低次元ベクトルは、対応する前記入力ベクトルに比べて次元が低い、ステップと、
(c)
複数の前記ユーザの低次元ベクトルと
複数の前記アイテムの低次元ベクトルとに基づいて、前記トレーニング用データセットのユーザデータ及びアイテムデータの単一の多次元ベクトル表現を作成するステップと、
(d)予測用ニューラルネットワークを用いて、前記トレーニング用データセットのユーザデータ及びアイテムデータの単一の多次元ベクトル表現から、前記トレーニング用ユーザによる、前記アイテムについての予測されるレイティングを計算するステップと、
(e)前記トレーニング用ユーザの、前記アイテムについて予測されたレイティングと、前記トレーニング用ユーザの、前記アイテムについての既知のレイティングとの間の誤差値を計算するステップと、
(f)前記トレーニング用データセットにおける複数のトレーニング用ユーザについて前記ステップ(a)~(e)を行うステップと、
(g)前記複数のトレーニング用ユーザの誤差値が最小となるように、前記符号化用ニューラルネットワーク及び前記予測用ニューラルネットワークのパラメータを更新するステップと、
(h)前記ステップ(a)~(g)を複数回にわたり繰り返して、前記符号化用ニューラルネットワーク及び前記予測用ニューラルネットワークをトレーニングするステップと
を行うステップと、
予測及び推奨フェーズに関して、
(i)テスト対象ユーザのユーザデータを有する
複数の入力ベクトルと、前記テスト対象ユーザによって評価されていないアイテムのアイテムデータを有する
複数の入力ベクトルとを受け付けるステップと、
(j)前記符号化用ニューラルネットワークの組を用いて入力ベクトルの各々を低次元ベクトル空間に対応付けて、前記テスト対象ユーザのユーザデータの
複数の低次元ベクトルと、前記テスト対象ユーザによって評価されていないアイテムのアイテムデータの
複数の低次元ベクトルとを得るステップであって、入力ベクトルごとに異なる前記符号化用ニューラルネットワークが用いられ、
前記テスト対象ユーザのユーザデータを有する複数の入力ベクトルが、前記第1の組に含まれる複数の符号化用ニューラルネットワークにそれぞれ入力され、前記テスト対象ユーザによって評価されていないアイテムのアイテムデータを有する複数の入力ベクトルが、前記第2の組に含まれる複数の符号化用ニューラルネットワークにそれぞれ入力され、前記テスト対象ユーザのユーザデータの低次元ベクトル及び前記テスト対象ユーザによって評価されていないアイテムの低次元ベクトルは、対応する入力ベクトルに比べて次元が低い、ステップと、
(k)
複数の前記テスト対象ユーザのユーザデータの低次元ベクトル及び
複数の前記テスト対象ユーザによって評価されていないアイテムの低次元ベクトルに基づいて、前記テスト対象ユーザのユーザデータ及び前記テスト対象ユーザによって評価されていないアイテムのアイテムデータの単一の多次元ベクトル表現を作成するステップと、
(l)前記予測用ニューラルネットワークを用いて、前記テスト対象ユーザのユーザデータ及び前記テスト対象ユーザによって評価されていないアイテムのアイテムデータの前記単一の多次元ベクトル表現から、前記テスト対象ユーザによる前記テスト対象ユーザによって評価されていないアイテムについての予測されるレイティングを計算するステップと、
(m)前記テスト対象ユーザと、前記テスト対象ユーザによって評価されていない複数のアイテムとに関して、前記ステップ(i)~(l)を繰り返すステップと、
(n)前記テスト対象ユーザの、前記複数のアイテムについて予測されたレイティングを用いて、1つ以上のアイテムを前記テスト対象ユーザに推奨するステップと
を行うステップと
を含む、非一時的なコンピュータ可読媒体。
【請求項10】
前記トレーニング用データセットのユーザデータは、ユーザの過去のレイティングと、ユーザのプロファイルデータとを含み、前記トレーニング用データセットのアイテムデータは、前記アイテムについて別のユーザから受け付けられた過去のレイティングと、アイテムのプロファイルデータとを含む、請求項9に記載の非一時的なコンピュータ可読媒体。
【請求項11】
前記ユーザのプロファイルデータは、ユーザの年齢と、ユーザの所在地と、ユーザの性別と、ユーザの職業と、ユーザの所得の範囲とのうちの1つ以上を含む、請求項10に記載の非一時的なコンピュータ可読媒体。
【請求項12】
前記アイテムのプロファイルデータは、アイテムの説明と、アイテムの価格と、アイテムのカテゴリと、アイテムの画像とのうちの1つ以上を含む、請求項10に記載の非一時的なコンピュータ可読媒体。
【請求項13】
前記誤差値は、前記トレーニング用ユーザの予測されたレイティングと前記トレーニング用ユーザの既知のレイティングとの平均二乗誤差であり、
前記ステップ(g)において、前記符号化用ニューラルネットワーク及び前記予測用ニューラルネットワークのパラメータは、前記複数のトレーニング用ユーザについての前記平均二乗誤差が最小となるように調整される、請求項9に記載の非一時的なコンピュータ可読媒体。
【請求項14】
前記予測用ニューラルネットワークが多層パーセプトロンであり、
前記符号化用ニューラルネットワークの組が、多層パーセプトロンと、長・短期記憶ネットワークと、畳込みニューラルネットワークとのうちの1つ以上を含む、請求項9に記載の非一時的なコンピュータ可読媒体。
【請求項15】
前記トレーニングフェーズ並びに前記予測及び推奨フェーズの双方において、前記単一の多次元ベクトル表現は、
複数の前記ユーザの低次元ベクトルと
複数の前記アイテムの低次元ベクトルとを連結することにより得られる、請求項9に記載の非一時的なコンピュータ可読媒体。
【請求項16】
前記ステップ(a)~(g)の各反復につき、前記トレーニング用データセットにおける前記トレーニング用ユーザの異なる部分集合が用いられる、請求項9に記載の非一時的なコンピュータ可読媒体。
【請求項17】
コンピュータシステムにより実行されると、アイテムに関するユーザのレイティングを予測するニューラルネットワークシステムをトレーニングする方法を前記コンピュータシステムに実行させるコンピュータプログラムを有する非一時的なコンピュータ可読媒体であって、
前記方法は、
(a)アイテムに関する既知のレイティングを有するトレーニング用データセットにおけるトレーニング用ユーザについて、前記トレーニング用ユーザのユーザデータを有する
複数の入力ベクトルと、前記アイテムのアイテムデータを有する
複数の入力ベクトルとを受け付けるステップと、
(b)符号化用ニューラルネットワークの組を用いて入力ベクトルの各々を低次元ベクトル空間に対応付けて、前記ユーザデータの
複数の低次元ベクトルと、前記アイテムデータの
複数の低次元ベクトルとを得るステップであって、入力ベクトルごとに異なる前記符号化用ニューラルネットワークが用いられ、
前記符号化用ニューラルネットワークの組は第1の組と第2の組とを有し、前記トレーニング用ユーザのユーザデータを有する複数の入力ベクトルが、前記第1の組に含まれる複数の符号化用ニューラルネットワークにそれぞれ入力され、前記アイテムのアイテムデータを有する複数の入力ベクトルが、前記第2の組に含まれる複数の符号化用ニューラルネットワークにそれぞれ入力され、前記ユーザの低次元ベクトル及び前記アイテムの低次元ベクトルは、対応する前記入力ベクトルに比べて次元が低い、ステップと、
(c)
複数の前記ユーザの低次元ベクトルと
複数の前記アイテムの低次元ベクトルとに基づいて、前記トレーニング用データセットのユーザデータ及びアイテムデータの単一の多次元ベクトル表現を作成するステップと、
(d)予測用ニューラルネットワークを用いて、前記トレーニング用データセットのユーザデータ及びアイテムデータの単一の多次元ベクトル表現から、前記トレーニング用ユーザによる、前記アイテムについての予測されるレイティングを計算するステップと、
(e)前記トレーニング用ユーザの、前記アイテムについて予測されたレイティングと、前記トレーニング用ユーザの、前記アイテムについての既知のレイティングとの間の誤差値を計算するステップと、
(f)前記トレーニング用データセットにおける複数のトレーニング用ユーザについて前記ステップ(a)~(e)を行うステップと、
(g)前記複数のトレーニング用ユーザの誤差値が最小となるように、前記符号化用ニューラルネットワーク及び前記予測用ニューラルネットワークのパラメータを更新するステップと、
(h)前記ステップ(a)~(g)を複数回にわたり繰り返して、前記符号化用ニューラルネットワーク及び前記予測用ニューラルネットワークをトレーニングするステップと
を含む、非一時的なコンピュータ可読媒体。
【請求項18】
前記ユーザデータは、ユーザの過去のレイティングと、ユーザのプロファイルデータとを含み、前記アイテムデータは、前記アイテムについて別のユーザから受け付けられた過去のレイティングと、アイテムのプロファイルデータとを含む、請求項17に記載の非一時的なコンピュータ可読媒体。
【請求項19】
コンピュータシステムにより実行されると、ニューラルネットワークを用いて1つ以上のアイテムをユーザに自動的に推奨する方法を前記コンピュータシステムに実行させるコンピュータプログラムを有する非一時的なコンピュータ可読媒体であって、
前記方法は、
(a)ユーザのユーザデータを有する
複数の入力ベクトルと、前記ユーザによって評価されていないアイテムのアイテムデータを有する
複数の入力ベクトルとを受け付けるステップと、
(b)符号化用ニューラルネットワークの組を用いて入力ベクトルの各々を低次元ベクトル空間に対応付けて、前記ユーザデータの
複数の低次元ベクトルと、前記アイテムデータの
複数の低次元ベクトルとを得るステップであって、入力ベクトルごとに異なる前記符号化用ニューラルネットワークが用いられ、
前記符号化用ニューラルネットワークの組は第1の組と第2の組とを有し、前記ユーザのユーザデータを有する複数の入力ベクトルが、前記第1の組に含まれる複数の符号化用ニューラルネットワークにそれぞれ入力され、前記ユーザによって評価されていないアイテムのアイテムデータを有する複数の入力ベクトルが、前記第2の組に含まれる複数の符号化用ニューラルネットワークにそれぞれ入力され、前記ユーザの低次元ベクトル及び前記アイテムの低次元ベクトルは、対応する入力ベクトルに比べて次元が低い、ステップと、
(c)
複数の前記ユーザの低次元ベクトル及び
複数の前記アイテムの低次元ベクトルに基づいて、前記ユーザデータ及び前記アイテムデータの単一の多次元ベクトル表現を作成するステップと、
(d)予測用ニューラルネットワークを用いて、前記ユーザデータ及び前記アイテムデータの前記単一の多次元ベクトル表現から、前記ユーザによる前記アイテムについての予測されるレイティングを計算するステップであって、前記符号化用ニューラルネットワークの組及び前記予測用ニューラルネットワークは、前記ステップ(b)~(d)を実行できるように既にトレーニングされている、ステップと、
(e)前記ユーザと、前記ユーザによって評価されていない複数のアイテムとに関して、前記ステップ(a)~(d)を繰り返すステップと、
(f)前記ユーザの、前記複数のアイテムについて予測されたレイティングを用いて、1つ以上のアイテムを前記ユーザに推奨するステップと
を行うステップと
を含む、非一時的なコンピュータ可読媒体。
【請求項20】
前記ユーザデータは、ユーザの過去のレイティングと、ユーザのプロファイルデータとを含み、前記アイテムデータは、前記アイテムについて別のユーザから受け付けられた過去のレイティングと、アイテムのプロファイルデータとを含む、請求項19に記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は概して推奨システムに関し、より具体的には、推奨システムにとってより効率的なニューラルネットワーク構造に関する。
【背景技術】
【0002】
推奨システムの目標は、ユーザが、多くのアイテムの集まりの中からユーザ個人の好みに最も合うアイテムを特定するのを手助けすることにある。ハイブリッド型の推奨システムは、ユーザのプロファイル情報と、アイテムの情報と、過去のユーザのレイティングとを用いて推奨を行う。
【0003】
推奨システムによっては、ニューラルネットワークを用いて、アイテムに関するユーザのレイティングを予測する。ニューラルネットワークは、アイテムのデータ及びユーザのデータを予測に関係のあるものに圧縮し、この圧縮されたデータを用いて予測を行う。言い換えると、ニューラルネットワークは、レイティングの予測につながるユーザの特性及びアイテムの特性を特定するものである。ニューラルネットワークは、当該ネットワークが所望の出力を得ることを助ける目的関数を最適化することによりトレーニングされる。
【0004】
図1に、推奨システムの最も一般的なニューラルネットワークのアーキテクチャを示す。このアーキテクチャは、2つのオートエンコーダ(自己符号化器)(110、120)を利用し、一方はユーザデータの圧縮された表現(130)を生成するためのものであり、他方はアイテムデータの圧縮された表現(135)を生成するためのものである。この圧縮された表現の生成は、ニューラルネットワークのエンコーダ(120a、120b、125a、125b)とニューラルネットワークのデコーダ(140a、140b、145a、145b)との双方の利用を伴う。オートエンコーダにおいて、エンコーダは入力を低次元表現に対応付けて、デコーダはその表現を取り込んで入力を復元する。オートエンコーダをトレーニングすることで、低次元のユーザ表現あるいはアイテム表現が得られるが、アイテムに関するユーザのレイティングを予測することはできない。
【0005】
この問題を解決するために、2つの行列が導入される。1つは、全てのユーザの低次元表現を有する行列(行列U)であり、もう1つは、全てのアイテムの低次元表現を有する行列(行列V)である。これらの2つの行列は、ユーザ表現及びアイテム表現のドット積がレイティングを近似するものとなるように学習される。オートエンコーダのトレーニングにおいて、エンコーダの出力は、これらの2つのユーザ及びアイテムの表現行列に近づくように制約される。オートエンコーダに基づく推奨システムは、行列の変数と、ハイパーパラメータと、エンコーダ及びデコーダの関数とを含む目的関数を用いてトレーニングされる。オートエンコーダに基づく推奨システムの目的関数は、以下のように記述することができる。
【数1】
ただし、
L()は復元に伴う損失であり、
g
uはユーザデータのエンコーダであり、
f
uはユーザデータのデコーダであり、
g
iはアイテムデータのエンコーダであり、
g
uはアイテムデータのデコーダであり、
Uは、全てのユーザの低次元表現を有する行列であり、
Vは、全てのアイテムの低次元表現を有する行列である。
【数2】
は、利用可能な、m人のユーザ及びn個のアイテムのレイティングを含む。ただし、R
jkは、ユーザjの、アイテムkに関するレイティングである。
θは、2つのオートエンコーダの全てのパラメータを含み、
λ
1、λ
2、及びλ
3はハイパーパラメータである。
【発明の概要】
【発明が解決しようとする課題】
【0006】
この構造を用いることには不利な点がいくつかある。第1に、最適化が難しく、多くの時間を要する。その理由は、ユーザ行列及びアイテム行列(すなわち、行列U及び行列V)が非常に大きく、行列とニューラルネットワークのパラメータとの間の交互の最適化が必要となるからである。第2に、これらの行列変数を用いるためには、目的関数に3つのハイパーパラメータ(すなわち、λ1、λ2、及びλ3)が必要となり、これらの設定が難しい可能性がある。第3に、オートエンコーダがエンコーダ及びデコーダの双方を有し各々が独自のパラメータを有するということは、効率的で正確な予測のために求められるものよりも多くの数のニューラルネットワークパラメータが存在することを意味する。
【課題を解決するための手段】
【0007】
本開示は、ニューラルネットワークを用いて商品を推奨するシステム、方法、及びコンピュータプログラムに関する。この推奨システムは、ユーザに関係したデータの1つ以上のソースと、アイテムに関係したデータの1つ以上のソースとから、ユーザの、アイテムに関して予測されるレイティングを直接、学習するニューラルネットワークアーキテクチャを用いる。符号化用ニューラルネットワークの組は、入力されたユーザデータ及びアイテムデータの各ソースを低次元ベクトル空間へと対応付ける。符号化用ニューラルネットワークの個々の低次元ベクトルの出力が組み合わされて、ユーザデータ及びアイテムデータの単一の多次元ベクトル表現が作成される。予測用ニューラルネットワークは、ユーザデータ及びアイテムデータの単一の多次元ベクトル表現に基づいて、ユーザの、アイテムに関するレイティングを予測できるようにトレーニングされる。このシステムは、ユーザの、アイテムに関して予測されたレイティングに基づいてアイテムをユーザに推奨する。
【0008】
図1のニューラルネットワーク構造を用いる推奨システムとは異なり、本明細書に開示される方法は、ニューラルネットワーク構造にデコーダの使用を必要としない。その結果、開示される方法によれば、ネットワークパラメータの数がより少なくなる結果、収束はより速くなる。また、本明細書に開示される方法では、従来の方法におけるユーザの表現及びアイテムの表現を有する大きな行列(例えば、
図1における行列U及びV)の計算及び最適化が必要とされない。これは、全ての変数のエンドツーエンドのトレーニングをもたらし、このトレーニングは、従来の処理における交互の最適化手法よりも高速かつ容易である。これにより、ニューラルネットワークをトレーニングする目的関数に含まれるハイパーパラメータの数をより少なくする(すなわち、従来技術の3つとは異なり、1つとする)こともできる。
【0009】
1つの実施の形態において、直接型ニューラルネットワーク構造を用いてユーザに商品を推奨する方法は、
トレーニングフェーズに関して、
(a)アイテムに関する既知のレイティングを有するトレーニング用データセットにおけるトレーニング用ユーザについて、前記トレーニング用ユーザのユーザデータを有する1つ以上の入力ベクトルと、アイテムのアイテムデータを有する1つ以上の入力ベクトルとを受け付けるステップと、
(b)符号化用ニューラルネットワークの組を用いて、各入力ベクトルを低次元ベクトル空間へと対応付けて、ユーザデータの1つ以上の低次元ベクトルと、アイテムデータの1つ以上の低次元ベクトルとを得るステップであって、入力ベクトルごとに異なる符号化用ニューラルネットワークが用いられ、ユーザの低次元ベクトル及びアイテムの低次元ベクトルは、対応する入力ベクトルに比べて次元が低い、ステップと、
(c)1つ以上のユーザの低次元ベクトル及び1つ以上のアイテムの低次元ベクトルに基づいて、ユーザデータ及びアイテムデータの単一の多次元ベクトル表現を作成するステップと、
(d)予測用ニューラルネットワークを用いて、トレーニング用のユーザデータ及びアイテムデータの単一の多次元ベクトル表現に基づき、トレーニング用ユーザの、アイテムについて予測されるレイティングを計算するステップと、
(e)トレーニング用ユーザの、アイテムについて予測されたレイティングと、トレーニング用ユーザの、アイテムについての既知のレイティングとの間の誤差値を計算するステップと、
(f)トレーニング用データセットにおける複数のトレーニング用ユーザに対してステップ(a)~(e)を実行するステップと、
(g)複数のトレーニング用ユーザの誤差値が最小となるように、符号化用ニューラルネットワーク及び予測用ニューラルネットワークのパラメータを更新するステップと、
(h)複数回にわたりステップ(a)~(g)を繰り返して、符号化用ニューラルネットワーク及び予測用ニューラルネットワークをトレーニングするステップと
を実行するステップと、
予測及び推奨フェーズに関して、
(i)テスト対象ユーザのユーザデータを有する1つ以上の入力ベクトルと、テスト対象ユーザによって評価されていないアイテムのアイテムデータを有する1つ以上の入力ベクトルとを受け付けるステップと、
(j)符号化用ニューラルネットワークの組を用いて、各入力ベクトルを低次元ベクトル空間へと対応付けて、ユーザデータの1つ以上の低次元ベクトルと、アイテムデータの1つ以上の低次元ベクトルとを得るステップであって、入力ベクトルごとに異なる符号化用ニューラルネットワークが用いられ、ユーザの低次元ベクトル及びアイテムの低次元ベクトルは、対応する入力ベクトルに比べて次元が低い、ステップと、
(k)1つ以上のユーザの低次元ベクトル及び1つ以上のアイテムの低次元ベクトルに基づいて、ユーザデータ及びアイテムデータの単一の多次元ベクトル表現を作成するステップと、
(l)予測用ニューラルネットワークを用いて、ユーザデータ及びアイテムデータの単一の多次元ベクトル表現に基づき、テスト対象ユーザによるアイテムについての予測されるレイティングを計算するステップと、
(m)テスト対象ユーザと、テスト対象ユーザによって評価されていない複数のアイテムとに対してステップ(i)~(l)を繰り返すステップと、
(n)テスト対象ユーザの、複数のアイテムについて予測されたレイティングを用いて、1つ以上のアイテムをテスト対象ユーザに推奨するステップと
を実行するステップと
を含む。
【図面の簡単な説明】
【0010】
【
図1】従来の推奨システムにおいて用いられるニューラルネットワークのアーキテクチャを示す図である。
【
図2A】アイテムのユーザレイティングを予測できるようにニューラルネットワークシステムをトレーニングするための、1つの実施形態による方法を示すフローチャートである。
【
図2B】アイテムのユーザレイティングを予測できるようにニューラルネットワークシステムをトレーニングするための、1つの実施形態による方法を示すフローチャートである。
【
図3】複数のアイテムに関するユーザのレイティングを予測し、これらのレイティングに基づいてユーザにアイテムを推奨するための、1つの実施形態による方法を示すフローチャートである。
【
図4】推奨システムのための一例としての直接型ニューラルネットワークアーキテクチャのブロック図である。
【
図5】一例としての推奨システムのブロック図である。
【発明を実施するための形態】
【0011】
本開示は、ニューラルネットワークを用いて商品を推奨するためのシステム、方法、及びコンピュータプログラムに関する。本明細書に開示される方法は、コンピュータシステム(「本システム」)によって実行される。
【0012】
以下でより詳細に説明するように、本システムは、ユーザ及びアイテムに関係したデータから、そのアイテムに関して予測されるユーザのレイティングを直接、学習するニューラルネットワークのアーキテクチャを用いる。このプロセスは、本システムが、表現をデコードする必要がなく、全てのユーザ及び全てのアイテムの表現を有する非常に大きな行列のドット積を計算することもなく、特定のユーザ及び特定のアイテムに関係したデータを符号化し、符号化されたデータから予測を出力するという点において、直接的である。
図4に、ニューラルネットワークアーキテクチャの一例を示す。本システムは、予測されたレイティングを用いて、ユーザに商品を推奨する。
【0013】
本方法は、トレーニングフェーズと予測及び推奨フェーズとを含む。トレーニングフェーズにおいて、本システムのニューラルネットワークは、ユーザデータ及びアイテムデータの符号化された表現に基づいて、アイテムに関するユーザのレイティングを予測できるようにトレーニングされる。予測及び推奨フェーズにおいては、トレーニングがなされたニューラルネットワークを用いてユーザのレイティングが予測され、本システムは、予測されたレイティングを用いて商品を推奨する。これらのフェーズは、種々のエンティティによって実行することができる(例えば、1つのエンティティは、ニューラルネットワークをトレーニングすることができ、別のエンティティは、トレーニングがなされたネットワークを用いて商品の推奨を行うことができる)。これらのフェーズの各々を以下に説明する。
【0014】
1.トレーニングフェーズ
1.1 入力
図2A及び
図2Bに、アイテムに関するユーザのレイティングを予測できるよう本システムをトレーニングする方法を示す。本方法を、
図4のニューラルネットワークアーキテクチャに関して説明する。本システムは、アイテムに関する既知のトレーニング用のユーザのレイティングを含む、トレーニング用ユーザデータ及びトレーニング用アイテムデータを有するトレーニング用データセットを取得する(ステップ205)。トレーニング用データセットは、1つ以上のユーザデータソース及び1つ以上のアイテムデータソース(例えば、
図4のデータソース405a~405fを参照)を有することができる。本システムは、このトレーニング用データセットから、トレーニング用ユーザのユーザデータを有する1つ以上の入力ベクトルと、トレーニング用ユーザによる既知のレイティングを有するアイテムのアイテムデータを有する1つ以上の入力ベクトル(例えば、
図4の入力ベクトル410a~410fを参照)とを取得する(ステップ210a、210b)。
【0015】
1つの実施形態では、ユーザデータは、ユーザの、アイテムに関する過去のレイティングとユーザのプロファイル情報とを含み、アイテムデータは、他のユーザによる、アイテムの過去のレイティングとアイテムのプロファイルデータとを含む。ユーザのプロファイルデータは、ユーザの年齢と、ユーザの所在地と、ユーザの性別と、ユーザの職業と、ユーザの所得の範囲と、ユーザの民族性とのうちの1つ以上を含むことができる。ユーザデータは、ユーザが提供することができるか、本システムが機械学習により導き出すことができるか、あるいはその両方でもよい。アイテムのプロファイルデータは、アイテムの説明と、アイテムの価格と、アイテムのカテゴリと、アイテムの画像とのうちの1つ以上を含むことができる。
図4に示すように、各データソースは、別々の入力ベクトルに対応するものとすることができる。
【0016】
入力ソースの数は一般に、レイティングの予測の精度と、予測に関連した計算時間及び計算コストとに比例する。言い換えると、入力及びユーザデータソースが多いほど、レイティングの予測はより正確になる可能性が高い。他方、入力ソースが多いほど、予測の実行に関連する計算時間及びコストはより増加する。
【0017】
ユーザのデータ及びアイテムのデータをベクトルとしてどのように表すことができるのかの例を以下に示す。
【0018】
ユーザの性別
ユーザのプロファイル情報の1つのタイプを、性別とすることができる。この例では、ユーザ#0は女性であり、ユーザ#0の性別に対応する入力ベクトルは以下のとおりである。
【表1】
【0019】
商品のカテゴリ
アイテムのプロファイルデータの1つのタイプは、アイテムのカテゴリとすることができる。この例では、全部でn個のカテゴリがあり(ただし、nはこの例では3よりも大きい整数である)、アイテム#0はカテゴリ_2に属する。アイテム#0のカテゴリのプロファイル情報に対応する入力ベクトルは、以下のとおりである。
【表2】
【0020】
ユーザの過去のレイティング
この例は、ユーザの過去のレイティングをベクトルとしてどのように表すことができるのかを示す。簡単にするために、この例では、5つのアイテムとしてアイテム_1からアイテム_5があるものとする。第i番目のユーザの過去のレイティングは、以下のとおりである。
【表3】
【0021】
アイテム_2及びアイテム_4に関するユーザiのレイティングは、未知であることに留意されたい。ユーザiの過去のレイティングに対応する入力ベクトルは、以下のように5次元のベクトルである。
【表4】
【0022】
このベクトルは、5つのアイテムがあることから5次元である。このベクトルの第1のインデックスはアイテム_1のレイティングを含み、第2のインデックスはアイテム_2のレイティングを含み、以下、他のインデックスについても同様である。未知のレイティングを有するアイテムについては、当該インデックスに0が挿入される。
【0023】
1.2 入力の低次元空間への対応付け
本システムは、第1のニューラルネットワークのエンコーダの組を用いて、各入力ベクトルを低次元(入力ベクトル空間に比べて低い次元)のベクトル空間へと対応付けて、アイテムデータの1つ以上の低次元ベクトル及びユーザデータの1つ以上の低次元ベクトルを得る(例えば、
図4におけるニューラルネットワークのエンコーダ420a~420f、低次元ユーザベクトル430a~430c、及び低次元アイテムベクトル430d~430fを参照)(ステップ220)。入力ベクトルごとに別々のニューラルネットワークエンコーダがある。
【0024】
ニューラルネットワークエンコーダ420は、多次元入力ベクトルを受け付けることができるとともにベクトルの低次元表現を生成することのできる任意のニューラルネットワークとすることができる。例えば、ニューラルネットワークエンコーダは、多層パーセプトロン、長・短期ネットワーク(LSTM)、又は畳込みネットワークとすることができる。
【0025】
1つ以上の低次元ユーザベクトル及び1つ以上の低次元アイテムベクトルが組み合わされて、ユーザデータ及びアイテムデータの単一の多次元ベクトル表現が作成される(ステップ230)。これを、
図4の中間出力ベクトル440として示す。1つの実施形態では、中間出力ベクトルは、全ての低次元ユーザベクトル及び低次元アイテムベクトルを互いに連結することによって作られる。低次元ユーザベクトル及び低次元アイテムベクトルは、トレーニングフェーズ及び予測フェーズの双方において順序が同じであれば、任意の順序で連結することができる。他の実施形態では、低次元ユーザベクトル及び低次元アイテムベクトルは、連結とエントリごとの積との組み合わせ等の、より複雑な方法で組み合わされる。これにより、計算時間及び計算リソースが増加する場合があるものの、予測の精度を高めることができる。
【0026】
1.3 ユーザのレイティングの予測
続いて、ユーザデータ及びアイテムデータの単一の多次元ベクトル表現は、別のニューラルネットワーク(例えば、
図4における予測用ニューラルネットワーク450を参照)に入力される(ステップ240)。このニューラルネットワークは、ユーザデータ及びアイテムデータの多次元ベクトル表現を、アイテムについて予測されるユーザのレイティングへと対応付けるものである。本明細書では、このニューラルネットワークを「予測用ニューラルネットワーク」と呼ぶ。予測用ニューラルネットワークは、アイテムに関して予測されるユーザのレイティングを出力する。
【0027】
予測用ニューラルネットワーク450は、多次元ベクトル入力を受け付けることができるとともにユーザのレイティングの予測となるスカラ値を出力することができる任意のニューラルネットワーク(例えば、多層パーセプトロン)とすることができる。
【0028】
1.4 ニューラルネットワークのパラメータの更新
本システムは、トレーニング用ユーザの、アイテムに関して予測されたレイティングと、トレーニング用ユーザの、同アイテムに関する既知のレイティングとの間の誤差値を計算する(ステップ250)。例えば、本システムは、以下のように、予測されたレイティングと実際のレイティングとの間の平均二乗誤差(mean square error)を計算することができる。
【数3】
ただし、
mは、観測値(observation)の個数であり、
h(x)は、予測された応答であり、
yは、目標となる応答である。
【0029】
誤差値の別の選択肢として、実際の応答と予測された応答との間の平均絶対誤差が挙げられる。
【0030】
本システムは、トレーニング用データベース内のトレーニング用ユーザの全て又はその一部についてステップ210~250を繰り返す(ステップ260)。本システムは、トレーニング用ユーザの集合あるいはその一部の誤差値が最小となるように符号化用ニューラルネットワーク及び予測用ニューラルネットワークのパラメータを更新する(ステップ270)。1つの実施形態では、ニューラルネットワークをトレーニングするために用いられる最適化関数は、以下のとおりである。
【数4】
ただし、
θは、符号化用ニューラルネットワーク及び予測用ニューラルネットワークの全てのパラメータを含み、
R
jkは、ユーザjの、アイテムkに関するレイティングであり、
z
jkは、ユーザデータ及びアイテムデータの単一の多次元表現(すなわち、符号化用ニューラルネットワークの出力を連結したもの)であり、
h()は、予測用ニューラルネットワークであり、
λ
1はハイパーパラメータである。
【0031】
本システムは、複数回にわたりステップ210~270を繰り返す(ステップ280)。各反復につき、トレーニング用ユーザの同じ集合又は異なった部分集合を用いることができる。1つの実施形態では、これらのステップは、収束するまで繰り返される。別の実施形態では、これらのステップは、一定の反復回数(例えば、1000回)にわたり繰り返される。
【0032】
2.予測及び推奨
図3に、複数のアイテムに関してユーザのレイティングを予測し、これらのレイティングに基づいてアイテムをユーザに推奨する方法を示す。本方法は、前述のとおり、トレーニングがなされた符号化用ニューラルネットワーク及び予測用ニューラルネットワークを用いる。ステップ310~340は、テスト対象ユーザ(すなわち、トレーニング用ユーザではないユーザ)と、このテスト対象ユーザによって評価されていないアイテムとに対して行われることを除いて、
図2Aにおけるステップ210~240と同じである。具体的には、テスト対象ユーザのデータを有する1つ以上の入力ベクトルとアイテムデータを有する1つ以上のベクトルとが、符号化用ネットワーク内に入力され、テスト対象ユーザのデータに関する1つ以上の低次元ベクトルとアイテムデータに関する1つ以上の低次元ベクトルとが得られる(ステップ310及び320)。このフェーズでは、トレーニングフェーズと同じタイプのユーザデータ及びアイテムデータが用いられる。テスト対象ユーザ及びアイテムの低次元のベクトルを用いて、テスト対象ユーザのデータ及びアイテムデータの、単一の多次元ベクトル表現が作成される(ステップ330)。この単一の多次元ベクトルが予測用ニューラルネットワークに入力される。予測用ニューラルネットワークは、予測された、テスト対象ユーザによるアイテムのレイティングを出力する(ステップ340及び350)。
【0033】
続いて、本システムは、テスト対象ユーザと、同テスト対象ユーザによって評価されていない複数のアイテムの各々とについて、上記ステップ(すなわち、ステップ310~350)を繰り返す(ステップ360)。本システムは、予測されたレイティングを用いて、1つ以上のアイテムをテスト対象ユーザに推奨する(ステップ370)。例えば、本システムは、テスト対象ユーザについて予測された上位n(例えば、n=5)個のレイティングを有するアイテムを推奨することができる。
【0034】
3.利点
図1のニューラルネットワーク構造を用いる推奨システムとは異なり、
図2~
図4を参照しながら開示された方法は、ニューラルネットワーク構造にデコーダを必要としない。そのため、開示された方法を用いれば、ネットワークパラメータの数が少なくなることから、収束がより速くなる。また、本明細書に開示された方法は、従来の方法における、ユーザの表現及びアイテムの表現を有する大きな行列(例えば、
図1における行列U及びV)の計算及び最適化を必要としない。これは、全ての変数のエンドツーエンドのトレーニングをもたらし、このトレーニングは、従来の処理における交互の最適化手法よりも高速かつ容易である。これにより、ニューラルネットワークをトレーニングするための目的関数に含まれるハイパーパラメータの数をより少なくする(すなわち、従来技術の3つとは異なり、1つとする)こともできる。
【0035】
4.推奨システムの例
図5に、一例として、推奨システムのソフトウェアアーキテクチャを示す。推奨システム500は、複数のデータソース510、520からユーザデータ及びアイテムデータを受け付ける。予測モジュール530は、アイテムに関するユーザのレイティングを予測する。予測モジュールは、符号化用ニューラルネットワーク550と、ユーザデータ及びアイテムデータの単一の多次元ベクトル表現を作成する単一ベクトル作成ユニット560と、予測用ニューラルネットワーク570とを有する。トレーニングモジュール580は、
図2A及び
図2Bの方法に従って予測モジュール530のトレーニングを行う。予測モジュール530は、
図3の方法に基づいて予測を行う。推奨モジュール540は、予測されたユーザのレイティングを受け付け、その予測に基づいてユーザにアイテムを推奨する。例えば、推奨モジュールは、適用可能な任意のビジネスルールにおけるファクタリングの後に、予測された上位n個のレイティングに関連する商品を選択することができる。当業者であれば、推奨システムが、本明細書における開示とは関係しない他のモジュールを有することができることを理解するであろう。
【0036】
1つの実施形態では、符号化用ニューラルネットワーク及び予測用ネットワークの各々は、非線形な活性化関数を有する多層ネットワークである(すなわち、非線形関数がネットワークの各ニューロンの出力に適用され、これによって、ニューラルネットワークは入力の、複雑で非線形な関数となる)。別の実施形態では、符号化用ニューラルネットワーク及び予測用ニューラルネットワークの各々は、線形(恒等)活性化関数を有する単一の層を含む(すなわち、各ニューラルネットワークの出力は、入力を線形変換したものである)。線形な活性化関数を用いることにより、非線形な活性化関数を有するネットワークに比べて、精度は低くなるものの、予測に関連した計算時間及び計算コストが削減される。
【0037】
5.一般的事項
図1~
図5に関して説明した方法は、ソフトウェアで具現化され、ソフトウェアを実行する(1つ以上の計算デバイスを備える)コンピュータシステムによって実行される。当業者であれば、コンピュータシステムが、ソフトウェア命令を記憶する1つ以上の物理メモリユニット、ディスク、又は他の物理的なコンピュータ可読記憶媒体と、これらのソフトウェア命令を実行する1つ以上のプロセッサとを有することを理解するであろう。当業者であれば、コンピュータシステムはスタンドアローンとすることもできるし、サーバとしてコンピュータネットワークに接続することもできることを理解するであろう。
【0038】
本発明の趣旨又は不可欠な特徴から逸脱することなく、本発明が他の具体的な形態で具現化できることは当業者に理解されよう。したがって、上記の開示は、特許請求の範囲により定められる本発明の範囲の例示を目的としたものであり、限定するものではない。