(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025174186
(43)【公開日】2025-11-28
(54)【発明の名称】情報処理装置、情報処理方法及びプログラム
(51)【国際特許分類】
G06Q 10/04 20230101AFI20251120BHJP
【FI】
G06Q10/04
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2024080313
(22)【出願日】2024-05-16
(71)【出願人】
【識別番号】306037311
【氏名又は名称】富士フイルム株式会社
(74)【代理人】
【識別番号】100083116
【弁理士】
【氏名又は名称】松浦 憲三
(74)【代理人】
【識別番号】100140992
【弁理士】
【氏名又は名称】松浦 憲政
(74)【代理人】
【識別番号】100170069
【弁理士】
【氏名又は名称】大原 一樹
(74)【代理人】
【識別番号】100128635
【弁理士】
【氏名又は名称】松村 潔
(74)【代理人】
【識別番号】100153822
【弁理士】
【氏名又は名称】増田 重之
(72)【発明者】
【氏名】佐藤 政寛
【テーマコード(参考)】
5L010
【Fターム(参考)】
5L010AA02
(57)【要約】
【課題】予測値が上位のアイテムの予測値を精度よく補正してバイアスを低減する情報処理装置、情報処理方法及びプログラムを提供する。
【解決手段】プロセッサは、候補アイテムに対するユーザーの評価を予測する予測器から出力される予測値と候補アイテムに対するユーザーの評価の真値との関係を検証するための検証データを取得し、検証データを予測器に入力し、出力された予測値の順位が相対的に上位の候補アイテムである上位アイテムを取得し、検証データから上位アイテムに対応する上位データを抽出し、上位データに基づき、入力された予測値が真値と近くなるように入力された予測値を補正する補正器を学習する。
【選択図】
図7
【特許請求の範囲】
【請求項1】
1つ以上のプロセッサと、
前記1つ以上の前記プロセッサに実行させる命令が記憶される1つ以上のメモリと、
を備え、
前記プロセッサは、
候補アイテムに対するユーザーの評価を予測する予測器から出力される予測値と前記候補アイテムに対する前記ユーザーの評価の真値との関係を検証するための検証データを取得し、
前記検証データを前記予測器に入力し、出力された予測値の順位が相対的に上位の候補アイテムである上位アイテムを取得し、
前記検証データから前記上位アイテムに対応する上位データを抽出し、
前記上位データに基づき、入力された予測値が真値と近くなるように前記入力された予測値を補正する補正器を学習する、
情報処理装置。
【請求項2】
前記プロセッサは、
前記予測器を用いて複数の候補アイテムの各候補アイテムのユーザーの評価をそれぞれ予測し、
前記複数の候補アイテムから予測値の順位が相対的に上位の候補アイテムをユーザーに推薦する推薦アイテムとして選択し、
前記補正器を用いて前記推薦アイテムの予測値を補正し、
前記推薦アイテムと前記補正された予測値とを出力する、
請求項1に記載の情報処理装置。
【請求項3】
前記予測器は、協調フィルタリングを用いてユーザーの評価を予測する、
請求項1に記載の情報処理装置。
【請求項4】
前記予測器は学習済みモデルを含み、
前記プロセッサは、複数のデータを分割して一部を前記予測器の学習に用いて、残りの一部を前記検証データとして用いる、
請求項1に記載の情報処理装置。
【請求項5】
前記プロセッサは、前記上位アイテムを前記検証データに前記ユーザーの評価が存在する候補アイテムに限定する、
請求項1に記載の情報処理装置。
【請求項6】
前記プロセッサは、前記推薦アイテムの数と等しい数の上位アイテムを抽出する、
請求項2に記載の情報処理装置。
【請求項7】
前記補正器は、予測値を説明変数、真値を目的変数とするパラメトリックモデル、又はノンパラメトリックモデルを含む、
請求項1に記載の情報処理装置。
【請求項8】
前記補正器は、前記上位アイテムの予測値の順位に応じて補正する、
請求項1に記載の情報処理装置。
【請求項9】
前記補正器は、予測値の順位を説明変数に含む、
請求項7に記載の情報処理装置。
【請求項10】
前記プロセッサは、予測値の順位が相対的に上位であるほど相対的に大きい重みを付けて補正する、
請求項1に記載の情報処理装置。
【請求項11】
前記補正器は、予測値の順位が相対的に上位ほど相対的に大きい重みを付けて学習される、
請求項10に記載の情報処理装置。
【請求項12】
1つ以上のプロセッサが実行する情報処理方法であって、
前記1つ以上の前記プロセッサが、
候補アイテムに対するユーザーの評価を予測する予測器から出力される予測値と前記候補アイテムに対する前記ユーザーの評価の真値との関係を検証するための検証データを取得することと、
前記検証データを前記予測器に入力し、出力された予測値の順位が相対的に上位の候補アイテムである上位アイテムを取得することと、
前記検証データから前記上位アイテムに対応する上位データを抽出することと、
前記上位データに基づき、入力された予測値が真値と近くなるように前記入力された予測値を補正する補正器を学習することと、
を含む情報処理方法。
【請求項13】
請求項12に記載の情報処理方法をコンピュータに実現させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置、情報処理方法及びプログラムに係り、特に、予測値のバイアスを低減する技術に関する。
【背景技術】
【0002】
ユーザーとコンテキストとに応じて、アイテムの評価値を予測し、予測した評価値である予測評価値(予測値)が上位のアイテムをユーザーに推薦する推薦システムが知られている。
【0003】
特許文献1には、端末装置に提供されるコンテンツの候補となる複数のコンテンツのそれぞれについて、コンテンツに関する指標を予測した予測指標を導出する予測指標導出部と、予測指標導出部により導出された予測指標にもとづくランキング指標にもとづいて、複数のコンテンツのランキングを行うランキング処理部と、ランキングに伴うバイアスを低減するように予測指標を補正する予測指標補正部と、を備える情報処理装置が記載されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
評価値の予測には当然予測誤差があり、真値よりも高い予測(過大評価)をしているアイテムもあれば、真値よりも低い予測(過小評価)をしているアイテムもある。
【0006】
予測値が上位のアイテムには、過大評価しているアイテムが多くなる。推薦アイテムは予測値が上位のアイテムなので、過大評価されやすいバイアスが生じる。これにより、(1)予測した評価値をユーザーに提示した場合に、ユーザーに過剰な期待を持たせてがっかりさせてしまう、(2)予測した購入率にもとづき在庫を仕入れていた場合、想定よりも売れなくて在庫あまりが生じる、等という問題が発生する。
【0007】
本発明はこのような事情に鑑みてなされたもので、予測値が上位のアイテムの予測値を精度よく補正してバイアスを低減する情報処理装置、情報処理方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するために、本開示の第1態様に係る情報処理装置は、1つ以上のプロセッサと、1つ以上のプロセッサに実行させる命令が記憶される1つ以上のメモリと、を備え、プロセッサは、候補アイテムに対するユーザーの評価を予測する予測器から出力される予測値と候補アイテムに対するユーザーの評価の真値との関係を検証するための検証データを取得し、検証データを予測器に入力し、出力された予測値の順位が相対的に上位の候補アイテムである上位アイテムを取得し、検証データから上位アイテムに対応する上位データを抽出し、上位データに基づき、入力された予測値が真値と近くなるように入力された予測値を補正する補正器を学習する情報処理装置である。
【0009】
本態様によれば、上位データに基づき予測値を補正する補正器を学習するようにしたので、予測値が上位のアイテムの予測値を精度よく補正してバイアスを低減することができる。
【0010】
本開示の第2態様に係る情報処理装置は、第1態様に係る情報処理装置において、プロセッサは、予測器を用いて複数の候補アイテムの各候補アイテムのユーザーの評価をそれぞれ予測し、複数の候補アイテムから予測値の順位が相対的に上位の候補アイテムをユーザーに推薦する推薦アイテムとして選択し、補正器を用いて推薦アイテムの予測値を補正し、推薦アイテムと補正された予測値とを出力することが好ましい。
【0011】
本開示の第3態様に係る情報処理装置は、第1態様又は第2態様に係る情報処理装置において、予測器は、協調フィルタリングを用いてユーザーの評価を予測することが好ましい。
【0012】
本開示の第4態様に係る情報処理装置は、第1態様から第3態様のいずれかに係る情報処理装置において、予測器は学習済みモデルを含み、プロセッサは、複数のデータを分割して一部を予測器の学習に用いて、残りの一部を検証データとして用いることが好ましい。
【0013】
本開示の第5態様に係る情報処理装置は、第1態様から第4態様のいずれかに係る情報処理装置において、プロセッサは、上位アイテムを検証データにユーザーの評価が存在する候補アイテムに限定することが好ましい。
【0014】
本開示の第6態様に係る情報処理装置は、第2態様から第5態様のいずれかに係る情報処理装置において、プロセッサは、推薦アイテムの数と等しい数の上位アイテムを抽出することが好ましい。
【0015】
本開示の第7態様に係る情報処理装置は、第1態様から第6態様のいずれかに係る情報処理装置において、補正器は、予測値を説明変数、真値を目的変数とするパラメトリックモデル、又はノンパラメトリックモデルを含むことが好ましい。
【0016】
本開示の第8態様に係る情報処理装置は、第1態様から第7態様のいずれかに係る情報処理装置において、補正器は、上位アイテムの予測値の順位に応じて補正することが好ましい。
【0017】
本開示の第9態様に係る情報処理装置は、第7態様に係る情報処理装置において、補正器は、予測値の順位を説明変数に含むことが好ましい。
【0018】
本開示の第10態様に係る情報処理装置は、第1態様から第9態様のいずれかに係る情報処理装置において、プロセッサは、予測値の順位が相対的に上位であるほど相対的に大きい重みを付けて補正することが好ましい。
【0019】
本開示の第11態様に係る情報処理装置は、第10態様に係る情報処理装置において、補正器は、予測値の順位が相対的に上位ほど相対的に大きい重みを付けて学習されることが好ましい。
【0020】
上記目的を達成するために、本開示の第12態様に係る情報処理方法は、1つ以上のプロセッサが実行する情報処理方法であって、1つ以上のプロセッサが、候補アイテムに対するユーザーの評価を予測する予測器から出力される予測値と候補アイテムに対するユーザーの評価の真値との関係を検証するための検証データを取得することと、検証データを予測器に入力し、出力された予測値の順位が相対的に上位の候補アイテムである上位アイテムを取得することと、検証データから上位アイテムに対応する上位データを抽出することと、上位データに基づき、入力された予測値が真値と近くなるように入力された予測値を補正する補正器を学習することと、を含む情報処理方法である。
【0021】
第12態様の情報処理方法において、上述した情報処理装置と同様の具体的態様を含む構成とすることができる。
【0022】
上記目的を達成するために、本開示の第13態様に係るプログラムは、第12態様に係る情報処理方法をコンピュータに実現させるプログラムである。非一時的かつコンピュータ読取可能な記憶媒体であって、第13態様に係るプログラムが記憶された記憶媒体も本開示に含まれる。
【0023】
第13態様のプログラム、及び第13態様に係るプログラムが記憶された記憶媒体において、上述した情報処理装置と同様の具体的態様を含む構成とすることができる。
【発明の効果】
【0024】
本開示によれば、予測値が上位のアイテムの予測値を精度よく補正してバイアスを低減することができる。
【図面の簡単な説明】
【0025】
【
図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は、情報処理装置が実施する推薦方法の処理を示すフローチャートである。
【発明を実施するための形態】
【0026】
以下、添付図面に従って本発明の好ましい実施形態について説明する。なお、同一の構成要素には同一の参照符号を付して、重複する説明を省略する。
【0027】
〔予測にもとづくアイテムの推薦〕
図1は、典型的な推薦システム10の概念図である。推薦システム10は、ユーザーの情報と、コンテキストの情報とを入力として受け付け、コンテキストに応じてユーザーごとのアイテムの評価値を予測し、Nを整数とすると、予測値が上位N個のアイテムを出力して当該ユーザーに推薦する。コンテキストは、様々な「状況」を意味し、たとえば、曜日、時間帯、又は天気などがあり得る。アイテムは、たとえば、商品、動画、店舗など、様々な対象があり得る。評価値は、たとえば、購入、視聴、訪問の確率、及び購入後、視聴後、訪問後のレーティング評価値などがあり得る。
【0028】
図1に示した例では、推薦システム10は、100個のアイテムであるアイテム1~アイテム100についてそれぞれ予測値を取得し、予測値が上位3個のアイテムであるアイテム28、アイテム79、アイテム4を推薦している。アイテム28、アイテム79、アイテム4の予測値は、それぞれ0.56、0.46、0.35である。
【0029】
図1では、ユーザーの評価が相対的に高いアイテムほど予測値の値が相対的に大きい例を示している。したがって、予測値の値が大きいほど予測値の順位が上位となる。一方、予測値の定義によっては、ユーザーの評価が相対的に高いアイテムほど予測値の値が相対的に小さい場合があり得る。この場合、予測値の値が小さいほど予測値の順位が上位となる。
【0030】
推薦システム10が推薦したアイテムに対してユーザーがポジティブな反応をすると、一般に推薦は成功したとみなされる。ポジティブな反応とは、たとえば、購入、視聴、又は訪問などである。このような推薦技術は、たとえば、EC(Electronic Commerce)サイト、及び飲食店を紹介するグルメサイトなどにおいて広く活用されている。
【0031】
〔予測値の重要性〕
アイテムの予測値は、第1には推薦アイテムの選択に使われるが、選択された推薦アイテムの予測値にはさらなる使い道があるため、その精度は重要である。
【0032】
アイテムの予測値は、特に購入後、視聴後、訪問後のレーティング評価値の場合、アイテムの予測値がユーザーに提示される場合がある。一例として、「このアイテムは5段階評価で4.3の満足度が予想されます」というように提示される。購入コスト、動画視聴の時間コストなどがかかるため、推薦されたアイテムが高い満足度が予想されるか否かは、ユーザーにとって重要な情報である。
【0033】
また、アイテムの予測値は、特に購入、視聴、訪問の確率の場合、サービス運用に活用される場合がある。一例として、購入率をもとに在庫準備を調整したり、視聴率をもとにサーバーをスケーリングしたり、訪問率をもとに従業員のシフトを調整したりすることが考えられる。
【0034】
〔予測値のキャリブレーション〕
推薦システム10は、ユーザーの評価値を予測した値である予測値を出力する予測モデルを含む。予測モデルは、例えば機械学習の技術を用いて構築される。この予測モデルの予測値である出力スコアを変換し、真値と期待値とが一致するようにしたい。これを式で表すと、以下の通りである。
【0035】
Xを特徴量、予測モデルをf(X)、予測モデルf(X)の出力スコアをsとする。
s=f(X)
【0036】
また、評価値の真値をy、出力スコアsを変換するキャリブレーションモデルをg(s)とする。
y=g(s)
【0037】
期待値をEとすると、期待値Eは以下の式で表される。
E[Y|g(s)=y]=y
なお、Yは目的変数である。
【0038】
図2は、モデル構築用のデータの分割を説明するための図である。
図2に示すように、モデル構築に用いるデータD_devは、データ分布が互いに同じになるように、モデル学習用のデータD_traと、キャリブレーション用データD_calとにランダムに分割される。すなわち、各データD_dev、D_tra、D_calのデータ分布P_dev(X,Y)、P_tra(X,Y)、P_cal(X,Y)は、以下の式4を満たす。
P_dev(X,Y) = P_tra(X,Y) = P_cal(X,Y) …(式4)
【0039】
このように取得したキャリブレーション用データD_calを用いてキャリブレーションが行われることで、予測モデルの出力スコアが変換される。
【0040】
〔キャリブレーションのイメージ〕
図3は、キャリブレーションのイメージ図である。
図3の横軸は予測値であり、縦軸は真値が1である確率、すなわちキャリブレーション用データD_cal内でy=1である頻度である。ここでは、予測値とy=1の確率とが、以下の関係であるとわかったとする。
【0041】
予測値が-10 → y=1の確率が0.2
予測値が0 → y=1の確率が0.4
予測値が+10 → y=1の確率が0.9
この場合、キャリブレーションにより、予測値10は0.2に、予測値0は0.4に、予測値+10は0.9に変換される。
【0042】
〔代表的なキャリブレーション手法〕
代表的なキャリブレーション手法として、Platt scaling(プラットスケーリング)、及びIsotonic regression(アイソトニック回帰)が挙げられる。Platt scalingは、モデル予測値を特徴量xに、真値を目的変数yにしてロジスティック回帰を行う手法である。Isotonic regressionは、ステップ関数を用いたキャリブレーションを行う手法である。
【0043】
〔典型的な推薦システムの構成〕
図4は、典型的な推薦システム10の構成図である。推薦システム10は、予測対象データD1と、予測モデル12と、ランキング上位抽出手段14と、を備える。
【0044】
予測対象データD1は、アイテムごとの予測値を出力するためのデータであり、ユーザーの情報と、コンテキストの情報とを含む。
【0045】
予測モデル12は、予測対象データD1を用いて、ユーザーとコンテキストの組合せに対してアイテムごとの予測値を取得する。
【0046】
ランキング上位抽出手段14は、予測モデル12が取得したアイテムごとの予測値にもとづいて、ユーザーごとにアイテムに順位を付し、ユーザーごとに予測値の順位が相対的に上位のアイテムを抽出する。
【0047】
推薦システム10は、ランキング上位抽出手段14により抽出されたアイテムをユーザーに推薦する。
図4に示す例では、推薦システム10は、アイテム28、アイテム79、アイテム4を推薦している。アイテム28、アイテム79、アイテム4の予測値は、それぞれ0.56、0.46、0.35であり、過大評価されている。
【0048】
〔典型的なキャリブレーションの構成〕
図5は、典型的なキャリブレーションを行う推薦システム10の構成図である。推薦システム10は、予測対象データD1と、キャリブレーション用データD2と、予測モデル12と、キャリブレーション構築手段16と、を備える。
【0049】
キャリブレーション用データD2は、複数のユーザーと複数のアイテムとのそれぞれの組み合わせに対してユーザーのアイテムに対する過去の行動が示された行動履歴データセットである。
【0050】
キャリブレーション構築手段16は、キャリブレーション用データD2を用いて、予測モデル12が予測したアイテムごとの予測値を補正する不図示のキャリブレーションモデルを構築する。
【0051】
推薦システム10は、キャリブレーションモデルを用いて予測モデル12の予測値をキャリブレートし、全対象データに対するキャリブレートされた予測値を取得する。
【0052】
〔課題:推薦アイテムの過大評価バイアス〕
図6は、推薦システム10における予測値と真値との関係を示す図である。
図6の縦軸は予測値であり、横軸は真値である。
図6には、複数のアイテムがプロットされている。また、
図6の破線は、バイアスがない場合にプロットされる位置を示すラインである。
図6に示す例では、上位3つのアイテムであるアイテムI1、I2、I3のうち、2つのアイテムI1、I2の予測値が真値よりも大きい値である。すなわち、アイテムI1、I2は過大評価されている。
【0053】
このように、全体に対する予測がキャリブレートされても、予測値が上位のアイテムに対する過大評価バイアスは残るという課題があった。
【0054】
また、実際には全アイテムと上位アイテムとの様々な特性の違いにより、過大評価バイアスだけでなく過小評価バイアスも発生する。
【0055】
〔本開示の推薦システムの構成〕
図7は、本開示に係る推薦システム20の構成図である。推薦システム20は、ユーザーに複数のアイテム(「候補アイテム」の一例)の中から選択されたアイテム(「推薦アイテム」の一例)を推薦するシステムである。推薦システム20は、予測対象データD11と、キャリブレーション用データD12と、抽出されたキャリブレーション用データD13と、予測モデル22と、ランキング上位抽出手段24と、キャリブレーション構築手段26と、を備える。
【0056】
予測対象データD11は、ユーザーの情報と、コンテキストの情報とを含む。
【0057】
予測モデル22(「予測器」の一例)は、予測対象データD11を用いて、ユーザーとコンテキストの組合せに対してアイテムごとのユーザーの評価を予測し、予測値を取得する学習済みモデルであってよい。予測モデル22は、例えば協調フィルタリングを用いてユーザーの評価を予測する。
【0058】
協調フィルタリングは、蓄積された多数のユーザーの行動履歴等のデータを用いてユーザーの嗜好を予測する方法である。協調フィルタリングは、メモリベース法とモデルベース法とに分類される。メモリベース法では、推薦をする際に、ユーザーの行動履歴等のデータを直接利用してユーザーの嗜好を予測する。モデルベース法では,あらかじめユーザーとアイテムの嗜好についての規則性を表すモデルを構築しておき、推薦をする際に、行動履歴等のデータは用いずにモデルとユーザーの嗜好データとに基づいて予測する。
【0059】
メモリベース法は,利用者間型メモリベース法とアイテム間型メモリベース法とに分類される。利用者間型は、ユーザーと嗜好パターンが似ている別のユーザーをまず見つけ、別のユーザーが好むアイテムを相対的に高く評価する。一方,アイテム間型では、ユーザーが好むアイテムと類似したアイテムを相対的に高く評価する。
【0060】
メモリベース法の協調フィルタリングは、狭義には「学習済みモデル」を持たないが、広義には予測に用いるデータ全体(とそれによる予測方法)をモデルとみなせば、「学習済みモデル」と同様の処理で予測することができる。
【0061】
キャリブレーション用データD12は、複数のユーザーと複数のアイテムとのそれぞれの組み合わせに対してユーザーのアイテムに対する過去の行動が示された行動履歴データセットである。
【0062】
ランキング上位抽出手段24は、予測対象データD11を用いて予測モデル22が取得したアイテムごとの予測値にもとづいて、予測値の順位が上位のアイテムを抽出する。抽出された上位のアイテムが、推薦システム20がユーザーに推薦する推薦アイテムである。
【0063】
また、ランキング上位抽出手段24は、予測モデル22が取得した予測値にもとづいて、キャリブレーション用データD12から予測値の順位が上位のアイテムのデータを抽出し、抽出されたキャリブレーション用データD13とする。すなわち、抽出されたキャリブレーション用データD13は、キャリブレーション用データD12のデータセットのうち、予測値の順位が上位のアイテムのデータセットである。
【0064】
キャリブレーション構築手段26は、抽出されたキャリブレーション用データD13を用いて、予測モデル22が予測したアイテムごとの予測値を補正するキャリブレーションモデル28(「補正器」の一例、
図9参照)を構築する。キャリブレーションモデル28は、予測値を説明変数、真値を目的変数とするparametricな機械学習モデル(パラメトリックモデル)、又はnonparametricな機械学習モデル(ノンパラメトリックモデル)を含んでよい。この場合、キャリブレーションモデル28の構築とは、キャリブレーションモデル28の学習を意味する。
【0065】
推薦システム20は、キャリブレーションモデルを用いて予測モデル12の予測値をキャリブレートし補正し、推薦アイテムに対する補正された予測値を取得する。
【0066】
推薦システム20は、推薦アイテムと推薦アイテムの補正された予測値をユーザーに提示する。
図7に示す例では、推薦システム20は、アイテム28、アイテム79、アイテム4を推薦している。アイテム28、アイテム79、アイテム4の補正された予測値は、それぞれ0.42、0.37、0.29である。
【0067】
〔予測値上位に対するキャリブレーション〕
図8は、推薦システム20に使用されるデータを説明するための図である。推薦システム20には、モデル構築用データD21が使用される。モデル構築用データD21は、複数のユーザーと複数のアイテム(「候補アイテム」の一例)とのそれぞれの組み合わせに対してユーザーのアイテムに対する過去の行動が示された行動履歴データセットである。なお、モデルの評価用データは、必要に応じてモデル構築用データD21から事前に分割しておいてよい。
【0068】
モデル構築用データD21は、予測モデル22の学習用データD22と、キャリブレーション用データD12とにランダムに分割される。予測モデル22は、学習用データD22によって学習される。すなわち、推薦システム20は、学習用データD22のユーザーとコンテキストとの組み合わせを予測モデル22に入力し、予測誤差が小さくなるように予測モデル22を訓練する。たとえば、推薦システム20は、ユーザーが購入したアイテムを正例、購入しなかったアイテムを負例として予測モデル22を訓練する。予測誤差が収束するまで機械学習が行われ、目標とする予測性能が獲得される。
【0069】
キャリブレーション用データD12は、予測モデル22から出力される予測値とアイテムに対するユーザーの評価の真値との関係を検証するための検証データである。キャリブレーション用データD12は、抽出されたキャリブレーション用データD13と、それ以外のデータD14に分割される。キャリブレーション用データD12内でアイテムが予測値で順位付けされ、順位が上位のアイテムのデータが抽出されて、抽出されたキャリブレーション用データD13となる。抽出されたキャリブレーション用データD13は、アイテムの予測値を含んでもよい。
【0070】
図9は、キャリブレーション用データD12と抽出されたキャリブレーション用データD13とを示す図である。
図9に示すように、キャリブレーション用データD12は、Mを整数とすると、M人のユーザーU1~UMのそれぞれに対して全てのアイテムが予測値の順に順位付けされている。抽出されたキャリブレーション用データD13は、ユーザーU1~UMのそれぞれ上位N個(
図9に示す例では上位3個)のアイテムの行動履歴が抽出されたデータである。抽出されたキャリブレーション用データD13は、キャリブレーションモデル28の学習に使用される。
【0071】
順位が上位のアイテムの予測値ほど、過大評価バイアスが大きくなる。したがって、キャリブレーション構築手段26は、順位が1位のキャリブレーション、順位が2位のキャリブレーション、のように、順位ごとにキャリブレーションするキャリブレーションモデル28を学習してもよい。これにより、キャリブレーションモデル28は、アイテムの予測値の順位に応じて予測値を補正する。
【0072】
また、キャリブレーション構築手段26は、順位が1~2位のキャリブレーション、順位が3~4位のキャリブレーション、のように、ある順位の範囲でまとめてキャリブレーションするキャリブレーションモデル28を学習してもよい。
【0073】
順位ごとにキャリブレーションするには、キャリブレーション用のデータがより多く必要になる。この場合、キャリブレーション構築手段26は、予測モデル22の予測値と順位の両方を特徴量(説明変数)にしてキャリブレーションモデル28を学習する。
【0074】
順位が上位のアイテムほど、ユーザーが閲覧する可能性が高いため、よりキャリブレーション精度が重要になる。これに対し、キャリブレーション構築手段26は、キャリブレーションモデル28の学習時に順位が上位であるほど相対的に大きい重みをつけて学習してもよい。ランクをrとすると、キャリブレーション構築手段26は、1/log2(1+r)、又は1/rで重みづけて学習してよい。
【0075】
たとえば、platt scalingにおいてはロジスティック回帰を行うが、LogisticRegression().fit(X, y, sample_weight)のように学習サンプルに重みづけしてもよい。これにより、キャリブレーションモデル28の学習時のロス関数がランク上位ほど大きくなり、より順位が上位の予測値に対して精度が高いキャリブレーションモデル28を学習することができる。
【0076】
〔情報処理装置の概要〕
図10は、推薦システム20を実現する情報処理装置100のハードウェア構成の例を示すブロック図である。情報処理装置100は、候補アイテムに対するユーザーの評価を予測する予測器の機能と、予測器から出力される予測値と候補アイテムに対するユーザーの評価の真値との関係を検証するための検証データを取得する機能と、検証データを予測器に入力し、出力された予測値の順位が相対的に上位の候補アイテムである上位アイテムを取得する機能と、検証データから上位アイテムに対応する上位データを抽出する機能と、上位データに基づき、入力された予測値が真値と近くなるように入力された予測値を補正する補正器を学習する機能と、を備える。
【0077】
情報処理装置100は、さらに予測器を用いて複数の候補アイテムの各候補アイテムのユーザーの評価をそれぞれ予測する機能と、複数の候補アイテムから予測値の順位が相対的に上位の候補アイテムをユーザーに推薦する推薦アイテムとして選択する機能と、補正器を用いて推薦アイテムの予測値を補正する機能と、推薦アイテムと補正された予測値とを出力する機能と、を備える。
【0078】
情報処理装置100は、コンピュータのハードウェアとソフトウェアとを用いて実現される。情報処理装置100の物理的形態は特に限定されず、サーバコンピュータであってもよいし、ワークステーションであってもよく、パーソナルコンピュータ又はタブレット端末などであってもよい。ここでは、1台のコンピュータを用いて情報処理装置100の処理機能を実現する例を述べるが、情報処理装置100の処理機能は、複数台のコンピュータを用いて構成されるコンピュータシステムによって実現してもよい。
【0079】
情報処理装置100は、プロセッサ102と、非一時的な有体物であるコンピュータ可読媒体104と、通信インターフェース106と、入出力インターフェース108と、バス110とを含む。
【0080】
プロセッサ102は、コンピュータ可読媒体104に記憶された命令を実行する。プロセッサ102のハードウェア的な構造は、次に示すような各種のプロセッサ(processor)である。各種のプロセッサには、ソフトウェア(プログラム)を実行して各種の機能部として作用する汎用的なプロセッサであるCPU(Central Processing Unit)、画像処理に特化したプロセッサであるGPU(Graphics Processing Unit)、FPGA(Field Programmable Gate Array)などの製造後に回路構成を変更可能なプロセッサであるPLD(Programmable Logic Device)、ASIC(Application Specific Integrated Circuit)などの特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路などが含まれる。
【0081】
1つの処理部は、これら各種のプロセッサのうちの1つで構成されていてもよいし、同種又は異種の2つ以上のプロセッサ(例えば、複数のFPGA、又はCPUとFPGAの組み合わせ、あるいはCPUとGPUの組み合わせ)で構成されてもよい。また、複数の機能部を1つのプロセッサで構成してもよい。複数の機能部を1つのプロセッサで構成する例としては、第1に、クライアント又はサーバーなどのコンピュータに代表されるように、1つ以上のCPUとソフトウェアの組合せで1つのプロセッサを構成し、このプロセッサが複数の機能部として作用させる形態がある。第2に、SoC(System On Chip)などに代表されるように、複数の機能部を含むシステム全体の機能を1つのIC(Integrated Circuit)チップで実現するプロセッサを使用する形態がある。このように、各種の機能部は、ハードウェア的な構造として、上記各種のプロセッサを1つ以上用いて構成される。
【0082】
さらに、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子などの回路素子を組み合わせた電気回路(circuitry)である。
【0083】
プロセッサ102は、バス110を介してコンピュータ可読媒体104、通信インターフェース106、及び入出力インターフェース108と接続される。プロセッサ102は、コンピュータ可読媒体104に記憶された各種のプログラムおよびデータ等を読み出し、各種の処理を実行する。プログラムという用語は、プログラムモジュールの概念を含み、プログラムに準じる命令を含む。
【0084】
コンピュータ可読媒体104は、主記憶装置であるメモリ112、及び補助記憶装置であるストレージ114を含む記憶装置である。ストレージ114は、たとえば、ハードディスク(Hard Disk Drive:HDD)装置、ソリッドステートドライブ(Solid State Drive:SSD)装置、光ディスク、光磁気ディスク、もしくは半導体メモリ、又はこれらの適宜の組み合わせを用いて構成される。ストレージ114には、各種プログラム及びデータなどが記憶される。
【0085】
メモリ112は、プロセッサ102の作業領域として使用され、ストレージ114から読み出されたプログラムおよび各種のデータを一時的に記憶する記憶部として用いられる。ストレージ114に記憶されているプログラムがメモリ112にロードされ、プログラムの命令をプロセッサ102が実行することにより、プロセッサ102は、プログラムで規定される各種の処理を行う手段として機能する。メモリ112は、1つのメモリで構成されていてもよいし、同種又は異種の2つ以上のメモリで構成されてもよい。
【0086】
メモリ112は、データ記憶部120と、モデル記憶部122とを含む。データ記憶部120は、予測対象データD11及びモデル構築に用いるデータが記憶される記憶領域である。モデル記憶部122は、予測モデル22及びキャリブレーションモデル28が記憶される記憶領域である。
【0087】
メモリ112には、プロセッサ102によって実行されるデータ取得プログラム130、分割プログラム132、予測モデル学習プログラム134、予測プログラム136、ランキング上位抽出プログラム138、キャリブレーションモデル学習プログラム140、各種のプログラム、及び各種のデータなどが記憶される。
【0088】
データ取得プログラム130は、データ記憶部120に記憶されたデータを取得する処理を実行させるプログラムである。データ取得プログラム130は、入力装置152からデータを取得する処理を実行させてもよい。
【0089】
分割プログラム132は、データ取得プログラム130が取得したデータを分割する処理を実行させるプログラムである。分割プログラム132は、例えばモデル構築用データD21を予測モデル22の学習用データD22と、キャリブレーション用データD12とに分割する。
【0090】
予測モデル学習プログラム134は、ユーザーのアイテムに対する行動予測を行う予測モデル22を学習する処理を実行させるプログラムである。
【0091】
予測プログラム136は、予測モデル22を用いてユーザーのアイテムに対する行動予測を行う処理を実行させるプログラムである。
【0092】
ランキング上位抽出プログラム138は、予測モデル22が取得した予測値にもとづいて予測値の順位が上位のアイテムを抽出する処理を実行させるプログラムである。また、ランキング上位抽出プログラム138は、予測モデル22が取得した予測値にもとづいて、キャリブレーション用データD12から予測値の順位が上位のアイテムのデータセットを抽出し、抽出されたキャリブレーション用データD13とする処理を実行させるプログラムである。
【0093】
キャリブレーションモデル学習プログラム140は、キャリブレーションモデル28を学習する処理を実行させるプログラムである。
【0094】
補正プログラム142は、キャリブレーションモデル28を用いて予測プログラム136が取得した予測値をキャリブレートして補正する処理を実行させるプログラムである。
【0095】
通信インターフェース106は、有線又は無線により外部装置との通信処理を行い、外部装置との間で情報のやり取りを行う。情報処理装置100は、通信インターフェース106を介して不図示の通信回線に接続される。通信回線は、ローカルエリアネットワークであってもよいし、ワイドエリアネットワークであってもよく、これらの組み合わせであってもよい。通信インターフェース106は、オリジナルデータセットなど様々なデータの入力を受け付けるデータ取得部の役割を担うことができる。
【0096】
情報処理装置100は、入力装置152とディスプレイ装置154とを備えていてもよい。入力装置152及びディスプレイ装置154は、入出力インターフェース108を介してバス110に接続される。入力装置152は、たとえば、キーボード、マウス、マルチタッチパネル、もしくはその他のポインティングデバイス、もしくは、音声入力装置、又はこれらの適宜の組み合わせであってよい。ディスプレイ装置154は、たとえば、液晶ディスプレイ、有機EL(organic electro-luminescence:OEL)ディスプレイ、もしくは、プロジェクタ、又はこれらの適宜の組み合わせであってよい。なお、タッチパネルのように入力装置152とディスプレイ装置154とが一体的に構成されてもよく、タッチパネル式のタブレット端末のように、情報処理装置100と入力装置152とディスプレイ装置154とが一体的に構成されてもよい。
【0097】
図11は、情報処理装置100のモデル学習時の機能的構成を示す機能ブロック図である。
図11に示す各機能は、プロセッサ102が各プログラムを実行することで実現される。情報処理装置100は、データ取得部160と、分割部162と、予測モデル学習部164と、予測部166と、ランキング上位抽出部168と、キャリブレーションモデル学習部170と、を含む。
【0098】
データ取得部160は、データ記憶部120からデータを取得する。データ取得部160は、データ記憶部120から、たとえばモデル構築用データD21を取得する。
【0099】
分割部162は、データ取得部160が取得したモデル構築用データD21(「複数のデータ」の一例)を分割し、一部を予測モデル22の学習用データD22とし、残りの一部をキャリブレーション用データD12とする。
【0100】
予測モデル学習部164は、予測モデル22を学習する。予測モデル22は、モデル記憶部122に記憶される。
【0101】
予測部166は、予測モデル22を用いてキャリブレーション用データD12について予測を行う。
【0102】
ランキング上位抽出部168は、ランキング上位抽出手段24を含む。ランキング上位抽出部168は、予測モデル22が取得した予測値にもとづいて、キャリブレーション用データD12から予測値の順位が相対的に上位のアイテム(「上位アイテム」の一例)のデータセット(「上位データ」の一例)を抽出し、抽出されたキャリブレーション用データD13とする。
【0103】
キャリブレーションモデル学習部170は、キャリブレーション構築手段26を含む。キャリブレーションモデル学習部170は、抽出されたキャリブレーション用データD13を用いてキャリブレーションモデル28を学習する。
【0104】
このように、情報処理装置100は、キャリブレーションモデル28の「学習装置」として機能する。
【0105】
図12は、情報処理装置100の推論時、すなわちアイテム推薦時の機能的構成を示す機能ブロック図である。情報処理装置100は、データ取得部160と、予測部166と、ランキング上位抽出部168と、補正部172と、出力部174と、を含む。
【0106】
データ取得部160は、データ記憶部120から予測対象データD11を取得する。
【0107】
予測部166は、予測モデル22を用いてユーザーのアイテムに対する行動予測を行う。
【0108】
ランキング上位抽出部168は、予測部166が取得した予測値にもとづいて予測値の順位が上位のアイテムを抽出する。
【0109】
補正部172は、キャリブレーションモデル28を用いて、予測部166が取得した予測値をキャリブレートして補正する。
【0110】
出力部174は、予測値の順位が上位のアイテムと、そのアイテムの補正された予測値を出力する。出力部174は、これらをディスプレイ装置154に出力してもよい。
【0111】
このように、情報処理装置100は、ユーザーに対するアイテムの「推薦装置」として機能する。
【0112】
〔推薦方法〕
図13は、情報処理装置100が実施する推薦方法(「情報処理方法」の一例)の処理を示すフローチャートである。推薦方法は、プロセッサ102がコンピュータ可読媒体104に記憶された推薦プログラム(「情報処理プログラム」の一例)を実行することで実現される。推薦プログラムは、コンピュータが読み取り可能な非一時的記憶媒体によって提供されてもよい。この場合、情報処理装置100は、非一時的記憶媒体から推薦プログラムを読み取り、コンピュータ可読媒体104に記憶させてもよい。
【0113】
ステップS1では、データ取得部160は、データ記憶部120からユーザー行動履歴データとしてモデル構築用データD21を取得する。分割部162は、モデル構築用データD21を予測モデル22の学習用データD22とキャリブレーション用データD12とに分割する。
【0114】
ステップS2では、予測モデル学習部164は、モデル構築用データD21の一部である学習用データD22を用いて予測モデル22を学習する。
【0115】
ステップS3では、予測部166は、予測モデル22を用いて、モデル構築用データD21の残りの一部であるキャリブレーション用データD12に対して、各ユーザーと各コンテキストにおける各アイテムに対する行動予測を行い、予測値を出力する。
【0116】
ステップS4では、ランキング上位抽出手段24は、予測モデル22が取得した予測値にもとづいて、キャリブレーション用データD12から各ユーザーと各コンテキストにおける予測値が上位のN個のアイテムのデータを抽出し、抽出されたキャリブレーション用データD13とする。抽出されたキャリブレーション用データD13は、ユーザー数×コンテキスト数×N個のデータである。
【0117】
ステップS5では、キャリブレーションモデル学習部170は、ステップS4で抽出した抽出されたキャリブレーション用データD13に対して、キャリブレーションモデル28を学習する。キャリブレーションモデル28は、予測値を入力として与えると行動確率に変換して出力する学習済みモデルである。
【0118】
ステップS6では、予測部166は、ステップS2で学習した予測モデル22でユーザーの行動予測を行う。ランキング上位抽出部168は、予測値にもとづいてアイテムに順位を付し、予測値の順位が上位N個のアイテムとその予測値を取得する。補正部172は、予測値をステップS5で学習したキャリブレーションモデル28を用いてキャリブレートして補正する。出力部174は、上位N個のアイテムとその補正された予測値を出力する。
【0119】
ここでは、ステップS4においてランキング上位抽出手段24が抽出する上位アイテムの数とステップS6においてランキング上位抽出手段24が抽出する上位アイテムの数とは、ともに等しい数のN個であったが、異なる数であってもよい。
【0120】
推薦方法のうち、ステップS1~S5は、キャリブレーションモデル28の「学習方法」に相当する。
【0121】
〔実施形態1〕
推薦システム20を用いたコンビニエンスストアの購買予測にもとづく商品推薦について説明する。
【0122】
コンビニエンスストアにおいて、アプリケーションの会員(以下、単に「会員」という)に対して推薦商品5個を日々プッシュ配信したいという要望がある。プッシュ配信とは、システム側から会員のアプリケーションへ情報が送信されることをいう。さらに、プッシュ配信した推薦商品の購入率も正確に把握したいという要望がある。コンビニエンスストアの運営側は、購入率の把握により、商品在庫計画への活用、及び購入率に応じたクーポン値引額の調整等が可能となる。
【0123】
実施形態1の前提条件は、以下の通りである。会員は100万人であり、店舗ごとの商品数は約1000である。大半の会員はいつも同じ店舗を利用する。各会員は1日に平均2点の商品を購入しており、各会員の60日間の購買履歴が存在する。商品ラインナップと各商品の価格とが既知である。商品の値引額は、日々変化する。
【0124】
(1)データ記憶部120に記憶されている購買履歴をデータ取得部160が取得する。分割部162は、データ取得部160が取得した購買履歴をモデル学習用とキャリブレーション用とに分割する。ここでは、分割部162は、会員のうち10%(10万人分)の購買履歴をキャリブレーション用、残り90%(90万人分)の購買履歴をモデル学習用、というように会員をもとに分割する。なお、分割部162は、直近7日分の購買履歴をキャリブレーション用、残り53日分の購買履歴を学習用、というように期間をもとに分割してもよい。
【0125】
(2)予測モデル学習部164は、モデル学習用の購買履歴を用いて、購買予測モデルを学習する。ここでは、予測モデル学習部164は、各日において購買した商品を正例(1)、購買しなかった商品を負例(0)となるように学習する。ただし負例はランダムサンプリングして10件の商品が選択される。学習データ数は、90万人×(正例2+負例10)×53日=約5.7億件である。なお、直近7日分の購入商品を特徴量として使用するため、60日-7日=53日分となる。
【0126】
購買予測モデルの特徴量としては、会員属性(性別、年代、職業)、推薦候補の各商品のアイテム属性(商品カテゴリ、定価、各日の値引率)、会員が過去1週間に購入した商品のアイテム属性(商品カテゴリ、定価、各日の値引率)、各日のコンテキスト情報(曜日、天気、最高気温、最低気温)、の少なくともいずれかであってよい。
【0127】
予測モデル学習部164は、購買予測モデルとして、各特徴量をベクトル化してその内積で特徴量間の交互作用を表現するFM(factorization machines)を学習する。購買予測モデルは、FM以外の予測モデルでもよく、FMの深層学習版であってもよい。
【0128】
(3)予測部166は、予測モデル学習部164が学習した購買予測モデルで、キャリブレーション用データに対して、各会員、各日、各商品の予測を行う。予測部166が予測する予測値の数は、10万人×53日×商品数1000個=53億件である。
【0129】
(4)ランキング上位抽出部168は、各会員、各日、において、予測値が上位5件の商品とその予測値とを抽出する。ランキング上位抽出部168が抽出する商品のデータの数は、10万人×53日×上位5個=2650万件である。
【0130】
(5)キャリブレーションモデル学習部170は、ランキング上位抽出部168が抽出したデータに対して、予測値を説明変数、購入有無を目的変数としてロジスティック回帰を行う。キャリブレーションモデル学習部170は、Platt scalingを用いてもよいし、その他の手法を用いてもよい。
【0131】
(6)予測部166は、本日のプッシュ配信にむけて、(2)で学習した購買予測モデルで本日の各会員の各商品の購買を予測する。また、補正部172は、上位5件の商品の予測値を(5)で学習したロジスティック回帰モデルで変換する。出力部174は、上位5件の商品と変換後の予測値である購入予測確率とを出力する。情報処理装置100は、通信インターフェース106を介して、各会員の上位5件の商品と購入予測確率を当該会員のアプリケーションがインストールされた端末装置に送信する。端末装置は、例えばスマートフォン、タブレット端末、又はパーソナルコンピュータなどであってよい。
【0132】
推薦システム20は、予測値の順位が相対的に上位の商品を推薦することに限定されず、予測値の順位が相対的に下位の商品を含めた複数の商品をリスト化し、購入予測確率とともにユーザーに提示してもよい。商品数が相対的に多い場合、推薦システム20は、端末装置に複数の商品をスクロール表示させてもよい。
【0133】
また、推薦システム20は、商品をユーザーに推薦しなくてもよい。例えば、推薦システム20は、商品及び購入予測確率をユーザーに提示せずに、購入予測確率にもとづき商品の仕入れ数を自動的に決定してもよい。
【0134】
〔Platt scalingの補足〕
(1)情報処理装置100は、典型的にはキャリブレーション用データに対して、本開示ではキャリブレーション用データのうち上位アイテムが抽出されたキャリブレーション用データに対して、予測モデル(s=f(x))を適用し、予測値sと真値yのペア (s_i, y_i)からなるデータセット[(s_i, y_i) | i=1,2,…N]を用意する。なお、f()は任意の関数であり、xは予測に用いる特徴量である。xは一般に多次元であるため、ベクトルを想定している。
【0135】
(2)情報処理装置100は、sを説明変数、yを目的変数にしてロジスティック回帰を学習し、キャリブレーションモデルg()を取得する。
g(s)=σ(bs+c) = 1/(1+exp(-(bs+c)))
なお、σ()はシグモイド関数を表す。
【0136】
(3)情報処理装置100は、得られたキャリブレーションモデルg()を用いて、予測値sを補正し、補正された予測値ydを取得する。
yd = g(s)
【0137】
〔実施形態2〕
推薦システム20を用いた動画視聴サービスの評価値予測にもとづく動画推薦について説明する。
【0138】
動画視聴サービスにおいて、推薦動画リストをユーザーに提示したいという要望がある。さらに、動画リストには、動画名に併せて予想満足度(たとえば1~5のレーティング)も提示したいという要望がある。
【0139】
実施形態2の前提条件は、以下の通りである。動画視聴サービスのユーザー数は1000万人であり、動画数は1000本である。各ユーザーについて平均50本の動画の評価履歴(過去の評価値)がある。
【0140】
(1)データ記憶部120に記憶されている評価履歴をデータ取得部160が取得する。分割部162は、データ取得部160が取得した評価履歴をモデル学習用とキャリブレーション用とに分割する。たとえば、分割部162は、評価履歴のうち20%(各ユーザー平均10本分)をキャリブレーション用、残り80%(各ユーザー平均40本分)をモデル学習用、というように分割する。
【0141】
(2)予測モデル学習部164は、モデル学習用の評価履歴を用いて、評価予測モデルを学習する。ここでは、予測モデル学習部164は、アイテム間型メモリベース法の協調フィルタリングを用いるが、他の予測モデルを用いてもよい。予測モデル学習部164は、アイテム間型メモリベース法の協調フィルタリングを用いるために、動画間の類似度を算出する。たとえば、予測モデル学習部164は、2つの動画を評価しているユーザーの評価値を抽出し、cosine類似度を算出してよい。
【0142】
(3)予測部166は、予測モデル学習部164が学習した評価予測モデルで、キャリブレーション用データに対して、各ユーザー、各動画の予測を行う。たとえば、予測部166は、推薦候補動画とユーザーの過去評価動画との類似度をもとにした、重みづけ平均で予測する。予測部166が予測する予測値の数は、1000万人×動画数960本=96億件である。なお、ここでの動画数は、学習に用いた40本の評価済動画を除くため、1000本-40本=960本となる。
【0143】
(4)ランキング上位抽出部168は、各ユーザーの予測値が上位5本の動画とその予測値とを抽出する。ランキング上位抽出部168が抽出する動画のデータの数は、1000万人×上位5本=5000万件である。
【0144】
(5)キャリブレーションモデル学習部170は、ランキング上位抽出部168が抽出したデータに対して、1~5の予測値を0.1刻みで40個にビン分割(binning)し([1-1.1], [1.1-1.2],..)、ビンごとにキャリブレーション用データ内において実際に評価されている動画の評価値の平均をとる。なお、各ユーザーが評価している動画は全体の一部であり、上位5件の動画にすべて評価値が存在するとは限らない。したがって、ランキング上位抽出部168は、(4)において抽出する動画を、各ユーザー上位5本抽出した5000万件のうち、キャリブレーション用データ内に評価値が存在する動画にさらに限定することが好ましい。
【0145】
各ビン内の予測値は、この評価値の平均値に変換される。これはhistogram binningと呼ばれるキャリブレーション手法であり、他の手法を用いてもよい。
【0146】
(6)予測部166は、推薦動画リストの生成にむけて、(2)で学習した評価予測モデルで各ユーザーの未視聴の各動画の評価を予測する。また、補正部172は、上位5件の動画の予測値を(5)で学習した変換条件で変換する。出力部174は、上位5件の動画と変換後の予測値である評価値予測を出力する。情報処理装置100は、通信インターフェース106を介して、各ユーザーの上位5件の動画と評価値予測を当該ユーザーの所有する端末装置に送信する。
【0147】
〔histogram binningの補足〕
(1)情報処理装置100は、典型的にはキャリブレーション用データに対して、本開示ではキャリブレーション用データのうち上位アイテムが抽出されたキャリブレーション用データに対して、予測モデル(s=f(x))を適用し、予測値sと真値yのペア (s_i, y_i)からなるデータセット[(s_i, y_i) | i=1,2,…N]を用意する。なお、f()は任意の関数であり、xは予測に用いる特徴量である。xは一般に多次元であるため、ベクトルを想定している。
【0148】
(2)次に、情報処理装置100は、(1)のデータセットのビンごとの真値との対応を求める。
【0149】
(a)情報処理装置100は、(1)のデータセットをsの値をもとにビンに分割する。たとえば、sが1.0以上1.1未満のビン、1.1以上1.2未満のビン、…、のように分割する。
【0150】
(b)情報処理装置100は、それぞれのビンに対してyの値の平均値を求める。たとえば、情報処理装置100は、sが1.0以上1.1未満のビンのyの平均は1.34、1.1以上1.2未満のビンのyの平均は1.68、…、のように平均値を求める。
【0151】
(c)情報処理装置100は、キャリブレーションモデルg()としてビンごとの変換則g(s)を得る。たとえば、情報処理装置100は、sが1.0以上1.1未満なら1.34に変換、sが1.1以上1.2未満なら1.68に変換、…、のような変換則g(s)を得る。
【0152】
(3)情報処理装置100は、得られたキャリブレーションモデルg()を用いて、予測値sを補正し、補正された予測値ydを取得する。
yd=g(s)
【0153】
たとえば、s=1.14の場合、sは1.1以上1.2未満であるため、yd=1.68に変換される。
【0154】
〔推薦対象のアイテムについて〕
本開示の「アイテム」とは、推薦の選択候補のことを示しており、モノではなくヒトであることもある。アイテムがヒトである一例として、マッチングアプリにおける交際相手の候補の推薦がある。
【0155】
また、アイテムがヒトである他の例として、会員制サービスにおいてサービスを解約しそうな会員の予測(にもとづくピックアップ)がある。この場合、推薦システムの「ユーザー」は解約リスクのある対象にクーポンを送るマーケティング担当者であり、「アイテム」はサービス会員である。
【0156】
さらに、アイテムがヒトである他の例として、緊急に処置が必要な患者の順位付け(トリアージ)がある。この場合、推薦システムの「ユーザー」は医師及び看護師であり、「アイテム」は患者である。
【0157】
〔実施形態3〕
推薦システム20を用いた解約リスクのあるサービス会員の予測及び推薦について説明する。
【0158】
会員制サービスにおいて、解約の可能性がある会員を特定して、特定した会員に対して解約防止施策を行いたいという要望がある。解約防止施策とは、たとえば他の会員よりもお得なクーポン(たとえば、他の会員よりも値引き額が相対的に大きい割引券)を送付する等である。このようなクーポンは、損益が負となる可能性のあるクーポンとなるため、送付は一定以上の解約リスクがある会員に限定したいという要望がある。したがって、解約率の予測値が重要となる。
【0159】
実施形態3の前提条件は、以下の通りである。会員制サービスの会員数は10万人であり、現時点における各会員の年代、職業、サービスの利用指標がある。利用指標は、たとえばRFM(最終購入日Recency / 購入頻度Frequency / 購入金額Monetary)である。また、過去1年の解約者情報がある。解約者情報は、たとえば1年前の会員10万人のその後の解約有無、1年前時点での各会員の年代、職業、サービスの利用指標を含む。
【0160】
(1)データ記憶部120に記憶されている解約者情報をデータ取得部160が取得する。分割部162は、データ取得部160が取得した解約者情報をモデル学習用とキャリブレーション用とに分割する。たとえば、分割部162は、解約者情報の20%(2万人分)をキャリブレーション用、残り80%(8万人分)をモデル学習用、というように分割する。
【0161】
(2)予測モデル学習部164は、モデル学習用の解約者情報を用いて、解約予測モデルを学習する。たとえば、予測モデル学習部164は、会員の属性及びサービス利用指標を特徴量として、勾配ブースティング決定木(Gradient Boosting Decision Tree:GBDT)を学習する。
【0162】
(3)予測部166は、予測モデル学習部164が学習した解約予測モデルで、キャリブレーション用データに対して、各会員の解約率の予測を行う。
【0163】
(4)ランキング上位抽出部168は、予測した解約率の高い上位1%の会員とその解約率を抽出する。
【0164】
(5)キャリブレーションモデル学習部170は、抽出データに対して、解約率を説明変数、解約有無を目的変数としてロジスティック回帰を行う。キャリブレーションモデル学習部170は、Platt scalingを用いてもよいし、他の手法を用いてもよい。
【0165】
(6)予測部166は、現時点での解約防止施策にむけて、(2)で学習した解約予測モデルで各会員の解約率を予測する。また、補正部172は、上位1%の会員の解約率を(5)で学習した変換条件で変換する。出力部174は、上位1%の会員と変換した解約率とを出力する。情報処理装置100は、通信インターフェース106を介して、変換した解約率が閾値よりも大きい会員に対してクーポンを送信してもよい。
【0166】
〔医療分野への適用〕
本開示の推薦方法は、医療分野へ適用することも可能である。
【0167】
実施形態1を医療分野へ適用することで、患者の処方の推薦が可能である。例えば、処方する確率にもとづいて順位付けする推薦システムに適用することができる。
【0168】
実施形態2を医療分野へ適用することで、患者への病院及び医師の推薦が可能である。例えば、口コミサイトのレーティングの予測にもとづいて順位付けする推薦システムに適用することができる。
【0169】
実施形態3を医療分野へ適用することで、集中治療室(ICU:Intensive Care Unit)患者のスクリーニングが可能である。たとえば、入院患者のうちICUに入室させる患者の予測及び推薦をする推薦システムに適用することができる。
【0170】
〔その他〕
本開示は上述した実施形態に限定されるものではなく、本開示の技術的思想の趣旨を逸脱しない範囲で種々の変形が可能である。
【符号の説明】
【0171】
10…推薦システム
12…予測モデル
14…ランキング上位抽出手段
16…キャリブレーション構築手段
20…推薦システム
22…予測モデル
24…ランキング上位抽出手段
26…キャリブレーション構築手段
28…キャリブレーションモデル
100…情報処理装置
102…プロセッサ
104…コンピュータ可読媒体
106…通信インターフェース
108…入出力インターフェース
110…バス
112…メモリ
114…ストレージ
120…データ記憶部
122…モデル記憶部
130…データ取得プログラム
132…分割プログラム
134…予測モデル学習プログラム
136…予測プログラム
138…ランキング上位抽出プログラム
140…キャリブレーションモデル学習プログラム
142…補正プログラム
152…入力装置
154…ディスプレイ装置
160…データ取得部
162…分割部
164…予測モデル学習部
166…予測部
168…ランキング上位抽出部
170…キャリブレーションモデル学習部
172…補正部
174…出力部
D1…予測対象データ
D2…キャリブレーション用データ
D11…予測対象データ
D12…キャリブレーション用データ
D13…抽出されたキャリブレーション用データ
D14…データ
D21…モデル構築用データ
D22…学習用データ
I1、I2、I3…アイテム
S1~S6…推薦方法のステップ
U1、U2、U3、UM…ユーザー