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

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

▶ 楽天株式会社の特許一覧

特許7271630機械学習に基づくレコメンダシステムにおける入力及びパラメータの同時学習
<>
  • 特許-機械学習に基づくレコメンダシステムにおける入力及びパラメータの同時学習 図1
  • 特許-機械学習に基づくレコメンダシステムにおける入力及びパラメータの同時学習 図2
  • 特許-機械学習に基づくレコメンダシステムにおける入力及びパラメータの同時学習 図3
  • 特許-機械学習に基づくレコメンダシステムにおける入力及びパラメータの同時学習 図4
  • 特許-機械学習に基づくレコメンダシステムにおける入力及びパラメータの同時学習 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-28
(45)【発行日】2023-05-11
(54)【発明の名称】機械学習に基づくレコメンダシステムにおける入力及びパラメータの同時学習
(51)【国際特許分類】
   G06Q 30/0601 20230101AFI20230501BHJP
   G06N 20/00 20190101ALI20230501BHJP
   G06Q 10/04 20230101ALI20230501BHJP
【FI】
G06Q30/0601 330
G06N20/00
G06Q10/04
【請求項の数】 20
【外国語出願】
(21)【出願番号】P 2021166779
(22)【出願日】2021-10-11
(65)【公開番号】P2022063255
(43)【公開日】2022-04-21
【審査請求日】2021-10-11
(31)【優先権主張番号】63/089,677
(32)【優先日】2020-10-09
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/141,925
(32)【優先日】2021-01-05
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】399037405
【氏名又は名称】楽天グループ株式会社
(74)【代理人】
【識別番号】100099623
【弁理士】
【氏名又は名称】奥山 尚一
(74)【代理人】
【氏名又は名称】松島 鉄男
(74)【代理人】
【識別番号】100125380
【弁理士】
【氏名又は名称】中村 綾子
(74)【代理人】
【識別番号】100142996
【弁理士】
【氏名又は名称】森本 聡二
(74)【代理人】
【識別番号】100166268
【弁理士】
【氏名又は名称】田中 祐
(74)【代理人】
【氏名又は名称】有原 幸一
(72)【発明者】
【氏名】ラミン・ラジパーチコライ
【審査官】藤澤 美穂
(56)【参考文献】
【文献】米国特許出願公開第2017/0185894(US,A1)
【文献】米国特許出願公開第2018/0174070(US,A1)
【文献】特開2013-228947(JP,A)
【文献】岡本 一志, 他1名,協調フィルタリング入門,知能と情報,日本,2019年02月15日,Vol. 31, No. 1,p.5-9,ISSN : 1347-7986
【文献】平手 勇宇, 他2名,商品推薦システム -E-Commerceサービスでの推薦システムの活用-,人工知能,Vol. 34, No. 3,(一社)人工知能学会,2019年05月01日,p.292-299,ISSN : 2188-2266
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
コンピュータシステムによって実行され、入力ベクトル及びモデルパラメータの双方がトレーニングにおいて学習される機械学習モデルを用いて1つ以上のアイテムをユーザに対して自動的に推奨する方法であって、
前記機械学習モデルは、前記入力ベクトルの入力を受け、予測されたフィードバックを出力するモデルであり、
前記機械学習モデルのトレーニングフェーズに関して、
(a)一組のユーザについてのユーザ入力ベクトルと、一組のアイテムについてのアイテム入力ベクトルとを取得するステップであって、前記ユーザ入力ベクトル及び前記アイテム入力ベクトルは、ユーザとアイテムの複数のペアの一部についての既知のユーザフィードバックを含む一組のトレーニングデータ内のユーザデータ及びアイテムデータから作られる、ステップと、
(b)前記ユーザ入力ベクトル及び前記アイテム入力ベクトルに機械学習モデルを適用し、前記アイテムに対する前記ユーザの予測されたフィードバックを得るステップであって、前記機械学習モデルは1つ以上のモデルパラメータを有する、ステップと、
(c)前記ユーザ入力ベクトル及び前記アイテム入力ベクトルと前記機械学習モデルのモデルパラメータとを更新し、前記予測されたフィードバックと、前記既知のユーザフィードバックとの差を最小化するステップと、
(d)前記(b)及び前記(c)を複数回にわたり繰り返して、推奨及び予測フェーズにおいて使用するための前記入力ベクトル及び前記モデルパラメータの双方を学習するステップであって、前回の反復にて更新された前記パラメータ及び前記入力ベクトルは次回の反復にて用いられ、ユーザ入力ベクトルは前記一組のユーザ内の各ユーザについて学習され、アイテム入力ベクトルは前記一組のアイテム内の各アイテムについて学習される、ステップと
を実行するステップと、
予測及び推奨フェーズに関して、
(e)テストユーザについて前記トレーニングフェーズにて学習されたユーザ入力ベクトルを得るステップであって、前記テストユーザは前記一組のユーザに含まれる、ステップと、
(f)前記テストユーザによって評価されていないアイテムにつき前記トレーニングフェーズにて学習されたアイテム入力ベクトルを得るステップであって、前記アイテムは前記一組のアイテムに含まれる、ステップと、
(g)前記トレーニングフェーズにてトレーニングされた前記機械学習モデルを、前記テストユーザのための学習済み入力ベクトル及び前記アイテムのための学習済み入力ベクトルに適用して、前記アイテムにつき前記テストユーザの予測されたフィードバックを得るステップと、
(h)前記テストユーザと、前記テストユーザがフィードバックを提供していない複数のアイテムとに関してステップ(f)及び(g)を繰り返すステップと、
(i)前記複数のアイテムにつき前記テストユーザの予測されたフィードバックを用いて、前記テストユーザに対し1つ以上のアイテムを推奨するステップと
を実行するステップと
を含む方法。
【請求項2】
前記ユーザ入力ベクトルは、ゼロ値及び非ゼロ値を有するユーザインタラクションベクトルであり、前記アイテム入力ベクトルは、ゼロ値及び非ゼロ値を有するアイテムインタラクションベクトルであり、
前記ユーザインタラクションベクトル及び前記アイテムインタラクションベクトルの非ゼロ値は、フィードバックが既知であるユーザとアイテムのペアに対応し、
前記ユーザインタラクションベクトル及び前記アイテムインタラクションベクトルの非ゼロ値は、前記トレーニングフェーズにおいて学習可能なパラメータである、
請求項1に記載の方法。
【請求項3】
前記入力ベクトル及び前記モデルパラメータは、ステップ(b)及び(c)の反復において交互に更新され、
前記システムは、前記適用及び前記更新を行って、
前記ユーザ入力ベクトル及び前記アイテム入力ベクトルに前記機械学習モデルを適用して、前記アイテムにつき前記ユーザの予測されたフィードバックを得るステップと、
前記モデルパラメータを更新して、前記予測されたフィードバック値と前記既知のフィードバック値との差を最小化するステップと、
更新された前記パラメータを用いて前記機械学習モデルを前記ユーザ入力ベクトル及び前記アイテム入力ベクトルに適用して、新たなフィードバック予測を得るステップと、
前記ユーザ入力ベクトル及び前記アイテム入力ベクトルを更新して、前記新たなフィードバック予測と前記既知のユーザフィードバックとの差を最小化するステップと、
前記機械学習モデルを新たなユーザ入力ベクトル及び新たなアイテム入力ベクトルに適用して、別の新たなフィードバック予測を得るステップと、
モデルパラメータを更新して、前記別の新たなフィードバック予測と前記既知のユーザフィードバックとの差を最小化するステップと、
前記適用及び前記更新を複数回にわたり繰り返すステップと
を行う、請求項1に記載の方法。
【請求項4】
前記機械学習モデルが、線形モデルと、1つ以上のニューラルネットワークの組とのいずれかである、請求項1に記載の方法。
【請求項5】
前記機械学習モデルは、
前記ユーザ入力ベクトル及び前記アイテム入力ベクトルを、低次元のユーザベクトル表現及びアイテムベクトル表現へと対応付ける一組の符号化用ニューラルネットワークと、
前記低次元のユーザベクトル表現及びアイテムベクトル表現の組み合わせに基づいて、フィードバック予測を計算する予測用ニューラルネットワークと
を含む、請求項1に記載の方法。
【請求項6】
前記更新は、予測されたレイティングと対応する既知のレイティングとの平均二乗誤差の計算を含む、請求項1に記載の方法。
【請求項7】
前記フィードバックがレイティングである、請求項1に記載の方法。
【請求項8】
前記既知のフィードバックは、ユーザがアイテムを購入したかどうかであり、予測されるフィードバックは、ユーザがアイテムを購入する確率である、請求項1に記載の方法。
【請求項9】
コンピュータシステムによって実行され、1つ以上のアイテムをユーザに対して自動的に推奨するための機械学習モデルをトレーニングする方法であって、
前記機械学習モデルは、入力ベクトルの入力を受け、予測されたフィードバックを出力するモデルであり、
(a)一組のユーザについてのユーザ入力ベクトルと、一組のアイテムについてのアイテム入力ベクトルとを取得するステップであって、前記ユーザ入力ベクトル及び前記アイテム入力ベクトルは、ユーザとアイテムの複数のペアの一部についての既知のユーザフィードバックを含む一組のトレーニングデータ内のユーザデータ及びアイテムデータから作られる、ステップと、
(b)前記ユーザ入力ベクトル及び前記アイテム入力ベクトルに機械学習モデルを適用し、前記アイテムに対する前記ユーザの予測されたフィードバックを得るステップであって、前記機械学習モデルは1つ以上のモデルパラメータを有する、ステップと、
(c)前記ユーザ入力ベクトル及び前記アイテム入力ベクトルと前記機械学習モデルのモデルパラメータとを更新し、前記予測されたフィードバックと、前記既知のユーザフィードバックとの差を最小化するステップと、
(d)前記適用及び前記更新を複数回にわたり繰り返して、フィードバックの予測を最適化する前記入力ベクトル及び前記モデルパラメータの双方を学習するステップであって、前回の反復にて更新された前記パラメータ及び前記入力ベクトルは次回の反復にて用いられ、ユーザ入力ベクトルは前記一組のユーザ内の各ユーザについて学習され、アイテム入力ベクトルは前記一組のアイテム内の各アイテムについて学習される、ステップと
を含む方法。
【請求項10】
前記ユーザ入力ベクトルは、ゼロ値及び非ゼロ値を有するユーザインタラクションベクトルであり、前記アイテム入力ベクトルは、ゼロ値及び非ゼロ値を有するアイテムインタラクションベクトルであり、
前記ユーザインタラクションベクトル及び前記アイテムインタラクションベクトルの非ゼロ値は、フィードバックが既知であるユーザとアイテムのペアに対応し、
前記ユーザインタラクションベクトル及び前記アイテムインタラクションベクトルの非ゼロ値は、前記トレーニングフェーズにおいて学習可能なパラメータである、
請求項9に記載の方法。
【請求項11】
前記入力ベクトル及び前記モデルパラメータは、ステップ(b)及び(c)の反復において交互に更新され、
前記システムは、前記適用及び前記更新を行って、
前記ユーザ入力ベクトル及び前記アイテム入力ベクトルに前記機械学習モデルを適用して、前記アイテムにつき前記ユーザの予測されたフィードバックを得るステップと、
前記モデルパラメータを更新して、前記予測されたフィードバック値と前記既知のフィードバック値との差を最小化するステップと、
更新された前記パラメータを用いて前記機械学習モデルを前記ユーザ入力ベクトル及び前記アイテム入力ベクトルに適用して、新たなフィードバック予測を得るステップと、
前記ユーザ入力ベクトル及び前記アイテム入力ベクトルを更新して、前記新たなフィードバック予測と前記既知のユーザフィードバックとの差を最小化するステップと、
前記機械学習モデルを新たなユーザ入力ベクトル及び新たなアイテム入力ベクトルに適用して、別の新たなフィードバック予測を得るステップと、
モデルパラメータを更新して、前記別の新たなフィードバック予測と前記既知のユーザフィードバックとの差を最小化するステップと、
前記適用及び前記更新を複数回にわたり繰り返すステップと
を行う、請求項9に記載の方法。
【請求項12】
前記機械学習モデルが、線形モデルと、1つ以上のニューラルネットワークの組とのいずれかである、請求項9に記載の方法。
【請求項13】
前記機械学習モデルは、
前記ユーザ入力ベクトル及び前記アイテム入力ベクトルを、低次元のベクトル表現へと対応付ける一組の符号化用ニューラルネットワークと、
低次元のユーザベクトル及びアイテムベクトルの組み合わせに基づいて、フィードバック予測を計算する予測用ニューラルネットワークと
を含む、請求項9に記載の方法。
【請求項14】
前記フィードバックがレイティングである、請求項1に記載の方法。
【請求項15】
前記既知のフィードバックは、ユーザがアイテムを購入したかどうかであり、予測されるフィードバックは、ユーザがアイテムを購入する確率である、請求項1に記載の方法。
【請求項16】
コンピュータシステムによって実行され、入力ベクトル及びモデルパラメータの双方がトレーニングにおいて学習される機械学習モデルを用いて1つ以上のアイテムをユーザに対して自動的に推奨する方法であって、
前記機械学習モデルは、前記入力ベクトルの入力を受け、予測されたフィードバックを出力するモデルであり、
(a)テストユーザにつき、トレーニングフェーズにおいて学習されたユーザ入力ベクトルを得るステップと、
(b)前記テストユーザによって評価されていないアイテムにつき、トレーニングフェーズにおいて学習されたアイテム入力ベクトルを得るステップと、
(c)前記テストユーザについての学習済みユーザ入力ベクトル及び前記アイテムについての学習済みアイテム入力ベクトルに対して機械学習モデルを適用して、前記アイテムにつき前記テストユーザの予測されたフィードバックを得るステップであって、複数のアイテムにつき前記テストユーザを含む複数のユーザについての予測されたフィードバックと、前記複数のアイテムにつき前記複数のユーザについての既知の対応するフィードバックとの差が最小となるように、前記機械学習モデルのパラメータと前記ユーザ入力ベクトル及び前記アイテム入力ベクトルとの双方がトレーニングフェーズにおいて最適化される、ステップと、
(d)前記テストユーザと前記テストユーザがフィードバックを提供していない複数のアイテムとに関してステップ(b)及び(c)を繰り返すステップと、
(e)前記複数のアイテムにつき前記テストユーザの予測されたフィードバックを用いて、前記テストユーザに対して1つ以上のアイテムを推奨するステップと
を含む方法。
【請求項17】
前記ユーザ入力ベクトル及び前記アイテム入力ベクトルは、前記トレーニングフェーズにて学習された非ゼロ値を有する、請求項16に記載の方法。
【請求項18】
前記機械学習モデルは、
前記ユーザ入力ベクトル及び前記アイテム入力ベクトルを、低次元のベクトル表現へと対応付ける一組の符号化用ニューラルネットワークと、
低次元のユーザベクトル及びアイテムベクトルの組み合わせに基づいて、フィードバック予測を計算する予測用ニューラルネットワークと
を含む、請求項16に記載の方法。
【請求項19】
前記フィードバックがレイティングである、請求項16に記載の方法。
【請求項20】
前記既知のフィードバックは、ユーザがアイテムを購入したかどうかであり、前記予測されるフィードバックは、ユーザがアイテムを購入する確率である、請求項16に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は概して、機械学習に基づくレコメンダシステムに関し、より具体的には、レコメンダシステムにおける入力及びモデルパラメータの同時学習に関する。
【0002】
[関連出願]
本願は、「Simultaneous Learning of the Inputs and Parameters in Neural Collaborative Filtering」と題された、2020年10月9日に出願された米国仮特許出願第63/089,677号の利益を主張する。この米国仮特許出願の内容は、引用することにより、本明細書にその全体が開示されている場合と同様に、本明細書の一部をなすものとする。
【背景技術】
【0003】
レコメンダシステムの目的は、ユーザが、アイテムの大きな集合から自身の個人的嗜好に最も合うアイテムを特定することを助けることである。過去数十年間での電子商取引の爆発的成長に伴い、消費者が処理することができる数よりも多くの商品のオファーが存在し、レコメンダシステムは、この過重負担の問題を解決するために必須のものになってきている。レコメンダシステムの目的は、既知のユーザフィードバックを取り込み、アイテムに対する未知のユーザフィードバックを予測することであり、これは、提案されたアイテムのリストをユーザに提供するのに有用である可能性がある。フィードバックは、よくインタラクションと呼ばれ、暗黙的なもの(例えば、購入した、あるいは購入の可能性が高い)とすることもできるし、明示的なもの(例えば、1~5の間のレイティング)とすることもできる。レイティングはユーザの好みに関するより正確な洞察を与える傾向があるため、多くのレコメンダシステムは、ユーザレイティングを予測することに焦点を当てる。
【0004】
多くのレコメンダシステムは、ニューラルネットワークを用いて予測を行う。例えば、ニューラル協調フィルタリング(NCF:neural collaborative filtering)システムは、ユーザデータ及びアイテムデータにニューラルネットワークエンコーダを適用して、ユーザデータ及びアイテムデータの低次元の表現を生成したのち、別のニューラルネットワークを使用し、ユーザ表現及びアイテム表現に基づいてアイテムに対するユーザレイティングを予測する。
【0005】
一般的に、NCFシステムなどのレコメンダシステムにおいて用いられる入力には2つのタイプがある。1つ目の入力は、ユーザID及びアイテムIDである。各IDは、ワンホットエンコーディングベクトル(one-hot-encoding vector)に変換されたのち、埋込み行列との乗算が行われる。2つ目の入力は、ユーザインタラクションベクトル及びアイテムインタラクションベクトルである。ユーザインタラクションベクトルは、全てのアイテムに対するユーザフィードバックから構成される。ユーザからのフィードバックが存在しないアイテムについてはゼロ値である。ユーザフィードバックの一例は、ユーザレイティングである。アイテムインタラクションベクトルは、アイテムに与えられる全てのフィードバックから構成される。NCFレコメンダシステムでは、インタラクションベクトルは、ユーザ・アイテムのIDよりも入力として優れていることが知られている。
【0006】
レコメンダシステムにおいて使用されるユーザインタラクションベクトル及びアイテムインタラクションベクトルは通常、ユーザのレイティングに基づく。以下の表1は、レイティング行列の一例である。このレイティング行列において、4人のユーザ及び2つのアイテムが存在し、レイティングは1~5の範囲である。ゼロは、ユーザがそのアイテムを評価していない(すなわちレイティングが未知である)ことを意味する。
【0007】
【表1】
【0008】
表の各行は、ユーザインタラクションベクトルに対応し、表の各列は、アイテムインタラクションベクトルに対応する。この例では、ユーザ#1についてのユーザインタラクションベクトルは、[5,1]であり、アイテム#1についてのアイテムインタラクションベクトルは、[5,5,0,0]である。
【0009】
レコメンダシステムへの入力としてレイティングを使用することには欠点がある。その理由は、ユーザの好みの類似度及び違いが、入力空間において常に反映されるわけではないからである。例えば、表1のレイティング行列の例に関して以下の点に留意されたい。
・ユーザ#1及びユーザ#2はともに、アイテム#1にレイティング5を与えた。
○両者は類似しており、そのユークリッド距離は1である。
・ユーザ#1及びユーザ#3はともに、アイテム#2にレイティング1を与えた。
○両者は類似しているが、そのユークリッド距離は5である。
・ユーザ#3は、アイテム#2に1というレイティングを与えた。ユーザ#4は、アイテム#2に5というレイティングを与えた。
○両者は非類似であり、そのユークリッド距離は4である。
ユーザ#1は、1つのアイテムすなわちアイテム#1に対して、ユーザ#2と同じレイティングを与えている。同様に、ユーザ#1は、1つのアイテムすなわちアイテム#2に対して、ユーザ#3と同じレイティングを与えている。その一方で、入力空間において、ユーザ#2は、ユーザ#3とユーザ#1との近さよりも、ユーザ#1にずっと近いという結果である。入力空間を一層悪くさせるのは、非類似であるユーザ#3とユーザ#4との距離が4であるということであり、この距離は、類似しているユーザ#1とユーザ#3との距離よりも小さい。
【0010】
既知のレコメンダシステムは非線形な活性化関数に依拠していることから、ネットワークが深くなるとともに、入力空間の欠点を補うために(複数のネットワーク構造の)複数のユーザ表現及びアイテム表現が作られる。換言すれば、既知のレコメンダシステムは、ネットワーク構造を利用して、決まったインタラクションベクトルを入力として用いることの欠点を補う。
【発明の概要】
【発明が解決しようとする課題】
【0011】
エンティティがレコメンダシステムにますます依拠するにつれて、そのようなシステムにおける継続的な性能改善の需要が存在する。結果として、入力空間における欠点を克服するためのより良好な方法が必要とされている。
【課題を解決するための手段】
【0012】
本開示は、入力ベクトルとモデルパラメータとの双方がトレーニングにて学習される、機械学習に基づくレコメンダシステム及び方法に関する。既知のシステムとは異なり、入力ベクトルは固定されない。むしろ、入力ベクトルは学習可能なパラメータとして扱われ、これにより、より良好なユーザ表現及びアイテム表現がもたらされる。これにより、ひいては、より良好なユーザフィードバックの予測及びより良好な商品の推奨が図られる。
【0013】
トレーニングフェーズにおいて、レコメンダシステムは、一組のユーザについてのユーザ入力ベクトルと、一組のアイテムについてのアイテム入力ベクトルとを得る。ユーザ入力ベクトル及びアイテム入力ベクトルは、ユーザとアイテムの複数のペアの一部に対する既知のユーザフィードバック、例えば、アイテムに対するユーザレイティング又は購入履歴、を含むトレーニングデータに基づく。システムは、ユーザ入力ベクトル及びアイテム入力ベクトルに機械学習モデルを適用して、アイテムにつきユーザの予測されたフィードバックを得る(例えば、アイテムのそれぞれについての各ユーザの予測されたフィードバックを得る)。予測されたフィードバックの例は、予測されるレイティング、又はユーザがアイテムを購入する確率である。1つの実施形態では、機械学習モデルは、ニューラルネットワーク協調フィルタリングモデルである。
【0014】
対応する既知のフィードバックを有する、予測されたフィードバックを使用して、システムは、ユーザ入力ベクトル及びアイテム入力ベクトル、並びに機械学習モデルのモデルパラメータを更新して、ユーザの予測されたフィードバックと、対応する既知のユーザのフィードバックとの差を最小化する。システムは、その後、適用及び更新を複数回にわたり繰り返して、推奨及び予測フェーズにおいて使用するべく入力ベクトル及びモデルパラメータの双方を最適化する。前回の反復にて更新されたパラメータ及び入力ベクトルは、次回の反復において使用される。或る特定の実施形態では、システムは、入力ベクトル及びネットワークパラメータの更新を交互に行う(例えば、モデルパラメータを更新して、更新されたパラメータを有する機械学習モデルを入力ベクトルに適用するとともに、入力ベクトルを更新して、更新された入力ベクトルに機械学習モデルを適用し、モデルパラメータを更新する。以降も同様である)。トレーニングフェーズにて、ユーザ入力ベクトルは、組の中の各ユーザについて学習され、アイテム入力ベクトルは、組の中の各アイテムについて学習される。
【0015】
1つの実施形態では、ユーザ入力ベクトル及びアイテム入力ベクトルは、既知のユーザフィードバックに基づくインタラクションベクトルである。インタラクションベクトルは、ゼロ値及び非ゼロ値を有する。非ゼロ値は、フィードバックが既知であるユーザとアイテムのペアに対応し、ゼロ値は、フィードバックが未知であるユーザとアイテムのペアに対応する。ユーザインタラクションベクトル及びアイテムインタラクションベクトルの非ゼロ値は、トレーニングフェーズでの調整可能な変数かつ学習可能なパラメータとして扱われる。非ゼロ値は、トレーニングの開始時にユーザフィードバックに初期化され(例えば、ユーザのレイティングと等しくし)、システムは、次に、トレーニングフェーズにて非ゼロ要素を調整する。これにより、より良好なユーザフィードバック予測がもたらされる。なぜならば、機械学習モデルの第1層は、暗黙的なユーザとアイテムの埋込み行列として機能するためである。インタラクションベクトルの非ゼロ要素は、どの埋込みベクトルが第1層において選択されるのかを定める。非ゼロ要素は、埋込みベクトルに与えられる重みも定める。したがって、入力ベクトルの非ゼロ要素を学習することによって、システムは、本質的に、ユーザフィードバックに対する重みを固定する従来の方法とは異なり、機械学習モデルの第1層において使用する重みを学習している。
【0016】
学習された入力ベクトル及びモデルパラメータは、予測及び推奨フェーズにおいて使用され、テストユーザに1つ以上のアイテムが推奨される。テストユーザは、入力ベクトルがトレーニングフェーズにて学習された、一組のユーザの一部である。テストユーザに対して推奨を行うために、システムは、テストユーザにつきトレーニングフェーズにおいて学習されたユーザ入力ベクトルを得る。システムは、テストユーザがフィードバックを提供していないアイテム(例えば、テストユーザによって評価されていないアイテム、又はテストユーザがそれまでに購入していないアイテム)につきトレーニングフェーズにて学習されたアイテム入力ベクトルも得る。システムは、トレーニングフェーズにおいてトレーニングされた機械学習モデルを、テストユーザ及びアイテムにつき学習された入力ベクトルに適用して、アイテムにつきテストユーザの予測されたフィードバックを得る。
【0017】
システムは、テストユーザ、及び、テストユーザがフィードバックを提供していない複数の他のアイテムに関してこれらのステップを繰り返す。システムは、複数のアイテムにつきテストユーザの予測されたフィードバックを使用して、テストユーザに対して1つ以上のアイテムを推奨する。
【図面の簡単な説明】
【0018】
図1】1つの実施形態による、レコメンダシステムのための、トレーニングフェーズにおいて入力及びモデルパラメータを同時に学習する方法を示すフローチャートである。
図2】モデルパラメータ及び入力ベクトルが交互に更新されるトレーニング方法の更なる実施形態を示すフローチャートである。
図3】1つの実施形態による、複数のアイテムに対するユーザのフィードバックを予測し、予測されたフィードバックに基づいて、ユーザにアイテムを推奨する方法を示すフローチャートである。
図4】一例示の機械学習モデルのブロック図である。
図5】一例示のレコメンダシステムのブロック図である。
【発明を実施するための形態】
【0019】
本開示は、トレーニング時に入力ベクトル及びモデルパラメータの双方が学習される、機械学習ベースのレコメンダシステム及び方法に関する。本明細書において開示される方法は、コンピュータシステム(「システム」)によって実行される。
【0020】
レコメンダシステムについての、トレーニングフェーズと、予測及び推奨フェーズとの双方を本明細書にて説明する。トレーニングにおいて機械学習のモデルパラメータのみが学習される既知のレコメンダシステムとは異なり、ユーザ入力ベクトル及びアイテム入力ベクトルも、トレーニングフェーズにおいて学習可能なパラメータとして扱われる。トレーニングフェーズにおいて学習された入力ベクトル及びモデルパラメータは、アイテムに対するユーザフィードバックを予測し、予測及び推奨フェーズにおいて商品の推奨を行うために用いられる。これらのフェーズのそれぞれを以下に説明する。
【0021】
1.トレーニングフェーズにおける入力及びモデルパラメータの同時学習
1.1.トレーニング方法
図1を参照して、レコメンダシステムをトレーニングする方法を説明する。本システムは、一組のユーザについてのユーザ入力ベクトルと、一組のアイテムについてのアイテム入力ベクトルとを取得する(ステップ110)。入力ベクトルは、ユーザ・アイテムのペアの一部について既知のユーザフィードバックを含むトレーニングデータ(例えば、疎なレイティング行列)に基づく。ユーザフィードバックの例は、ユーザのレイティング又はユーザの購入履歴である。入力ベクトルの例は、疎なレイティング行列に基づくインタラクションベクトルである(更なる説明については、以下のセクション1.2を参照されたい)。
【0022】
本システムは、ユーザ入力ベクトル及びアイテム入力ベクトルに機械学習モデルを適用し、アイテムに対して予測されたユーザのフィードバックを得る(例えば、アイテムのそれぞれについて、予測された各ユーザのフィードバックを得る)(ステップ120)。機械学習モデルは、線形モデル、又は1つ以上のニューラルネットワークの組とすることができる。続いて本システムは、ユーザ入力ベクトル及びアイテム入力ベクトル、並びに機械学習モデルのパラメータを更新して、予測されたフィードバックと、対応する既知のフィードバックとの差を最小化する(ステップ130)。ステップ130の実行時に、本システムは、対応する既知のフィードバックが存在する、予測されたフィードバックを使用する。例えば、ユーザ1がアイテム10を評価していた場合、アイテム10について予測されたユーザ1のフィードバックと、アイテム10についてのユーザ1の既知のフィードバックとが、ステップ130において比較及び使用される。逆に、ユーザ1がアイテム11を評価していなかった場合、アイテム11について予測されたユーザ1のフィードバックは、ステップ130において使用されない。
【0023】
システムは、上述の、適用するステップ及び更新するステップ(すなわち、ステップ120及び130)を複数回にわたり繰り返して、推奨及び予測フェーズにおいて使用するための最適な入力ベクトル及び最適なモデルパラメータの双方を学習する。これらのステップは、決まった回数の反復にわたって、又は収束に達するまで、繰り返すことができる。前回の反復にて更新されたモデルパラメータ及び入力ベクトルは、次回の反復にて使用される。ユーザ入力ベクトルは、一組のユーザ内のユーザのそれぞれについて学習され、アイテム入力ベクトルは、一組のアイテム内のアイテムのそれぞれについて学習される。
【0024】
1.2.例示の実施形態
先に説明した方法の1つの実施形態において、機械学習モデルは、ニューラル協調フィルタリング(NCF)モデルであり、入力ベクトルは、ユーザインタラクションベクトル及びアイテムインタラクションベクトルである。図4にNCFレコメンダシステムを示す。システムへの入力は、ユーザインタラクションベクトル410及びアイテムインタラクションベクトル420である。ニューラルネットワークエンコーダ430、440は、ユーザインタラクションベクトル410及びアイテムインタラクションベクトル420を取り込み、ユーザ表現450及びアイテム表現460を生成する。予測用ニューラルネットワーク470は、ユーザ表現450及びアイテム表現460の組み合わせを受けて、予測されたレイティングを生成する。システムのトレーニングにおける変数は、入力ベクトル410、420、並びにネットワーク430、440及び470のパラメータである。
【0025】
ニューラルネットワークエンコーダ430、440のそれぞれは、多次元の入力ベクトルを受けて、低次元表現のベクトルを生成することができる任意のニューラルネットワークとすることができる。例えば、ニューラルネットワークエンコーダは、多層パーセプトロン、長・短期ネットワーク(LSTM:long short-term network)、又は畳込みネットワークとすることができる。予測用ニューラルネットワーク470は、多次元ベクトルの入力を受けて、ユーザフィードバックを予測するスカラ値を出力することができる任意のニューラルネットワーク(例えば、多層パーセプトロン)とすることができる。
【0026】
ユーザインタラクションベクトル及びアイテムインタラクションベクトルは、それぞれ、決まった要素及び学習可能な要素を有し、学習可能な要素は、フィードバックが既知であるユーザ・アイテムのペアに対応する。1つの実施形態では、ユーザインタラクションベクトル及びアイテムインタラクションベクトルは、疎なフィードバック行列に基づく。具体的には、
【数1】
が、疎なフィードバック行列を示すものとする。ただし、m及びnはそれぞれ、ユーザの数及びアイテムの数である。Rjkは、アイテムkに対するユーザjのフィードバックである。Rjk>0である場合、ユーザjは、アイテムkに対するフィードバック、例えば、1~5の範囲のレイティングを与えている。Rjk=0である場合、アイテムkに対するユーザjのフィードバックは未知である。第jのユーザについての初期のユーザインタラクション入力ベクトルは、Rj,::(行列Rの第j行)に設定され、第kのアイテムについての初期のアイテムインタラクションベクトルは、R:,k:(行列Rの第k列)に設定される。次に、インタラクションベクトルの非ゼロ要素が、トレーニングプロセス中に調整され、予測されたユーザフィードバックと対応する既知のユーザフィードバックとの差が最小化される。
【0027】
例えば、以下のレイティング行列を検討する。この行列において、ユーザは、アイテムを1~5で評価することができる。
【0028】
【表2】
【0029】
セル内のゼロという値は、そのセルに対応するユーザ・アイテムのペアについてレイティングが存在しないことを意味する。
【0030】
ユーザmについての初期のユーザインタラクションベクトルは、行列内の行mであり、これは、以下の通りである。
【0031】
【表3】
【0032】
同様に、アイテムnについての初期のアイテムインタラクションベクトルは、行列内の列nであり、これは、以下の通りである。
【0033】
【表4】
【0034】
上記ベクトルにおいて、非ゼロの値は、フィードバックが既知であるユーザ・アイテムのペアに対応し、ゼロ値は、フィードバックが未知であるユーザ・アイテムのペアに対応する。
【0035】
ユーザインタラクションベクトル及びアイテムインタラクションベクトルの非ゼロの値は、以下に示すように、トレーニングフェーズでの調整可能な変数かつ学習可能なパラメータとして扱われる。
【0036】
【表5】
【0037】
【表6】
【0038】
上記において、「?」は、ベクトル内の学習可能なパラメータを表し、「0」は、固定である。
【0039】
フィードバック行列の別の例は、購入履歴行列である。この購入履歴行列において、ゼロ値は、ユーザがアイテムを購入していないことを意味し、非ゼロ値(例えば、1)は、ユーザがアイテムを購入していることを意味する。レイティング行列に基づくインタラクションベクトルの事例と同様に、システムは、購入履歴行列に基づいてインタラクションベクトルの非ゼロ値を学習する。
【0040】
入力ベクトル内の非ゼロ要素をユーザフィードバックに対して固定したままにするのではなく、これらの非ゼロ要素を学習することにより、機械学習モデルの、正確な予測をもたらすユーザ表現及びアイテム表現を学習する能力が向上する。低次元のユーザ表現を生成するニューラルネットワークエンコーダは、いくつかの非線形な層を含む場合があるものの、第1の全結合層の出力は、ユーザ入力ベクトルと、一組のアイテム内のアイテムのそれぞれについてd次元のベクトルを含む重み行列とのドット積であり、それゆえ、暗黙的なアイテム埋込み行列として機能する。ユーザ入力ベクトルの非ゼロ要素は、どのアイテム埋込みベクトルが選択されるかを定めるため、ユーザニューラルネットワークエンコーダ(例えば、エンコーダ430)の第1層の出力は、ユーザによって評価されたアイテムの埋込みベクトルの加重和である。同様に、低次元のアイテム表現を生成するニューラルネットワークエンコーダの第1の全結合層の出力は、アイテム入力ベクトルと、一組のユーザ内のユーザのそれぞれについてd次元のベクトルを含む別の重み行列とのドット積であり、それゆえ、暗黙的なユーザ埋込み行列として機能する。アイテム入力ベクトルの非ゼロ要素は、どのユーザ埋込みベクトルが選択されるのかを定めるため、アイテムニューラルネットワークエンコーダ(例えば、エンコーダ440)の第1層の出力は、アイテムを評価したユーザの埋込みベクトルの加重和である。
【0041】
入力ベクトルの非ゼロ要素は、符号化用ニューラルネットワークのそれぞれの第1層における、埋込みベクトルに与えられる重みも決定する。したがって、入力ベクトルの非ゼロ要素を学習することにより、システムは、本質的にユーザフィードバックに対する重みを固定する従来の方法とは異なり、機械学習モデルの第1層において使用する重みを学習している。
【0042】
この実施形態による方法は、数学的には以下のように記述することができる。
【0043】
第jのユーザについて、システムは、集合N={l|Rjl≠0,1≦l≦n}を作成する。集合Nは、第jのユーザからのフィードバックが存在する全てのアイテムのインデックスを含む。システムは、ユーザ入力ベクトルの集合を
【数2】
として作成する。ただし、Uj,:は、第jのユーザの入力ベクトルである。システムはUjlを、l∈Nである場合に学習し、それ以外の場合には0に固定する。第jのユーザについてのネットワークの第1層の出力は、
【数3】
として計算される。ただし、Ujlは、学習されるパラメータであり、これが第lのアイテムに対する第jのユーザのレイティング値に固定される従来の手法とは異なる。
【0044】
第kのアイテムについて、システムは、集合N={l|Rlk≠0,1≦l≦m}を定める。集合Nは、第kのアイテムにレイティングを与えた全てのユーザのインデックスを含む。システムはまた、アイテム入力ベクトルの組を
【数4】
として定める。システムはVklを、l∈Nである場合に学習し、それ以外の場合には0に固定する。第kのアイテムについてのネットワークの第1層の出力は、
【数5】
として計算される。ただし、Vklは、学習されるパラメータであり、これが第kのアイテムに対する第lのユーザのレイティング値に固定される従来の手法とは異なる。
【0045】
目的関数は、以下の式(1)のように定められる。
【数6】
ただし、
f()は、ユーザ表現及びアイテム表現に基づいて予測されるフィードバックを計算するニューラルネットワーク(例えば、予測用ネットワーク470)であり、
は、第jのユーザ表現を示し、
は、第kのアイテム表現を示し、
は、ユーザ表現を計算するニューラルネットワーク(例えば、エンコーダ430)であり、
は、アイテム表現を計算するニューラルネットワーク(例えば、エンコーダ440)であり、
は、第jのユーザについてのgの第1層の出力であり、
は、第kのアイテムについてのgの第1層の出力であり、
θ=[θL-1 ,P,θL-1 、P,θui]は、3つのニューラルネットワークg、g及びf()(例えば、ネットワーク430、440及び470)の全ての学習可能なパラメータを含み、
及びPは、ユーザニューラルネットワークg及びアイテムニューラルネットワークgの第1層の重みを含み、
jlは、第jのユーザ入力ベクトルの非ゼロ値であって、学習可能なパラメータであり、
klは、第kのアイテム入力ベクトルの非ゼロ値であって、学習可能なパラメータであり、
指示関数を、
【数7】
によって表す。この指示関数は、argが真である場合には1を返し、さもなければ0を返す。
【0046】
1.3.入力ベクトル及びネットワークパラメータの交互最適化
図2に、トレーニング方法の別の実施形態を示す。この実施形態において、ネットワークパラメータ及び入力ベクトルは交互に更新される。上述したように、本システムは、ユーザ・アイテムの複数のペアの一部に対する既知のユーザフィードバックを含むトレーニングデータに基づいて、ユーザインタラクションベクトル、アイテムインタラクションベクトルなどの、ユーザ入力ベクトル及びアイテム入力ベクトルを取得する(ステップ210)。本システムは、ユーザ入力ベクトル及びアイテム入力ベクトルに機械学習モデルを適用して、アイテムに対して予測されるユーザフィードバックを得る(ステップ220)。本システムは、機械学習モデルのモデルパラメータを更新し、予測されたフィードバックと、対応する既知のフィードバックとの差を最小化する(ステップ230)。
【0047】
システムは、モデルパラメータを更新した後、更新されたパラメータを有する機械学習モデルをユーザ入力ベクトル及びアイテム入力ベクトルに適用して、新たな予測を得る(ステップ240)。次に、システムは、ユーザ入力ベクトル及びアイテム入力ベクトルを更新して、新たな予測されたフィードバックと、対応する既知のフィードバックとの差を最小化する(ステップ250)。その後、ステップ220~250が複数回にわたり繰り返され、前回の反復にて更新された入力ベクトル及びネットワークパラメータが、次回の反復にて使用される(ステップ260)。反復の回数は、定めておくこともできるし、収束に達するまで行うこともできる。
【0048】
1.4.予測されたフィードバックと既知のフィードバックとの差の計算
1つの実施形態では、システムは、予測されたユーザフィードバックと既知のユーザフィードバックとの差を、以下のように、予測されたフィードバックと実際のフィードバックとの平均二乗誤差を計算することにより、計算する。
【数8】
ただし、
Nは、観測値の数であり、
【数9】
は、予測されたフィードバックであり、
は、実際のフィードバックである。
【0049】
予測されたユーザフィードバックと既知のユーザフィードバックとの差を計算する別の選択肢は、実際のフィードバックと予測されたフィードバックとの平均絶対誤差を利用することである。
【0050】
2.予測及び推奨フェーズ
トレーニングフェーズにおいて学習された入力ベクトル及びモデルパラメータは、予測及び推奨フェーズにおいてテストユーザ(評価用ユーザ)に1つ以上のアイテムを推奨するのに用いられる。システムは、テストユーザに対して推奨を行うために、テストユーザについての、トレーニングフェーズにおいて学習されたユーザ入力ベクトルを得る(ステップ310)。システムは、テストユーザによって評価されていないアイテムについての、トレーニングフェーズにおいて学習されたアイテム入力ベクトルも得る(ステップ320)。
【0051】
システムは、トレーニングフェーズにおいてトレーニングされた機械学習モデルを、テストユーザ及び評価されていないアイテムについての、学習された入力ベクトルに適用して、アイテムに対するテストユーザの、予測されたフィードバック値を得る(ステップ330)。これは例えば、アイテムに対するユーザについての予測されたレイティング、又はユーザがアイテムを購入する尤度の予測とすることができる。
【0052】
システムは、テストユーザ、及び、テストユーザがフィードバックを提供していない複数の他のアイテムに関してこれらのステップを繰り返す(ステップ340)。システムは、複数のアイテムについてのテストユーザの予測されたフィードバックを使用して、テストユーザに1つ以上のアイテムを推奨する(ステップ350)。
【0053】
3.例示のアーキテクチャ
図5に、推奨システムのソフトウェアアーキテクチャの一例を示す。予測モジュール550は、トレーニングフェーズにおいて学習されたユーザ入力ベクトル530及びアイテム入力ベクトル540に基づいて、アイテムに対するユーザフィードバックを予測する。予測モジュール550は、機械学習モデル520を使用して予測を行う。1つの実施形態では、機械学習モデル520は、図4に示したように、ニューラル協調フィルタリングモデルである。トレーニングモジュール570は、既知のユーザ及びアイテムのフィードバックデータ、例えば、一組のアイテムについてのユーザレイティング又はアイテムについてのユーザ購入履歴データに基づいて、機械学習モデル520をトレーニングする。
【0054】
推奨モジュール560は、予測モジュール550からユーザフィードバックの予測を受け、これらの予測に基づいてユーザにアイテムを推奨する。例えば、推奨モジュール550は、任意の適用可能なビジネスルールにおける分析の後、予測された上位n個のフィードバックに関連付けられたアイテムを選択することができる。当業者であれば、推奨システムが、本明細書の開示に関連していない他のモジュールを有することができることを理解するであろう。
【0055】
4.全般
図1図5に関して述べた方法は、ソフトウェアにおいて具現化され、ソフトウェアを実行するコンピュータシステム(1つ以上のコンピューティングデバイスを備える)により実行される。コンピュータシステムが、1つ以上のメモリユニット、ディスク、又はソフトウェア命令を記憶するための他の物理的なコンピュータ可読記憶媒体と、ソフトウェア命令を実行するための1つ以上のプロセッサとを有することは、当業者であれば理解されよう。当業者であれば、コンピュータシステムはスタンドアロンとすることもできるし、サーバとしてコンピュータネットワークに接続することもできることも理解するであろう。
【0056】
本発明の趣旨又は不可欠な特徴から逸脱することなく、本発明が他の具体的な形態で具現される場合があることは当業者には理解されよう。したがって、上記の開示は、特許請求の範囲に記載の本発明の範囲を例示するものであり、限定するものではないことを目的としている。
図1
図2
図3
図4
図5