(57)【要約】【課題】パラメータの学習を行うことなく、ユーザとアイテムの特性の多様性やユーザの趣味の広さを考慮した推薦を行う。【解決手段】制御部１０は、各ユーザが持つ各アイテムを表すデータを取得し、取得したデータに含まれる各ユーザおよび各アイテムをそれぞれノードとし、ユーザに対応するノードと、そのユーザが持つ各アイテムに対応する各ノードとをリンクで結んだ二部ネットワークを生成する。制御部１０は、生成した二部ネットワークからコミュニティの階層構造を抽出し、抽出された階層構造における各層のコミュニティにおけるノードの重要度を算出し、算出した重要度から前記ノードの各コミュニティへの帰属度を算出する。制御部１０は、算出した帰属度と、コミュニティにおけるアイテムの重要度から、ユーザとアイテムとの相性を表す指標を算出し、算出した指標を用いてユーザにアイテムを推薦する。【選択図】図１
2019008414.tif 000002
【特許請求の範囲】
【請求項１】
各ユーザが持つ各アイテムを表すデータを取得する取得手段と、
前記データに含まれる各ユーザおよび各アイテムをそれぞれノードとし、前記ユーザに対応するノードと、そのユーザが持つ各アイテムに対応する各ノードとをリンクで結んだ二部ネットワークを生成する生成手段と、
前記二部ネットワークからコミュニティの階層構造を抽出する抽出手段と、
前記抽出手段で抽出された階層構造における各層のコミュニティにおけるノードの重要度を算出し、算出した重要度から前記ノードの各コミュニティへの帰属度を算出する第１算出手段と、
前記第１算出手段が算出した帰属度と、前記コミュニティにおける前記アイテムの重要度から、前記ユーザと前記アイテムとの相性を表す指標を算出する第２算出手段と
を備える情報処理装置。
【請求項２】
前記指標が予め定められた条件に合致したアイテムを指定されたユーザへ推薦する推薦手段を備える
請求項１に記載の情報処理装置。
【請求項３】
前記抽出手段で抽出された階層構造のコミュニティから、予め定められた条件に従ってコミュニティを選択する選択手段を有し、
前記推薦手段は、前記選択手段が選択したコミュニティに属するアイテムを推薦する
請求項２に記載の情報処理装置。
【請求項４】
前記選択手段は、前記帰属度が、最大値の予め定められた割合以上となったコミュニティを選択する
請求項３に記載の情報処理装置。
【請求項５】
前記選択手段は、前記帰属度が予め定められた閾値以上であるコミュニティを選択する
請求項３に記載の情報処理装置。
【請求項６】
前記選択手段は、前記帰属度が最上位から予め定められた範囲内のコミュニティを選択する
請求項３に記載の情報処理装置。
【請求項７】
前記第２算出手段は、前記各層のノードの各コミュニティへの帰属度と各コミュニティにおける前記アイテムの重要度により、層毎に前記ユーザと前記アイテムとの相性を表す指標を算出し、全ての層の当該指標の平均を、前記ユーザと前記アイテムとの相性を表す指標とする
請求項１から請求項６のいずれか一項に記載の情報処理装置。
【請求項８】
コンピュータを、
各ユーザが持つ各アイテムを表すデータを取得する取得手段と、
前記データに含まれる各ユーザおよび各アイテムをそれぞれノードとし、前記ユーザに対応するノードと、そのユーザが持つ各アイテムに対応する各ノードとをリンクで結んだ二部ネットワークを生成する生成手段と、
前記二部ネットワークからコミュニティの階層構造を抽出する抽出手段と、
前記抽出手段で抽出された階層構造における各層のコミュニティにおけるノードの重要度を算出し、算出した重要度から前記ノードの各コミュニティへの帰属度を算出する第１算出手段と、
前記第１算出手段が算出した帰属度と、前記コミュニティにおける前記アイテムの重要度から、前記ユーザと前記アイテムとの相性を表す指標を算出する第２算出手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置およびプログラムに関する。
【背景技術】
【０００２】
ユーザにアイテムを推薦する協調フィルタリングに係る発明として、例えば特許文献１に開示された発明がある。特許文献１に開示された装置は、ランキングアイテムのペア集合についてユーザの嗜好データを取得し、嗜好データおよびユーザ・アイテム間の相関データに基づいてユーザの嗜好ベースの確率的潜在嗜好解析モデルを構築し、確率的潜在嗜好モデルを使用することにより、ユーザの嗜好に基づくアイテムランキングを予測する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−０９６２５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
協調フィルタリングにおいて潜在意味抽出モデルの方法の場合、パラメータの学習を行う必要があり、ユーザとアイテムの特性の多様性やユーザの趣味の広さを考慮した推薦を、パラメータの学習を行わずに行うことができなかった。
【０００５】
本発明は、パラメータの学習を行うことなく、ユーザとアイテムの特性の多様性やユーザの趣味の広さを考慮した推薦を行う技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の請求項１に係る情報処理装置は、各ユーザが持つ各アイテムを表すデータを取得する取得手段と、前記データに含まれる各ユーザおよび各アイテムをそれぞれノードとし、前記ユーザに対応するノードと、そのユーザが持つ各アイテムに対応する各ノードとをリンクで結んだ二部ネットワークを生成する生成手段と、前記二部ネットワークからコミュニティの階層構造を抽出する抽出手段と、前記抽出手段で抽出された階層構造における各層のコミュニティにおけるノードの重要度を算出し、算出した重要度から前記ノードの各コミュニティへの帰属度を算出する第１算出手段と、前記第１算出手段が算出した帰属度と、前記コミュニティにおける前記アイテムの重要度から、前記ユーザと前記アイテムとの相性を表す指標を算出する第２算出手段とを備える。
【０００７】
本発明の請求項２に係る情報処理装置は、前記指標が予め定められた条件に合致したアイテムを指定されたユーザへ推薦する推薦手段を備える。
【０００８】
本発明の請求項３に係る情報処理装置は、前記抽出手段で抽出された階層構造のコミュニティから、予め定められた条件に従ってコミュニティを選択する選択手段を有し、前記推薦手段は、前記選択手段が選択したコミュニティに属するアイテムを推薦する。
【０００９】
本発明の請求項４に係る情報処理装置においては、前記選択手段は、前記帰属度が、最大値の予め定められた割合以上となったコミュニティを選択する。
【００１０】
本発明の請求項５に係る情報処理装置においては、前記選択手段は、前記帰属度が予め定められた閾値以上であるコミュニティを選択する。
【００１１】
本発明の請求項６に係る情報処理装置においては、前記選択手段は、前記帰属度が最上位から予め定められた範囲内のコミュニティを選択する。
【００１２】
本発明の請求項７に係る情報処理装置においては、前記第２算出手段は、前記各層のノードの各コミュニティへの帰属度と各コミュニティにおける前記アイテムの重要度により、層毎に前記ユーザと前記アイテムとの相性を表す指標を算出し、全ての層の当該指標の平均を、前記ユーザと前記アイテムとの相性を表す指標とする。
【００１３】
本発明の請求項８に係るプログラムは、コンピュータを、各ユーザが持つ各アイテムを表すデータを取得する取得手段と、前記データに含まれる各ユーザおよび各アイテムをそれぞれノードとし、前記ユーザに対応するノードと、そのユーザが持つ各アイテムに対応する各ノードとをリンクで結んだ二部ネットワークを生成する生成手段と、前記二部ネットワークからコミュニティの階層構造を抽出する抽出手段と、前記抽出手段で抽出された階層構造における各層のコミュニティにおけるノードの重要度を算出し、算出した重要度から前記ノードの各コミュニティへの帰属度を算出する第１算出手段と、前記第１算出手段が算出した帰属度と、前記コミュニティにおける前記アイテムの重要度から、前記ユーザと前記アイテムとの相性を表す指標を算出する第２算出手段として機能させるためのプログラムである。
【発明の効果】
【００１４】
本発明の請求項１に係る情報処理装置によれば、パラメータの学習を行うことなく、ユーザとアイテムの特性の多様性やユーザの趣味の広さを考慮した推薦を行うことができる。
本発明の請求項２に係る情報処理装置によれば、指定されたユーザへアイテムを推薦することができる。
本発明の請求項３に係る情報処理装置によれば、予め定められた条件に合致するコミュニティからアイテムを推薦することができる。
本発明の請求項４に係る情報処理装置によれば、複数のコミュニティから多様なアイテムを推薦することができる。
本発明の請求項５に係る情報処理装置によれば、複数のコミュニティから多様なアイテムを推薦することができる。
本発明の請求項６に係る情報処理装置によれば、複数のコミュニティから多様なアイテムを推薦することができる。
本発明の請求項７に係る情報処理装置によれば、多様なアイテムを推薦することができる。
本発明の請求項８に係るプログラムによれば、パラメータの学習を行うことなく、ユーザとアイテムの特性の多様性やユーザの趣味の広さを考慮した推薦を行うことができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態に係る情報処理装置の構成を示した図。
【図２】制御部１０が行う処理の流れを示したフローチャート。
【図３】履歴データの一例を示した図。
【図４】二部ネットワークの一例を示した図。
【図５】制御部１０が行う処理の流れを示したフローチャート。
【図６】制御部１０が行う処理の流れを示したフローチャート。
【図７】コミュニティの一例を示した図。
【図８】推薦するアイテムの一例を示した図。
【図９】推薦するアイテムの一例を示した図。
【発明を実施するための形態】
【００１６】
［実施形態］
図１は、本発明に係る情報処理装置１の構成の一例を示した図である。情報処理装置１は、コンピュータ装置であり、制御部１０、記憶部１１、操作部１２、表示部１３および通信部１４を備える。
【００１７】
通信部１４は、通信回線に接続されており、他のコンピュータ装置と通信を行う通信インターフェースの機能を有する。表示部１３は、ディスプレイ装置であり、制御部１０が行った処理の結果を表示する。操作部１２は、例えば情報処理装置１を操作するためのキーボードやマウス等である。
【００１８】
記憶部１１は、データを永続的に記憶する記憶装置を含み、履歴データを記憶する。履歴データは、例えば、動画配信サイトのユーザと、動画配信サイトでユーザが視聴したアイテム（例えば映画）とを対応付けたデータであり、ユーザが持つアイテムを表すデータである。履歴データは、生データから抽出された生の特徴表現のデータである。生データは、分析の対象となる個々の主体の特徴となる素性（属性）の情報を含んだデータであり、データの内容やデータ形式等に制限はない。例えば、ユーザの視聴履歴は、生データの一例である。この場合、例えば、個々のユーザを分析対象の主体とし、そのユーザが視聴した個々のアイテムをその主体の個々の素性と捉える。なお、生データにおいて、どの情報項目を主体およびその主体の素性とするかは、分析目的に応じて適宜定める事項であり、以上に説明したのはあくまで一例に過ぎない。また、記憶部１１は、制御部１０が実行するプログラムを記憶する。記憶部１１に記憶されるプログラムは、通信部１４により電気通信回線を介して取得したものや、コンピュータ読み取り可能な記録媒体から取得したものであってもよい。本実施形態においては、記憶部１１が記憶するプログラムは、ユーザに推薦するアイテムを履歴データに基づいて決定するプログラムである。
【００１９】
制御部１０は、ＣＰＵ（Central Processing Unit）とＲＡＭ（Random Access Memory）を備えており、記憶部１１に記憶されているプログラムを実行する。記憶部１１に記憶されているプログラムを制御部１０が実行すると、取得部１０１、生成部１０２、抽出部１０３、第１算出部１０４、選択部１０５、第２算出部１０６、および推薦部１０７が実現し、動画配信サイトのユーザに推薦するアイテムを決定する機能が実現する。
【００２０】
本発明に係る取得手段の一例である取得部１０１は、履歴データを記憶部１１から取得する。本発明に係る生成手段の一例である生成部１０２は、取得部１０１が取得した履歴データから二部ネットワークを生成する。本発明に係る抽出手段の一例である抽出部１０３は、生成部１０２が生成した二部ネットワークからコミュニティの階層構造を抽出する。本発明に係る第１算出手段の一例である第１算出部１０４は、抽出部１０３で抽出された階層構造における各層のコミュニティにおけるノードの重要度を算出し、算出した重要度からノードの各コミュニティへの帰属度を算出する。本発明に係る選択手段の一例である選択部１０５は、抽出部１０３が抽出した階層構造のコミュニティから、予め定められた条件に従ってコミュニティを選択する。本発明に係る第２算出手段の一例である第２算出部１０６は、第１算出部１０４が算出した帰属度および重要度から、ユーザとアイテムとの相性を表す指標を算出する。本発明に係る推薦手段の一例である推薦部１０７は、第２算出部１０６が算出した指標が予め定められた条件に合致したアイテムを、ユーザへ推薦する。
【００２１】
図２は、プログラムを実行した制御部１０が行う処理の流れを示したフローチャートであり、ユーザへ推薦するアイテムを決定する処理の前に行われる事前処理のフローチャートである。まず制御部１０（取得部１０１）は、記憶部１１に記憶されている履歴データを取得する（ステップＳＡ１）。履歴データの一例を図３に示す。図３の履歴データは、動画配信サイトの個々のユーザの識別情報であり、主体であるユーザＩＤに対して、素性である個々のアイテムがそれぞれユーザに購入された（値「１」）か、購入されていない（値「０」）かを表している。
【００２２】
次に制御部１０（生成部１０２）は、取得した履歴データから二部ネットワークを生成する（ステップＳＡ２）。二部ネットワークとは、二部グラフとも呼ばれ、ノードの集合が２つの部分集合に分割されており、同じ部分集合内のノード同士の間にリンクがないネットワーク（グラフ）のことである。二部ネットワークの一例を図４に例示する。図４では、正方形が動画配信サイトのユーザを表すノードであり、円形がアイテムである。また、ユーザのノードとアイテムのノードを結ぶ直線がリンクである。この二部ネットワークは、例えば、図２に例示する履歴データにおいて、値が１であるユーザとアイテムのノード間をリンクで結ぶことにより生成される。この二部ネットワークでは、値が０であるユーザとアイテムのノード間にはリンクがない。
【００２３】
次に制御部１０（抽出部１０３）は、ステップＳＡ２で生成した二部ネットワークにおいて、コミュニティの階層構造を抽出する（ステップＳＡ３）。コミュニティの階層構造を抽出する方法としては、例えば、本出願人による特開２０１６−２１８５３１号公報に開示された方法がある。
【００２４】
次に制御部１０（第１算出部１０４）は、ステップＳＡ３で抽出した階層構造を対象として、ネットワークのモジュール分解の手法によるクラスタリングの計算を行い、各層においてノードｎの各コミュニティｋへの帰属度γ（ｋ｜ｎ）と、コミュニティｋにおけるノードｎの確率（重要度）ｐ（ｎ｜ｋ）を計算する（ステップＳＡ４）。このネットワークのモジュール分解は、次の数１の式で表現される。
【数１】
2019008414.tif 000003
【００２５】
数１の式において、ｐ（ｎ）はノードｎが持つ確率（そのノードにランダムウォーカーが存在する確率）である。またπkは、コミュニティｋの事前確率であり、そのコミュニティｋの重要度を示す。πkのｋについての総和は１である。またｐ（ｎ｜ｋ）は、コミュニティｋにおけるノードｎの確率である。Ｋはコミュニティｋの総数である。数１の式は、ノードｎの確率ｐ（ｎ）が、各コミュニティｋにおける当該ノードｎの確率ｐ（ｎ｜ｋ）の組み合わせに分解できることを表している。
【００２６】
制御部１０が行う具体的な計算手法は、特願２０１７−０３４８８８に記載された方法と同様でよい。以下では、具体的な計算処理として、特願２０１７−０３４８８８に記載された方法に基づく処理の例を、図５のフローチャートを参照して説明する。
【００２７】
図５の手順では、まず制御部１０は、生成した二部ネットワークについての遷移確率行列Ｔnmを生成する（ステップＳＢ１）。ここで、遷移確率行列Ｔnmは、ネットワーク内のノードｍからノードｎへリンクを辿ってエージェント（言い換えれば、ノードｍが持つ確率値）が遷移（ランダムウォーク）する確率（すなわち遷移確率）を行列として表現したものである。例えばエージェントがノードから出る１以上のリンクを等確率で選択するとみなした場合、遷移確率行列は、ネットワーク情報が示すネットワークの構造、すなわちノード間がどのようにリンクされているか、のみに依存する。もちろん、ネットワークの構造以外の情報（例えばノードの重要度やリンクの強さ）を考慮に入れて遷移確率行列Ｔnmを求めることもできるが、この場合も遷移確率行列Ｔnmはネットワーク情報に基づく点は同様である。なお、二部ネットワークの場合、同じ部分集合に属するノード同士の間にはリンクがないので、遷移確率行列Ｔnmにおける同じ部分集合内のノード同士の間の遷移確率は０となる。遷移確率行列については、更に特開２０１３−１６８１２７号公報、特開２０１６−０２９５２６号公報、特開２０１６−２１８５３１号公報も参照されたい。
【００２８】
次に、制御部１０は、定常リンク確率を計算する（ステップＳＢ２）。この計算では、まずステップＳＢ１で得られた二部ネットワークの遷移確率行列Ｔnmを用いて、その二部ネットワークにおける確率遷移（ランダムウォーク）の定常状態において各ノードが持つ確率（定常状態のノード確率）を計算する。この計算では、例えば次の数２の式の計算を定常状態となるまで繰り返す。
【数２】
2019008414.tif 000004
【００２９】
数２の式において、ｐt（ｎ）は、離散的な時刻ｔにおいてノードｎが持つ確率である。数２の式を繰り返し計算して定常状態となったときのｐt（ｎ）が、ノードｎの定常状態でのノード確率ｐstead（ｎ）である。
【００３０】
次に制御部１０は、各ノードｎの定常状態でのノード確率ｐstead（ｎ）から、定常状態でのリンク確率を次の数３の式に従って計算する。
【数３】
2019008414.tif 000005
【００３１】
リンク確率とは、ノード確率ｐt（ｎ）に対してそのノードから出るリンクｌ（エル）の遷移確率を乗じたものである。リンクｌについての定常状態のリンク確率（数３の式の左辺）は、そのリンクｌの起点のノードの定常状態のノード確率に対して、遷移確率行列Ｔnmに含まれる、そのリンクｌの起点ノードから終点ノードへの遷移確率を乗じたものである。
【００３２】
特開２０１６−０２９５２６号公報および特開２０１６−２１８５３１号公報では、Ｄ回の仮想的な観測で得られる観測データである通過情報τn(d)（ｄは１からＤまでの整数。ｎはノードの識別番号）を学習データとして用いた。これに対して以下に説明する例では、観測回数Ｄが十分大きい（ノード数Ｎよりもはるかに多い）という妥当な想定の下、τn(d)の代わりに実リンクｌに関する通過情報として、数４の式を用いる。
【数４】
2019008414.tif 000006
【００３３】
ここでｎはノードの識別番号である。またδはクロネッカーのδである。すなわち、数４の式が定義するノードｎの実リンクｌに関する通過情報(学習データ)は、そのノードｎがその実リンクｌの終点ノード（terminal end of link l）または起点ノード（initial end of link l）に一致する場合に値が１となり、それ以外の場合は値が０となる。制御部１０は、二部ネットワークの情報からこのような通過情報を学習用のデータとして生成する。生成した通過情報は、後述するＥＭ（Expectation Maximization）アルゴリズムの計算で用いる。
【００３４】
また、本実施形態では、特開２０１６−０２９５２６号公報での仮想的な観測の各回ｄにおける複数のコミュニティ（成分）全体に対するコミュニティｋが占める割合γ(d)（ｋ）の代わりに、実リンクｌに関して後述する数６の（３）の式で定義される割合γlk（チルダ付き）を用いる。
【００３５】
また、このような観測回数ｄから実リンクの番号ｌへの置き換えにより、関数の総和の表現は以下のように置き換えられる。
【数５】
2019008414.tif 000007
【００３６】
後述する数６の（１）の式の右辺第２項は、特開２０１６−０２９５２６号公報等に説明した同様の式に対してこのような置き換えを行ったものである。
【００３７】
図５の手順の説明に戻ると、次に制御部１０は、確率ｐt（ｎ｜ｋ）および重要度πknew、および割合γlkの初期値を仮決めし、繰り返し回数のカウンタgの値を０に初期化する（ステップＳＢ３）。確率ｐt（ｎ｜ｋ）は、コミュニティｋにおけるノードｎの確率である。また、重要度πknewは、コミュニティｋの重要度である。またγlkは、リンクｌにおける、複数のコミュニティ全体に対するコミュニティｋが占める割合である。
【００３８】
次に制御部１０は、下記の数６の（１）、（２）、（３）の式を用いてＥＭアルゴリズムの繰り返し計算を行う。
【数６】
2019008414.tif 000008
【００３９】
すなわちまず制御部１０は、（３）の式を用いて割合γlkを計算する（ステップＳＢ４）（ＥＭアルゴリズムのＥステップ）。この計算の最初の繰り返しでは、ステップＳＢ３で仮決めした初期値を用いる。
【００４０】
次に制御部１０は、現在の確率ｐt（ｎ｜ｋ）および重要度πknewを一時刻前の値ｐt-1（ｎ｜ｋ）および重要度πkoldとする置き換えを行う（ステップＳＢ５）。そして、（１）の式および（２）の式に従って、確率ｐt（ｎ｜ｋ）および重要度πknewを計算する（ステップＳＢ６）（ＥＭアルゴリズムのＭステップ）。より詳しくは、ステップＳＢ６では、まず（２）の式に従って新たな重要度πknewを計算し、その後、この新たな重要度を用いて（１）の式の計算を行うことで、確率ｐt（ｎ｜ｋ）を求める。ここでαは、正の実数であって、コミュニティの大きさを定めるパラメータであり、予め定めた値を用いればよい。
【００４１】
そして、制御部１０は、繰り返し計算の回数のカウンタｇをインクリメントし（ステップＳＢ７）、そのカウンタｇが予め定めた値Ｇに達したかどうかを判定し（ステップＳＢ８）、達していなければステップＳＢ４〜ＳＢ７の処理を繰り返す。値Ｇは、本実施形態の計算手法においてステップＳＢ４〜ステップＳＢ６の計算が収束するのに必要な繰り返し回数であり、実験や経験的知識等により予め定めておく。
【００４２】
制御部１０は、ステップＳＢ８で、カウンタｇが値Ｇに達したと判定した場合は、繰り返し計算が収束したものとして、処理を終了する。制御部１０は、ステップＳＢ８の判定結果がＹｅｓとなった後、数７の式に従ってノードｎのコミュニティｋへの帰属度γ（ｋ｜ｎ）を計算する。
【数７】
2019008414.tif 000009
【００４３】
この式のうちπkおよびｐ（ｎ｜ｋ）は、ＥＭアルゴリズムの計算（ステップＳＢ４〜ステップＳＢ６）の繰り返しにより最終的に求められたπknewおよびｐt（ｎ｜ｋ）である。数７の式は、πkおよびｐ（ｎ｜ｋ）から、ベイズの定理により、ノードｎがコミュニティｋに所属する度合い（帰属度）を示すγ（ｋ｜ｎ）を計算する式である。制御部１０は、このようにして求めた帰属度γ（ｋ｜ｎ）とｐ（ｎ｜ｋ）を記憶部１１に記憶させる（ステップＳＡ５）。
【００４４】
次にユーザへ推薦するアイテムを選択する処理について、図６のフローチャートを用いて説明する。図６の処理は、例えば、アイテムが推薦されるユーザｕのユーザＩＤが操作部１２で入力されることにより行われる。なお、図６の処理は、動画配信サイトへユーザｕがログインしたときに、入力したユーザＩＤを取得して実行してもよい。制御部１０は、操作部１２でユーザＩＤが入力されると、入力されたユーザＩＤが表すユーザについて、新規のユーザであるか判断する（ステップＳＣ１）。具体的には、前回のコミュニティ抽出の際に、入力されたユーザＩＤが表すユーザのデータが存在していたか否かで判断する。制御部１０は、前回のコミュニティ抽出の際に、入力されたユーザＩＤが表すユーザのデータが存在していた場合には、新規のユーザではないと判断し（ステップＳＣ１でＮＯ）、前回のコミュニティ抽出の際に、入力されたユーザＩＤが表すユーザのデータが存在していない場合には、新規のユーザであると判断する（ステップＳＣ１でＹＥＳ）。
【００４５】
制御部１０は、ステップＳＣ１でＹＥＳと判断した場合、階層構造の各層の各コミュニティについて、ユーザｕのコミュニティへの帰属度γ（ｋ｜ｕ）を数８の式と数９の式により算出する（ステップＳＣ２）。
【数８】
2019008414.tif 000010
【数９】
2019008414.tif 000011
【００４６】
一方、制御部１０は、ステップＳＣ１でＮＯと判断した場合、ユーザｕのコミュニティへの帰属度γ（ｋ｜ｕ）を、コミュニティの層毎に取得する（ステップＳＣ３）。具体的には、制御部１０は、ユーザｕに対応するノードｎの帰属度γ（ｋ｜ｎ）を、ユーザｕのコミュニティへの帰属度γ（ｋ｜ｕ）として記憶部１１から取得する。
【００４７】
次に制御部１０（選択部１０５）は、ユーザｕへ推薦するアイテムのコミュニティを選択する（ステップＳＣ４）。本実施形態においては、ユーザｕが属するコミュニティのうち、帰属度γ（ｋ｜ｕ）が最上位からＮ番目までのコミュニティをユーザｕに推薦するアイテムのコミュニティとする。
【００４８】
次に制御部１０（第２算出部１０６）は、ユーザｕとアイテムｉとの相性を算出する（ステップＳＣ５）。具体的には、制御部１０は、コミュニティの層ｌにおける情報を使用し、全てのコミュニティにおける重要度と帰属度を用い、アイテムについて、数１０の式により相性スコアを算出し、数１１の式により本発明に係る指標の一例であるＭＤＭＣ（Modular Decomposition of Markov Chain）推薦度を算出する。
【数１０】
2019008414.tif 000012
【００４９】
数１０の式において、ｕはユーザを表し、ｉはアイテムを表し、ｋはコミュニティを表す。また、ｌ（エル）は、階層構造のコミュニティの層を表し、γ（ｋ｜ｕ）は、ユーザｕのコミュニティへの帰属度を表し、ｐ（ｉ｜ｋ）は、コミュニティｋにおけるアイテムｉの重要度を表す。γ（ｋ｜ｕ）は、ユーザが属性を持つコミュニティに興味を持つ度合いを表し（ｋについて足し合わせて１となる）、ｐ（ｉ｜ｋ）は、ユーザが属性を持つコミュニティにおけるアイテムのランキングを表す（ｉについて足し合わせて１となる）。γ（ｋ｜ｕ）・ｐ（ｉ｜ｋ）は、ユーザの興味の高い領域における人気の高いアイテムを高く評価する。Ｃl（ｕ，ｉ）は、γ（ｋ｜ｕ）・ｐ（ｉ｜ｋ）を全てのコミュニティについて合計することにより、ユーザの多様性とアイテムの多様性を考慮したスコアを表す。
【００５０】
Ｃl（ｕ，ｉ）を用いてアイテムを推薦する場合、浅い層（コミュニティ数が少ない層）からはポピュラーなアイテムが推薦され、深い層（コミュニティ数が多い層）では、ユーザの履歴を反映したアイテムが推薦される。しかし、深い層による推薦では推薦されるアイテムの多様性が低くなり、多様性が低い場合、セレンディピティが悪くなる。そこで、本発明においては、数１１の式のＭＤＭＣ推薦度を提案する。
【数１１】
2019008414.tif 000013
【００５１】
数１１の式において、αlは、層ｌによる相性スコアの重みを表す。特にαl＝１／Ｌ（Ｌは階層の数）の場合、全ての層による相性スコアを平均する。ＭＤＭＣ推薦度は、アイテムの多様性、ポピュラー性およびユーザの個人趣味を考慮した相性スコアを与える。
【００５２】
次に制御部１０（推薦部１０７）は、ユーザｕに推薦するアイテムを決定する（ステップＳＣ６）。例えば、制御部１０は、ステップＳＣ４で選択したコミュニティに属するアイテムについて、ＭＤＭＣ推薦度の値が上位からＮ番目までのアイテムをユーザｕに推薦するアイテムとする。つまり制御部１０は、ＭＤＭＣ推薦度の値が予め定められた合致したアイテムをユーザｕに推薦するアイテムとする。
【００５３】
例えば、図７に例示したコミュニティにおいて、ユーザｕが恋愛映画を好み、恋愛映画において、同性同士の恋愛ジャンル、ファンタジー背景の恋愛ジャンル、戦争背景の恋愛ジャンルなどに幅広く興味を持つ場合を想定する。この場合、制御部１０は、階層構造のコミュニティにおいて、浅い層においては、恋愛映画全体のコミュニティにおいて人気のある映画を推薦する。また、この場合、深い層においては、図８に示したように、ユーザｕは、複数のコミュニティでγ（ｋ｜ｕ）を低値として有しており、ユーザｕの履歴により同性同士、ファンタジー背景、戦争背景などのコミュニティを全て好むことが分かる。制御部１０は、ユーザｕに推薦するアイテムのコミュニティを、ステップＳＣ４の処理で帰属度γ（ｋ｜ｕ）が上位Ｎ番目までのコミュニティとしており、一つのコミュニティに決めることがないため、深い層、即ち、同性同士、ファンタジー背景、戦争背景などの細かいコミュニティからなる層においては、これらのコミュニティを横断して人気のある映画を推薦し、ユーザに対するアイテムの推薦に多様性が生じる。
【００５４】
また、例えば、図７に示したコミュニティにおいて、ユーザｕが恋愛映画を好み、恋愛映画において、戦争背景の恋愛ジャンルのみに興味を持つ場合を想定する。この場合、図９に示したように、浅い層から深い層まで、γ（ｋ｜ｕ）の値が一つ（あるいは少ない数）のコミュニティに集まる。制御部１０は、浅い層においては、恋愛映画全体のコミュニティにおいて人気のある映画を推薦する。また、制御部１０は、深い層においては、ユーザｕが戦争背景のコミュニティのみと相関しているため、戦争背景のコミュニティからのみ映画を推薦する。但し、深い層の重要度ｐ（ｉ｜ｋ）の値が浅い層のコミュニティよりも比較的大きいため、数１０の式により、深い層における個人的趣味を反映したアイテムは、浅い層におけるポピュラーアイテムよりも大きい相性スコアを持ち、より優先的に推薦される。
【００５５】
制御部１０は、ユーザｕに推薦するアイテムを決定すると、決定したアイテムをユーザに推薦する（ステップＳＣ７）。制御部１０は、ユーザへのアイテムの推薦を電子メールで行ってもよく、また、動画配信サイトへユーザがログインしたときに、決定したアイテムをログイン後の画面でユーザに提示してもよい。
【００５６】
［変形例］
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限定されることなく、他の様々な形態で実施可能である。例えば、上述の実施形態を以下のように変形して本発明を実施してもよい。なお、上述した実施形態および以下の変形例は、各々を組み合わせてもよい。
【００５７】
上述した実施形態においては、ステップＳＣ４において、ユーザｕに推薦するアイテムのコミュニティを、帰属度γ（ｋ｜ｕ）が上位Ｎ番目までのコミュニティとしているが、実施形態の構成に限定されるものではない。例えば、制御部１０は、帰属度γ（ｋ｜ｕ）の値が最大となったコミュニティを、ユーザｕに推薦するアイテムのコミュニティとして決定してもよい。また、制御部１０は、帰属度γ（ｋ｜ｕ）の値の最大値を取得し、帰属度γ（ｋ｜ｕ）の値が最大値の予め定められた割合であるａ割の値以上であるコミュニティを、ユーザｕに推薦するアイテムのコミュニティとして決定してもよい。また、帰属度γ（ｋ｜ｕ）が予め定められた閾値以上となったコミュニティを、ユーザｕに推薦するアイテムのコミュニティとして決定してもよい。ユーザｕに推薦するアイテムのコミュニティを、帰属度γ（ｋ｜ｕ）の値が最大値のａ割の値以上であるコミュニティに決定する方法や、帰属度γ（ｋ｜ｕ）が予め定められた閾値以上となったコミュニティに決定する方法においては、上述した実施形態と同様に、ユーザｕに推薦するアイテムのコミュニティを、一つのコミュニティに決めることがないため、ユーザに対するアイテムの推薦に多様性が生じる。
【００５８】
本発明においては、ステップＳＣ１の判断を行う際に、入力されたユーザＩＤが表すユーザについて、新規のユーザである場合、浅い層の各コミュニティにおいて重要度が上位から予め定められた範囲内のアイテムを推薦するようにしてもよい。
【００５９】
上述した実施形態においては、ユーザｕへ推薦するアイテムのコミュニティをステップＳＣ４において選択し、選択したコミュニティに属するアイテムについて、ＭＤＭＣ推薦度を算出しているが、ＭＤＭＣ推薦度を算出するアイテムは、ステップＳＣ４において選択したコミュニティに属するアイテムに限定されるものではない。例えば、本発明においては、全てのアイテムについてＭＤＭＣ推薦度を算出し、ＭＤＭＣ推薦度の値が上位からＮ番目までのアイテムをユーザｕに推薦するアイテムとしてもよい。
【符号の説明】
【００６０】
１…情報処理装置、１０…制御部、１１…記憶部、１２…操作部、１３…表示部、１４…通信部、１０１…取得部、１０２…生成部、１０３…抽出部、１０４…第１算出部、１０５…選択部、１０６…第２算出部、１０７…推薦部。
【図１】
2019008414.tif 000014
【図２】
2019008414.tif 000015
【図３】
2019008414.tif 000016
【図４】
2019008414.tif 000017
【図５】
2019008414.tif 000018
【図６】
2019008414.tif 000019
【図７】
2019008414.tif 000020
【図８】
2019008414.tif 000021
【図９】
2019008414.tif 000022