(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023168813
(43)【公開日】2023-11-29
(54)【発明の名称】情報処理方法、情報処理装置およびプログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20231121BHJP
G06Q 50/10 20120101ALI20231121BHJP
【FI】
G06N20/00
G06Q50/10
【審査請求】未請求
【請求項の数】17
【出願形態】OL
(21)【出願番号】P 2022080147
(22)【出願日】2022-05-16
(71)【出願人】
【識別番号】306037311
【氏名又は名称】富士フイルム株式会社
(74)【代理人】
【識別番号】100083116
【弁理士】
【氏名又は名称】松浦 憲三
(74)【代理人】
【識別番号】100170069
【弁理士】
【氏名又は名称】大原 一樹
(74)【代理人】
【識別番号】100128635
【弁理士】
【氏名又は名称】松村 潔
(74)【代理人】
【識別番号】100140992
【弁理士】
【氏名又は名称】松浦 憲政
(72)【発明者】
【氏名】佐藤 政寛
(72)【発明者】
【氏名】谷口 友紀
(72)【発明者】
【氏名】大熊 智子
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049CC12
(57)【要約】
【課題】モデルを学習する段階において導入先の施設のドメインが不明な場合であっても、未知の導入先の施設に対して高性能なモデルを用意することができる情報処理方法、情報処理装置およびプログラムを提供する。
【解決手段】1つ以上のプロセッサが実行する情報処理方法であって、1つ以上のプロセッサが、ユーザーのアイテムに対する行動を予測するモデルの学習に用いるデータセットを収集した第1施設とは異なる複数の第2施設の特性を表現することと、それぞれの第2施設の特性に応じて、それぞれの第2施設において予測性能が向上するように複数のモデルを学習することと、を含む。
【選択図】
図25
【特許請求の範囲】
【請求項1】
1つ以上のプロセッサが実行する情報処理方法であって、
前記1つ以上の前記プロセッサが、
ユーザーのアイテムに対する行動を予測するモデルの学習に用いるデータセットを収集した第1施設とは異なる複数の第2施設の特性を表現することと、
それぞれの前記第2施設の特性に応じて、それぞれの前記第2施設において予測性能が向上するように複数のモデルを学習することと、
を含む情報処理方法。
【請求項2】
前記1つ以上の前記プロセッサが、
それぞれの前記第2施設の特性に基づき、前記データセットに含まれるデータを用いて前記複数の第2施設のそれぞれに対応した前記複数のモデルを学習する、
請求項1に記載の情報処理方法。
【請求項3】
複数の前記第1施設のそれぞれから収集した複数の前記データセットが用意され、
前記1つ以上の前記プロセッサが、
それぞれの前記第1施設に対してそれぞれ異なる前記第2施設の特性を表現し、
それぞれの前記第2施設の特性に基づき、それぞれの前記データセットに含まれるデータを用いて前記複数のモデルを学習する、
請求項1に記載の情報処理方法。
【請求項4】
前記1つ以上の前記プロセッサが、前記第2施設の特性の表現として、前記第1施設と前記第2施設とにおける説明変数の確率分布の違いを表現する、
請求項1に記載の情報処理方法。
【請求項5】
前記1つ以上の前記プロセッサが、前記第2施設の特性の表現として、前記第1施設と前記第2施設とにおける説明変数と目的変数との間の条件付き確率の違いを表現する、
請求項1に記載の情報処理方法。
【請求項6】
前記1つ以上の前記プロセッサが、
前記第2施設の特性に応じて、前記データセットから学習に用いるデータをサンプリングして前記学習を行う、
請求項1に記載の情報処理方法。
【請求項7】
前記1つ以上の前記プロセッサが、
前記第2施設の特性に応じて、前記データセットに含まれるデータを重み付けして前記学習を行う、
請求項1に記載の情報処理方法。
【請求項8】
前記1つ以上の前記プロセッサが、
前記第2施設の特性に応じて、前記モデルに用いる特徴量を選択することを含む、
請求項1に記載の情報処理方法。
【請求項9】
前記1つ以上の前記プロセッサが、
説明変数の組み合わせにより表現される交差特徴量の一部を前記モデルの前記特徴量から削除して前記学習を行うことを含む、
請求項8に記載の情報処理方法。
【請求項10】
前記モデルは、ユーザーに対してアイテムを推薦する推薦システムに用いられる予測モデルであり、
前記1つ以上の前記プロセッサが表現する前記第2施設の特性は、前記推薦システムの導入先施設としてあり得る施設特性の範囲内において想定される仮想的な施設の特性である、
請求項1に記載の情報処理方法。
【請求項11】
前記データセットは、前記第1施設における複数のユーザーの複数のアイテムに対する行動履歴を含む、
請求項1に記載の情報処理方法。
【請求項12】
前記1つ以上の前記プロセッサが、
前記学習を行うことによって生成された前記複数のモデルを含む複数の候補モデルのセットを記憶装置に記憶することを含む、
請求項1に記載の情報処理方法。
【請求項13】
前記1つ以上の前記プロセッサが、
前記データセットに含まれるデータを用いて前記第1施設において予測性能が向上するように学習された第1モデルと、前記複数の第2施設のそれぞれの特性に基づいて学習された前記複数のモデルである複数の第2モデルと、を含む複数の候補モデルのセットを記憶装置に記憶することを含む、
請求項1に記載の情報処理方法。
【請求項14】
前記1つ以上の前記プロセッサが、
前記データセットに含まれるデータを用いて前記第1モデルを学習することを含む、
請求項13に記載の情報処理方法。
【請求項15】
前記1つ以上の前記プロセッサが、
前記第1施設とは異なる第3施設において収集されたデータを用いて前記複数のモデルを含む複数の候補モデルのそれぞれの性能を評価し、評価の結果に基づいて前記複数の候補モデルの中から前記第3施設に適したモデルを抽出することを含む、
請求項1に記載の情報処理方法。
【請求項16】
1つ以上のプロセッサと、
前記1つ以上の前記プロセッサに実行させる命令が記憶される1つ以上のメモリと、を備える情報処理装置であって、
前記1つ以上の前記プロセッサは、
ユーザーのアイテムに対する行動を予測するモデルの学習に用いるデータセットを収集した第1施設とは異なる複数の第2施設の特性を表現し、
それぞれの前記第2施設の特性に応じて、それぞれの前記第2施設において予測性能が向上するように複数のモデルを学習する、
情報処理装置。
【請求項17】
コンピュータに、
ユーザーのアイテムに対する行動を予測するモデルの学習に用いるデータセットを収集した施設とは異なる複数の第2施設の特性を表現する機能と、
それぞれの前記第2施設の特性に応じて、それぞれの前記第2施設において予測性能が向上するように複数のモデルを学習する機能と、
を実現させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理方法、情報処理装置およびプログラムに係り、特に、ドメインシフトにロバストな推薦を行う情報推薦技術に関する。
【背景技術】
【0002】
EC(Electronic Commerce)サイトあるいは文書情報管理システムなど、様々なアイテムをユーザー(利用者)に提供するシステムにおいて、多くのアイテムの中からユーザーが自分に合ったベストなものを選ぶことは、時間的にも認知能力的にも難しい。ECサイトにおけるアイテムは、ECサイトで扱っている商品であり、文書情報管理システムにおけるアイテムは、システムに格納されている文書情報である。
【0003】
ユーザーによるアイテムの選択を補助するために、多くのアイテムの中から選択候補を提示する技術である情報推薦技術が研究されている。一般に、推薦システムをある施設等に導入する場合、導入先の施設等で収集したデータを基に推薦システムのモデルを学習する。しかし、学習に用いたデータが収集された施設と異なる施設に同じ推薦システムを導入すると、モデルの予測精度が低下してしまう問題がある。未知の他施設では機械学習モデルがうまく機能しない問題はドメインシフトと呼ばれ、ドメインシフトに対するロバスト性向上の研究であるドメイン汎化(Domain Generalization)に関して、近年、画像認識分野を中心に研究が活発化している。しかし、情報推薦技術においてドメイン汎化はまだ研究事例がほとんどない。
【0004】
非特許文献1には、言語横断の翻訳に適用される言語間の転移学習において、いくつかの異なる言語で学習したモデルの中から、転移学習に用いるモデル、すなわちファインチューンするための事前訓練モデルを選択する方法が記載されている。
【0005】
特許文献1には、ユーザを複数のグループに分類し、グループごとに連合学習によってサービスの提供のための予測モデルを生成する方法が記載されている。
【0006】
特許文献2には、ユーザがユーザ端末を操作して行うインターネット上の行動の予測にかかる時間を短縮することを目的として、ユーザ属性やディリクレ過程を用いてユーザをグループ分けし、グループ毎に予測モデルを生成する方法が記載されている。
【0007】
特許文献3には、病院等の医療施設向けAI(Artificial Intelligence)の生成に用いる学習用データを医用データの属性情報などを基に選別する方法が記載されている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2021-197181号公報
【特許文献2】特開2016-062509号公報
【特許文献3】特開2021-086558号公報
【非特許文献】
【0009】
【非特許文献1】Yu-Hsiang Lin, Chian-Yu Chen, Jean Lee, Zirui Li, Yuyan Zhang,Mengzhou Xia, Shruti Rijhwani, Junxian He, Zhisong Zhang, Xuezhe Ma, Antonios Anastasopoulos, Patrick Littell, Graham Neubig “Choosing Transfer Languages for Cross-Lingual Learning"(ACL 2019)
【非特許文献2】Ivan Cantador, Ignacio Fenandez-Tobias, Shlomo Bwrkovsky, Paolo Cremonesi, Chapter 27:"Cross-domain Recommender System"(2015 Springer)
【発明の概要】
【発明が解決しようとする課題】
【0010】
非特許文献1では、転移学習の候補となるモデルが、想定し得る転移先言語を十分にカバーするかは考慮されていない。そのため転移先言語によっては適切なモデルが存在しないことがあり得る。この点、非特許文献1は、ドメイン汎化性についての内容ではなく、転移学習、つまりドメイン適応についての研究であり、転移先言語でもモデルの学習を進めるため、複数のモデル候補の中に適切なモデルが存在しない可能性についてはあまり問題にならない。
【0011】
特許文献1では、複数のグループに対応して複数の予測モデルが用意されるが、それぞれのモデルは、一部のユーザのデータを用いて学習されたモデルであるため、学習したグループ外の未知グループに適したモデルを含むとは限らない。
【0012】
特許文献2では、グループ毎に生成された予測モデルからユーザに適合する予測モデルを選択している。特許文献2において、ユーザをグループに分割する目的は、予測モデルに必要な説明変数を少なくし、予測値の計算時間を短くすることである。特許文献2に記載の技術も、特許文献1と同様に、複数のグループに対応して複数の予測モデルが用意されるが、それぞれのモデルは、一部のユーザのデータを用いて学習されたモデルであるため、学習したグループ外の未知グループに適したモデルを含むとは限らない。
【0013】
特許文献3では、医用データの属性の偏りが少ないように学習用データを選別したり、学習済みAIを使用する医療施設のテストデータと属性分布とが近くなるように学習用データを選別したりする。特許文献3に記載の技術は、学習用データが得られた施設とは異なる施設を想定したモデルの構築を行ってはいるが、単一モデルしか用意しておらず、導入先の施設が既知の場合のみに有効性が限られる。つまり、特許文献3に記載の技術は、導入先の施設のデータが学習時にわかっていないと適用することができない。
【0014】
モデルの開発段階では、導入先の施設が未定である場合、あるいは、導入先が特定されていても、その施設について学習するためのデータを入手できない場合があり得る。したがって、これらの場合であっても想定され得る導入先の施設において有効な情報推薦を実現することが望まれる。
【0015】
このような情報推薦を実現する手段の1つとして、例えば、モデル学習の際に導入先の施設のデータが得られない場合であっても、導入の際に導入先の施設において収集されたデータがあれば、そのデータを用いて候補のモデルを評価することで、複数の候補の中から最適なモデルを選択することができる。
【0016】
しかし、事前に用意した複数の候補のモデルのいずれも、導入先の施設のデータで評価した性能が低かった場合には、導入先の施設において高性能な情報推薦を行うことが困難である。このような事態を避けるために、どのような導入先の施設の場合であっても、候補となる複数のモデルを含む候補モデルセットの中に1つ以上は適切なモデルが含まれるように、未知の多様なドメインに対応可能な複数のモデルを構築する技術が求められる。
【0017】
本開示はこのような事情に鑑みてなされたものであり、モデルを学習する段階において導入先の施設のドメインが不明な場合であっても、未知の導入先の施設に対して高性能なモデルを用意することができる情報処理方法、情報処理装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0018】
本開示の第1態様に係る情報処理方法は、1つ以上のプロセッサが実行する情報処理方法であって、1つ以上のプロセッサが、ユーザーのアイテムに対する行動を予測するモデルの学習に用いるデータセットを収集した第1施設とは異なる複数の第2施設の特性を表現することと、それぞれの第2施設の特性に応じて、それぞれの第2施設において予測性能が向上するように複数のモデルを学習することと、を含む。
【0019】
本態様によれば、データセットを収集した第1施設とは異なる特性を持つ複数の第2施設のそれぞれにおいて予測性能を高めた複数のモデルが生成される。第2施設の特性として多様な特性を表現することにより、複数のモデルの多様性を確保することができる。モデルの導入先として想定される未知の施設のあり得る特性の範囲をカバーするように、複数の第2施設のそれぞれの特性を表現し、それぞれの第2施設において予測性能が向上するようにモデルを学習することにより、未知の導入先の施設において高性能なモデルを含む多様なモデル群(複数のモデルのセット)を構築することが可能になる。
【0020】
第2施設は、未知の導入先施設として想定され得る仮想的(hypothetical)な施設であってよい。第2施設は実在する施設であってもよいし、実在しない施設であってもよい。施設は、例えば、企業、病院、店舗、行政機関、あるいはECサイトなど、複数のユーザーを含んで構成される集団の概念を含む。それぞれの施設は互いに異なるドメインとなり得る。
【0021】
本開示の情報処理方法は、情報推薦を行うシステムに適用されるモデルを生成するための機械学習方法として理解することができる。また、本開示の情報処理方法は、モデルを生産する方法(製造方法)として理解することができる。
【0022】
本開示の第2態様に係る情報処理方法は、第1態様に係る情報処理方法において、1つ以上のプロセッサが、それぞれの第2施設の特性に基づき、データセットに含まれるデータを用いて複数の第2施設のそれぞれに対応した複数のモデルを学習する構成であってもよい。1つのデータセットから複数の第2施設のそれぞれに対応する複数のモデルを学習することが可能である。
【0023】
本開示の第3態様に係る情報処理方法は、第1態様または第2態様に係る情報処理方法において、複数の第1施設のそれぞれから収集した複数のデータセットが用意され、1つ以上のプロセッサが、それぞれの第1施設に対してそれぞれ異なる第2施設の特性を表現し、それぞれの第2施設の特性に基づき、それぞれのデータセットに含まれるデータを用いて複数のモデルを学習する構成であってもよい。互いに異なるドメインの複数のデータセットのそれぞれから、それぞれ異なる第2施設に対応するモデルを学習することにより、全体として複数の第2施設のそれぞれに対応する複数のモデルを生成することができる。
【0024】
本開示の第4態様に係る情報処理方法は、第1態様から第3態様のいずれか1つの態様に係る情報処理方法において、1つ以上のプロセッサが、第2施設の特性の表現として、第1施設と第2施設とにおける説明変数の確率分布の違いを表現する構成であってもよい。
【0025】
本開示の第5態様に係る情報処理方法は、第1態様から第4態様のいずれか1つの態様に係る情報処理方法において、1つ以上のプロセッサが、第2施設の特性の表現として、第1施設と第2施設とにおける説明変数と目的変数との間の条件付き確率の違いを表現する構成であってもよい。
【0026】
本開示の第6態様に係る情報処理方法は、第1態様から第5態様のいずれか1つの態様に係る情報処理方法において、1つ以上のプロセッサが、第2施設の特性に応じて、データセットから学習に用いるデータをサンプリングして学習を行う構成であってもよい。1つ以上のプロセッサは、第1施設の特性に対する第2施設の特性の違いを反映してデータをアップサンプリングおよび/またはダウンサンプリングすることにより、既存のデータセットから第2施設のデータを模擬してもよい。
【0027】
本開示の第7態様に係る情報処理方法は、第1態様から第6態様のいずれか1つの態様に係る情報処理方法において、1つ以上のプロセッサが、第2施設の特性に応じて、データセットに含まれるデータを重み付けして学習を行う構成であってもよい。1つ以上のプロセッサは、第1施設の特性に対する第2施設の特性の違いを反映して学習に用いるデータを重み付けすることにより、第2施設の未知なるデータを用いた場合の学習の効果を模擬してもよい。
【0028】
本開示の第8態様に係る情報処理方法は、第1態様から第7態様のいずれか1つの態様に係る情報処理方法において、1つ以上のプロセッサが、第2施設の特性に応じて、モデルに用いる特徴量を選択することを含む構成であってもよい。第1施設と第2施設との特性の違いは、モデルに用いる特徴量の違いとして表現されてもよい。
【0029】
本開示の第9態様に係る情報処理方法は、第8態様に係る情報処理方法において、1つ以上のプロセッサが、説明変数の組み合わせにより表現される交差特徴量の一部をモデルの特徴量から削除して学習を行うことを含む構成であってもよい。異なる施設間で違いが顕著な交差特徴量についてはモデルの特徴量から除いて学習することが好ましい。
【0030】
本開示の第10態様に係る情報処理方法は、第1態様から第9態様のいずれか1つの態様に係る情報処理方法において、モデルは、ユーザーにアイテムを推薦する推薦システムに用いられる予測モデルであり、1つ以上のプロセッサが表現する第2施設の特性は、推薦システムの導入先施設としてあり得る施設特性の範囲内において想定される仮想的な施設の特性であってもよい。
【0031】
本開示の第11態様に係る情報処理方法は、第1態様から第10態様のいずれか1つの態様に係る情報処理方法において、データセットは、第1施設における複数のユーザーの複数のアイテムに対する行動履歴を含む構成であってもよい。
【0032】
本開示の第12態様に係る情報処理方法は、第1態様から第11態様のいずれか1つの態様に係る情報処理方法において、1つ以上のプロセッサが、学習を行うことによって生成された複数のモデルを含む複数の候補モデルのセットを記憶装置に記憶することを含む構成であってもよい。
【0033】
本開示の第13態様に係る情報処理方法は、第1態様から第12態様のいずれか1つの態様に係る情報処理方法において、1つ以上のプロセッサが、データセットに含まれるデータを用いて第1施設において予測性能が向上するように学習された第1モデルと、複数の第2施設のそれぞれの特性に基づいて学習された複数のモデルである複数の第2モデルと、を含む複数の候補モデルのセットを記憶装置に記憶することを含む構成であってもよい。
【0034】
第1モデルの学習を実行するプロセッサは、第2モデルの学習を実行する1つ以上のプロセッサとは別のプロセッサであってもよい。第1モデルは既存のモデルとして用意されていてもよい。
【0035】
本開示の第14態様に係る情報処理方法は、第13態様に係る情報処理方法において、1つ以上のプロセッサが、データセットに含まれるデータを用いて第1モデルを学習することを含む構成であってもよい。
【0036】
本開示の第15態様に係る情報処理方法は、第1態様から第14態様のいずれか1つの態様に係る情報処理方法において、1つ以上のプロセッサが、第1施設とは異なる第3施設において収集されたデータを用いて複数のモデルを含む複数の候補モデルのそれぞれの性能を評価し、評価の結果に基づいて複数の候補モデルの中から第3施設に適したモデルを抽出することを含む構成であってもよい。
【0037】
本開示の第16態様に係る情報処理装置は、1つ以上のプロセッサと、1つ以上のプロセッサに実行させる命令が記憶される1つ以上のメモリと、を備える情報処理装置であって、1つ以上のプロセッサは、アイテムに対するユーザーの行動を予測するモデルの学習に用いるデータセットを収集した第1施設とは異なる複数の第2施設の特性を表現し、それぞれの第2施設の特性に応じて、それぞれの第2施設において予測性能が向上するように複数のモデルを学習する。
【0038】
第16態様に係る情報処理装置において、上述した第2態様から第15態様のいずれか1つの態様に係る情報処理方法と同様の具体的態様を含む構成とすることができる。
【0039】
本開示の第17態様に係るプログラムは、コンピュータに、アイテムに対するユーザーの行動を予測するモデルの学習に用いるデータセットを収集した第1施設とは異なる複数の第2想定施設の特性を表現する機能と、それぞれの第2施設の特性に基づき、それぞれの第2施設の特性に応じて、それぞれの第2施設において予測性能が向上するように複数のモデルを学習する機能と、を実現させる。
【0040】
第17態様に係るプログラムにおいて、上述した第2態様から第15態様のいずれか1つの態様に係る情報処理方法と同様の具体的態様を含む構成とすることができる。
【発明の効果】
【0041】
本開示によれば、モデルを学習する段階において導入先の施設のドメインが不明な場合であっても、多様な施設に対応可能な複数のモデルを生成することが可能であり、未知の導入先の施設に対して高性能なモデルを用意することができる。
【図面の簡単な説明】
【0042】
【
図1】
図1は、典型的な推薦システムの概念図である。
【
図2】
図2は、推薦システムの構築に広く用いられている教師あり機械学習の例を示す概念図である。
【
図3】
図3は、推薦システムの典型的な導入フローを示す説明図である。
【
図4】
図4は、導入先の施設のデータが得られない場合における推薦システムの導入フローの説明図である。
【
図5】
図5は、ドメイン適用によるモデルの学習を行う場合の説明図である。
【
図6】
図6は、学習したモデルの性能を評価するステップを含む推薦システム導入フローの説明図である。
【
図7】
図7は、機械学習に用いる学習用データと評価用データの例を示す説明図である。
【
図8】
図8は、データセットの違いによるモデルの性能の違いを模式的に示すグラフである。
【
図9】
図9は、学習ドメインと導入先ドメインとが異なる場合の推薦システム導入フローの例を示す説明図である。
【
図10】
図10は、学習ドメインと導入先ドメインとが異なる場合の課題を示す説明図である。
【
図11】
図11は、候補モデルの多様性の例を示す説明図である。
【
図12】
図12は、推薦システムの導入先として想定される施設の多様性を示す説明図である。
【
図13】
図13は、
図12に示す各施設での予測に適したモデルが用意されている場合の概念図である。
【
図14】
図14は、学習に用いるデータセットが収集された学習施設の例を示す説明図である。
【
図15】
図15は、
図14に示す学習施設から収集したデータを用いて学習を行うことにより生成されるモデルと施設特性との関係を示す説明図である。
【
図16】
図16は、学習施設から収集したデータを用いて、学習施設とは異なる特性の施設に適したモデルを学習することを示す説明図である。
【
図17】
図17は、実施形態に係る情報処理装置のハードウェア構成の例を概略的に示すブロック図である。
【
図18】
図18は、情報処理装置の機能的構成を示す機能ブロック図である。
【
図20】
図20は、学習施設におけるユーザーの年齢分布の例を示すグラフである。
【
図21】
図21は、同時確率分布P(X,Y)の変数間の依存関係を表現する有向非巡回グラフ(Directed Acyclic Graph:DAG)の例である。
【
図22】
図22は、条件付き確率分布P(Y|X)の確率表現の具体例を示す図である。
【
図23】
図23は、ユーザーの行動特性およびアイテムの特性の組み合わせに対するユーザーのアイテムに対する行動(Y=1)の条件付き確率を表現する式と、同時確率分布P(X,Y)の変数間の依存関係を表現するDAGとの関係を示す説明図である。
【
図24】
図24は、ユーザー属性1およびユーザー属性2の組み合わせにより規定されるユーザーの行動特性と、アイテム属性1およびアイテム属性2の組み合わせにより規定されるアイテムの行動特性と、変数間の依存関係を表現するDAGとの関係を示す説明図である。
【
図25】
図25は、学習施設のデータセットから、仮想施設の特性に応じて学習データをサンプリングする場合の例を示す説明図である。
【
図26】
図26は、仮想施設の特性に応じて学習データの重み付けを変える場合の説明図である。
【
図27】
図27は、ある企業においてどのような文書の種類をどのような部門のユーザーが閲覧しているかという例を模式的に示すグラフである。
【
図28】
図28は、ユーザー特性ベクトルとアイテム特性ベクトルとの内積を属性ベクトル同士の内積の和として表現する例を示す説明図である。
【
図29】
図29は、交差対象により異なるベクトル表現を用いる場合の説明図である。
【発明を実施するための形態】
【0043】
以下、添付図面に従って本発明の好ましい実施形態について説明する。
【0044】
《情報推薦技術の概説》
はじめに、情報推薦技術の概要と課題について具体例を示して概説する。情報推薦技術は、ユーザーに対してアイテムを推薦(サジェスト)するための技術である。
【0045】
図1は、典型的な推薦システム10の概念図である。推薦システム10は、ユーザーの情報と、コンテキストの情報とを入力として受け付け、コンテキストに応じて当該ユーザーに推薦するアイテムの情報を出力する。コンテキストは、様々な「状況」を意味し、例えば、曜日、時間帯、または天気などがあり得る。アイテムは、例えば、本、動画、飲食店など、様々な対象があり得る。
【0046】
推薦システム10は、複数のアイテムを同時に推薦するのが一般的である。
図1では、推薦システム10が3つのアイテムIT1、IT2、IT3を推薦する例が示されている。推薦したアイテムIT1、IT2、IT3に対してユーザーがポジティブな反応をすると、一般に推薦は成功したとみなされる。ポジティブな反応とは、例えば、購入、視聴、または訪問などである。このような推薦技術は、例えば、ECサイトや飲食店を紹介するグルメサイトなどにおいて広く活用されている。
【0047】
推薦システム10は、機械学習の技術を用いて構築される。
図2は、推薦システム10の構築に広く用いられている教師あり機械学習の例を示す概念図である。一般には、過去のユーザーの行動履歴を基に正例および負例を用意して、ユーザーとコンテキストとの組み合わせを予測モデル12に入力し、予測誤差が小さくなるように予測モデル12を訓練する。例えば、ユーザーが閲覧した閲覧アイテムを正例、閲覧しなかった非閲覧アイテムを負例とする。予測誤差が収束するまで機械学習が行われ、目標とする予測性能が獲得される。
【0048】
こうして訓練された学習済み(訓練済み)の予測モデル12を用いて、ユーザーとコンテキストの組合せに対して予測される閲覧確率が高いアイテムを推薦する。例えば、学習済みの予測モデル12に対し、あるユーザーAとコンテキストβとの組合せを入力すると、予測モデル12は、ユーザーAがコンテキストβの条件の下でアイテムIT3のような文書を閲覧する確率が高いと推論し、当該ユーザーAに対してアイテムIT3に近いアイテムを推薦する。なお、推薦システム10の構成によっては、コンテキストを考慮せずにユーザーに対してアイテムを推薦することも多い。
【0049】
〔推薦システムの開発に用いるデータの例〕
ユーザーの行動履歴は、機械学習における「正解データ」と略等しいものである。厳密には、過去の行動履歴から次の(未知の)行動を推論するというタスク設定と理解されるが、過去の行動履歴を基に潜在的な特徴量を学習するのが一般的である。
【0050】
ユーザーの行動履歴としては、例えば、本の購入履歴、動画の視聴履歴、または飲食店の訪問履歴などがあり得る。
【0051】
また、主要な特徴量としては、ユーザー属性と、アイテム属性とがある。ユーザー属性は、例えば、性別、年代、職業、家族構成、および居住エリアなど、様々な要素があり得る。アイテム属性は、例えば、本のジャンル、値段、動画のジャンル、長さ、飲食店のジャンル、場所など様々な要素があり得る。
【0052】
〔モデルの構築と運用〕
図3は、推薦システムの典型的な導入フローを示す説明図である。ここでは、ある施設に推薦システムを導入する際の典型的なフローを示す。推薦システムの導入は、まず、目的の推薦タスクを行うモデル14を構築し(ステップ1)、その後、構築したモデル14を導入して運用する(ステップ2)。モデル14を「構築する」とは、機械学習モデルの場合、学習(訓練)用のデータを用いてモデル14の学習を行い、実用レベルの推薦性能を満たす予測モデル(推薦モデル)を作成することを含む。モデル14を「運用する」とは、例えば、ユーザーとコンテキストとの組合せの入力に対して、学習済みのモデル14から推薦アイテムリストの出力を得ることである。
【0053】
モデル14の構築には、学習用のデータが必要である。
図3に示すように、一般に推薦システムのモデル14は、導入先の施設で収集したデータを基に学習が行われる。導入先の施設から収集されたデータを用いて学習を行うことにより、モデル14は導入先の施設のユーザーの振る舞いを学習し、導入先の施設のユーザーに対して精度のよい推薦アイテムの予測が可能である。
【0054】
しかし、様々な事情により、導入先の施設のデータが得られない場合がある。例えば、企業の社内システムや病院の院内システムにおける文書情報推薦システムなどの場合、推薦モデルを開発する企業が導入先の施設のデータにアクセスできないことが多い。導入先の施設のデータが得られない場合、代わりに、異なる施設で収集されたデータをもとに学習する必要がある。
【0055】
図4は、導入先の施設のデータが得られない場合における推薦システムの導入フローの説明図である。導入先の施設とは異なる施設で収集されたデータを用いて学習したモデル14を挿入先の施設で運用すると、施設間のユーザーの振る舞いの違いなどにより、モデル14の予測精度が低下してしまう問題がある。
【0056】
学習した施設と異なる未知の他施設では機械学習モデルがうまく機能しない問題は、広義にはモデル14を学習したソースドメインと、モデル14を適用するターゲットドメインが異なるドメインシフトの問題に対するロバスト性を向上させるという技術課題として把握される。ドメイン汎化(Domain generalization)に関連する問題設定として、ドメイン適応(Domain adaptation)がある。これはソースドメインとターゲットドメインの両方のデータを用いて学習する方法である。ターゲットドメインのデータが存在するにもかかわらず異なるドメインのデータを使う目的は、ターゲットドメインのデータ量が少なく学習に不十分であるのを補うためである。
【0057】
図5は、ドメイン適応によるモデル14の学習を行う場合の説明図である。ターゲットドメインである導入先の施設で収集されたデータのデータ量は、異なる施設で収集されたデータよりもデータ量に比べて相対的に少ないものの、両方のデータを用いて学習を行うことにより、モデル14は、導入先の施設のユーザーの振る舞いについてもある程度の精度で予測することが可能になる。
【0058】
〔ドメインの説明〕
上記の「施設」の違いはドメインの違いの一種である。情報推薦におけるドメイン適応の研究に関する文献である非特許文献2(Ivan Cantador et al, Chapter 27:"Cross-domain Recommender System")では、ドメインの違いが以下の4つに分類されている。
【0059】
[1]アイテム属性レベル(Item attribute level):例えば、コメディ映画とホラー映画は別ドメイン。
【0060】
[2]アイテムタイプレベル(Item type level):例えば、映画と連続テレビドラマは別ドメイン。
【0061】
[3]アイテムレベル(Item level):例えば、映画と本は別ドメイン。
【0062】
[4]システムレベル(System level):例えば、映画館の映画とテレビ放映の映画は別ドメイン。
【0063】
図5等に示す「施設」の違いは、上記の4分類のうちの[4]システムレベルのドメインに該当する。
【0064】
フォーマルにドメインを定義すると、ドメインは目的変数Yと説明変数Xの同時確率分布P(X,Y)で規定され、Pd1(X,Y)≠ Pd2(X,Y)のとき、d1とd2は異なるドメインである。
【0065】
同時確率分布P(X,Y)は、説明変数の分布P(X)と条件付き確率分布P(Y|X)との積、又は目的変数の分布P(Y)と条件付き確率分布P(Y|X)との積で表すことができる。
【0066】
P(X,Y)=P(Y|X)P(X)=P(X|Y)P(Y)
したがって、P(X)、P(Y)、P(Y|X)及びP(X|Y)のうち1つ以上が変わると異なるドメインとなる。
【0067】
〔ドメインシフトの典型パターン〕
[共変量シフト]説明変数の分布P(X)が異なる場合、共変量シフト(Covariate shift)と呼ばれる。例えば、データセット間でユーザー属性の分布が異なる場合、より具体的には男女比率が異なる場合などが共変量シフトに該当する。
【0068】
[事前確率シフト]目的変数の分布P(Y)が異なる場合、事前確率シフト(Prior probability shift)と呼ばれる。例えば、データセット間で平均閲覧率や平均購入率が異なる場合などが事前確率シフトに該当する。
【0069】
[コンセプトシフト]条件付き確率分布P(Y|X)及びP(X|Y)が異なる場合、コンセプトシフト(Concept shift)と呼ばれる。例えば、ある企業の研究開発部門がデータ分析資料を読む確率がP(Y|X)にあたるが、これがデータセット間で異なる場合などがコンセプトシフトに該当する。
【0070】
ドメイン適応あるいはドメイン汎化性の研究は、上記いずれかのパターンを主要因として想定しているものと、特にどのパターンが主要因であるかを考慮せずにP(X,Y)が変化していることへの対処を考えるものと、がある。なお、前者の場合、特に、共変量シフトを想定しているものが多い。
【0071】
〔ドメインシフトが影響する理由〕
予測あるいは分類のタスクを行う予測/分類モデルは、説明変数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)が施設間で変化する場合も、予測/分類性能は低下する。
【0072】
ドメインシフトは、情報推薦に限らず、いろいろなタスクのモデルについて問題になり得る。例えば、社員の退職リスクを予測するモデルについて、ある企業のデータを用いて学習した予測モデルを別の企業で運用する場合にドメインシフトが問題になり得る。
【0073】
また、細胞の抗体生産量を予測するモデルについて、ある抗体のデータを用いて学習したモデルを、別の抗体で運用する場合にドメインシフトが問題になり得る。また、顧客の声(Voice of Customer:VOC)を分類するモデル、例えば、VOCを「商品機能」、「サポート対応」、および「その他」に分類するモデルについて、ある商品に関するデータを用いて学習した分類モデルを別の商品で運用する場合にドメインシフトが問題になり得る。
【0074】
〔モデルの導入前評価について〕
学習したモデル14を実際の施設等に導入する前に、モデル14の性能評価を行うことが多い。性能評価は導入の可否判断や、モデルあるいは学習手法などの研究開発のために必要である。
【0075】
図6は、学習したモデル14の性能を評価するステップを含む推薦システム導入フローの説明図である。
図6では、
図5で説明したステップ1(モデル14を学習するステップ)とステップ2(モデル14を運用するステップ)との間に、「ステップ1.5」として、モデル14の性能を評価するステップが追加されている。その他の構成は
図5と同様である。
図6に示すように、一般的な推薦システム導入のフローでは、導入先の施設で収集されたデータを学習用データと評価用データとに分割することが多い。評価用データを用いてモデル14の予測性能を確認してから、モデル14の運用が開始される。
【0076】
しかし、ドメイン汎化のモデル14を構築する場合は、学習用データと評価用データは異なるドメインである必要がある。さらに、ドメイン汎化においては、学習用データについても複数ドメインのデータを用いることが好ましく、学習に使えるドメインが多い方がより好ましい。
【0077】
〔汎化性について〕
図7は、機械学習に用いる学習用データと評価用データの例を示す説明図である。あるドメインd1の同時確率分布Pd1(X,Y)から得られるデータセットは、学習用データと、評価用データとに分けられる。学習用データと同一ドメインの評価用データを「第1の評価用データ」といい、
図7において「評価用データ1」と表記する。また、ドメインd1と異なるドメインd2の同時確率分布Pd2(X,Y)から得られるデータセットを用意し、これを評価用データとして用いる。学習用データと異なるドメインの評価用データを「第2の評価用データ」といい、
図7において「評価用データ2」と表記する。
【0078】
ドメインd1の学習用データを用いてモデル14の学習が行われ、ドメインd1の第1の評価用データと、ドメインd2の第2の評価用データとのそれぞれを用いて学習済みのモデル14の性能が評価される。
【0079】
図8は、データセットの違いによるモデルの性能の違いを模式的に示すグラフである。学習用データ内でのモデル14の性能を性能A、第1の評価用データでのモデル14の性能を性能B、第2の評価用データでのモデル14の性能を性能Cとすると、通常は、
図8のように、性能A>性能B>性能Cのような関係になる。
【0080】
モデル14の汎化性能の高さは一般には、性能Bが高いこと、または性能AとBの差が小さいことを指す。つまり、学習用データに過剰適合せずに、学習していないデータに対しても予測の性能が高いことを目指している。
【0081】
本明細書におけるドメイン汎化性の文脈では、性能Cが高いこと、または性能Bと性能Cの差が小さいことを指す。つまり、学習に用いたドメインと異なるドメインでも、変わらずに高い性能が出ることを目指している。
【0082】
本実施形態では、モデル14の学習を行う際に、導入先の施設のデータを用いることができないものの、導入前のモデル評価(導入前評価)の際に導入先の施設で収集された行動履歴を含むデータ(正解データ)を用意することができるという状況を想定する。
【0083】
このような場合、導入先の施設とは異なる施設で収集されたデータを用いてモデルを学習することにより複数の候補モデルを生成し、導入前に、各候補モデルについて導入先の施設で収集されたデータを用いて性能を評価することにより、評価の結果に基づいて複数の候補モデルの中から最適なモデルを選択して導入先の施設に適用することが考えられる。
図9にその例を示す。
【0084】
図9は、学習ドメインと導入先ドメインとが異なる場合の推薦システム導入フローの例を示す説明図である。
図9に示すように、導入先の施設とは異なる施設で収集されたデータを用いて、複数のモデルを学習し得る。ここでは、それぞれ異なる施設で収集されたデータセットDS1、DS2、DS3を用いて、モデルM1、M2、M3の学習が行われる例を示す。例えば、モデルM1はデータセットDS1を用いて訓練され、モデルM2はデータセットDS2を用いて訓練され、モデルM3はデータセットDS3を用いて訓練される。なお、各モデルM1、M2、M3の学習に用いるデータセットは、異なる施設で収集された複数のデータセットの組み合わせであってもよい。例えば、モデルM1はデータセットDS1とデータセットDS2とを混合したデータセットを用いて訓練されてもよい。
【0085】
こうして、複数のモデルM1、M2、M3を学習した後、導入先の施設で収集されたデータDtgを用いて、各モデルM1、M2、M3の性能を評価する。
図9において、各モデルM1,M2、M3の下に示す「A」、「B」、「C」の記号は、各モデルの評価結果を表している。A評価は、導入基準を満たす良好な予測性能であることを示す。B評価はA評価よりも劣る性能であることを示す。C評価はB評価よりもさらに劣る性能であり、導入に適していないことを示す。
【0086】
例えば、
図9のように、モデルM1の評価結果が「A」、モデルM2の評価結果が「B」、モデルM3の評価結果が「C」であったとすると、導入先の施設にとって最適なモデルとしてモデルM1が選択され、モデルM1を適用した推薦システム10が導入されることになる。
【0087】
〔課題〕
図9で説明したように、事前に学習して予め用意した複数のモデルM1~M3の中に、いずれか1つでも性能が良好なモデルがあれば、導入先の施設で良好な情報推薦が可能である。
【0088】
しかし、事前に学習したモデルM1、M2、M3のいずれも、導入前評価の評価結果がA評価とならない場合も想定される。
図10にその例を示す。
【0089】
図10に示すように、各モデルM1,M2、M3の評価結果が、例えば、すべてB評価である場合、あるいは、B評価またはC評価のみである場合、どのモデルを選んでも導入先の施設において高性能な情報推薦を行うことが困難である。
【0090】
このような事態を回避するには、予め用意しておく複数の候補モデルに十分な多様性があることが重要になる。例えば、モデルM1,M2、M3のそれぞれの性能が互いに大きく異なるものとなっていれば、導入先としてあり得る(想定され得る)施設の特性の違いに対応して、いずれかのモデルを適用できる可能性が高まる。
【0091】
図11は、候補モデルの多様性を示す説明図である。例えば、
図11に示すように、導入先としてあり得る施設の特性が3パターンあるとする。図中の「導入先施設1」、「導入先施設2」および「導入先施設3」という数字を付した表記は、それぞれ異なる施設特性のパターンの施設であることを表している。
【0092】
図11には、予め用意された複数の候補モデルである3つモデルM1、M2、M3について、これら3つのパターンの各施設のデータを用いて性能を評価した場合の評価結果の例が示されている。
【0093】
図11の上段に示す導入先施設1で収集されたデータを用いて候補のモデルM1、M2、M3の性能を評価した場合の評価結果は、モデルM1がA評価、モデルM2がB評価、モデルM3がC評価である。
図11の中段に示す導入先施設2で収集されたデータを用いて候補のモデルM1、M2、M3の性能を評価した場合の評価結果は、モデルM1がC評価、モデルM2がA評価、モデルM3がB評価である。
図11の下段に示す導入先施設3のデータを用いて候補のモデルM1、M2、M3の性能を評価した場合の評価結果は、モデルM1がB評価、モデルM2がC評価、モデルM3がA評価である。
【0094】
この場合、第1のパターンの施設(導入先施設1)に対してはモデルM1を、第2のパターンの施設(導入先施設2)に対してはモデルM2を、第3のパターンの施設(導入先施設3)に対してはモデルM3を適用できる。
【0095】
このように、どのような導入先であっても1つ以上の良好なモデルが含まれるような多様性のある複数の候補モデルを用意することが望まれる。複数の候補モデルの集合を候補モデルセットと呼ぶ。
【0096】
本実施形態では、
図11に示すように、どのような未知の導入先施設の場合も候補モデルセットの中に1つ以上は良好なモデル(A評価のモデル)が含まれるように、候補となる複数のモデルを構築することを目指す。
【0097】
図12は、推薦システム10の導入先として想定される施設の多様性を示す説明図である。候補モデルの多様性を確保するにあたり、まず、未知の導入先施設として、どのような施設特性の施設があり得るかを考える。
図12の横軸と縦軸のそれぞれは、何かしらの施設特性を表している。
図12では、施設特性Aと施設特性Bとの2軸のベクトル空間を示すが、実際の施設特性は多次元となり得る。施設特性は、例えば、病院であれば、患者の年齢(年代)の分布であったり、どのような病気の人が多いかなどの病歴の比率であったりといったものである。
【0098】
未知の導入先施設として想定される施設特性は、例えば、
図12において楕円状の閉曲線で囲んだ範囲に分布する。この導入先施設としてあり得る施設特性の範囲内のどの施設が導入先に選ばれたとしても、その施設に適したモデルを候補のモデルセットの中に持つことが望まれる。すなわち、
図13に示すように、候補のモデルセットに含まれる複数のモデルM1、M2、M3、Mk・・・Mnが、あり得る施設特性の範囲内に概ね偏り無く分布していることが望ましい。
【0099】
学習に用いるデータを収集できる施設が数多く存在し、学習に用いる施設のデータが、十分に多く、かつ、多様であれば、あり得る施設に適したモデルを候補のモデルセットに用意することは比較的容易である。
【0100】
しかし、実際には、
図14に示すように、モデルの学習に用いるデータを収集することができる施設(以下、学習施設という。)の数は少なく、学習に用いるデータがそれほど多様でないことが多い。図中の「学習施設1」、「学習施設2」および「学習施設3」という数字を付した表記は、それぞれ異なる施設であることを表している。例えば、学習に用いることができるデータは、学習施設1~3から得られるデータのみであるということがあり得る。
【0101】
図14に示す学習施設1~3は、あり得る施設特性の範囲内の限られた範囲に偏在している。この場合、
図15に示すように、限られた学習施設の特性の範囲でしか、候補モデルを用意できない。
図15中のモデルM1は、学習施設1のデータを用いて学習させたモデルである。同様に、
図15中のモデルM2は学習施設2、モデルM3は学習施設3のデータをそれぞれ用いて学習させたモデルである。
図15中のモデルM4は、学習施設1~3のデータを混ぜて学習させたモデルである。つまり、学習施設1~3のデータだけでは、あり得る施設特性の範囲の右側半分の領域および上側の領域についてカバーできるモデルを構築することができず、この領域の施設特性を持つ導入先施設に対して、良好な情報推薦を行うモデルを用意できない。
【0102】
図14及び
図15で説明したように、学習施設が少ない場合、用意できる複数の候補モデルの多様性が十分ではなく、あり得る施設特性の範囲を十分にカバーできず、想定される未知の導入先施設に対して適したモデルを候補モデルセットに用意することが難しい。
【0103】
かかる課題に対して、本実施形態では、
図16に示すように、学習施設1~3の施設特性ではないが、導入先の施設としてあり得る施設特性に対応した複数のモデルMa、Mb、Mcを学習して候補のモデルとして用意することが可能な情報処理方法および情報処理装置を提供する。
【0104】
《実施形態に係る情報処理装置の概要》
図17は、実施形態に係る情報処理装置100のハードウェア構成の例を概略的に示すブロック図である。情報処理装置100は、学習施設とは異なる仮想的な導入先施設の特性を表現する機能と、その仮想的な導入先施設の特性に応じて、仮想的な導入先施設において予測性能が向上するようにモデルの学習を行う機能と、を備え、複数の仮想的な導入先施設の特性を表現し、複数の仮想的な導入先施設のそれぞれに対応した複数のモデルを学習する。
【0105】
情報処理装置100は、学習施設で収集されたデータセットを基に、仮想的な導入先施設の特性を反映したアップサンプリング、ダウンサンプリング、若しくは学習データの重み付け、またはこれらの適宜の組み合せを行うことにより、仮想的な導入先施設に適したモデルを生成する。
【0106】
仮想的な導入先施設を想定することは、学習施設(学習ドメイン)の同時確率分布P(X,Y)と異なる分布である同時確率分布Pdh(X,Y)を想定することに相当する。
「仮想的な導入先施設の特性」とは、未知の導入先施設として想定される施設の特性である。この想定される施設は、実在する施設であってもよいし、実在しない施設であってもよい。「仮想的な導入先施設」のことを「仮想施設」と呼ぶ。仮想施設は「想定施設」と言い換えてもよい。
【0107】
情報処理装置100は、コンピュータのハードウェアとソフトウェアとを用いて実現できる。情報処理装置100の物理的形態は特に限定されず、サーバコンピュータであってもよいし、ワークステーションであってもよく、パーソナルコンピュータあるいはタブレット端末などであってもよい。ここでは、1台のコンピュータを用いて情報処理装置100の処理機能を実現する例を述べるが、情報処理装置100の処理機能は、複数台のコンピュータを用いて構成されるコンピュータシステムによって実現してもよい。
【0108】
情報処理装置100は、プロセッサ102と、非一時的な有体物であるコンピュータ可読媒体104と、通信インターフェース106と、入出力インターフェース108と、バス110とを含む。
【0109】
プロセッサ102は、CPU(Central Processing Unit)を含む。プロセッサ102はGPU(Graphics Processing Unit)を含んでもよい。プロセッサ102は、バス110を介してコンピュータ可読媒体104、通信インターフェース106および入出力インターフェース108と接続される。プロセッサ102は、コンピュータ可読媒体104に記憶された各種のプログラムおよびデータ等を読み出し、各種の処理を実行する。プログラムという用語は、プログラムモジュールの概念を含み、プログラムに準じる命令を含む。
【0110】
コンピュータ可読媒体104は、例えば、主記憶装置であるメモリ112および補助記憶装置であるストレージ114を含む記憶装置である。ストレージ114は、例えば、ハードディスク(Hard Disk Drive:HDD)装置、ソリッドステートドライブ(Solid State Drive:SSD)装置、光ディスク、光磁気ディスク、もしくは半導体メモリ、またはこれらの適宜の組み合わせを用いて構成される。ストレージ114には、各種プログラムやデータ等が記憶される。
【0111】
メモリ112は、プロセッサ102の作業領域として使用され、ストレージ114から読み出されたプログラムおよび各種のデータを一時的に記憶する記憶部として用いられる。ストレージ114に記憶されているプログラムがメモリ112にロードされ、プログラムの命令をプロセッサ102が実行することにより、プロセッサ102は、プログラムで規定される各種の処理を行う手段として機能する。
【0112】
メモリ112には、プロセッサ102によって実行される施設特性取得プログラム130、仮想特性表現プログラム132、仮想施設学習プログラム134、および学習モデル136などの各種のプログラムおよび各種のデータ等が記憶される。なお、学習モデル136は、仮想施設学習プログラム134の中に含まれてもよい。
【0113】
施設特性取得プログラム130は、学習施設および/または未知の導入先施設の特性を示す情報を取得する処理を実行させるプログラムである。施設特性取得プログラム130は、例えば、学習施設で収集されたデータセットに含まれるデータを統計処理するなどして、学習施設の特性を示す情報を取得してもよい。また、施設特性取得プログラム130は、例えば、ユーザーインターフェースを介して施設の特性を示す情報の入力を受け付けてもよいし、インターネット上から施設の特性を示す公開情報などを自動的に収集してもよい。
【0114】
仮想特性表現プログラム132は、学習施設とは異なる仮想施設の特性を表現する処理を実行させるプログラムである。仮想特性表現プログラム132は、例えば、学習施設と仮想施設とにおける説明変数の確率分布の違いを表現する。また、仮想特性表現プログラム132は、例えば、学習施設と仮想施設とにおける説明変数と目的変数との間の条件付き確率の違いを表現してもよい。
【0115】
仮想施設学習プログラム134は、仮想特性表現プログラム132によって表現された仮想施設の特性に応じて、仮想施設において予測性能が向上するように学習モデル136を学習する処理を実行させるプログラムである。
【0116】
メモリ112は、データセット記憶部140と、候補モデル記憶部142とを含む。データセット記憶部140は、学習施設で収集されたデータセット(以下、オリジナルデータセットという。)が記憶される記憶領域である。候補モデル記憶部142は、仮想施設学習プログラム134によって学習した学習済み(訓練済み)のモデルである候補モデルが記憶される記憶領域である。
【0117】
通信インターフェース106は、有線または無線により外部装置との通信処理を行い、外部装置との間で情報のやり取りを行う。情報処理装置100は、通信インターフェース106を介して不図示の通信回線に接続される。通信回線は、ローカルエリアネットワークであってもよいし、ワイドエリアネットワークであってもよく、これらの組み合わせであってもよい。通信インターフェース106は、オリジナルデータセットなど様々なデータの入力を受け付けるデータ取得部の役割を担うことができる。
【0118】
情報処理装置100は、入力装置152と表示装置154とを備えていてもよい。入力装置152および表示装置154は入出力インターフェース108を介してバス110に接続される。入力装置152は、例えば、キーボード、マウス、マルチタッチパネル、もしくはその他のポインティングデバイス、もしくは、音声入力装置、またはこれらの適宜の組み合わせであってよい。表示装置154は、例えば、液晶ディスプレイ、有機EL(organic electro-luminescence:OEL)ディスプレイ、もしくは、プロジェクタ、またはこれらの適宜の組み合わせであってよい。なお、タッチパネルのように入力装置152と表示装置154とが一体的に構成されてもよく、タッチパネル式のタブレット端末のように、情報処理装置100と入力装置152と表示装置154とが一体的に構成されてもよい。
【0119】
図18は、情報処理装置100の機能的構成を示す機能ブロック図である。情報処理装置100は、データ取得部220と、データ保存部222と、施設特性取得部230と、仮想特性表現部232と、仮想施設学習部234とを含む。データ取得部220は、学習施設で収集されたデータセットDSを取得する。データセットDSは学習施設における複数のユーザーの複数のアイテムに対する行動履歴を含む。
【0120】
データ取得部220を介して取得されたデータセットDSはデータ保存部222に保存される。データセット記憶部140(
図17参照)はデータ保存部222に含まれる。データ保存部222には、複数の学習施設のそれぞれから収集された複数のデータセットが保存されてもよい。
【0121】
施設特性取得部230は、学習施設等における施設の特性(施設特性)を示す施設特性情報を取得する。施設特性取得部230は、データ保存部222に格納されているデータセットのデータを用いて統計処理などを行うことにより、学習施設の施設特性情報を取得してもよい。また、施設特性取得部230は、インターネット上に公開されている公開情報などから、様々な施設の施設特性情報を取得してもよい。
【0122】
仮想特性表現部232は、導入先の施設として想定される仮想施設の特性を表現する。仮想特性表現部232は、学習施設とは異なる複数の仮想施設の特性を表現し得る。仮想施設学習部234は、表現された仮想施設の特性に基づき、仮想施設において予測性能が向上するように学習モデル136の学習を行う。仮想施設学習部234は、複数の仮想施設のそれぞれの特性を基に、各仮想施設に対応した複数の学習モデル136を生成し得る。
【0123】
仮想施設学習部234は、データセットDSから学習データをサンプリングするサンプリング部242と、学習モデル136と、ロス演算部244と、オプティマイザ246とを含む。サンプリング部242は、仮想施設で想定されるデータ分布に合うように、仮想施設の特性に応じてアップサンプリングおよび/またはダウンサンプリングを行う。
【0124】
サンプリング部242によってサンプリングされた学習データは学習モデル136に入力され、学習モデル136から入力データに応じた予測結果が出力される。学習モデル136は、ユーザーのアイテムに対する行動を予測する数理モデルとして構築される。
【0125】
ロス演算部244は、学習モデル136から出力される予測(推論)結果と、入力データに対応付けされている正解データ(教師データ)とを基に、両者間の損失値(ロス)を算出する。
【0126】
オプティマイザ246は、学習モデル136が出力する予測結果が正解データに近づくように、ロスの演算結果に基づき、学習モデル136のパラメータの更新量を決定し、学習モデル136のパラメータの更新処理を行う。オプティマイザ246は、勾配降下法などのアルゴリズムに基づきパラメータの更新を行う。仮想施設学習部234は、1サンプルずつ学習データを取得してパラメータを更新してもよいし、複数の学習データをまとめたミニバッチの単位で学習データの取得とパラメータの更新とを実施してもよい。
【0127】
こうして、データセットからサンプリングされた学習データを用いて機械学習が行われることにより、学習モデル136のパラメータが最適化され、目的とする予測性能を持つ学習モデル136が生成される。学習済み(訓練済み)の学習モデル136は、候補モデルとして候補モデル記憶部142(
図17参照)に格納される。
【0128】
また、仮想施設学習部234は、学習の際における学習データの重みを制御する重み付け制御部248を含んでもよい。重み付け制御部248は、仮想施設で想定されるデータ分布に合うように、仮想特性に応じて学習データの重み付けを行う。
【0129】
仮想特性表現部232が互いに異なる複数の仮想施設の特性を生成することにより、それぞれの特性に合わせた複数の候補モデルが得られる。
【0130】
例えば、仮想特性表現部232は、仮想施設の特性を示す仮想分布(Hypothetical distribution)として、互いに異なる複数の分布である説明変数の確率分布Ph1(X)、Ph2(X)、およびPh3(X)を表現し、仮想施設学習部234はそれぞれの特性に対応したモデルMc1、Mc2、およびMc3を学習する。
【0131】
また、例えば、仮想特性表現部232は、仮想施設の特性を示す仮想分布として、互いに異なる複数の分布である条件付き確率Ph1(Y|X)、Ph2(Y|X)、およびPh3(Y|X)を表現し、仮想施設学習部234はそれぞれの特性に対応したモデルMc1、Mc2、およびMc3を学習してもよい。
【0132】
〔行動履歴の具体例〕
図19は、行動履歴のデータの例を示す図表である。ここでは、企業内の文書閲覧システムにおける行動履歴の場合を考える。
図17には、ある企業の文書閲覧システムから得られた文書の閲覧に関するユーザーの行動履歴のテーブルの例が示されている。ここでの「アイテム」は文書である。
図17に示すテーブルは、「時間」、「ユーザーID」、「アイテムID」、「ユーザー属性1」、「ユーザー属性2」、「アイテム属性1」「アイテム属性2」および「閲覧有無」のカラムを含む。
【0133】
「時間」は、アイテムを閲覧した日時である。「ユーザーID」は、ユーザーを特定する識別符号であり、各ユーザーに対して固有のID(identification)が定義されている。アイテムIDはアイテムを特定する識別符号であり、各アイテムに対して固有のIDが定義されている。「ユーザー属性1」は例えばユーザーの所属部門である。「ユーザー属性2」は例えばユーザーの年代である。「アイテム属性1」は例えばアイテムの分類カテゴリーとしての文書種類である。「アイテム属性2」は例えばアイテムのファイルタイプである。「閲覧有無」は閲覧された場合(閲覧有り)の値が「1」となる。なお、閲覧していないアイテムは膨大なため、閲覧したアイテム(閲覧有無=1)のみレコードに記録するのが一般的である。
【0134】
図19における「閲覧有無」は目的変数Yの一例であり、「ユーザー属性1」、「ユーザー属性2」、「アイテム属性1」、および「アイテム属性2」のそれぞれは説明変数Xの一例である。説明変数Xの種類数およびその組み合わせについては、
図17の例に限らない。説明変数Xとして、さらに不図示のコンテキスト1、コンテキスト2、ユーザー属性3、およびアイテム属性3などを含んでもよい。
【0135】
〔施設特性の例〕
ここでは、施設特性の具体例として、ユーザーの年齢の分布を例に説明する。
図20に、学習施設におけるユーザーの年齢分布の例を示す。横軸は年齢、縦軸は頻度を表す。
図20に示すグラフは、対象施設におけるユーザーの年齢のヒストグラムあるいは密度分布P(X)に相当するものと理解される。
【0136】
図20において、実線で示すグラフGr0は、学習施設におけるユーザーの年齢分布である。この学習施設は、年齢の分布が比較的均等であり、平均年齢は例えば40歳であるとする。これに対して、別の施設だと、例えば、グラフGr1のように高年齢の割合が多かったり(パターン1)、また、グラフGr2のように低年齢の割合が多かったり(パターン2)することが想定される。パターン1の年齢分布を持つ仮想施設のユーザーの平均年齢は例えば60歳であり、パターン2の年齢分布を持つ仮想施設のユーザーの平均年齢は例えば25歳であり得る。
【0137】
このような施設間におけるユーザーの年齢分布の違いは、ドメインシフトの一種の「共変量シフト」に相当する。導入先施設として想定される未知の施設の年齢分布としてあり得るパターンは、例えば、世間に公表されている企業情報や各種の統計情報などの公開情報から推測することができる。例えば、都道府県ごとの年齢分布が公開されている。企業の場合も社員の平均年齢などを公開していたりする。また、病院の場合も、患者の満足度調査などのアンケート結果を公開していることがあり、その中に回答者の属性分布などが含まれていたりする。このような、公開情報あるいは入手容易な情報などを基に、想定される施設の年齢分布を予め推測することができる。
【0138】
〔学習方法の説明〕
次に、情報処理装置100が実行する学習方法について説明する。ここでは、情報推薦において多用される行列分解(matrix factorization)の場合を例に説明する。学習施設におけるユーザーの行動履歴として、例えば、
図19に示すテーブルのようなデータがある場合、プロセッサ102は、このデータを基に、まず変数間の依存性を学習する。より具体的には、プロセッサ102は、ユーザーおよびアイテムをそれぞれベクトルで表現し、それぞれの内積の和が行動確率になるようなモデルを用い、行動予測の誤差を最小化するようにモデルのパラメータを更新していく。
【0139】
ユーザーのベクトル表現は、例えば、そのユーザーの各属性のベクトル表現の足し合わせで表現する。アイテムのベクトル表現も同様である。変数間の依存性を学習したモデルは、与えられた行動履歴のデータセットにおける目的変数Yと各説明変数X間の同時確率分布P(X,Y)を表現したものに相当する。
【0140】
図21は、同時確率分布P(X,Y)の変数間の依存関係を表現する有向非巡回グラフ(Directed Acyclic Graph:DAG)の例である。
図21では、説明変数Xとして、ユーザー属性1、ユーザー属性2、アイテム属性1、およびアイテム属性2の4つの変数を用いる例を示す。これら各説明変数Xと、目的変数Yであるユーザーのアイテムに対する行動との関係は、例えば、
図21のようなグラフによって表される。
【0141】
学習の際には、例えば、
図21に示すDAGのような変数間の依存関係を基に、同時確率分布P(X,Y)のベクトル表現を求める。
図21に示すグラフは、目的変数であるユーザーのアイテムに対する行動が、ユーザーの行動特性と、アイテムの特性とに依存していることを示しており、ユーザーの行動特性がユーザー属性1とユーザー属性2とに依存し、アイテムの特性がアイテム属性1とアイテム属性2とに依存していることを示している。
【0142】
図21のように、ユーザー属性1とユーザー属性2との組み合わせがユーザーの行動特性を規定する。また、アイテム属性1とアイテム属性2との組み合わせがアイテムの特性を規定する。そして、ユーザーのアイテムに対する行動は、ユーザーの行動特性とアイテムの特性との組み合わせによって規定される。
【0143】
一般に、P(X,Y)=P(X)×P(Y|X)の関係が成り立ち、
図21のグラフをこの式に当てはめると、次のように表される。
【0144】
P(X)=P(ユーザー属性1,ユーザー属性2,アイテム属性1,アイテム属性2)
P(Y|X)=P(ユーザーのアイテムに対する行動|ユーザー属性1,ユーザー属性2,アイテム属性1,アイテム属性2)
P(X,Y)=P(ユーザー属性1,ユーザー属性2,アイテム属性1,アイテム属性2)×P(ユーザーのアイテムに対する行動|ユーザー属性1,ユーザー属性2,アイテム属性1,アイテム属性2)
また、
図21に示すグラフは、次のように要素分解できることを示している。
P(Y|X)=P(ユーザーのアイテムに対する行動|ユーザーの行動特性,アイテムの特性)×P(ユーザーの行動特性|ユーザー属性1,ユーザー属性2)×P(アイテムの行動特性|アイテム属性1,アイテム属性2)
【0145】
〔条件付き確率分布P(Y|X)の確率表現の例〕
例えば、ユーザーがアイテムを閲覧(Y=1)する確率を、ユーザー特性ベクトルとアイテム特性ベクトルの内積のシグモイド関数で表現する。このような表現方法は、行列分解(Matrix Factorization)と呼ばれる。なお、シグモイド関数を採用している理由は、シグモイド関数の値が0から1の範囲となって関数の値がそのまま確率に対応するものとなり得るためである。シグモイド関数に限らず、他の関数を用いるモデル表現であってもよい。
【0146】
図22に、P(Y|X)の確率表現の具体例を示す。
図22の上段に示す式F22Aは、行列分解により、ユーザー特性ベクトルθuと、アイテム特性ベクトルφiとをそれぞれ5次元のベクトルで表し、これらの内積(θu・φi)のシグモイド関数σ(θu・φi)を条件付き確率P(Y=1|ユーザー,アイテム)として表現する式の例である。
【0147】
uはユーザーを区別するインデックス値である。iはアイテムを区別するインデックス値である。なお、ベクトルの次元は5次元に限らず、モデルのハイパーパラメータとして適宜の次元数に設定される。
【0148】
ユーザー特性ベクトルθuは、ユーザーの属性ベクトルの足し合わせで表現される。例えば、
図22の中段に示す式F22Bのように、ユーザー特性ベクトルθuは、ユーザー属性1ベクトルと、ユーザー属性2ベクトルとの和で表現される。また、アイテム特性ベクトルφiは、アイテムの属性ベクトルの足し合わせで表現される。例えば、
図22の下段に示す式F22Cのように、アイテム特性ベクトルφiは、アイテム属性1ベクトルと、アイテム属性2ベクトルとの和で表現される。
【0149】
図23は、ユーザーの行動特性およびアイテムの特性の組み合わせに対するユーザーのアイテムに対する行動(Y=1)の条件付き確率を表現する式F22Aと、同時確率分布P(X,Y)の変数間の依存関係を表現するDAGとの関係を示す説明図である。
図23に示すように、式F22Aは、
図23に示すDAGにおける破線の枠FR1で囲んだ部分の条件付き確率を表現している。
【0150】
図24は、ユーザー属性1およびユーザー属性2の組み合わせにより規定されるユーザーの行動特性と、アイテム属性1およびアイテム属性2の組み合わせにより規定されるアイテムの特性と、変数間の依存関係を表現するDAGとの関係を示す説明図である。
図24に示すように、式F22Bは、
図24に示すDAGにおける破線により示す枠FR2で囲んだ部分の関係を表している。また、式F22Cは、
図24に示すDAGにおける破線により示す枠FR3で囲んだ部分の関係を表している。
【0151】
図23に示す各ベクトルの値は、与えられたドメインのユーザー行動履歴のデータセットに含まれるデータ(学習データ)から学習することにより決定される。
【0152】
例えば、閲覧したユーザーとアイテムのペアに対しては、P(Y=1|ユーザー,アイテム)が大きくなるように、閲覧しなかったユーザーとアイテムのペアに対してはP(Y=1|ユーザー,アイテム)が小さくなるように、例えば確率的勾配降下法(stochastic gradient descent:SGD)でベクトルの値を更新する。
【0153】
図23および
図24に示す同時確率分布P(X,Y)の場合、データから学習したいパラメータは以下に示すとおりである。
・ユーザー特性ベクトル:θu
・アイテム特性ベクトル:φi
・ユーザー属性1ベクトル:Vk_u^1
・ユーザー属性2ベクトル:Vk_u^2
・アイテム属性1ベクトル:Vk_i^1
・アイテム属性2ベクトル:Vk_i^2
ただし、これらのパラメータは、下記の関係を満たす。
・θu=Vk_u^1+Vk_u^2
・φi=Vk_i^1+Vk_i^2
kは属性を区別するインデックス値である。例えば、ユーザー属性1が所属部門10種類、ユーザー属性2が年代6水準、アイテム属性1が文書種類20種類、アイテム属性2がファイルタイプ5種類であるとすると、属性の種類は10+6+20+5=41であるため、kのとりうる値は1から41である。例えばk=1ならユーザー属性1の営業部門に対応し、ユーザーuのユーザー属性1のインデックス値はk_u^1と表される。
【0154】
ユーザー属性1ベクトルVk_u^1、ユーザー属性2ベクトルVk_u^2、アイテム属性1ベクトルVk_i^1、およびアイテム属性2ベクトルVk_i^2の各ベクトルの値は、学習データから学習によって求められる。
【0155】
学習の際のロス関数として、例えば、次式(1)に示すログ損失(Logloss)が用いられる。
【0156】
L=-{Yui log σ(θu・φi)+(1-Yui) log (1-σ(θu・φi))}(1)
ユーザーuがアイテムiを閲覧した場合はYui=1であり、予測確率であるσ(θu・φi)が大きいほどロスLが小さい。逆にユーザーuがアイテムiを閲覧しなかった場合はYui=0であり、σ(θu・φi)が小さいほどロスLが小さい。
【0157】
上記のロスLが小さくなるようにベクトル表現のパラメータを学習する。例えば、確率的勾配降下法による最適化を行う場合、全学習データから1レコードをランダムに選択し(コンテキストによらない場合は、全u-iペアの中から1つのu-iペアを選ぶ)、選択されたレコードに対してロス関数の各パラメータの偏微分(勾配)を算出し、勾配の大きさに比例してロスLが小さくなる方向にパラメータを変化させる。
【0158】
例えば、ユーザー属性1ベクトル(Vk_u^1)のパラメータを次式(2)に従い更新する。
【0159】
【0160】
式(2)中のαは学習速度である。
【0161】
なお、一般に、多数のアイテムの中では、Y=0のアイテムの方がY=1のアイテムより圧倒的に多いため、
図19のような行動履歴のデータをテーブルとして保存する場合は、Y=1のみを保持し、行動履歴のデータに含まれないユーザーuとアイテムiのペアは、Y=0として学習する。つまり、正例のデータだけを保存しておけば、負例は正例のデータに含まれていないものとして容易に生成可能である。
【0162】
〔モデル表現について〕
説明変数Xと目的変数Yの同時確率分布を表現する手段は行列分解に限らない。例えば、行列分解の代わりに、ロジスティック回帰(logistic regression)、あるいはナイーブベイズ(Naive Bayes)などを適用してもよい。任意の予測モデルの場合も、出力スコアを確率P(Y|X)に近くなるようにキャリブレーションを行うことで、同時確率分布表現の手段に利用できる。例えば、SVM(Support Vector Machine)、GDBT(Gradient Boosting Decision Tree)、および任意のアーキテクチャのニューラルネットワークモデルなども利用可能である。
【0163】
〔学習データのサンプリングについて〕
本実施形態では、学習施設のデータを、仮想施設のデータ分布に合わせるようにアップサンプリングやダウンサンプリングする。
図25は、学習施設のデータセットから、仮想施設の特性に応じて学習データをサンプリングする場合の例を示す説明図である。
【0164】
図25では、
図20のグラフGr2に示すパターン2の年齢分布を持つ仮想施設に対応したモデルの学習に用いる学習データをサンプリングする場合の例を示す。プロセッサ102は、学習施設のデータを、パターン2の年齢分布に合うようにアップサンプリングやダウンサンプリングする(
図25)。
図25に示す学習施設のデータの場合、年齢の若いユーザーのデータが少なめであるため、グラフGr2に示すように、年齢が若いユーザーのデータをアップサンプリングし、年齢が高いユーザーのデータは多めであるため、ダウンサンプリングする。こうしてサンプリングされたデータを用いて学習を行うことにより、パターン2の年齢分布を持つ仮想的な施設に適したモデルを用意することができる。
【0165】
図25に示すグラフGr2が示す分布は、学習施設における説明変数の確率分布との違いを表現する確率分布の一例である。図には示さないが、
図20のグラフGr1に示す年齢分布を持つ仮想施設に対応したモデルを学習する際には、グラフGr1の分布を反映させたサンプリングを行えばよい。
【0166】
〔サンプリングの説明〕
先述のようにSGDでは学習の1ステップごとに学習用のデータセットから1レコードを選択する。この操作は、学習モデル136の予測誤差が収束するまで繰り返えされる。
【0167】
アップサンプリングやダウンサンプリングがないときは、全レコードが(ほぼ)同じ回数だけ選択されて、学習に用いられる。例えば、データセットのテーブルに含まれるレコード1~4はそれぞれ4回ずつ学習に用いられる。なお、確率的にサンプリングするので確率的なゆらぎの範囲では学習に使われる回数にばらつきはあり得る。
【0168】
これに対し、例えば、レコード1は年齢が低く、アップサンプリングされ、レコード4は年齢が高くダウンサンプリングされ、レコード2と3はアップサンプリングもダウンサンプリングもされないとする。その場合、各レコードが学習に用いられる回数は、レコード1が8回、レコード2とレコード3はそれぞれ4回、レコード4は2回となる。
【0169】
〔学習データの重み付けの例〕
図25では、仮想施設の特性に応じたデータのサンプリングによって対応する例を説明したが、データのサンプリングの代わりに、またはこれと組み合わせて、学習時における学習データの重みを変えることで、同様に、仮想施設に適したモデルを生成することが可能である。
【0170】
図26は、仮想施設の特性に応じて学習データの重み付けを変える場合の説明図である。例えば、プロセッサ102は、学習施設における説明変数の密度P_学習施設(X)と、仮想施設における説明変数の密度P_仮想施設(X)との密度比を用いて学習データを重み付けして学習してもよい。
【0171】
学習施設と仮想施設の説明変数の密度比wは、次式で表される。
される。
【0172】
w=P_仮想施設(X)/P_学習施設(X)
この密度比wを重みとして用い、w>1である場合は、学習時の重みを上げ、w<1である場合は学習時の重みを下げる。
【0173】
これは、重点サンプリング(importance sampling)と呼ばれる手法であり、共変量シフトに対する手法の代表例である。これ以外の共変量シフトに対する手法を適用してもよい。
【0174】
学習データの重み付けを行う場合、式で説明したロス関数に対して、学習レコードごとに重みwuiを付けることができる。すなわち、式(1)に代えて、次式(3)で示すロス関数を適用できる。
【0175】
L=-wui{Yui log σ(θu・φi)+(1-Yui) log (1-σ(θu・φi))}
(3)
なお、学習データに重み付けしない場合は、式(3)における重みwuiが常に「1」である場合に相当する。
【0176】
重点サンプリングでは、重みwuiを次式のように定義する。
【0177】
wui=P_仮想施設(X)/P_学習施設(X)
Xは説明変数の組み合わせからなるベクトルであり、例えば、X=(ユーザー属性1,ユーザー属性2,アイテム属性1,アイテム属性2)である。
【0178】
例えば、低年齢のユーザーは、学習施設ではP(X)=0.1、仮想施設ではP(X)=0.2である場合、低年齢のユーザーuのデータ(レコード)の学習時の重みはwui=0.2/0.1=2、となる。また、例えば、高年齢のユーザーは、学習施設ではP(X)=0.15、仮想施設ではP(X)=0.05の場合、高年齢のユーザーuのデータの学習時の重みはwui=0.05/0.15=0.33、となる。
【0179】
〔条件付き確率P(Y|X)が異なる場合〕
これまでは、ユーザーの年齢分布を例に施設特性としての説明変数の確率分布P(X)が異なる場合の対応について説明したが、学習施設と仮想施設とで条件付き確率P(Y|X)が異なる場合についても同様に、複数のモデルを用意することができる。
【0180】
図27は、ある企業においてどのような文書の種類をどのような部門のユーザーが閲覧しているかという例を模式的に示すグラフである。
図27には、研究開発部門と営業部門のそれぞれのユーザーが、データ分析資料を閲覧する確率と、商品カタログを閲覧する確率とが示されている。
【0181】
どの部門のユーザーがどのような文書を閲覧しているかという条件付き確率P(Y|X)は、施設によって異なる可能性がある。これはコンセプトシフトに相当する。
【0182】
図27は、研究開発部門のユーザーがどのような種類の文書を頻繁に閲覧するかは施設(企業)によって大きく異なるが、営業部門のユーザーがどのような種類の文書を頻繁に閲覧するかは施設(企業)によってあまり違わないであろうという想定(仮定)を表現している。
【0183】
この場合、交差特徴量の「所属部門×文書種類」の一部である、「研究開発部門×文書種類」は予測モデルの特徴量から除いて学習する。このように、ドメイン依存性が高い特徴量を予測モデルの特徴量から除くことで、ドメインシフトにロバストなモデルとなり得る。
【0184】
〔属性ベクトルに分解〕
図22において説明したユーザー特性ベクトルθuとアイテム特性ベクトルφiとの内積は、
図28に示すように、属性ベクトル同士の内積の和に分解される。すなわち、次式(4)のように表すことができる。
θu・φi=(Vk_u^1・Vk_i^1)+(Vk_u^2・Vk_i^1)+(Vk_u^1・Vk_i^2)+(Vk_u^2・Vk_i^2) (4)
【0185】
〔交差特徴量とベクトル表現について〕
属性をベクトル表現する推薦モデルにおいて、交差特徴量を削除する操作は、対応する属性ベクトルの内積が0になるように制約することに等しい。例えば、ユーザー属性1(所属部門)の1つである研究開発部門と、アイテム属性1(文書種類)の1つであるデータ分析資料との交差特徴量を削除するには、アイテム属性1に対するユーザー属性1ベクトル(研究開発部門)と、ユーザー属性1に対するアイテム属性1ベクトル(データ分析資料)との内積が0になるように制約すればよい。
【0186】
これは、例えば学習時のロス関数に、内積を0にしたいベクトル間の内積の絶対値に比例したロスを追加することで実現できる。例えば、ユーザー属性1に対するアイテム属性1ベクトル(データ分析資料)との内積が0になるように制約するには、次式のようなロス関数を用いる。
【0187】
L= -[Yui log σ(θu・φi)+(1-Yui) log (1-σ(θu・φi))]
+ λ Σ |Vk_u^1・Vk_i^1| (5)
式(5)の最終項は、削除したい交差特徴量の組み合わせのみを含む和である。係数のλは、この追加された最終項のロスの大きさを制御するハイパーパラメータである。
【0188】
これにより、ユーザーのアイテムに対する予測精度を向上させつつ、最終項で規定する交差特徴量を使わないように矯正することができる。
【0189】
交差特徴量を削除したい場合、つまり、交差特徴量を削除するために上記の式(5)のようなロス関数を導入する際には、交差対象によって異なるベクトル表現を用いた方がより望ましい。例えば、Field-aware factorization machines(FFM)と呼ばれる手法などはそのようなベクトル表現を持つ。
【0190】
〔交差対象により異なるベクトル表現を用いる例〕
図29は、交差対象により異なるベクトル表現を用いる場合の説明図である。交差対象によって異なるベクトル表現を持つ属性ベクトルが用いられる場合、ユーザー特性ベクトルθuとアイテム特性ベクトルφiとの内積は、
図29に示すように、交差対象に応じたベクトル表現による属性ベクトル同士の内積の和に分解される。すなわち、ユーザー属性1のベクトル表現は、アイテム属性1に対するユーザー属性1ベクトルと、アイテム属性2に対するユーザー属性1ベクトルとが違うベクトルとなっている。同様に、アイテム属性1のベクトル表現は、ユーザー属性1に対するアイテム属性1ベクトルと、ユーザー属性2に対するアイテム属性1ベクトルとが違うベクトルとなっている。ユーザー属性2のベクトル表現およびアイテム属性2のベクトル表現についても同様である。
【0191】
このようなベクトル表現を採用することにより、削除したい交差特徴量だけを他と切り離して効果的に学習することができる。
【0192】
〔具体的な適用例〕
ここでは、病院向けの院内情報推薦システムの例を説明する。学習に用いることができるデータセットとして、学習施設である病院1の行動履歴(閲覧履歴)データおよびユーザー属性(所属診療科)とアイテム属性(検査種類、患者の年代)があるものとする。将来的に多くの病院に対して院内情報推薦システムを導入していきたいが、導入先の施設(病院)は未定であり、当然に、その未定の施設のデータも用意できていない状況である。
【0193】
学習施設である病院1における患者の年代の分布は、20代が10%、30代が10%、40代が20%、50代が20%、60代が20%、70代が10%、80代が10%、であるとする。患者の年代の分布は、施設の特性の一例である。
【0194】
このような学習施設における患者の年代の分布は、例えば、データセットに含まれるデータを統計処理することにより把握することができる。
【0195】
病院によって患者の年代の分布は異なることが想定されるため、プロセッサ102は公開情報を基に病院1とは異なる病院における患者の年代の分布を表現する。プロセッサ102は、例えば、病院1に比べて高齢者が多い病院(仮想施設A)における患者の年代の分布を、20代が5%、30代が5%、40代が10%、50代が10%、60代が25%、70代が30%、80代が15%、のように生成する。
【0196】
同様に、プロセッサ102は、若年者が多い病院(仮想施設B)における患者の年代の分布を、例えば、20代が20%、30代が30%、40代が20%、50代が10%、60代が10%、70代が5%、80代が5%、のように生成する。
【0197】
学習施設(病院1)と仮想施設Aとの両者の分布の比をとると、20代が0.5、30代が0.5、40代が0.5、50代が0.5、60代が1.25、70代が3.0、80代が1.5、となる。
【0198】
プロセッサ102は、学習施設のデータを用いてモデルを学習する際に、各患者の年代のデータを、上記の分布比の値の重みで重み付けして学習する。これにより、仮想施設Aにおける性能向上を目指したモデル(モデルA)が学習できる。
【0199】
同様に、プロセッサ102は、仮想施設Bに対しても学習施設との分布の比をとり、この分布比の値の重みでデータを重み付けしてモデルを学習する。これにより、仮想施設Bにおける性能向上を目指したモデル(モデルB)が学習できる。
【0200】
また、元の学習施設のデータを用いて、重み付けなしで学習したモデル(モデルO)も用意しておく。このモデルOは、プロセッサ102が学習施設のデータセットを用いて学習を行うことによって生成してもよいし、情報処理装置100以外の図示しない情報処理装置によって学習を行うことによって生成されてもよい。こうして、候補モデルとしてのモデルO、モデルA、およびモデルBが用意される。
【0201】
将来的にシステムを導入する未知の施設においても、患者の年代の分布は学習施設、仮想施設A、および仮想施設Bのいずれかに近いと想定される。そのため、モデルO、モデルA、モデルBのいずれかは導入先施設で高い性能が期待できる。
【0202】
その後、システムを導入する予定の施設が具体的に特定され、その実在する特定施設にシステムを導入する前の段階で特定施設のデータが入手できた場合に、プロセッサ102は、この特定施設のデータを用いて、モデルO、モデルA、およびモデルBのそれぞれのモデルの性能を評価し、評価の結果に基づいて、これら複数の候補モデルの中から特定施設に適したモデルを抽出する。例えば、3つの候補モデルのうちモデルBの評価結果が最も良好であった場合、モデルBが最適なモデルとして選定される。この場合の特定施設は本開示における「第3施設」の一例である。プロセッサ102は、複数の候補モデルの中から最適な1つのモデルを抽出してもよいし、許容できる同等性能の2以上のモデルを抽出してもよい。
【0203】
学習施設である病院1は本開示における「第1施設」の一例である。モデルOは本開示における「第1モデル」の一例である。仮想施設Aおよび仮想施設Bのそれぞれは本開示における「第2施設」の一例である。仮想施設Aおよび仮想施設Bのそれぞれにおける年代の分布は本開示における「第2施設の特性」の一例である。モデルAおよびモデルBのそれぞれは本開示における「第2モデル」の一例である。
【0204】
上記の例では、病院1のデータセットから、複数の仮想施設Aおよび仮想施設Bのそれぞれに対応する複数のモデルAおよびモデルBを学習して複数の候補モデルを構築したが、
図16のように、複数の学習施設のそれぞれで収集された複数のデータセットが与えられている場合、それぞれの学習施設のデータセットから1つ以上の仮想施設に対応するモデルを学習することで、全体として複数の候補モデルを構築することができる。
【0205】
〔コンピュータを動作させるプログラムについて〕
情報処理装置100における処理機能の一部または全部をコンピュータに実現させるプログラムを、光ディスク、磁気ディスク、もしくは、半導体メモリその他の有体物たる非一時的な情報記憶媒体であるコンピュータ可読媒体に記録し、この情報記憶媒体を通じてプログラムを提供することが可能である。
【0206】
またこのような有体物たる非一時的なコンピュータ可読媒体にプログラムを記憶させて提供する態様に代えて、インターネットなどの電気通信回線を利用してプログラム信号をダウンロードサービスとして提供することも可能である。
【0207】
さらに、情報処理装置100における処理機能の一部または全部をクラウドコンピューティングによって実現してもよく、また、SaaS(Software as a Service)として提供することも可能である。
【0208】
〔各処理部のハードウェア構成について〕
情報処理装置100におけるデータ取得部220、施設特性取得部230、仮想特性表現部232、仮想施設学習部234、サンプリング部242、重み付け制御部248、ロス演算部244、およびオプティマイザ246などの各種の処理を実行する処理部(processing unit)のハードウェア的な構造は、例えば、次に示すような各種のプロセッサ(processor)である。
【0209】
各種のプロセッサには、プログラムを実行して各種の処理部として機能する汎用的なプロセッサであるCPU、GPU、FPGA(Field Programmable Gate Array)などの製造後に回路構成を変更可能なプロセッサであるプログラマブルロジックデバイス(Programmable Logic Device:PLD)、ASIC(Application Specific Integrated Circuit)などの特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路などが含まれる。
【0210】
1つの処理部は、これら各種のプロセッサのうちの1つで構成されていてもよいし、同種または異種の2つ以上のプロセッサで構成されてもよい。例えば、1つの処理部は、複数のFPGA、あるいは、CPUとFPGAの組み合わせ、またはCPUとGPUの組み合わせによって構成されてもよい。また、複数の処理部を1つのプロセッサで構成してもよい。複数の処理部を1つのプロセッサで構成する例としては、第一に、クライアントやサーバなどのコンピュータに代表されるように、1つ以上のCPUとソフトウェアの組み合わせで1つのプロセッサを構成し、このプロセッサが複数の処理部として機能する形態がある。第二に、システムオンチップ(System On Chip:SoC)などに代表されるように、複数の処理部を含むシステム全体の機能を1つのIC(Integrated Circuit)チップで実現するプロセッサを使用する形態がある。このように、各種の処理部は、ハードウェア的な構造として、上記各種のプロセッサを1つ以上用いて構成される。
【0211】
さらに、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子などの回路素子を組み合わせた電気回路(circuitry)である。
【0212】
〔実施形態による利点〕
本実施形態によれば、モデル学習の段階において学習に用いることができるデータセットのドメインに制約がある場合であっても、学習施設とは異なる複数の仮想施設のそれぞれにおいて予測性能を高めた複数のモデルを構築することができる。導入先の施設としてあり得る多様な施設の特性を想定して、それぞれの特定に対応する複数のモデルを学習することにより、多様なドメインに対応可能な複数のモデルを含む候補モデルセットを構築できる。
【0213】
本実施形態によれば、モデル学習に用いるデータが収集される施設等のドメイン(学習ドメイン)と、モデルの導入先である施設等のドメイン(導入先ドメイン)とが異なる場合に、ドメインシフトにロバストな推薦アイテムリストの提供を実現することが可能になる。
【0214】
〔他の応用例〕
上述の実施形態では、文書閲覧に関するユーザーの行動を例に説明したが、本開示の適用範囲は文書閲覧に限らず、医用画像等の閲覧、商品の購買、あるいは動画等のコンテンツの視聴など、用途を問わず、様々なアイテムに関するユーザーの行動予測について本開示の技術を適用できる。
【0215】
〔その他〕
本開示は上述した実施形態に限定されるものではなく、本開示の技術的思想の趣旨を逸脱しない範囲で種々の変形が可能である。
【符号の説明】
【0216】
10 推薦システム
12 予測モデル
14 モデル
100 情報処理装置
102 プロセッサ
104 コンピュータ可読媒体
106 通信インターフェース
108 入出力インターフェース
110 バス
112 メモリ
114 ストレージ
130 施設特性取得プログラム
132 仮想特性表現プログラム
134 仮想施設学習プログラム
136 学習モデル
140 データセット記憶部
142 候補モデル記憶部
152 入力装置
154 表示装置
220 データ取得部
222 データ保存部
230 施設特性取得部
232 仮想特性表現部
234 仮想施設学習部
242 サンプリング部
244 ロス演算部
246 オプティマイザ
248 重み付け制御部
DS データセット
DS1 データセット
DS2 データセット
DS3 データセット
Dtg データ
F22A 式
F22B 式
F22C 式
FR1 枠
FR2 枠
FR3 枠
Gr0 グラフ
Gr1 グラフ
Gr2 グラフ
IT1 アイテム
IT2 アイテム
IT3 アイテム
M1 モデル
M2 モデル
M3 モデル
M4 モデル
Mk モデル
Mn モデル
Ma モデル
Mb モデル
Mc モデル