(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024034520
(43)【公開日】2024-03-13
(54)【発明の名称】情報処理方法、情報処理装置およびプログラム
(51)【国際特許分類】
G06Q 10/04 20230101AFI20240306BHJP
【FI】
G06Q10/04
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2022138787
(22)【出願日】2022-08-31
(71)【出願人】
【識別番号】306037311
【氏名又は名称】富士フイルム株式会社
(74)【代理人】
【識別番号】100083116
【弁理士】
【氏名又は名称】松浦 憲三
(74)【代理人】
【識別番号】100170069
【弁理士】
【氏名又は名称】大原 一樹
(74)【代理人】
【識別番号】100128635
【弁理士】
【氏名又は名称】松村 潔
(74)【代理人】
【識別番号】100140992
【弁理士】
【氏名又は名称】松浦 憲政
(72)【発明者】
【氏名】佐藤 政寛
(72)【発明者】
【氏名】谷口 友紀
(72)【発明者】
【氏名】大熊 智子
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049AA04
(57)【要約】
【課題】モデルを学習する段階において導入先の施設のドメインが不明な場合であっても、未知の導入先の施設に対して高性能なモデルを用意することができる情報処理方法、情報処理装置およびプログラムを提供する。
【解決手段】複数のユーザーと複数のアイテムとのそれぞれの組み合わせに対してユーザーのアイテムに対する行動が示されたデータセットをドメインシフトにロバストな複数のサブグループに分割することと、サブグループごとにユーザーのアイテムに対する行動予測を行うローカルモデルを生成することと、サブグループごとに生成された複数のローカルモデルを結合することと、を含む情報処理方法。
【選択図】
図20
【特許請求の範囲】
【請求項1】
1つ以上のプロセッサが実行する情報処理方法であって、
前記1つ以上の前記プロセッサが、
複数のユーザーと複数のアイテムとのそれぞれの組み合わせに対してユーザーのアイテムに対する行動が示されたデータセットをドメインシフトにロバストな複数のサブグループに分割することと、
前記サブグループごとにユーザーのアイテムに対する行動予測を行うローカルモデルを生成することと、
前記サブグループごとに生成された複数の前記ローカルモデルを結合することと、
を含む情報処理方法。
【請求項2】
前記データセットは、複数のユーザーと複数のアイテムと複数のコンテキストとのそれぞれの組み合わせに対してユーザーのアイテムに対する行動が示される、
請求項1に記載の情報処理方法。
【請求項3】
前記1つ以上の前記プロセッサが、前記ユーザーの属性データ、前記アイテムの属性データ、および前記コンテキストの属性データのうちの少なくとも1つをもとに前記データセットを分割すること、
を含む請求項2に記載の情報処理方法。
【請求項4】
前記1つ以上の前記プロセッサが、
複数の前記ローカルモデルを結合したモデルのドメインシフトに対するロバスト性を評価することと、
前記評価の結果が基準を満たしている場合に前記サブグループの分割を採用することと、
を含む請求項1に記載の情報処理方法。
【請求項5】
前記1つ以上の前記プロセッサが、前記データセットのドメインと前記評価に用いる前記データセットのドメインとの間で確率分布の相違が相対的に大きい属性データを用いて複数の前記サブグループに分割すること、
を含む請求項4に記載の情報処理方法。
【請求項6】
前記1つ以上の前記プロセッサが、各ユーザーが少なくとも1つ以上の前記サブグループに属した複数の前記サブグループに分割すること、
を含む請求項1に記載の情報処理方法。
【請求項7】
前記1つ以上の前記プロセッサが、各ユーザーが少なくとも一定数以上のアイテムを属した複数の前記サブグループに分割すること、
を含む請求項1に記載の情報処理方法。
【請求項8】
前記1つ以上の前記プロセッサが、前記サブグループごとにそれぞれ異なる種類の前記ローカルモデルを生成すること、
を含む請求項1に記載の情報処理方法。
【請求項9】
前記1つ以上の前記プロセッサが、
前記データセットのうち前記サブグループより広い範囲のデータをもとに事前学習モデルを生成することと、
前記事前学習モデルを初期パラメータとして前記ローカルモデルを生成することと、
を含む請求項1から8のいずれか1項に記載の情報処理方法。
【請求項10】
前記1つ以上の前記プロセッサが、複数の前記ローカルモデルを結合したモデルによってユーザーに対して推薦するアイテムリストを出力すること、
を含む請求項1に記載の情報処理方法。
【請求項11】
1つ以上のプロセッサと、
前記1つ以上の前記プロセッサに実行させる命令が記憶される1つ以上のメモリと、を備える情報処理装置であって、
前記1つ以上の前記プロセッサは、
複数のユーザーと複数のアイテムとのそれぞれの組み合わせに対してユーザーのアイテムに対する行動が示されたデータセットをドメインシフトにロバストな複数のサブグループに分割し、
前記サブグループごとにユーザーのアイテムに対する行動予測を行うローカルモデルを生成し、
前記サブグループごとに生成された複数の前記ローカルモデルを結合する、
情報処理装置。
【請求項12】
コンピュータに、
複数のユーザーと複数のアイテムとのそれぞれの組み合わせに対してユーザーのアイテムに対する行動が示されたデータセットをドメインシフトにロバストな複数のサブグループに分割する機能と、
前記サブグループごとにユーザーのアイテムに対する行動予測を行うローカルモデルを生成する機能と、
前記サブグループごとに生成された複数の前記ローカルモデルを結合する機能と、
を実現させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理方法、情報処理装置およびプログラムに係り、特に、ドメインシフトにロバストな推薦を行う情報推薦技術に関する。
【背景技術】
【0002】
多くのアイテムの中からユーザーが自分に合ったベストなものを選ぶことは、時間的にも認知能力的にも難しい。たとえばEC(Electronic Commerce)サイトのユーザーであれば、アイテムはECサイトで扱っている商品であり、文書情報管理システムのユーザーであればアイテムは格納されている文書情報である。そこでユーザーの選択を補助するために、アイテムの中から選択候補を提示する技術である情報推薦技術が研究されている。
【0003】
一般に、推薦システムは導入先の施設で収集したデータをもとに学習する。しかしながら、学習データと異なる施設に推薦システムを導入すると、モデルの予測精度が低下してしまう問題がある。未知の他施設では機械学習モデルがうまく機能しない問題はドメインシフトとよばれ、ドメインシフトに対するロバスト性向上の研究であるdomain generalizationが近年画像認識を中心に研究が活発化している。しかしながら、情報推薦技術においてdomain generalizationはまだ研究事例がない。
【0004】
モデル学習時に導入先施設のデータが得られない場合も、導入時に導入先施設で収集されたデータがあれば、そのデータでモデルを評価してベストなモデルを選択することができる。しかし導入時にも導入先施設のデータがない場合、またはデータがあってもアクセスできない場合には、複数モデルから選択することはできない。
【0005】
非特許文献1には、ユーザーを複数のサブグループに分割し、サブグループごとに協調フィルタリング(部分モデル)による予測を行うことで、推薦時の計算コストを低減する技術が記載されている。
【0006】
非特許文献2には、ユーザーとアイテムのペアを複数のサブグループに分割し、サブグループごとに協調フィルタリング(部分モデル)による予測を行い、これにより計算コスト低減と予測精度向上とをする技術が記載されている。
【0007】
しかしながら、非特許文献1および非特許文献2は、いずれもドメイン汎化性を目指した手法ではないため、サブグループはドメイン汎化性を考慮せずに構築しており、各部分モデルがドメインシフトに対してロバストでない。
【0008】
特許文献1には、医療情報を想定した技術であって、各施設で疑似的なデータ(プロキシデータ)を生成してグローバルサーバーに共有する技術が記載されている。この技術によれば、秘匿性の高い実データ(プライベートデータ)を共有することなく、グローバルモデルを学習できることができる。
【0009】
特許文献2には、推薦システムを想定した技術であって、複数施設のデータを用いて特徴量選択を行う技術が記載されている。この技術は、施設間で共通のユーザーサンプルのデータをもとにツリーモデル(XGBoostなど)の特徴量重要度を用いている。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特表2019-526851号公報
【特許文献2】特開2021-121922号公報
【非特許文献】
【0011】
【非特許文献1】Badrul Sarwar, George Karypis, Joseph Konstan, and John Riedl, "Recommender Systems for Large-Scale E-Commerce Scalable Neighborhood Formation Using Clustering "(2002 ICCIT)
【非特許文献2】Bin Xu, Jiajun Bu, Chun Chen, Deng Cai, "An exploration of improving collaborative recommender systems via user-item subgroups "(2012 WWW)
【非特許文献3】Ivan Cantador, Ignacio Fenandez-Tobias, Shlomo Bwrkovsky, Paolo Cremonesi, Chapter 27:"Cross-domain Recommender System"(2015 Springer)
【発明の概要】
【発明が解決しようとする課題】
【0012】
しかしながら、特許文献1および特許文献2に記載の技術では、各施設のモデルはドメイン汎化性がなく、未知の他施設に対するロバスト性が担保できない。このように、学習ドメインと導入先ドメインとが異なる場合には、ドメインシフトにロバストな情報を推薦することができないという問題点があった。
【0013】
本発明はこのような事情に鑑みてなされたもので、モデルを学習する段階において導入先の施設のドメインが不明な場合であっても、未知の導入先の施設に対して高性能なモデルを用意することができる情報処理方法、情報処理装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0014】
上記目的を達成するために、本開示の第1態様に係る情報処理方法は、1つ以上のプロセッサが実行する情報処理方法であって、1つ以上のプロセッサが、複数のユーザーと複数のアイテムとのそれぞれの組み合わせに対してユーザーのアイテムに対する行動が示されたデータセットをドメインシフトにロバストな複数のサブグループに分割することと、サブグループごとにユーザーのアイテムに対する行動予測を行うローカルモデルを生成することと、サブグループごとに生成された複数のローカルモデルを結合することと、を含む。
【0015】
本態様によれば、ドメインシフトにロバストなサブグループのローカルモデルが生成されるので、複数のローカルモデルを結合することで、モデルを学習する段階において導入先の施設のドメインが不明な場合であっても、未知の導入先の施設に対して高性能なモデルを用意することが可能になる。
【0016】
第1態様に係る情報処理方法において、サブグループから生成されたローカルモデルがドメインシフトにロバストである場合、そのサブグループはドメインシフトにロバストである。第1態様に係る情報処理方法において、ドメインシフトにロバストな複数のサブグループに分割するとは、サブグループに分割する際にそのサブグループがドメインシフトにロバストであることを意図した場合に限定されず、分割したサブグループが結果としてドメインシフトにロバストであった場合を含む。
【0017】
第1態様に係る情報処理方法において、データセットは、単一の施設において収集されたユーザーのアイテムに対する行動のデータから生成されたものであってもよい。また、第1態様に係る情報処理方法において、1つ以上のプロセッサが、ユーザーの属性データ、およびアイテムの属性データのうちの少なくとも一方をもとにデータセットを分割してもよい。
【0018】
本開示の情報処理方法は、情報推薦を行うシステムに適用されるモデルを生成するための機械学習方法として理解することができる。また、本開示の情報処理方法は、モデルを生産する方法(製造方法)として理解することができる。
【0019】
本開示の第2態様に係る情報処理方法は、第1態様に係る情報処理方法において、データセットは、複数のユーザーと複数のアイテムと複数のコンテキストとのそれぞれの組み合わせに対してユーザーのアイテムに対する行動が示されてもよい。
【0020】
本開示の第3態様に係る情報処理方法は、第1態様から第2態様に係る情報処理方法において、1つ以上のプロセッサが、ユーザーの属性データ、アイテムの属性データ、およびコンテキストの属性データのうちの少なくとも1つをもとにデータセットを分割してもよい。例えば、1つ以上のプロセッサが、同一のユーザーの属性データを有するユーザーからなるサブグループに分割してもよい。1つ以上のプロセッサが、同一のユーザーの属性データを有するユーザーからなるサブグループであって、かつ同一のアイテムの属性データを有するアイテムからなるサブグループに分割してもよい。1つ以上のプロセッサが、同一のユーザーの属性データを有するユーザーからなるサブグループであり、かつ同一のアイテムの属性データを有するアイテムからなるサブグループであり、かつ同一のコンテキストの属性データを有するコンテキストからなるサブグループに分割してもよい。同一の属性データをもとにデータセットを分割する場合に限定されず、同一または近似する属性データをもとにデータセットを分割してもよい。
【0021】
本開示の第4態様に係る情報処理方法は、第1態様から第4態様のいずれか1つの態様に係る情報処理方法において、1つ以上のプロセッサが、複数のローカルモデルを結合したモデルのドメインシフトに対するロバスト性を評価することと、評価の結果が基準を満たしている場合にサブグループの分割を採用することと、を含んでもよい。モデルのドメインシフトに対するロバスト性の評価の結果が基準を満たしている場合、分割された複数のサブグループはドメインシフトにロバストである。
【0022】
本開示の第5態様に係る情報処理方法は、第4態様に係る情報処理方法において、1つ以上のプロセッサが、データセットのドメインと評価に用いるデータセットのドメインとの間で確率分布の相違が相対的に大きい属性データを用いて複数のサブグループに分割することを含んでもよい。確率分布の相違が相対的に大きい属性データを用いてデータセットを複数のサブグループに分割することで、ドメインシフトにロバストな複数のサブグループに分割することができる。
【0023】
本開示の第6態様に係る情報処理方法は、第1態様から第5態様のいずれか1つの態様に係る情報処理方法において、1つ以上のプロセッサが、各ユーザーが少なくとも1つ以上のサブグループに属した複数のサブグループに分割することを含んでもよい。
【0024】
本開示の第7態様に係る情報処理方法は、第1態様から第6態様のいずれか1つの態様に係る情報処理方法において、1つ以上のプロセッサが、各ユーザーが少なくとも一定数以上のアイテムを属した複数のサブグループに分割することを含んでもよい。一定数以上のアイテムとは、全アイテムに対して一定割合以上のアイテムという概念を含んでもよい。
【0025】
本開示の第8態様に係る情報処理方法は、第1態様から第7態様のいずれか1つの態様に係る情報処理方法において、1つ以上のプロセッサが、サブグループごとにそれぞれ異なる種類のローカルモデルを生成することを含んでもよい。
【0026】
本開示の第9態様に係る情報処理方法は、第1態様から第8態様のいずれか1つの態様に係る情報処理方法において、1つ以上のプロセッサが、データセットのうちサブグループより広い範囲のデータをもとに事前学習モデルを生成することと、事前学習モデルを初期パラメータとしてローカルモデルを生成することと、を含んでもよい。
【0027】
本開示の第10態様に係る情報処理方法は、第1態様から第9態様のいずれか1つの態様に係る情報処理方法において、1つ以上のプロセッサが、複数のローカルモデルを結合したモデルによってユーザーに対して推薦するアイテムリストを出力することを含んでもよい。
【0028】
上記目的を達成するために、本開示の第11態様に係る情報処理装置は、1つ以上のプロセッサと、1つ以上のプロセッサに実行させる命令が記憶される1つ以上のメモリと、を備える情報処理装置であって、1つ以上のプロセッサは、複数のユーザーと複数のアイテムとのそれぞれの組み合わせに対してユーザーのアイテムに対する行動が示されたデータセットをドメインシフトにロバストな複数のサブグループに分割し、サブグループごとにユーザーのアイテムに対する行動予測を行うローカルモデルを生成し、サブグループごとに生成された複数のローカルモデルを結合する。
【0029】
第11態様の情報処理装置において、上述した情報処理方法と同様の具体的態様を含む構成とすることができる。
【0030】
上記目的を達成するために、本開示の第12態様に係るプログラムは、コンピュータに、複数のユーザーと複数のアイテムとのそれぞれの組み合わせに対してユーザーのアイテムに対する行動が示されたデータセットをドメインシフトにロバストな複数のサブグループに分割する機能と、サブグループごとにユーザーのアイテムに対する行動予測を行うローカルモデルを生成する機能と、サブグループごとに生成された複数のローカルモデルを結合する機能と、を実現させる。
【0031】
第12態様のプログラムにおいて、上述した情報処理方法と同様の具体的態様を含む構成とすることができる。
【0032】
上記目的を達成するために、本開示の他の態様に係る情報処理方法は、1つ以上のプロセッサが実行する情報処理方法であって、1つ以上のプロセッサが、複数のユーザーと複数のアイテムとのそれぞれの組み合わせに対してユーザーのアイテムに対する行動が示されたデータセットを複数のサブグループに分割することと、サブグループごとにユーザーのアイテムに対する行動予測を行うローカルモデルを生成することと、サブグループごとに生成された複数のローカルモデルを結合することと、複数のローカルモデルのドメインシフトに対するロバスト性を評価することと、評価の結果が基準を満たしている場合にサブグループの分割を採用することと、を含む。
【0033】
本態様によれば、ドメインシフトにロバストなサブグループのローカルモデルが生成されるので、複数のローカルモデルを結合することで、モデルを学習する段階において導入先の施設のドメインが不明な場合であっても、未知の導入先の施設に対して高性能なモデルを用意することが可能になる。
【発明の効果】
【0034】
本開示によれば、モデルを学習する段階において導入先の施設のドメインが不明な場合であっても、多様な施設に対応可能な複数のモデルを生成することが可能であり、未知の導入先の施設に対して高性能なモデルを用意することができる。
【図面の簡単な説明】
【0035】
【
図1】
図1は、典型的な推薦システムの概念図である。
【
図2】
図2は、推薦システムの構築に広く用いられている教師あり機械学習の例を示す概念図である。
【
図3】
図3は、推薦システムの典型的な導入フローを示す説明図である。
【
図4】
図4は、導入先の施設のデータが得られない場合における推薦システムの導入フローの説明図である。
【
図5】
図5は、ドメイン適応によるモデルの学習を行う場合の説明図である。
【
図6】
図6は、学習したモデルの性能を評価するステップを含む推薦システム導入フローの説明図である。
【
図7】
図7は、機械学習に用いる学習用データと評価用データの例を示す説明図である。
【
図8】
図8は、データセットの違いによるモデルの性能の違いを模式的に示すグラフである。
【
図9】
図9は、学習ドメインと導入先ドメインとが異なる場合の推薦システム導入フローの例を示す説明図である。
【
図10】
図10は、導入先施設のデータがない場合の課題を示す説明図である。
【
図12】
図12は、連合学習におけるローカルモデルを説明するための図である。
【
図13】
図13は、連合学習におけるローカルモデルを説明するための図である。
【
図14】
図14は、本開示におけるローカルモデルを説明するためのデータセットの図である。
【
図15】
図15は、本開示におけるローカルモデルを説明するためのデータセットの図である。
【
図16】
図16は、情報処理装置のハードウェア構成の例を概略的に示すブロック図である。
【
図17】
図17は、情報処理装置の機能的構成を示す機能ブロック図である。
【
図19】
図19は、サブグループの分割を説明するための図である。
【
図20】
図20は、実施形態1に係る情報推薦フローを示す説明図である。
【
図21】
図21は、ユーザーとアイテムとコンテキストとの組み合わせのデータセットを説明するための図である。
【
図22】
図22は、実施形態3に係るサブグループ分割フローを示す説明図である。
【
図23】
図23は、実施形態3に係るサブグループ分割フローを示す説明図である。
【
図25】
図25は、実施形態4に係るサブグループ分割フローを示す説明図である。
【
図26】
図26は、サブグループ分割する属性について説明するための図である。
【
図27】
図27は、サブグループごとのローカルモデルについて説明するための図である。
【
図28】
図28は、実施形態7に係る学習フローを示す説明図である。
【発明を実施するための形態】
【0036】
以下、添付図面に従って本発明の好ましい実施形態について説明する。
【0037】
《情報推薦技術の概説》
はじめに、情報推薦技術の概要と課題について具体例を示して概説する。情報推薦技術は、ユーザーに対してアイテムを推薦(サジェスト)するための技術である。
【0038】
図1は、典型的な推薦システム10の概念図である。推薦システム10は、ユーザーの情報と、コンテキストの情報とを入力として受け付け、コンテキストに応じて当該ユーザーに推薦するアイテムの情報を出力する。コンテキストは、様々な「状況」を意味し、例えば、曜日、時間帯、または天気などがあり得る。アイテムは、例えば、本、動画、飲食店など、様々な対象があり得る。
【0039】
推薦システム10は、複数のアイテムを同時に推薦するのが一般的である。
図1では、推薦システム10が3つのアイテムIT1、IT2、IT3を推薦する例が示されている。推薦したアイテムIT1、IT2、IT3に対してユーザーがポジティブな反応をすると、一般に推薦は成功したとみなされる。ポジティブな反応とは、例えば、購入、視聴、または訪問などである。このような推薦技術は、例えば、ECサイトおよび飲食店を紹介するグルメサイトなどにおいて広く活用されている。
【0040】
推薦システム10は、機械学習の技術を用いて構築される。
図2は、推薦システム10の構築に広く用いられている教師あり機械学習の例を示す概念図である。一般には、過去のユーザーの行動履歴を基に正例および負例を用意して、ユーザーとコンテキストとの組み合わせを予測モデル12に入力し、予測誤差が小さくなるように予測モデル12を訓練する。例えば、ユーザーが閲覧した閲覧アイテムを正例、閲覧しなかった非閲覧アイテムを負例とする。予測誤差が収束するまで機械学習が行われ、目標とする予測性能が獲得される。
【0041】
こうして訓練された学習済み(訓練済み)の予測モデル12を用いて、ユーザーとコンテキストの組合せに対して予測される閲覧確率が高いアイテムを推薦する。例えば、学習済みの予測モデル12に対し、あるユーザーAとコンテキストβとの組合せを入力すると、予測モデル12は、ユーザーAがコンテキストβの条件の下でアイテムIT3のような文書を閲覧する確率が高いと推論し、当該ユーザーAに対してアイテムIT3に近いアイテムを推薦する。なお、推薦システム10の構成によっては、コンテキストを考慮せずにユーザーに対してアイテムを推薦することも多い。
【0042】
〔推薦システムの開発に用いるデータの例〕
ユーザーの行動履歴は、機械学習における「正解データ」と略等しいものである。厳密には、過去の行動履歴から次の(未知の)行動を推論するというタスク設定と理解されるが、過去の行動履歴を基に潜在的な特徴量を学習するのが一般的である。
【0043】
ユーザーの行動履歴としては、例えば、本の購入履歴、動画の視聴履歴、または飲食店の訪問履歴などがあり得る。
【0044】
また、主要な特徴量としては、ユーザー属性と、アイテム属性とがある。ユーザー属性は、例えば、性別、年代、職業、家族構成、および居住エリアなど、様々な要素があり得る。アイテム属性は、例えば、本のジャンル、値段、動画のジャンル、長さ、飲食店のジャンル、場所など様々な要素があり得る。
【0045】
〔モデルの構築と運用〕
図3は、推薦システムの典型的な導入フローを示す説明図である。ここでは、ある施設に推薦システムを導入する際の典型的なフローを示す。推薦システムの導入は、まず、目的の推薦タスクを行うモデル14を構築し(ステップ1)、その後、構築したモデル14を導入して運用する(ステップ2)。モデル14を「構築する」とは、機械学習モデルの場合、学習(訓練)用のデータを用いてモデル14の学習を行い、実用レベルの推薦性能を満たす予測モデル(推薦モデル)を作成することを含む。モデル14を「運用する」とは、例えば、ユーザーとコンテキストとの組合せの入力に対して、学習済みのモデル14から推薦アイテムリストの出力を得ることである。
【0046】
モデル14の構築には、学習用のデータが必要である。
図3に示すように、一般に推薦システムのモデル14は、導入先の施設で収集したデータを基に学習が行われる。導入先の施設から収集されたデータを用いて学習を行うことにより、モデル14は導入先の施設のユーザーの振る舞いを学習し、導入先の施設のユーザーに対して精度のよい推薦アイテムの予測が可能である。
【0047】
しかし、様々な事情により、導入先の施設のデータが得られない場合がある。例えば、企業の社内システムまたは病院の院内システムにおける文書情報推薦システムなどの場合、推薦モデルを開発する企業が導入先の施設のデータにアクセスできないことが多い。導入先の施設のデータが得られない場合、代わりに、異なる施設で収集されたデータをもとに学習する必要がある。
【0048】
図4は、導入先の施設のデータが得られない場合における推薦システムの導入フローの説明図である。導入先の施設とは異なる施設で収集されたデータを用いて学習したモデル14を導入先の施設で運用すると、施設間のユーザーの振る舞いの違いなどにより、モデル14の予測精度が低下してしまう問題がある。
【0049】
学習した施設と異なる未知の他施設では機械学習モデルがうまく機能しない問題は、広義にはモデル14を学習したソースドメインと、モデル14を適用するターゲットドメインが異なるドメインシフトの問題に対するロバスト性を向上させるという技術課題として把握される。ドメイン汎化(Domain generalization)に関連する問題設定として、ドメイン適応(Domain adaptation)がある。これはソースドメインとターゲットドメインの両方のデータを用いて学習する方法である。ターゲットドメインのデータが存在するにもかかわらず異なるドメインのデータを使う目的は、ターゲットドメインのデータ量が少なく学習に不十分であるのを補うためである。
【0050】
図5は、ドメイン適応によるモデル14の学習を行う場合の説明図である。ターゲットドメインである導入先の施設で収集されたデータのデータ量は、異なる施設で収集されたデータよりもデータ量に比べて相対的に少ないものの、両方のデータを用いて学習を行うことにより、モデル14は、導入先の施設のユーザーの振る舞いについてもある程度の精度で予測することが可能になる。
【0051】
〔ドメインの説明〕
上記の「施設」の違いはドメインの違いの一種である。情報推薦におけるドメイン適応の研究に関する文献である非特許文献3では、ドメインの違いが以下の4つに分類されている。
【0052】
[1]アイテム属性レベル(Item attribute level):例えば、コメディ映画とホラー映画は別ドメイン。
[2]アイテムタイプレベル(Item type level):例えば、映画と連続テレビドラマは別ドメイン。
[3]アイテムレベル(Item level):例えば、映画と本は別ドメイン。
[4]システムレベル(System level):例えば、映画館の映画とテレビ放映の映画は別ドメイン。
【0053】
図5等に示す「施設」の違いは、上記の4分類のうちの[4]システムレベルのドメインに該当する。
【0054】
フォーマルにドメインを定義すると、ドメインは目的変数Yと説明変数Xの同時確率分布P(X,Y)で規定され、Pd1(X,Y)≠ Pd2(X,Y)の場合、d1とd2は異なるドメインである。
【0055】
同時確率分布P(X,Y)は、説明変数の分布P(X)と条件付き確率分布P(Y|X)との積、または目的変数の分布P(Y)と条件付き確率分布P(Y|X)との積で表すことができる。
【0056】
P(X,Y)=P(Y|X)P(X)=P(X|Y)P(Y)
したがって、P(X)、P(Y)、P(Y|X)およびP(X|Y)のうち1つ以上が変わると異なるドメインとなる。
【0057】
〔ドメインシフトの典型パターン〕
[共変量シフト]説明変数の分布P(X)が異なる場合、共変量シフト(Covariate shift)と呼ばれる。例えば、データセット間でユーザー属性の分布が異なる場合、より具体的には男女比率が異なる場合などが共変量シフトに該当する。
【0058】
[事前確率シフト]目的変数の分布P(Y)が異なる場合、事前確率シフト(Prior probability shift)と呼ばれる。例えば、データセット間で平均閲覧率および平均購入率が異なる場合などが事前確率シフトに該当する。
【0059】
[コンセプトシフト]条件付き確率分布P(Y|X)およびP(X|Y)が異なる場合、コンセプトシフト(Concept shift)と呼ばれる。例えば、ある企業の研究開発部門がデータ分析資料を読む確率がP(Y|X)にあたるが、これがデータセット間で異なる場合などがコンセプトシフトに該当する。
【0060】
ドメイン適応あるいはドメイン汎化性の研究は、上記いずれかのパターンを主要因として想定しているものと、特にどのパターンが主要因であるかを考慮せずにP(X,Y)が変化していることへの対処を考えるものと、がある。なお、前者の場合、特に、共変量シフトを想定しているものが多い。
【0061】
〔ドメインシフトが影響する理由〕
予測あるいは分類のタスクを行う予測/分類モデルは、説明変数Xと目的変数Yの関係性に基づいて推論を行うため、P(Y|X)が変化すれば当然、予測/分類性能は低下する。また、予測/分類モデルを機械学習する際には学習データ内において予測/分類誤差の最小化を行うが、例えば、説明変数がX=X_1になる頻度が、X=X_2になる頻度より大きい場合、つまりP(X=X_1)>P(X=X_2)である場合、X=X_1のデータの方がX=X_2のデータより多いので、X=X_1の誤差低減はX=X_2の誤差低減より優先して学習される。そのためP(X)が施設間で変化する場合も、予測/分類性能は低下する。
【0062】
ドメインシフトは、情報推薦に限らず、いろいろなタスクのモデルについて問題になり得る。例えば、社員の退職リスクを予測するモデルについて、ある企業のデータを用いて学習した予測モデルを別の企業で運用する場合にドメインシフトが問題になり得る。
【0063】
また、細胞の抗体生産量を予測するモデルについて、ある抗体のデータを用いて学習したモデルを、別の抗体で運用する場合にドメインシフトが問題になり得る。また、顧客の声(Voice of Customer:VOC)を分類するモデル、例えば、VOCを「商品機能」、「サポート対応」、および「その他」に分類するモデルについて、ある商品に関するデータを用いて学習した分類モデルを別の商品で運用する場合にドメインシフトが問題になり得る。
【0064】
〔モデルの導入前評価について〕
学習したモデル14を実際の施設等に導入する前に、モデル14の性能評価を行うことが多い。性能評価は導入の可否判断、およびモデルあるいは学習手法などの研究開発のために必要である。
【0065】
図6は、学習したモデル14の性能を評価するステップを含む推薦システム導入フローの説明図である。
図6では、
図5で説明したステップ1(モデル14を学習するステップ)とステップ2(モデル14を運用するステップ)との間に、「ステップ1.5」として、モデル14の性能を評価するステップが追加されている。その他の構成は
図5と同様である。
図6に示すように、一般的な推薦システム導入のフローでは、導入先の施設で収集されたデータを学習用データと評価用データとに分割することが多い。評価用データを用いてモデル14の予測性能を確認してから、モデル14の運用が開始される。
【0066】
しかし、ドメイン汎化のモデル14を構築する場合は、学習用データと評価用データは異なるドメインである必要がある。さらに、ドメイン汎化においては、学習用データについても複数ドメインのデータを用いることが好ましく、学習に使えるドメインが多い方がより好ましい。
【0067】
〔汎化性について〕
図7は、機械学習に用いる学習用データと評価用データの例を示す説明図である。あるドメインd1の同時確率分布Pd1(X,Y)から得られるデータセットは、学習用データと、評価用データとに分けられる。学習用データと同一ドメインの評価用データを「第1の評価用データ」といい、
図7において「評価用データ1」と表記する。また、ドメインd1と異なるドメインd2の同時確率分布Pd2(X,Y)から得られるデータセットを用意し、これを評価用データとして用いる。学習用データと異なるドメインの評価用データを「第2の評価用データ」といい、
図7において「評価用データ2」と表記する。
【0068】
ドメインd1の学習用データを用いてモデル14の学習が行われ、ドメインd1の第1の評価用データと、ドメインd2の第2の評価用データとのそれぞれを用いて学習済みのモデル14の性能が評価される。
【0069】
図8は、データセットの違いによるモデルの性能の違いを模式的に示すグラフである。学習用データ内でのモデル14の性能を性能A、第1の評価用データでのモデル14の性能を性能B、第2の評価用データでのモデル14の性能を性能Cとすると、通常は、
図8のように、性能A>性能B>性能Cのような関係になる。
【0070】
モデル14の汎化性能の高さは一般には、性能Bが高いこと、または性能AとBの差が小さいことを指す。つまり、学習用データに過剰適合せずに、学習していないデータに対しても予測の性能が高いことを目指している。
【0071】
本明細書におけるドメイン汎化性の文脈では、性能Cが高いこと、または性能Bと性能Cの差が小さいことを指す。つまり、学習に用いたドメインと異なるドメインでも、変わらずに高い性能が出ることを目指している。
【0072】
本実施形態では、モデル14の学習を行う際に、導入先の施設のデータを用いることができないものの、導入前のモデル評価(導入前評価)の際に導入先の施設で収集された行動履歴を含むデータ(正解データ)を用意することができるという状況を想定する。
【0073】
このような場合、導入先の施設とは異なる施設で収集されたデータを用いてモデルを学習することにより複数の候補モデルを生成し、導入前に、各候補モデルについて導入先の施設で収集されたデータを用いて性能を評価することにより、評価の結果に基づいて複数の候補モデルの中から最適なモデルを選択して導入先の施設に適用することが考えられる。
図9にその例を示す。
【0074】
図9は、学習ドメインと導入先ドメインとが異なる場合の推薦システム導入フローの例を示す説明図である。
図9に示すように、導入先の施設とは異なる施設で収集されたデータを用いて、複数のモデルを学習し得る。ここでは、それぞれ異なる施設で収集されたデータセットDS1、DS2、DS3を用いて、モデルM1、M2、M3の学習が行われる例を示す。例えば、モデルM1はデータセットDS1を用いて訓練され、モデルM2はデータセットDS2を用いて訓練され、モデルM3はデータセットDS3を用いて訓練される。なお、各モデルM1、M2、M3の学習に用いるデータセットは、異なる施設で収集された複数のデータセットの組み合わせであってもよい。例えば、モデルM1はデータセットDS1とデータセットDS2とを混合したデータセットを用いて訓練されてもよい。
【0075】
こうして、複数のモデルM1、M2、M3を学習した後、導入先の施設で収集されたデータDtgを用いて、各モデルM1、M2、M3の性能を評価する。
図9において、各モデルM1、M2、M3の下に示す「A」、「B」、「C」の記号は、各モデルの評価結果を表している。A評価は、導入基準を満たす良好な予測性能であることを示す。B評価はA評価よりも劣る性能であることを示す。C評価はB評価よりもさらに劣る性能であり、導入に適していないことを示す。
【0076】
例えば、
図9のように、モデルM1の評価結果が「A」、モデルM2の評価結果が「B」、モデルM3の評価結果が「C」であったとすると、導入先の施設にとって最適なモデルとしてモデルM1が選択され、モデルM1を適用した推薦システム10が導入されることになる。
【0077】
〔課題〕
図9で説明したように、モデル学習時に導入先施設のデータが得られない場合も、導入時に導入先施設で収集されたデータがあれば、そのデータでモデルを評価してベストなモデルを選択することができる。
【0078】
しかし、導入時にも導入先施設のデータがない場合、またはあってもアクセスできない場合、モデルを選択することができない。すなわち、
図10に示すように、導入先施設のデータがない場合、各モデルM1、M2、M3を評価することができず、ベストなモデルを選択することができない。
【0079】
このように、導入先施設のデータが、モデルの導入前評価においても利用できない場合は、導入先にベストなモデルを選択することができない。このような場合においても、導入先施設で高性能なレコメンドをすることが望まれる。学習ドメインと導入先ドメインは異なるため、ドメインシフトにロバストなレコメンドを実現することが課題である。本実施形態では、ロバストな単一モデルを作成することが可能な情報処理方法および情報処理装置を提供する。
【0080】
《ローカルモデル》
図11は、本実施形態に係るデータセットを示す図である。データセットは、複数のユーザーと複数のアイテムとのそれぞれの組み合わせに対してユーザーのアイテムに対する行動が示された施設ごとのデータである。
図11に示す例では、データセットは縦軸がユーザー、横軸がアイテムのマトリクスとして示されており、個々のマスがユーザーのアイテムに対する行動を示す。
【0081】
〔連合学習の場合〕
連合学習の文脈では、各施設のデータから構築されたモデルをローカルモデルと呼ぶ。
図12および
図13は、連合学習におけるローカルモデルを説明するための図である。
図12は、「施設1」のデータセットから構築されたモデルが「ローカルモデル1」であり、「施設2」のデータセットから構築されたモデルが「ローカルモデル2」であることを示している。このように、「施設1」と「施設2」とでは異なるローカルモデルが構築される。
【0082】
図13は、「施設1」のデータセットと「施設2」のデータセットとを示している。施設間で異なるローカルモデルは、ユーザーのサブグループ間では共通である。すなわち、
図13に示す例では、「施設1」において、ユーザーの年齢が20~30代、40~50代、および60~70代の3つのサブグループは同じ「ローカルモデル1」(
図12参照)で共通である。また、「施設2」において、ユーザーの年齢が20~30代、40~50代、および60~70代の3つのサブグループは同じ「ローカルモデル2」(
図12参照)で共通である。
【0083】
〔本開示の場合〕
本開示の文脈では、ユーザーおよびアイテムのサブグループごとに構築されたモデルをローカルモデルと呼ぶ。
図14および
図15は、本開示におけるローカルモデルを説明するためのデータセットの図である。
図14に示す例では、ユーザーの年齢が20~30代、40~50代、および60~70代の3つのサブグループにデータセットが分割されている。本開示では、このサブグループごとに構築されたモデルをローカルモデルと呼ぶ。
【0084】
ここで、サブグループ間で異なるローカルモデルは、施設間では共通である。すなわち、
図15に示すように、ユーザーの年齢が20~30代のサブグループによって構築されたローカルモデルは、「施設1」および「施設2」のそれぞれにおいて共通である。同様にユーザーの年齢が40~50代のサブグループによって構築されたローカルモデル、およびユーザーの年齢が60~70代のサブグループによって構築されたローカルモデルは、ともに「施設1」および「施設2」のそれぞれにおいて共通である。
【0085】
《実施形態に係る情報処理装置の概要》
図16は、実施形態に係る情報処理装置100のハードウェア構成の例を概略的に示すブロック図である。情報処理装置100は、複数のユーザーと複数のアイテムとのそれぞれの組み合わせに対してユーザーのアイテムに対する行動が示されたデータセットをドメインシフトにロバストな複数のサブグループに分割する機能と、サブグループごとにユーザーのアイテムに対する行動予測を行うローカルモデルを生成する機能と、サブグループごとに生成された複数のローカルモデルを結合する機能と、を備える。
【0086】
情報処理装置100は、コンピュータのハードウェアとソフトウェアとを用いて実現できる。情報処理装置100の物理的形態は特に限定されず、サーバコンピュータであってもよいし、ワークステーションであってもよく、パーソナルコンピュータあるいはタブレット端末などであってもよい。ここでは、1台のコンピュータを用いて情報処理装置100の処理機能を実現する例を述べるが、情報処理装置100の処理機能は、複数台のコンピュータを用いて構成されるコンピュータシステムによって実現してもよい。
【0087】
情報処理装置100は、プロセッサ102と、非一時的な有体物であるコンピュータ可読媒体104と、通信インターフェース106と、入出力インターフェース108と、バス110とを含む。
【0088】
プロセッサ102は、CPU(Central Processing Unit)を含む。プロセッサ102はGPU(Graphics Processing Unit)を含んでもよい。プロセッサ102は、バス110を介してコンピュータ可読媒体104、通信インターフェース106および入出力インターフェース108と接続される。プロセッサ102は、コンピュータ可読媒体104に記憶された各種のプログラムおよびデータ等を読み出し、各種の処理を実行する。プログラムという用語は、プログラムモジュールの概念を含み、プログラムに準じる命令を含む。
【0089】
コンピュータ可読媒体104は、例えば、主記憶装置であるメモリ112および補助記憶装置であるストレージ114を含む記憶装置である。ストレージ114は、例えば、ハードディスク(Hard Disk Drive:HDD)装置、ソリッドステートドライブ(Solid State Drive:SSD)装置、光ディスク、光磁気ディスク、もしくは半導体メモリ、またはこれらの適宜の組み合わせを用いて構成される。ストレージ114には、各種プログラムおよびデータ等が記憶される。
【0090】
メモリ112は、プロセッサ102の作業領域として使用され、ストレージ114から読み出されたプログラムおよび各種のデータを一時的に記憶する記憶部として用いられる。ストレージ114に記憶されているプログラムがメモリ112にロードされ、プログラムの命令をプロセッサ102が実行することにより、プロセッサ102は、プログラムで規定される各種の処理を行う手段として機能する。
【0091】
メモリ112には、プロセッサ102によって実行される分割プログラム130、学習プログラム132、評価プログラム134、結合プログラム136、各種のプログラムおよび各種のデータ等が記憶される。
【0092】
分割プログラム130は、複数のユーザーと複数のアイテムとのそれぞれの組み合わせに対してユーザーのアイテムに対する行動が示されたデータセットを取得し、取得したデータセットをドメインシフトにロバストな複数のサブグループに分割する処理を実行させるプログラムである。
【0093】
学習プログラム132は、分割プログラム130によって分割されたサブグループごとにユーザーのアイテムに対する行動予測を行う予測モデルであるローカルモデルを学習する処理を実行させるプログラムである。
【0094】
評価プログラム134は、学習プログラム132によって学習された複数のローカルモデルのドメインシフトに対するロバスト性を評価する処理を実行させるプログラムである。
【0095】
結合プログラム136は、学習プログラム132によって学習された複数のローカルモデルを結合する処理を実行させるプログラムである。結合プログラム136は、複数のローカルモデルを結合したモデルを生成してもよいし、複数のローカルモデルのそれぞれの出力を結合してもよい。評価プログラム134は、複数のローカルモデルを結合したモデルのロバスト性を評価してもよい。
【0096】
メモリ112は、データセット記憶部140と、学習モデル記憶部142とを含む。データセット記憶部140は、学習施設で収集されたデータセットであって、複数のユーザーと複数のアイテムとのそれぞれの組み合わせに対してユーザーのアイテムに対する行動が示されたデータセットが記憶される記憶領域である。学習モデル記憶部142は、結合プログラム136によって結合された複数のローカルモデルが記憶される記憶領域である。
【0097】
通信インターフェース106は、有線または無線により外部装置との通信処理を行い、外部装置との間で情報のやり取りを行う。情報処理装置100は、通信インターフェース106を介して不図示の通信回線に接続される。通信回線は、ローカルエリアネットワークであってもよいし、ワイドエリアネットワークであってもよく、これらの組み合わせであってもよい。通信インターフェース106は、オリジナルデータセットなど様々なデータの入力を受け付けるデータ取得部の役割を担うことができる。
【0098】
情報処理装置100は、入力装置152と表示装置154とを備えていてもよい。入力装置152および表示装置154は入出力インターフェース108を介してバス110に接続される。入力装置152は、例えば、キーボード、マウス、マルチタッチパネル、もしくはその他のポインティングデバイス、もしくは、音声入力装置、またはこれらの適宜の組み合わせであってよい。表示装置154は、例えば、液晶ディスプレイ、有機EL(organic electro-luminescence:OEL)ディスプレイ、もしくは、プロジェクタ、またはこれらの適宜の組み合わせであってよい。なお、タッチパネルのように入力装置152と表示装置154とが一体的に構成されてもよく、タッチパネル式のタブレット端末のように、情報処理装置100と入力装置152と表示装置154とが一体的に構成されてもよい。
【0099】
図17は、情報処理装置100の機能的構成を示す機能ブロック図である。情報処理装置100は、データセット取得部160と、分割部162と、学習部164と、評価部166と、結合部168とを含む。
【0100】
データセット取得部160は、データセット記憶部140から学習施設で収集されたデータセットを取得する。
【0101】
分割部162は、データセット取得部160が取得したデータセットをドメインシフトにロバストな複数のサブグループに分割する。
【0102】
学習部164は、分割部162が分割したサブグループごとにユーザーのアイテムに対する行動予測を行う予測モデルであるローカルモデルを生成する。
【0103】
評価部166は、学習部164が学習した複数のローカルモデルのドメインシフトに対するロバスト性を評価する。
【0104】
結合部168は、学習部164が学習した複数のローカルモデルを結合する。複数のローカルモデルは、学習モデルとして学習モデル記憶部142に格納される。
【0105】
〔行動履歴の具体例〕
図18は、データセットのもととなる行動履歴のデータの例を示す図表である。ここでは、小売企業内の販売システムにおける行動履歴の場合を考える。
図18には、ある小売企業の販売システムから得られた商品の購買に関するユーザーの行動履歴のテーブルの例が示されている。ここでの「アイテム」は商品である。
図18に示すテーブルは、「時間」、「ユーザーID」、「アイテムID」、「ユーザー属性1」、「ユーザー属性2」、「アイテム属性1」「アイテム属性2」、「コンテキスト1」、「コンテキスト2」および「購入有無」のカラムを含む。
【0106】
「時間」は、アイテムを購入した日時である。「ユーザーID」は、ユーザーを特定する識別符号であり、各ユーザーに対して固有のID(identification)が定義されている。アイテムIDはアイテムを特定する識別符号であり、各アイテムに対して固有のIDが定義されている。「ユーザー属性1」は、例えば「家族構成」である。「ユーザー属性2」は、例えば「年代」である。「家族構成」および「年代」は、それぞれ属性データの一例である。「アイテム属性1」は、例えば「商品カテゴリ」である。「アイテム属性2」は、例えば「ブランド」である。「商品カテゴリ」および「ブランド」は、それぞれアイテムの属性データの一例である。「コンテキスト1」は、例えば「天気」である。「コンテキスト2」は、例えば「曜日」である。「天気」および「曜日」は、それぞれコンテキストの属性データの一例である。
【0107】
「購入有無」は、「ユーザーのアイテムに対する行動」の一例であり、アイテムが購入された場合(購入有り)の値が「1」となる。なお、購入していないアイテムは膨大なため、購入したアイテム(購入有無=1)のみレコードに記録するのが一般的である。行動履歴のテーブルは、ユーザーのアイテムに対する行動として、「購入有無」に代えて、「評価値」のカラムを含んでもよい。
【0108】
図18における「購入有無」は目的変数Yの一例であり、「ユーザー属性1」、「ユーザー属性2」、「アイテム属性1」、「アイテム属性2」、「コンテキスト1」、および「コンテキスト2」のそれぞれは説明変数Xの一例である。説明変数Xの種類数およびその組み合わせについては、
図18の例に限らない。説明変数Xとして、さらに不図示のユーザー属性3、アイテム属性3、およびコンテキスト3などを含んでもよい。説明変数Xは、一部はサブグループの分割に使用され、残りは目的変数の予測に用いられる。
【0109】
《情報処理方法の概要》
本開示では、複数のユーザーと複数のアイテムとのそれぞれの組み合わせに対してユーザーのアイテムに対する行動が示されたデータセットをサブグループに分割する。
【0110】
図19は、サブグループの分割を説明するための図である。
図19のF19Aは、縦軸がユーザー、横軸がアイテムの2次元のマトリクスに表現されたデータセットDSを5つのサブグループSG1、SG2、SG3、SG4、SG5に分割した例を示している。また、
図19のF19Bは、データセットDSを3つのサブグループSG11、SG12、SG13に分割した例を示している。サブグループの分割において、データセットDSのマトリクスのうち複数のサブグループに重複して含まれる部分があってもよいし、いずれのサブグループに含まれない部分があってもよい。
【0111】
データセットDSにおいてユーザーを示す縦軸は、ユーザーID順ではなく、いずれかのユーザー属性データの順にユーザーが並べられている。例えば、ユーザーの年代の属性データを用いてサブグループに分割する場合、データセットDSはユーザーの年代順にユーザーが並べられる。
【0112】
同様に、データセットDSにおいてアイテムを示す縦軸は、アイテムID順ではなく、いずれかのアイテム属性データの順にアイテムが並べられている。例えば、アイテムの商品カテゴリの属性データを用いてサブグループに分割する場合、データセットDSはアイテムの商品カテゴリ順にアイテムが並べられる。
【0113】
サブグループは、ドメインシフトにロバストなように、すなわちロバストな部分モデルが構築可能なように分割される。すべてのユーザーとアイテムとの組合せに対してドメインシフトにロバストな単一モデルを構築するのは難しいが、適切に分割したサブグループにおいては比較的容易にロバストなモデルを構築することができる。例えば、外科医の○○疾患患者向け部分モデル、子供1人30代夫婦向け部分モデル、などである。
【0114】
〔実施形態1〕
図20は、実施形態1に係る情報推薦フローを示す説明図である。
【0115】
最初に、ステップ11では、データセットをサブグループに分割する。すなわち、データセット取得部160が複数のユーザーと複数のアイテムとのそれぞれの組み合わせに対してユーザーのアイテムに対する行動が示されたデータセットを取得する。データセットは、ある単一の施設(ドメイン)において収集されたユーザーのアイテムに対する行動のデータから生成されている。この取得したデータセットを、分割部162がドメインシフトにロバストな複数のサブグループに分割する。
【0116】
分割部162は、ユーザーの属性データ、およびアイテムの属性データのうちの少なくとも1つをもとにデータセットを分割する。
図20に示すように、ここでは「サブグループ1」、「サブグループ2」、および「サブグループ3」の3つのサブグループに分割される。
【0117】
ステップ12では、サブグループごとにローカルな予測モデルであるローカルモデルを構築する。
図20に示す例では、学習部164は、「サブグループ1」のデータを用いてローカルモデルLM1を、「サブグループ2」のデータを用いてローカルモデルLM2を、「サブグループ3」のデータを用いてローカルモデルLM3を構築する。すなわち、ローカルモデルLM1は「サブグループ1」の予測を、ローカルモデルLM2は「サブグループ2」の予測を、ローカルモデルLM3は「サブグループ3」の予測をそれぞれ担当する予測モデルである。
【0118】
ステップ13では、構築した複数のローカルモデルを結合する。すなわち、結合部168は、ローカルモデルLM1、LM2、およびLM3を結合してモデルM11を生成する。このモデルM11によって、ユーザーごとに推薦アイテムリストを生成することができる。ユーザーごとの推薦アイテムリストは、ローカルモデルLM1、LM2、およびLM3のそれぞれの出力を結合して生成してもよい。結合したモデルM11によって生成した推薦アイテムリストとローカルモデルLM1、LM2、およびLM3のそれぞれの出力を結合して生成した推薦アイテムリストとは、数学的に等価である。
【0119】
実施形態1によれば、データセットをドメインシフトにロバストな複数のサブグループに分割し、サブグループごとにローカルモデルを構築するので、ドメインシフトにロバストなローカルモデルが構築される。したがって、複数のローカルモデルを結合することで、高性能な推薦アイテムリストを提供することが可能になる。なお、サブグループから生成されたローカルモデルがドメインシフトにロバストである場合、そのサブグループはドメインシフトにロバストであるといえる。
【0120】
〔実施形態2〕
データセットは、複数のユーザーと複数のアイテムと複数のコンテキストとのそれぞれの組み合わせに対してユーザーのアイテムに対する行動が示された施設ごとのデータであってもよい。この場合、分割部162は、コンテキストの属性データのうちの少なくとも1つをもとにデータセットを分割してもよい。
【0121】
図21は、ユーザーとアイテムとコンテキストとの組み合わせのデータセットを説明するための図である。F20Aに示すように、ユーザーとアイテムとコンテキストとの組み合わせは、3次元のマトリクスに表現することができる。コンテキストを示す軸は、コンテキストの属性データの順にコンテキストが並べられている。例えば、アイテムを購入した曜日の順にコンテキストが並べられている。
【0122】
F20Bは、ユーザーとアイテムとコンテキストとの組み合わせのデータセットのサブグループ分割の例を示している。F20Bに示す例では、「サブグループ1」は、ユーザー属性が「単身世帯」、アイテム属性が「食料品」、コンテキストが「金曜日」である。また、F20Bに示す「サブグループ2」は、ユーザー属性が「子供あり夫婦世帯」、アイテム属性が「日用品」、コンテキストが「土曜日・日曜日」である。
【0123】
〔実施形態3〕
図22および
図23は、実施形態3に係るサブグループ分割フローを示す説明図である。
【0124】
ステップ21では、データセットをサブグループに分割する。すなわち、データセット取得部160がデータセットを取得し、この取得したデータセットを、分割部162がサブグループに分割する。ここではデータセット取得部160は、ある施設のデータセットDS11を取得し、分割部162は、データセットからユーザー属性が「単身世帯」である「サブグループ1(単身世帯)」を分割する。
【0125】
ステップ22では、サブグループの予測モデルを構築する。すなわち、学習部164は、「サブグループ1(単身世帯)」のデータを用いてローカルモデルLM11を構築する。
【0126】
ステップ23では、複数ドメインでサブグループ内のロバスト性を評価する。
図22に示す例では、評価部166は、データセットDS11の施設以外の施設であって、それぞれ異なる施設のデータセットDS12、DS13、DS14を用いて、ローカルモデルLM11のロバスト性を評価する。
【0127】
ローカルモデルLM11は、データセットDS11のうち、ユーザー属性が「単身世帯」である「サブグループ1(単身世帯)」から構築されている。したがって、評価部166は、ローカルモデルLM11のロバスト性を、データセットDS12、DS13、DS14のうち、それぞれユーザー属性が「単身世帯」のサブグループを用いて評価する。
【0128】
図23において、各データセットDS12、DS13、DS14の下に示す「A」の記号は、各データセットによる評価結果を表している。A評価は、導入基準を満たす良好なロバスト性であることを示す。例えば、ローカルモデルLM11のデータセットDS11に対する予測性能とローカルモデルLM11のデータセットDS12に対する予測性能との差が相対的に小さい場合、データセットDS12による評価結果はA評価である。
図23には記載されていないが、「B」の記号で表されるB評価はA評価よりも劣る性能であることを示す。また、「C」の記号で表されるC評価はB評価よりもさらに劣る性能であり、導入に適していないことを示す。ここでは、データセットDS12、DS13、DS14を用いたローカルモデルLM11のロバスト性は、それぞれA評価である。
【0129】
ステップ24では、評価結果が基準を満たしている場合にサブグループとして採用する。すなわち、評価部166は、評価基準とステップ23の評価結果とを比較する。評価基準は、例えば「各データセットを用いたロバスト性がすべてA評価」である。評価結果が評価基準を満たしている場合、「サブグループ1(単身世帯)」は、ドメインシフトに対してロバストであるといえる。ここでは、データセットDS12、DS13、DS14を用いたローカルモデルLM11のロバスト性はすべてA評価であり、評価基準を満たす。したがって、評価部166は、「サブグループ1(単身世帯)」をサブグループとして採用する。
【0130】
このように、実施形態3では、ステップ21でデータセットをサブグループに分割する際には、そのサブグループがドメインシフトにロバストであるか否かが不明である。しかしながら、ステップ23の評価の結果、サブグループがドメインシフトに対してロバストであることがわかったので、ステップ21ではデータセットをドメインシフトにロバストな複数のサブグループに分割していることと同義である。
【0131】
続いて、ステップ31では、データセットをさらにサブグループに分割する。
図23に示す例では、分割部162は、データセットからユーザー属性が「子供あり夫婦世帯」である「サブグループ2(子供あり夫婦世帯)」を分割する。
【0132】
ステップ32では、サブグループの予測モデルを構築する。すなわち、学習部164は、「サブグループ2(子供あり夫婦世帯)」のデータを用いてローカルモデルLM12を構築する。
【0133】
ステップ33では、複数ドメインでサブグループ内のロバスト性を評価する。すなわち、ステップ23と同様に、評価部166は、データセットDS12、DS13、DS14を用いて、ローカルモデルLM12のロバスト性を評価する。
【0134】
ローカルモデルLM12は、データセットDS11のうち、ユーザー属性が「子供あり夫婦世帯」である「サブグループ2(子供あり夫婦世帯)」から構築されている。したがって、評価部166は、ローカルモデルLM12のロバスト性を、データセットDS12、DS13、DS14のうち、それぞれユーザー属性が「子供あり夫婦世帯」のサブグループを用いて評価する。ここでは、データセットDS12、DS13、DS14を用いたローカルモデルLM12のロバスト性は、それぞれA評価、B評価、C評価である。
【0135】
ステップ34では、評価結果が基準を満たしている場合にサブグループとして採用し、満たしていない場合にサブグループをさらに分割する。すなわち、評価部166は、評価基準とステップ33の評価結果とを比較する。ここでは、評価基準を満たしていない。したがって、分割部162は、「サブグループ2(子供あり夫婦世帯)」からコンテキストが「日用品」である「サブグループ2A(子供あり夫婦世帯×日用品)」を分割する。
【0136】
ステップ35では、サブグループの予測モデルを構築する。すなわち、学習部164は、「サブグループ2A(子供あり夫婦世帯×日用品)」のデータを用いてローカルモデルLM12Aを構築する。
【0137】
ステップ36では、複数ドメインでサブグループ内のロバスト性を評価する。すなわち、評価部166は、ローカルモデルLM12Aのロバスト性を、データセットDS12、DS13、DS14のうち、それぞれユーザー属性が「子供あり夫婦世帯」であり、かつコンテキストが「日用品」であるサブグループを用いて評価する。ここでは、データセットDS12、DS13、DS14を用いたローカルモデルLM12Aのロバスト性は、すべてA評価である。
【0138】
ステップ37では、評価結果が基準を満たしている場合にサブグループとして採用する。評価結果が評価基準を満たしている場合、「サブグループ2A(子供あり夫婦世帯×日用品)」は、ドメインシフトに対してロバストであるといえる。ここでは、データセットDS12、DS13、DS14を用いたローカルモデルLM12Aのロバスト性はすべてA評価であり、評価基準を満たす。したがって、評価部166は、「サブグループ2A(子供あり夫婦世帯×日用品)」をサブグループとして採用する。
【0139】
以上の処理を繰り返し、所望の条件を満たすようなサブグループ分割が見つかれば、サブグループ探索を終了する。所望の条件は、以下の通りである。
【0140】
条件例1は、各ユーザーが1つ以上のサブグループに属することである。実用上は、ユーザーの大半が1つ以上のサブグループに属していればよい。ユーザーの大半とは、たとえばユーザーの8割以上であり、より好ましくはユーザーの9割以上である。サブグループに属したユーザーにはパーソナライズしたレコメンドを提供し、属していないユーザーにはパーソナライズしていないレコメンドを提供してもよい。パーソナライズしていないレコメンドとは、例えば人気アイテムトップ10のようなレコメンドである。
【0141】
図24は、サブグループ分割の一例を示す図である。F24Aに示す例では、データセットが3つのサブグループであるサブグループSG21、SG22、SG23に分割されており、かつ各ユーザーはそれぞれサブグループSG21、SG22、SG23のいずれかに属しているため、条件1を満たす。
【0142】
条件例2は、各ユーザーが少なくとも一定数(例えば半数)以上のアイテムを含むことである。実用上はユーザーの大半が一定数以上のアイテムを含めばよい。ユーザーの大半とは、たとえばユーザーの8割以上であり、より好ましくはユーザーの9割以上である。一定数以上のアイテムとは、推薦アイテム数が10個の場合、例えばその10倍の100個以上のアイテムであり、より好ましくは推薦アイテム数の100倍の1000個以上のアイテムである。候補となるアイテムがどれくらいあれば十分かは、全アイテムの数および推薦アイテムの数にも依存する。ユーザーあたりの推薦アイテムの数が相対的に多いほど候補となるアイテムは相対的に多い方が好ましい。また、全アイテムの数が相対的に少ない場合は、候補アイテムの数を相対的に多くすることはそもそも難しいので、候補アイテムの数は相対的に少なくてもよい。
【0143】
図24のF24Bに示す例では、5つのサブグループであるサブグループSG31、SG32、SG33、SG34、SG35に分割されており、かつ各ユーザーが少なくとも半数以上のアイテムを含んでいるため、条件2を満たす。
【0144】
〔実施形態4〕
図25は、実施形態4に係るサブグループ分割フローを示す説明図である。
【0145】
ステップ41では、データセットをサブグループに分割する。すなわち、データセット取得部160がデータセットを取得し、分割部162がデータセットを複数のサブグループに分割する。
【0146】
ステップ42では、ステップ41で分割したサブグループごとのローカルモデルを結合した予測モデルを構築する。すなわち、学習部164は、複数のサブグループのデータを用いてサブグループごとのローカルモデルを構築する。さらに、学習部164は、サブグループごとの複数のローカルモデルを結合した予測モデルであるモデルM21を構築する。
【0147】
ステップ43では、複数ドメインで予測モデルのロバスト性を評価する。
図25に示す例では、評価部166は、データセットDS12、DS13、DS14の全範囲のデータを用いて、ステップ42で構築したモデルM21のロバスト性を評価する。ここでは、データセットDS12、DS13、DS14を用いたモデルM21のロバスト性は、それぞれA評価、B評価、C評価である。
【0148】
ステップ44では、評価結果が基準を満たしている場合にサブグループとして採用し、満たしていない場合に異なるサブグループ分割を試す。すなわち、評価部166は、評価基準とステップ43の評価結果とを比較する。評価基準は、例えば「各データセットを用いたロバスト性がすべてA評価」である。ここでは、評価基準を満たしていない。したがって、分割部162は、データセットをステップ41とは異なるサブグループに分割する。なお、分割部162が試行するサブグループの分割は、前述の条件1または条件2を満たす場合に限定される。
【0149】
ステップ45では、ステップ44で分割したサブグループごとのローカルモデルを結合した予測モデルを構築する。すなわち、学習部164は、複数のサブグループのデータを用いてサブグループごとのローカルモデルを構築し、複数のローカルモデルを結合した予測モデルであるモデルM22を構築する。
【0150】
ステップ46では、複数ドメインで予測モデルのロバスト性を評価する。ステップ43と同様に、評価部166は、データセットDS12、DS13、DS14を用いてモデルM22のロバスト性を評価する。ここでは、データセットDS12、DS13、DS14を用いたモデルM22のロバスト性は、すべてA評価である。
【0151】
ステップ47では、評価結果が基準を満たしている場合にサブグループとして採用する。すなわち、評価部166は、評価基準とステップ46の評価結果とを比較する。ここでは、モデルM22のロバスト性はすべてA評価であり、評価基準を満たす。このため、ステップ44で分割したサブグループはドメインシフトに対してロバストであるといえる。すなわち、ローカルモデルのドメインシフトに対するロバスト性の評価の結果が基準を満たしている場合、そのローカルモデルのサブグループはドメインシフトにロバストである。したがって、評価部166は、ステップ44で分割したサブグループを採用する。
【0152】
〔実施形態5〕
サブグループの分割は、分割するデータセットのドメインと評価に用いるデータセットのドメインとの間で確率分布の相違が相対的に大きい属性データを用いることが好ましい。
図26は、サブグループ分割する属性について説明するための図である。ここでは、「施設1」のデータセットをサブグループに分割してローカルモデルを構築し、構築したローカルモデルを「施設2」のデータセットで評価する場合について説明する。
【0153】
F26Aは、「施設1」の世帯構成ごとの存在確率P(X)を示すグラフであり、F26Bは、「施設1」とは異なる「施設2」の世帯構成ごとの存在確率P(X)を示すグラフである。F26Aに示すように、「施設1」は「単身世帯」の存在確率が最も大きく、次に「子供あり夫婦」の存在確率が大きく、「子供なし夫婦」の存在確率が最も小さい。一方、F26Bに示すように、「施設2」は「子供あり夫婦」の存在確率が最も大きく、次に「子供なし夫婦」の存在確率が大きく、「単身世帯」の存在確率が最も小さい。
【0154】
このように、世帯構成の分布は、「施設1」および「施設2」の間で大きく異なっている。すなわち、世帯構成の属性データは確率分布の相違が相対的に大きい。したがって、ドメインシフトにロバストなローカルモデルを構築するためには、世帯構成をもとにサブグループ分割することが好ましい。
【0155】
F26Cは、「施設1」の年齢ごとの存在確率P(X)を示すグラフであり、F26Dは、「施設2」の年齢ごとの存在確率P(X)を示すグラフである。F26CおよびF26Dに示すように、年齢の分布は、「施設1」および「施設2」の間で大きく変わらない。すなわち、年齢の属性データは確率分布の相違が相対的に小さい。したがって、年齢をもとにサブグループ分割しても、ドメインシフトにロバストなローカルモデルを構築することはできない。
【0156】
このように、確率分布の相違が相対的に大きい属性データを用いてデータセットを複数のサブグループに分割することで、ドメインシフトにロバストな複数のサブグループに分割することができ、ドメインシフトにロバストなローカルモデルを構築することができる。
【0157】
〔実施形態6〕
サブグループごとに構築される複数のローカルモデルは、全てが同一の種類のモデルである必要はなく、サブグループごとにそれぞれ異なる種類のモデルであってもよい。
図27は、サブグループごとのローカルモデルについて説明するための図である。
【0158】
図27に示す例では、データセットが「サブグループ1」、「サブグループ2」、および「サブグループ3」の3つのサブグループに分割されている。また、「サブグループ1」のデータを用いてローカルモデルLM21が、「サブグループ2」のデータを用いてローカルモデルLM22が、「サブグループ3」のデータを用いてローカルモデルLM23が構築されている。
【0159】
ここで、ローカルモデルLM21は、行列分解モデルである。ローカルモデルLM22は、ランダムフォレストモデルである。ローカルモデルLM23は、トランスフォーマーモデルである。構築されるローカルモデルは、行列分解モデル、ランダムフォレストモデル、およびトランスフォーマーモデル以外のモデルであってもよい。ここでは、複数のローカルモデルがそれぞれ異なる種類のモデルである例を説明したが、複数のローカルモデルのうち一部が同じ種類のモデルであり、他の一部が異なる種類のモデルであってもよい。このように、ローカルモデルの構築は、サブグループごとに適切な種類のモデルを選択することができる。
【0160】
〔実施形態7〕
複数のローカルモデルは、それぞれデータセットのうちサブグループより広い範囲のデータをもとに事前に学習された事前学習モデルを初期パラメータとして、サブグループのローカルモデルをさらに学習させたものであってもよい。
図28は、実施形態7に係る学習フローを示す説明図である。
【0161】
ステップ51では、データセットの全データで予測モデルを学習する。すなわち、学習部164は、データセットの全データを用いて学習前のモデルM41を学習し、事前学習モデルであるモデルM42を構築する。
【0162】
ステップ52では、各サブグループのデータのみを用いて、モデルM42をさらに学習させる。すなわち、
図28に示す例では、分割部162はデータセットを「サブグループ1」、「サブグループ2」、および「サブグループ3」の3つのサブグループに分割する。学習部164は、「サブグループ1」のデータを用いてモデルM42を学習させてローカルモデルLM31を構築する。同様に、学習部164は、「サブグループ2」のデータを用いてモデルM42を学習させてローカルモデルLM32を構築し、「サブグループ3」のデータを用いてモデルM42を学習させてローカルモデルLM33を構築する。この学習は、ファインチューニングと呼ばれる。
【0163】
ここでは、事前学習モデルであるモデルM42は、データセットの全データを用いて構築されたが、モデルM42はデータセットのうち分割されるサブグループより広い範囲のデータをもとに構築されればよい。
【0164】
〔コンピュータを動作させるプログラムについて〕
情報処理装置100における処理機能の一部または全部をコンピュータに実現させるプログラムを、光ディスク、磁気ディスク、もしくは、半導体メモリその他の有体物たる非一時的な情報記憶媒体であるコンピュータ可読媒体に記録し、この情報記憶媒体を通じてプログラムを提供することが可能である。
【0165】
またこのような有体物たる非一時的なコンピュータ可読媒体にプログラムを記憶させて提供する態様に代えて、インターネットなどの電気通信回線を利用してプログラム信号をダウンロードサービスとして提供することも可能である。
【0166】
さらに、情報処理装置100における処理機能の一部または全部をクラウドコンピューティングによって実現してもよく、また、SaaS(Software as a Service)として提供することも可能である。
【0167】
〔各処理部のハードウェア構成について〕
情報処理装置100におけるデータセット取得部160、分割部162、学習部164、評価部166、および結合部168などの各種の処理を実行する処理部(processing unit)のハードウェア的な構造は、例えば、次に示すような各種のプロセッサ(processor)である。
【0168】
各種のプロセッサには、プログラムを実行して各種の処理部として機能する汎用的なプロセッサであるCPU、GPU、FPGA(Field Programmable Gate Array)などの製造後に回路構成を変更可能なプロセッサであるプログラマブルロジックデバイス(Programmable Logic Device:PLD)、ASIC(Application Specific Integrated Circuit)などの特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路などが含まれる。
【0169】
1つの処理部は、これら各種のプロセッサのうちの1つで構成されていてもよいし、同種または異種の2つ以上のプロセッサで構成されてもよい。例えば、1つの処理部は、複数のFPGA、あるいは、CPUとFPGAの組み合わせ、またはCPUとGPUの組み合わせによって構成されてもよい。また、複数の処理部を1つのプロセッサで構成してもよい。複数の処理部を1つのプロセッサで構成する例としては、第一に、クライアントおよびサーバなどのコンピュータに代表されるように、1つ以上のCPUとソフトウェアの組み合わせで1つのプロセッサを構成し、このプロセッサが複数の処理部として機能する形態がある。第二に、システムオンチップ(System On Chip:SoC)などに代表されるように、複数の処理部を含むシステム全体の機能を1つのIC(Integrated Circuit)チップで実現するプロセッサを使用する形態がある。このように、各種の処理部は、ハードウェア的な構造として、上記各種のプロセッサを1つ以上用いて構成される。
【0170】
さらに、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子などの回路素子を組み合わせた電気回路(circuitry)である。
【0171】
〔実施形態による利点〕
本実施形態によれば、ドメインシフトにロバストなサブグループのローカルモデルが生成されるので、複数のローカルモデルを結合することで、モデルを学習する段階において導入先の施設のドメインが不明な場合であっても、未知の導入先の施設に対して高性能なモデルを用意することが可能になる。
【0172】
〔他の応用例〕
上述の実施形態では、商品の購買に関するユーザーの行動を例に説明したが、本開示の適用範囲は商品の購買に限らず、医用画像等の閲覧、文書閲覧、あるいは動画等のコンテンツの視聴など、用途を問わず、様々なアイテムに関するユーザーの行動予測について本開示の技術を適用できる。
【0173】
〔その他〕
本開示は上述した実施形態に限定されるものではなく、本開示の技術的思想の趣旨を逸脱しない範囲で種々の変形が可能である。
【符号の説明】
【0174】
10 推薦システム
12 予測モデル
14 モデル
100 情報処理装置
102 プロセッサ
104 コンピュータ可読媒体
106 通信インターフェース
108 入出力インターフェース
110 バス
112 メモリ
114 ストレージ
130 分割プログラム
132 学習プログラム
134 評価プログラム
136 結合プログラム
140 データセット記憶部
142 学習モデル記憶部
152 入力装置
154 表示装置
160 データセット取得部
162 分割部
164 学習部
166 評価部
168 結合部
DS データセット
DS1 データセット
DS2 データセット
DS3 データセット
DS11 データセット
DS12 データセット
DS13 データセット
DS14 データセット
Dtg データ
IT1 アイテム
IT2 アイテム
IT3 アイテム
LM1 ローカルモデル
LM2 ローカルモデル
LM3 ローカルモデル
LM11 ローカルモデル
LM12 ローカルモデル
LM12A ローカルモデル
LM21 ローカルモデル
LM22 ローカルモデル
LM23 ローカルモデル
LM31 ローカルモデル
LM32 ローカルモデル
LM33 ローカルモデル
M1 モデル
M2 モデル
M3 モデル
M11 モデル
M21 モデル
M22 モデル
M41 モデル
M42 モデル
SG1 サブグループ
SG2 サブグループ
SG3 サブグループ
SG4 サブグループ
SG5 サブグループ
SG11 サブグループ
SG12 サブグループ
SG13 サブグループ
SG21 サブグループ
SG22 サブグループ
SG23 サブグループ
SG31 サブグループ
SG32 サブグループ
SG33 サブグループ
SG34 サブグループ
SG35 サブグループ