(57)【特許請求の範囲】
【請求項１】
入力された自然言語要求を意味解析して、アイテムの情報を蓄積する蓄積部に対する検索に用いる検索情報を生成する検索情報生成部と、
前記検索情報を用いて前記蓄積部に対する検索を行って、ユーザに提示するアイテムの候補を抽出する候補抽出部と、
前記自然言語要求を意味解析して、ユーザの意図を含む文脈情報を生成して出力する文脈情報生成部と、
前記文脈情報と、ユーザの属性を表すユーザ情報と、ユーザのアイテム利用履歴を表す履歴情報とに基づいて、抽出された前記候補に対する順位付けを行う順位付け部と、を備え、
前記文脈情報生成部は、前記自然言語要求に対して、統計的意味解析を用いて該自然言語要求のテキスト全体の意味を示す特徴ベクトルを生成し、該特徴ベクトルを前記文脈情報として出力する、アイテム推薦装置。
【請求項２】
検索キーワードとなる検索タグを、該検索タグを生成するトリガとなる語句と、該検索タグが適用される属性を表す適用先属性とに対応付けて格納する検索タグ辞書をさらに備え、
前記検索情報生成部は、前記自然言語要求から抽出した語句が前記検索タグ辞書に格納された前記検索タグと一致する場合は該検索タグおよび該検索タグに対応付けて前記検索タグ辞書に格納された前記適用先属性を前記検索情報として出力し、前記自然言語要求から抽出した語句が前記検索タグ辞書に格納された前記トリガとなる語句と一致する場合は該語句に対応付けて前記検索タグ辞書に格納された前記検索タグおよび該検索タグに対応付けて前記検索タグ辞書に格納された前記適用先属性を前記検索情報として出力する、請求項１に記載のアイテム推薦装置。
【請求項３】
入力された画像を解析して、該画像に含まれる人物群の人間関係を表す人間関係情報を生成して出力する人間関係情報生成部と、
前記人間関係情報を前記文脈情報に統合する統合部と、をさらに備え、
前記順位付け部は、前記人間関係情報が統合された前記文脈情報と、前記ユーザ情報と、前記履歴情報とに基づいて、抽出された前記候補に対する順位付けを行う、請求項１または２に記載のアイテム推薦装置。
【請求項４】
前記人間関係情報生成部は、前記画像から人物を検出して各人物の属性を推定し、前記画像から検出した各人物の属性の集合を所定のルールと照合して前記人間関係情報を生成する、請求項３に記載のアイテム推薦装置。
【請求項５】
前記人間関係情報生成部は、さらに、前記画像から検出した各人物のうち、前記画像におけるサイズが最大の人物、または前記画像の中心に最も近い位置から検出された人物、または口唇領域が動いていると判定される人物を選択し、
前記順位付け部は、前記人間関係情報生成部により選択された人物の属性を、前記ユーザ情報として用いる、請求項４に記載のアイテム推薦装置。
【請求項６】
アイテム推薦装置において実行されるアイテム推薦方法であって、
入力された自然言語要求を意味解析して、アイテムの情報を蓄積する蓄積部に対する検索に用いる検索情報を生成する工程と、
前記検索情報を用いて前記蓄積部に対する検索を行って、ユーザに提示するアイテムの候補を抽出する工程と、
前記自然言語要求を意味解析して、ユーザの意図を含む文脈情報を生成して出力する工程と、
前記文脈情報と、ユーザの属性を表すユーザ情報と、ユーザのアイテム利用履歴を表す履歴情報とに基づいて、抽出された前記候補に対する順位付けを行う工程と、を含み、
前記文脈情報を生成して出力する工程では、前記自然言語要求に対して、統計的意味解析を用いて該自然言語要求のテキスト全体の意味を示す特徴ベクトルを生成し、該特徴ベクトルを前記文脈情報として出力する、アイテム推薦方法。
【請求項７】
コンピュータに、
入力された自然言語要求を意味解析して、アイテムの情報を蓄積する蓄積部に対する検索に用いる検索情報を生成する機能と、
前記検索情報を用いて前記蓄積部に対する検索を行って、ユーザに提示するアイテムの候補を抽出する機能と、
前記自然言語要求を意味解析して、ユーザの意図を含む文脈情報を生成して出力する機能と、
前記文脈情報と、ユーザの属性を表すユーザ情報と、ユーザのアイテム利用履歴を表す履歴情報とに基づいて、抽出された前記候補に対する順位付けを行う機能と、を実現させ、
前記文脈情報を生成して出力する機能は、前記自然言語要求に対して、統計的意味解析を用いて該自然言語要求のテキスト全体の意味を示す特徴ベクトルを生成し、該特徴ベクトルを前記文脈情報として出力する、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、アイテム推薦装置、アイテム推薦方法およびプログラムに関する。
【背景技術】
【０００２】
ユーザが関心を寄せることが期待されるアイテムを推薦する技術は、例えば、電子商取引（ＥＣ：Electronic  Commerce）、ネット広告、行動案内サービスなどの様々な分野で広く利用されている。アイテム推薦において最も広く用いられる処理方式は、ユーザとアイテムの相関関係（もしくはユーザのアイテムへの関心の度合い）を示す行列を生成し、この行列を元に統計分析を行う方式である。しかしこの方式では、ユーザのアイテムへの興味やニーズが文脈によって変化する点が考慮されていない。そこで、近年では、例えばレストラン推薦タスクを対象に、時間帯、機会（祝日、誕生日、記念日など）、場所、同伴者などの文脈情報を追加的に用いる方式が提案されている。
【０００３】
文脈情報を用いてアイテムの推薦を行う従来の方式では、利用可能な文脈情報が、外部から容易に観測可能な情報に限られていた。しかし、これら外部から観測可能な文脈情報以外にも、ユーザの活動目的や気分など、ユーザに意図を聞かないと分からない内面的な情報も、アイテムの推薦処理を行う上で有用と思われる。このため、内面的な情報を推定してアイテムの推薦をより精度よく行うことができる仕組みの構築が求められている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Contextual  recommendation  based  on  text  mining，Li，Yize，et  al．Proceedings  of  the  23rd  International  Conference  on  Computational  Linguistics：Posters．Association  for  Computational  Linguistics，2010．
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする課題は、内面的な情報を推定してアイテムの推薦をより精度よく行うことができるアイテム推薦装置、アイテム推薦方法およびプログラムを提供することである。
【課題を解決するための手段】
【０００６】
実施形態のアイテム推薦装置は、検索情報生成部と、候補抽出部と、文脈情報生成部と、順位付け部と、を備える。検索情報生成部は、入力された自然言語要求を意味解析して、アイテムの情報を蓄積する蓄積部に対する検索に用いる検索情報を生成する。候補抽出部は、前記検索情報を用いて前記蓄積部に対する検索を行って、ユーザに提示するアイテムの候補を抽出する。文脈情報生成部は、前記自然言語要求を意味解析して、ユーザの意図を含む文脈情報を生成して出力する。順位付け部は、前記文脈情報と、ユーザの属性を表すユーザ情報と、ユーザのアイテム利用履歴を表す履歴情報とに基づいて、抽出された前記候補に対する順位付けを行う。前記文脈情報生成部は、前記自然言語要求に対して、統計的意味解析を用いて該自然言語要求のテキスト全体の意味を示す特徴ベクトルを生成し、該特徴ベクトルを前記文脈情報として出力する。
【図面の簡単な説明】
【０００７】
【図１】図１は、第１実施形態のアイテム推薦装置の構成例を示すブロック図である。
【図２】図２は、店舗ＤＢのデータ構造の一例を示す図である。
【図３】図３は、検索タグの一例を示す図である。
【図４】図４は、検索タグ辞書のデータ構造の一例を示す図である。
【図５】図５は、自然言語要求から検索タグ群を生成する処理手順の一例を示すフローチャートである。
【図６】図６は、検索タグ群から候補アイテム群を生成する処理手順の一例を示すフローチャートである。
【図７】図７は、文脈タグの一例を示す図である。
【図８】図８は、文脈タグ辞書のデータ構造の一例を示す図である。
【図９】図９は、自然言語要求から文脈タグ群を生成する処理手順の一例を示すフローチャートである。
【図１０】図１０は、ユーザＤＢのデータ構造の一例を示す図である。
【図１１】図１１は、利用ログＤＢのデータ構造の一例を示す図である。
【図１２】図１２は、予測処理の処理手順の一例を示すフローチャートである。
【図１３】図１３は、第２実施形態のアイテム推薦装置の構成例を示すブロック図である。
【図１４】図１４は、利用ログＤＢのデータ構造の一例を示す図である。
【図１５】図１５は、文脈ベクトル生成のための統計処理で用いる数理モデルを説明する図である。
【図１６】図１６は、図１５の数理モデルにおける各種パラメタの学習方法を説明する図である。
【図１７】図１７は、各種パラメタの学習処理の処理手順の一例を示すフローチャートである。
【図１８】図１８は、文脈ベクトルを生成する処理手順の一例を示すフローチャートである。
【図１９】図１９は、第３実施形態のアイテム推薦装置の構成例を示すブロック図である。
【図２０】図２０は、人物属性推定器による処理手順の一例を示すフローチャートである。
【図２１】図２１は、アイテム推薦装置のハードウェア構成の一例を概略的に示すブロック図である。
【発明を実施するための形態】
【０００８】
以下、実施形態のアイテム推薦装置、アイテム推薦方法およびプログラムを、図面を参照して詳細に説明する。
【０００９】
実施形態のアイテム推薦装置は、意味解析エンジンと文脈認識型推薦エンジンとを備える。意味解析エンジンは、ユーザから入力された自然言語要求を元に、気分、要望、目的など、ユーザの内面的な情報を推定する。文脈認識型推薦エンジンは、文脈情報として、外部観測情報（日時、場所など）に加えて、これら内面的情報を併せて分析を行う。自然言語要求は、自然言語によるアイテムの推薦要求である。近年では、音声認識技術の成熟、携帯端末の普及などを背景に、システムやサービスへの対話処理の導入が広がっており、自然言語による要求の入力がユーザに受け入れられやすい土壌になってきている。
【００１０】
以下の実施形態では、本発明の適用事例として、アイテムとして店舗を推薦する店舗推薦タスクを想定する。実施形態のアイテム推薦装置は、自然言語要求を入力として受理し、順位付けされた店舗リストを推薦アイテムリストとして出力する。またバックデータとして、ユーザ群の各店舗への利用ログを格納した利用ログＤＢを保持しているとする。ただし、本実施形態で説明する推薦処理は汎用的であり、店舗推薦タスクの適用事例に限定されるものではなく様々なタスクに適用できる。
【００１１】
以下に具体的な適用事例を示す。実施形態のアイテム推薦装置では、例えば「来週末、同期の送別会を開こうと思っています」という目的を主体とした自然言語要求が入力されたときに、以下の処理が行われる。
【００１２】
「送別会」というキーワードから、推薦候補は、店舗カテゴリが居酒屋、バー、レストラン、カフェ、花屋（プレゼント購入用）である店舗に絞られる。
【００１３】
「週末」というキーワードから、推薦候補は、週末にオープンしている店舗に絞られる。
【００１４】
「送別会」というキーワードは、予め用意されたタグ辞書と照合され、「宴会」というタグが生成される。
【００１５】
「同期」というキーワードは、予め用意されたタグ辞書と照合され、「同僚」というタグが生成される。
【００１６】
送別会および週末によって絞られた推薦候補のうち、「宴会」および「同僚」というタグと共起しやすい店舗（すなわち、実績として同僚の宴会として多く利用された店舗）を重視しつつ、利用ログを元に推薦店舗の候補を順位付けして推薦アイテムリストを出力する。
【００１７】
これにより、絞込処理によって意図に合う可能性のない店舗が排除され、さらにタグによって、意図に合う可能性の高い店舗が優先される、という条件下で、ユーザの嗜好性に適合する推薦結果が出力される。
【００１８】
＜第１実施形態＞
図１は、第１実施形態のアイテム推薦装置の構成例を示すブロック図である。本実施形態のアイテム推薦装置は、図１に示すように、意味解析エンジン１０と、文脈認識型推薦エンジン２０と、を備える。
【００１９】
意味解析エンジン１０は、ユーザ要望などが含まれる自然言語要求Ｄ１を入力として受け取り、検索タグ群Ｄ２と文脈タグ群Ｄ４とを出力する。検索タグ群Ｄ２に含まれる各検索タグは、店舗が満たすべき性質を説明する問合せ情報片である。文脈タグ群Ｄ４に含まれる各文脈タグは、ユーザ側の状況を説明する問合せ情報片である。意味解析エンジン１０は、これらのタグを生成するために、形態素解析器１１、検索タグ抽出器１２（検索情報生成部）、および文脈タグ生成器１３（文脈情報生成部）を内部に備える。
【００２０】
文脈認識型推薦エンジン２０は、意味解析エンジン１０により生成された検索タグ群Ｄ２および文脈タグ群Ｄ４を入力として受け取り、推薦アイテムリストＤ５を推薦結果として出力する。検索タグ群Ｄ２は、店舗への制約条件として店舗ＤＢ１０３と照合されて、絞り込まれた候補アイテム群Ｄ３が生成される。文脈タグ群Ｄ４は、ユーザＤＢ１０４に格納されたユーザ情報、および利用ログＤＢ１０５に格納された利用ログと併せて、候補アイテム群Ｄ３に含まれる各候補アイテムの順位付けに利用される。順位付けされた候補アイテムのリストが、推薦アイテムリストＤ５である。文脈認識型推薦エンジン２０は、これらの処理を行うために、候補抽出器２１（候補抽出部）および順位付け器２２（順位付け部）を内部に備える。
【００２１】
以下では、本実施形態のアイテム推薦装置による処理の詳細を、「店舗絞込処理」、「文脈タグ群の生成処理」、および「推薦処理」の３つに分けて説明する。これらの処理は、モジュール横断で実行される。
【００２２】
（店舗絞込処理）
店舗絞込処理とは、入力されたユーザ要望表現を含む自然言語要求Ｄ１を元に、推薦候補となる店舗（候補アイテム）を絞り込む処理である。自然言語要求Ｄ１に店舗名が含まれていた場合は、推薦候補はその店舗名で絞り込まれる。自然言語要求Ｄ１に店舗カテゴリ名が含まれていた場合は、推薦候補はその店舗カテゴリ名で絞り込まれる。その他、自然言語要求Ｄ１に“安い”、“食べ放題あり”など、店舗の属性を表す表現が含まれていた場合は、推薦候補はその属性で絞り込まれる。
【００２３】
店舗ＤＢ１０３は、本実施形態のアイテム推薦装置が扱う全店舗の店舗情報を格納するデータベースであり、この店舗ＤＢ１０３に格納された店舗情報が店舗絞込処理の対象である。店舗ＤＢ１０３のデータ構造の一例を図２に示す。店舗ＤＢ１０３に格納された店舗情報は、例えば図２に示すような表形式となっており、各レコードは店舗ＩＤ、店舗名、カテゴリ名、および他属性のカラムを含む。
【００２４】
店舗ＩＤカラムには、ユニークな通し番号が振られている。店舗名カラムには、本実施形態のアイテム推薦装置が扱う全店舗の店舗名が格納されている。カテゴリ名カラムには、居酒屋、カフェなど、予め定められたカテゴリの中のいずれかのカテゴリが格納されている。他属性カラムは、マルチラベル形式となっており、安い、食べ放題ありなど、店舗の特徴を表す予め定められた他属性のラベルの中から０個以上のラベルが列挙されている。他属性のラベルとしては、サービス内容、商品特徴、雰囲気など、様々な観点でのラベルを用意することが望ましい。
【００２５】
自然言語要求Ｄ１から検索タグ群Ｄ２を生成する処理について説明する。本実施形態のアイテム推薦装置が扱う検索タグの一例を図３に示す。検索タグは、図３に示すように、店舗名に関するタグ、カテゴリ名に関するタグ、および他属性に関するタグを含む。
【００２６】
ここで、検索タグ群Ｄ２を生成する処理の中で用いる検索タグ辞書１０１について説明する。検索タグ辞書１０１は、入力される自然言語要求Ｄ１において、異なる言い回しや、異なる観点に基づく言及の仕方の違いを吸収する知識源として利用される。これにより、ユーザの要求表現において直接的な言及が無くても、その意図を汲み取って対象店舗を絞り込む効果を得ることができる。
【００２７】
検索タグ辞書１０１のデータ構造を図４に示す。検索タグ辞書１０１は、例えば図４に示すような表形式となっており、各レコードは検索タグ、適用先属性、およびトリガワードのカラムを含む。
【００２８】
検索タグカラムは、レコードごとにユニークであり、本実施形態のアイテム推薦装置が扱う検索タグが格納されている。ただし、必ずしもすべての検索タグを格納しなくてもよい。適用先属性カラムは、検索タグが制約を課す対象となるカラム名が格納されている。例えば、検索タグが居酒屋のようなカテゴリ名を示しているレコードの場合、当該レコードの適用先属性カラムには“カテゴリ名”という値が格納される。トリガワードカラムは、マルチラベル形式となっており、検索タグ生成のトリガとなる単語やフレーズなどの語句（以下、「トリガワード」と呼ぶ。）が列挙されている。検索タグ群Ｄ２を生成する処理において図４に例示した検索タグ辞書１０１を用いることにより、“酒”、“飲み会”、“食事”といったトリガワードが含まれた自然言語要求Ｄ１に対して、“居酒屋”という検索タグを生成し、カテゴリ名への制約条件とした店舗絞込みを行う。
【００２９】
図５は、自然言語要求Ｄ１から検索タグ群Ｄ２を生成する処理手順の一例を示すフローチャートである。本実施形態のアイテム推薦装置は、以下のステップＳ１０１〜ステップＳ１０９の処理により、自然言語要求Ｄ１から検索タグ群Ｄ２を生成する。
【００３０】
ステップＳ１０１：形態素解析器１１は、自然言語要求Ｄ１を単語またはフレーズに分割してＬｅｍｍａｔｉｚｅ（辞書見出し語化）を行う。
【００３１】
ステップＳ１０２：検索タグ抽出器１２は、ステップＳ１０１で得られた単語またはフレーズ群から、単語またはフレーズを１つ取り出す。
【００３２】
ステップＳ１０３：検索タグ抽出器１２は、ステップＳ１０２で取り出した単語またはフレーズが検索タグであるか否かを判定する。そして、判定の結果がＹｅｓであればステップＳ１０４に進み、ＮｏであればステップＳ１０５に進む。
【００３３】
ステップＳ１０４：検索タグ抽出器１２は、ステップＳ１０２で取り出した単語またはフレーズに一致する検索タグと当該検索タグに対応する適用先属性とのペアを出力バッファに追加し、ステップＳ１０８に進む。
【００３４】
ステップＳ１０５：検索タグ抽出器１２は、ステップＳ１０２で取り出した単語またはフレーズがトリガワードであるか否かを判定する。そして、判定の結果がＹｅｓであればステップＳ１０６に進み、ＮｏであればステップＳ１０８に進む。
【００３５】
ステップＳ１０６：検索タグ抽出器１２は、ステップＳ１０２で取り出した単語またはフレーズに一致するトリガワードを、当該トリガワードに対応する検索タグに変換する。
【００３６】
ステップＳ１０７：検索タグ抽出器１２は、ステップＳ１０６でトリガワードから変換した検索タグと当該検索タグに対応する適用先属性とのペアを出力バッファに追加する。
【００３７】
ステップＳ１０８：検索タグ抽出器１２は、ステップＳ１０１で得られた単語またはフレーズ群に含まれるすべての単語またはフレーズを取り出したか否かを判定する。そして、判定の結果がＹｅｓであればステップＳ１０９に進み、ＮｏであればステップＳ１０２に戻る。
【００３８】
ステップＳ１０９：検索タグ抽出器１２は、出力バッファ内の検索タグと適用先属性のペアをすべて出力し、一連の処理を終了する。このステップＳ１０９で出力される検索タグと適用先属性のペアの集合が、検索タグ群Ｄ２である。
【００３９】
次に、検索タグ群Ｄ２から候補アイテム群Ｄ３を生成する処理について説明する。図６は、検索タグ群Ｄ２から候補アイテム群Ｄ３を生成する処理手順の一例を示すフローチャートである。本実施形態のアイテム推薦装置は、以下のステップＳ２０１〜ステップＳ２０４の処理により、検索タグ群Ｄ２から候補アイテム群Ｄ３を生成する。
【００４０】
ステップＳ２０１：候補抽出器２１は、検索タグ群Ｄ２に含まれる検索タグのうち、適用先属性が店舗名またはカテゴリ名の検索タグに対し、適用先属性のカラム値が検索タグと厳密一致するという条件を生成する。
【００４１】
ステップＳ２０２：候補抽出器２１は、検索タグ群Ｄ２に含まれる検索タグのうち、適用先属性が他属性の検索タグに対し、他属性が当該検索タグを含んでいるという条件を生成する。
【００４２】
ステップＳ２０３：候補抽出器２１は、ステップＳ２０１およびステップＳ２０２で生成された条件群をＡＮＤでつなぐ。
【００４３】
ステップＳ２０４：候補抽出器２１は、ステップＳ２０３で生成された条件を元に店舗ＤＢ１０３に対する検索を行い、得られた店舗レコード群を候補アイテム群Ｄ３として出力して、一連の処理を終了する。
【００４４】
（文脈タグ群の生成処理）
文脈タグ群の処理とは、入力されたユーザ要望表現を含む自然言語要求Ｄ１を元に、ユーザの内面的な情報を含む文脈情報としての文脈タグ群Ｄ４を生成する処理である。
【００４５】
本実施形態のアイテム推薦装置が扱う文脈タグの一例を図７に示す。文脈タグは、前述の通り、ユーザ側の状況を説明する問合せ情報片である。本実施形態における文脈タグは、図７に示すように、シーンに関するタグ、同伴者に関するタグ、目的に関するタグ、状況に関するタグ、および時間帯に関するタグを含む。
【００４６】
ここで、文脈タグ群Ｄ４を生成する処理の中で用いる文脈タグ辞書１０２について説明する。文脈タグ辞書１０２は、入力される自然言語要求Ｄ１において、異なる言い回しや、異なる観点に基づく言及の仕方の違いを吸収する知識源として利用される。これにより、ユーザの要求表現において直接的な言及が無くても、その意図を汲み取り、予め定められた文脈タグのうち、対応する１つ以上の文脈タグを出力することができる。
【００４７】
文脈タグ辞書１０２のデータ構造を図８に示す。文脈タグ辞書１０２は、例えば図８に示すような表形式となっており、各レコードは文脈タグおよびトリガワードのカラムを含む。
【００４８】
文脈タグカラムは、レコードごとにユニークであり、本実施形態のアイテム推薦装置が扱う文脈タグが格納されている。ただし、必ずしもすべての文脈タグを格納しなくてもよい。トリガワードカラムは、マルチラベル形式となっており、文脈タグ生成のトリガとなるトリガワードが列挙されている。文脈タグ群Ｄ４を生成する処理において図８に例示した文脈タグ辞書１０２を用いることにより、“忘年会”、“懇親会”、“レク”、“飲み会”、“送別会”といったトリガワードが含まれた自然言語要求Ｄ１に対して、“宴会”という文脈タグを生成する。
【００４９】
図９は、自然言語要求Ｄ１から文脈タグ群Ｄ４を生成する処理手順の一例を示すフローチャートである。本実施形態のアイテム推薦装置は、以下のステップＳ３０１〜ステップＳ３０９の処理により、自然言語要求Ｄ１から文脈タグ群Ｄ４を生成する。
【００５０】
ステップＳ３０１：形態素解析器１１は、自然言語要求Ｄ１を単語またはフレーズに分割してＬｅｍｍａｔｉｚｅ（辞書見出し語化）を行う。
【００５１】
ステップＳ３０２：文脈タグ生成器１３は、ステップＳ３０１で得られた単語またはフレーズ群から、単語またはフレーズを１つ取り出す。
【００５２】
ステップＳ３０３：文脈タグ生成器１３は、ステップＳ３０２で取り出した単語またはフレーズが文脈タグであるか否かを判定する。そして、判定の結果がＹｅｓであればステップＳ３０４に進み、ＮｏであればステップＳ３０５に進む。
【００５３】
ステップＳ３０４：文脈タグ生成器１３は、ステップＳ３０２で取り出した単語またはフレーズに一致する文脈タグを出力バッファに追加し、ステップＳ３０８に進む。
【００５４】
ステップＳ３０５：文脈タグ生成器１３は、ステップＳ３０２で取り出した単語またはフレーズがトリガワードであるか否かを判定する。そして、判定の結果がＹｅｓであればステップＳ３０６に進み、ＮｏであればステップＳ３０８に進む。
【００５５】
ステップＳ３０６：文脈タグ生成器１３は、ステップＳ３０２で取り出した単語またはフレーズに一致するトリガワードを、当該トリガワードに対応する文脈タグに変換する。
【００５６】
ステップＳ３０７：文脈タグ生成器１３は、ステップＳ３０６でトリガワードから変換した文脈タグを出力バッファに追加する。
【００５７】
ステップＳ３０８：文脈タグ生成器１３は、ステップＳ３０１で得られた単語またはフレーズ群に含まれるすべての単語またはフレーズを取り出したか否かを判定する。そして、判定の結果がＹｅｓであればステップＳ３０９に進み、ＮｏであればステップＳ３０２に戻る。
【００５８】
ステップＳ３０９：文脈タグ生成器１３は、出力バッファ内の文脈タグをすべて出力し、一連の処理を終了する。このステップＳ３０９で出力される文脈タグの集合が、文脈タグ群Ｄ４である。
【００５９】
（推薦処理）
本実施形態のアイテム推薦装置では、文脈タグ群Ｄ４、ユーザＤＢ１０４に格納されたユーザ情報、および利用ログＤＢ１０５に格納された利用ログに基づき、文脈認識型推薦エンジン２０の順位付け器２２において、候補アイテム群Ｄ３に含まれる候補アイテムの順位付けを行って、その結果を推薦アイテムリストＤ５として出力する。順位付け器２２における候補アイテムの順位付けは、機械学習による学習処理および予測処理により行われる。この学習処理および予測処理には、例えば、非特許文献１に記載されている確率的潜在関係モデル（Probabilistic  Latent  Relational  Model）を用いることができる。ただし、文脈情報を扱うことが可能な他の手法を用いてもよい。
【００６０】
アルゴリズム説明に先立ち、文脈認識型推薦エンジン２０の順位付け器２２において用いられるユーザＤＢ１０４および利用ログＤＢ１０５について説明する。
【００６１】
ユーザＤＢ１０４は、本実施形態のアイテム推薦装置が扱う全登録ユーザについて、ユーザの属性を表すユーザ情報を格納するデータベースである。ユーザＤＢ１０４のデータ構造の一例を図１０に示す。ユーザＤＢ１０４に格納されるユーザ情報は、例えば図１０に示すような表形式となっており、各レコードはユーザＩＤ、氏名、年代、および性別のカラムを含む。ただし、例えば職業、好きな音楽ジャンルなど、推薦を行う上で役立つ任意のカラムを追加してもよい。
【００６２】
ユーザＩＤカラムには、ユニークな通し番号が振られている。氏名カラムには、各登録ユーザの氏名が格納されている。年代カラムには、各登録ユーザの年代（１０代、２０代、３０代など）が格納されている。性別カラムには、各登録ユーザの性別が格納されている。
【００６３】
利用ログＤＢ１０５は、各登録ユーザの過去の店舗利用履歴を表す利用ログ（履歴情報）を格納するデータベースである。利用ログＤＢ１０５のデータ構造の一例を図１１に示す。利用ログＤＢ１０５に格納される利用ログは、例えば図１１に示すような表形式となっており、各レコードはユーザＩＤ、店舗ＩＤ、時間帯、文脈タグ、レーティング値のカラムを含む。
【００６４】
各レコードはユーザの店舗訪問１回に対応しており、ユーザＩＤカラム、店舗ＩＤカラム、時間帯カラムにはそれぞれ、訪問したユーザのユーザＩＤ、訪問先の店舗の店舗ＩＤ、訪問時間帯を示す情報が格納されている。文脈タグカラムは、店舗訪問前に本実施形態のアイテム推薦装置に対して自然言語要求Ｄ１によってアイテムの推薦要求を行っていた場合にのみ、値が格納されるカラムであり、そのときの処理で用いた文脈タグが格納される。レーティング値カラムは、店舗訪問後にユーザに入力させた店舗への評価値であるレーティング値が格納される。ここでは、レーティング値は０〜５の整数値を取り、５が最良とする。ユーザにレーティング値を入力させるのが困難な場合は、例えば５などの固定値を入れることで代替してもよい。この場合、ユーザが訪問した店舗には５、訪問していない店舗には０、というレーティング値を与えることと同等となる。
【００６５】
アルゴリズム説明に先立ち、文脈認識型推薦エンジン２０の順位付け器２２内部で用いる確率モデルについて説明する。この確率モデルは、非特許文献１に記載の確率的潜在関係モデル（Probabilistic  Latent  Relational  Model）に基づくものである。文脈適合性とユーザ嗜好性とをバランスよく反映するモデルとなっている。
【００６６】
下記式（１）および式（２）は、対象となるユーザ、文脈、および店舗が与えられたときのレーティング値の確率分布をモデル化したものである。
【数１】
0006478734.tif 000002
【００６７】
式（２）の右辺第１項は、ユーザの店舗への長期的嗜好性をモデル化しており、式（２）の右辺第２項は、当該ユーザの現文脈への適合性（短期的嗜好性）をモデル化している。両者の和を目的関数としているため、両者をバランスよく反映した推薦モデルが学習される。式（１）および式（２）の変数のうち、データセットから与えられる変数は、ｙｉ，ｊ，ｃ、ｆｉ、およびｆｊであり、それ以外の変数の値または確率分布は、学習によって決定される。
【００６８】
ユーザの潜在特徴ベクトルｕｉとは、例えば、辛い食べ物を扱うレストランが好き、高級なアクセサリ店が好きなど、データセットに基づく学習結果から決定されるユーザの嗜好性を示すベクトルである。店舗の潜在特徴ベクトルｖｊも同様である。ｆｉ、ｆｊは、予め与えられた特徴ベクトルの設計と観測された事実に基づいて要素値が決定的に与えられるのに対し、ｕｉ、ｕｊは、予め与えられるのは次元数のみである点が異なる。
【００６９】
式（２）は、式（１）をユーザおよび店舗の潜在特徴の分布で周辺化したものである。
【００７０】
次に、各種パラメタの学習アルゴリズムについて説明する。ただし、アルゴリズムには、非特許文献１に記載の方法を用いるものとする。
【００７１】
学習処理における数理上の目的は、上記式（１）および式（２）で算出される、利用ログＤＢ１０５内の全事例群（各レコードを事例とする。）の同時確率を最大化するようなｕｉの確率分布、ｖｊの確率分布、行列Ａ、および行列Ｗを求めることである。
【００７２】
まず準備として、各レコードごとに上記式（１）および式（２）の以下の変数に値を割り当てる。
λ（ｙ）：適当な値を与える（超パラメタ）
ｙｉ，ｊ，ｃ：ユーザｉ、店舗ｊ、および文脈タグ群ｃが与えられた時のレーティング値
ｆｉ：ユーザｉと自然言語要求内の文脈タグに関して抽出した（顕在的）特徴ベクトル
ｆｊ：店舗ｊに関して抽出した（顕在的）特徴ベクトル
【００７３】
ｙｉ，ｊ，ｃには、利用ログＤＢ１０５のレーティング値カラムの値をそのまま与える。ｆｉには、予め設計された特徴ベクトルの構成に従って、ベクトルの要素値を与える。ただし、ベクトルを生成する上での材料として、ユーザＤＢ１０４に格納された該当ユーザの各種属性、および利用ログＤＢ１０５に格納された当該レコードの時間帯および文脈タグを用いるとし、各特徴ベクトルの要素値は該当するかどうかの二値を取る。ｆｊも同様であり、材料には、店舗ＤＢ１０３に格納された該当店舗の各種属性を用いる。以上により定式化された各レコードのｙｉ，ｊ，ｃの確率を全レコードについて積算したものが全事例の同時確率である。以上により、データセットを反映した問題定式化が完成した。
【００７４】
続いて、ｕｉの確率分布、ｖｊの確率分布、行列Ａ、および行列Ｗに関する求解の手順を簡単に説明する。まず、このままでは解くことが困難であるため、ｕｉおよびｖｊの確率分布は、平均：０、精度：λ（ｕ）およびλ（ｖ）のガウス分布に従うと仮定する。これにより求解すべき変数は、λ（ｕ）、λ（ｖ）、行列Ａ、および行列Ｗに変わる。
【００７５】
λ（ｕ）およびλ（ｖ）と、行列Ａおよび行列Ｗについて、ＥＭアルゴリズムを用いて、一方を固定し他方を最適化することを交替に行う。具体的には、Ｅ−Ｓｔｅｐでは、行列Ａおよび行列Ｗを現在値に固定して、λ（ｕ）およびλ（ｖ）を変分ベイズを用いて最適化する。続いてＭ−Ｓｔｅｐでは、λ（ｕ）およびλ（ｖ）を現在値に固定して、行列Ａと行列Ｗを最急降下法を用いて最適化する。以上のＥ−ＳｔｅｐとＭ−Ｓｔｅｐを収束するまで繰り返す。以上が学習アルゴリズムである。
【００７６】
次に、各種パラメタの予測アルゴリズムについて説明する。予測処理には下記式（３）を用いる。まず基本方針を説明する。
【数２】
0006478734.tif 000003
【００７７】
まず準備として、学習処理によって獲得済のλ（ｕ）、λ（ｖ）λ、行列Ａ、および行列Ｗを式（３）に当てはめる。続いて、ユーザＤＢ１０４に格納された現在ユーザの各種属性、および利用ログＤＢ１０５内に格納された当該レコードの文脈タグ群Ｄ４を元に、特徴ベクトルｆｉを生成する。これらを式（３）に当てはめる。この段階で、未設定な変数はｆｊのみである。最後に、店舗ＤＢ１０３に格納された各店舗について、店舗の属性から生成した特徴ベクトルｆｊを順に式（３）に適用し、これによって完成した数式を用いてレーティング予測値を求めた上で、店舗群をレーティングの高い順にソートして出力する。これが推薦アイテムリストＤ５である。
【００７８】
図１２は、予測処理の処理手順の一例を示すフローチャートである。文脈認識型推薦エンジン２０の順位付け器２２は、以下のステップＳ４０１〜ステップＳ４０７の処理により、推薦アイテムリストＤ５を生成して出力する。
【００７９】
ステップＳ４０１：順位付け器２２は、学習処理によって獲得済のλ（ｕ）、λ（ｖ）、行列Ａ、および行列Ｗを上記式（３）に当てはめる。
【００８０】
ステップＳ４０２：順位付け器２２は、ユーザＤＢ１０４に格納された現在ユーザの各種属性と利用ログＤＢ１０５内に格納された当該レコードの文脈タグ群Ｄ４を元に、特徴ベクトルｆｉを生成し、上記式（３）に当てはめる。
【００８１】
ステップＳ４０３：順位付け器２２は、店舗ＤＢ１０３から店舗を順に１つ取り出す。
【００８２】
ステップＳ４０４：順位付け器２２は、ステップＳ４０３で取り出した店舗の属性から特徴ベクトルｆｊを生成し、上記式（３）に当てはめる。
【００８３】
ステップＳ４０５：順位付け器２２は、上記式（３）を計算してレーティング予測値を求め、店舗情報と関連付けて出力用バッファに登録する。
【００８４】
ステップＳ４０６：順位付け器２２は、店舗ＤＢ１０３から店舗をすべて取り出したか否かを判定する。そして、判定の結果がＹｅｓであればステップＳ４０７に進み、ＮｏであればステップＳ４０３に戻る。
【００８５】
ステップＳ４０７：順位付け器２２は、出力用バッファに格納された店舗情報をレーティング予測値で降順ソートし、上位ｋ個の店舗情報を推薦アイテムリストＤ５として出力して、一連の処理を終了する。なお、ｋは予め定められた定数である。
【００８６】
以上により、自然言語要求Ｄ１によって与えられた内面的な文脈情報と、ユーザと店舗の利用履歴から割り出される嗜好性とを反映した、ランキングつきの推薦アイテムリストＤ５が得られる。なお、この推薦アイテムリストＤ５を用いて画面などに表示する方法については任意であるため、ここでは説明を省略する。
【００８７】
以上、具体的な例を挙げながら詳細に説明したように、本実施形態のアイテム推薦装置によれば、外部から観測可能な文脈情報だけでなく、自然言語要求Ｄ１から推定される内面的な情報も利用して、アイテムの推薦をより精度よく行うことができる。
【００８８】
なお、上述した実施形態では、候補抽出器２１が検索タグ群Ｄ２を用いて候補アイテムとなる店舗の絞り込みを行った上で、順位付け器２２が候補アイテム群Ｄ３に対する順位付けを行う構成としているが、これに限らない。例えば、順位付け器２２が検索タグ群Ｄ２を用いた候補アイテムの絞り込みと順位付けを併せて行う構成としてもよいし、順位付け器２２による順位付けを行った後に、検索タグ群Ｄ２に基づく候補アイテムの絞り込みを行う構成としてもよい。
【００８９】
＜第２実施形態＞
次に、第２実施形態のアイテム推薦装置について説明する。本実施形態のアイテム推薦装置は、第１実施形態のアイテム推薦装置の意味解析エンジン１０による文脈タグ生成処理を統計ベースに置き換えたものである。以下、第１実施形態との差分について説明する。
【００９０】
図１３は、第２実施形態のアイテム推薦装置の構成例を示すブロック図である。本実施形態のアイテム推薦装置は、図１３に示すように、意味解析エンジン１０Ａと、文脈認識型推薦エンジン２０Ａと、を備える。意味解析エンジン１０Ａの内部には、第１実施形態で説明した形態素解析器１１に代えて形態素解析および構文解析器１４、文脈タグ生成器１３に代えて文脈ベクトル生成器１５がそれぞれ設けられている。また、文脈認識型推薦エンジン２０Ａの内部には、第１実施形態で説明した順位付け器２２に代えて順位付け器２２Ａが設けられている。順位付け器２２Ａは、第１実施形態で説明した文脈タグ群Ｄ４に代えて文脈ベクトルＤ６、利用ログＤＢ１０５に代えて利用ログＤＢ１０５Ａをそれぞれ用いるが、学習および予測の処理自体は第１実施形態の順位付け器２２と同様である。
【００９１】
図１４は、本実施形態の学習処理および予測処理で用いられる利用ログＤＢ１０５Ａのデータ構造の一例を示す図である。本実施形態で用いる利用ログＤＢ１０５Ａは、図１１に示した第１実施形態の利用ログＤＢ１０５の文脈タグカラムを、文脈ベクトルカラムに置き換えたものである。文脈ベクトルカラムは、店舗訪問前に本実施形態のアイテム推薦装置に対して自然言語要求Ｄ１によってアイテムの推薦要求を行っていた場合にのみ、値が格納されるカラムであり、そのときの処理で用いた文脈ベクトルが格納される。
【００９２】
第１実施形態の文脈タグ生成器１３は、文脈タグ辞書１０２と呼ばれるルール群を用いて、自然言語要求Ｄ１に含まれる任意の語句を文脈タグにマッピングする処理を行っている。文脈タグは、文脈認識型推薦エンジン２０において文脈を表すベクトルとして用いられる。従って、以上の処理は、任意の語句から特定次元数の文脈ベクトルを生成する処理であるとも換言できる。
【００９３】
本実施形態の文脈タグ生成器１３も同様に、自然言語要求Ｄ１に含まれる任意の語句から特定次元数の文脈ベクトルＤ６を生成する処理を行う。処理上の違いは、前処理として形態素解析だけでなく構文解析も行う点、文脈ベクトルＤ６の生成に後述するＭａｔｒｉｘ−Ｖｅｃｔｏｒ  ＲＮＮｓと呼ばれる統計的手法を用いる点、出力されるベクトルは二値ベクトルではなく実数ベクトルとなる点のみである。
【００９４】
効果に影響する違いは、事前に文脈タグ辞書１０２のようなルールを生成する必要が無い（その代わりに、文脈ベクトルＤ６の次元数のみを外部から与える）点である。ユーザのニーズは計り知れず、ユーザのニーズをあまねくカバーしたルールを書き下すことは基本的に困難であるため、ルールの生成から解放されることは利点となる。ただし、特定の観点に関して推薦処理を制御することは、第１実施形態ではルールを記述するだけで対応可能であるが、本実施形態では困難である。
【００９５】
ここで、文脈ベクトルＤ６生成のための統計処理で用いる数理モデルについて説明する。ただし、当該モデルは下記の参考文献１で提案されたＭａｔｒｉｘ−Ｖｅｃｔｏｒ  ＲＮＮｓ（ＭＶ−ＲＮＮ）に基づく。図１５は、文脈ベクトルＤ６生成のための統計処理で用いる数理モデルを説明する図であり、下記の参考文献１で図示された数理モデルである。
（参考文献１）Semantic  Compositionality  through  Recursive  Matrix-Vector  Spaces，Richard  Socher，Brody  Huval，Christopher  D．Manning  and  Andrew  Y．Ng．Conference  on  Empirical  Methods  in  Natural  Language  Processing，2012．
【００９６】
まず、数理モデルの構造について説明する。ＭＶ―ＲＮＮは木構造をなしたRecursive  Neural  Network（再帰型ニューラルネットワーク）である。各終端ノードは、テキストに含まれる各単語を出現順に並べたものである。木構造は、テキストの構文解析構造に沿って構成されている。
【００９７】
次に、計算式について説明する。終端ノードは、各単語の意味ベクトルが配置される。ただし、各単語の意味ベクトルには、下記の参考文献２で提案されたWord2Vecと呼ばれる手法によって予め算出した結果を用いる。
（参考文献２）Recurrent  neural  network  based  language  model，T  Mikolov，M  Karafiat，L  Burget，J  Cernocky，S  Khudanpur．INTERSPEECH  2010．
【００９８】
非終端ノードには、下記式（４）に示す演算を設定する。ただし、ｃ１、ｃ２は子ノードが出力したベクトル、Ｃｘ（Ｃ１、Ｃ２など）は子ノードの単語種類ごとに用意する意味操作行列、Ｗはあらゆる非終端ノードで共有される重み行列、ｂはあらゆる非終ノードで共有されるバイアス（スカラー変数）、トップノードの出力は入力テキスト全体の構成的意味を表す実数ベクトルである。
【数３】
0006478734.tif 000004
【００９９】
次に、上述したＭＶ−ＲＮＮの各種パラメタの学習方法について説明する。ただし、当該手法は下記の参考文献３で提案されたUnsupervised  Unforlding  RAEに基づく。図１６は、図１５の数理モデルにおける各種パラメタの学習方法を説明する図であり、下記の参考文献３で図示された数理モデルである。
（参考文献３）Dynamic  Pooling  and  Unfolding  Recursive  Autoencoders  for  Paraphrase  Detection，Richard  Socher，Eric  H．Huang，Jeffrey  Pennington，Andrew  Y．Ng，and  Christopher  D．Manning．Advances  in  Neural  Information  Processing  Systems  2011．
【０１００】
図１７は、各種パラメタの学習処理の処理手順の一例を示すフローチャートである。意味解析エンジン１０Ａの文脈ベクトル生成器１５は、以下のステップＳ５０１〜ステップＳ５０３の処理により、ＭＶ−ＲＮＮの各種パラメタを学習する。
【０１０１】
ステップＳ５０１：文脈ベクトル生成器１５は、学習対象となるRecursive  Neural  Networkのトップノード配下の林を複製して、トップノードにぶら下げる。ただし、複製された林の重み行列（図１６ではＷｄと記載）およびバイアス（図１６では表記省略）は、オリジナルの林の重み行列（図１６ではＷｅと記載）およびバイアス（図１６では表記省略）とは異なる変数として扱う。
【０１０２】
ステップＳ５０２：文脈ベクトル生成器１５は、オリジナルの林の終端ノードが持つ各ベクトルを鎖状につないだベクトルＸと、複製された林の終端ノードに出力された各ベクトルを鎖状につないだベクトルＸ’とのユークリッド距離が最小となるように、逆誤差伝播などの標準的方法を用いて各パラメタを学習する。ただし、訓練データには構文解析された任意のテキスト群を用いる。
【０１０３】
ステップＳ５０３：文脈ベクトル生成器１５は、結果として得られたオリジナルの林の重み行列（図１６ではＷｅと記載）とバイアス（図１６では表記省略）を学習結果とし、一連の処理を終了する。
【０１０４】
次に、ＭＶ−ＲＮＮを用いた文脈ベクトルＤ６の生成処理について説明する。図１８は、文脈ベクトルＤ６を生成する処理手順の一例を示すフローチャートである。意味解析エンジン１０Ａの形態素解析および構文解析器１４と文脈ベクトル生成器１５は、以下のステップＳ６０１〜ステップＳ６０４の処理により、自然言語要求Ｄ１から文脈ベクトルＤ６を生成する。
【０１０５】
ステップＳ６０１：形態素解析および構文解析器１４は、自然言語要求Ｄ１に対し、形態素解析および構文解析を行う。
【０１０６】
ステップＳ６０２：文脈ベクトル生成器１５は、ステップＳ６０１の処理により得られた構文構造に基づき、Recursive  Neural  Network構造を生成する。
【０１０７】
ステップＳ６０３：文脈ベクトル生成器１５は、図１７のフローチャートで示した手順により得られた学習済みのパラメタをRecursive  Neural  Networkに割り当てる。
【０１０８】
ステップＳ６０４：文脈ベクトル生成器１５は、以上により完成したRecursive  Neural  Networkを用いて算出されたトップノードの出力ベクトルを文脈ベクトルＤ６とし、一連の処理を終了する。
【０１０９】
文脈ベクトル生成器１５によって生成された文脈ベクトルＤ６は、文脈認識型推薦エンジン２０Ａの順位付け器２２Ａによる処理において、第１実施形態で説明したｆｉ（ユーザｉと自然言語要求Ｄ１内の文脈タグに関して抽出した（顕在的）特徴ベクトル）に組み込まれる。ベクトルの値が変わるだけで、文脈認識型推薦エンジン２０Ａの順位付け器２２Ａによる処理自体は、第１実施形態の順位付け器２２による処理と同様である。なお、上記式（１）および式（２）の説明において「文脈タグ」と表記した部分は、「文脈ベクトル」と読み替えればよい。
【０１１０】
以上、具体的な例を挙げながら詳細に説明したように、本実施形態のアイテム推薦装置によれば、第１実施形態のアイテム推薦装置と同様に、外部から観測可能な文脈情報だけでなく、自然言語要求Ｄ１から推定される内面的な情報も利用して、アイテムの推薦をより精度よく行うことができる。
【０１１１】
また、本実施形態のアイテム推薦装置によれば、文脈タグ辞書１０２のようなルールを事前に生成することなく、自然言語要求Ｄ１から内面的な情報を推定できるので、ユーザの幅広いニーズに対応した効果的なアイテムの推薦を実現することができる。
【０１１２】
なお、上述した実施形態では、候補抽出器２１が検索タグ群Ｄ２を用いて候補アイテムとなる店舗の絞り込みを行った上で、順位付け器２２Ａが候補アイテム群Ｄ３に対する順位付けを行う構成としているが、これに限らない。例えば、順位付け器２２Ａが検索タグ群Ｄ２を用いた候補アイテムの絞り込みと順位付けを併せて行う構成としてもよいし、順位付け器２２Ａによる順位付けを行った後に、検索タグ群Ｄ２に基づく候補アイテムの絞り込みを行う構成としてもよい。
【０１１３】
＜第３実施形態＞
次に、第３実施形態のアイテム推薦装置について説明する。本実施形態のアイテム推薦装置は、上述した第１実施形態のアイテム推薦装置の機能に加え、人物群を撮影した画像を入力としてさらに受け取り、この画像に基づいて推定した人間関係タグを、自然言語要求Ｄ１から生成した文脈タグ群Ｄ４と統合する機能を持つ。そして、本実施形態のアイテム推薦装置は、人間関係タグが統合された文脈タグ群を用いて推薦アイテムの順位付けを行う。また、本実施形態のアイテム推薦装置は、画像認識処理により人物群の中の中心人物（主人公）と推定される人物を選択し、この選択した人物の属性を、ユーザＤＢ１０４に格納されたユーザ情報の代わりに用いる。これにより、ユーザＤＢ１０４を予め用意できない応用に適用できるようになるほか、人間関係に応じたアイテムを推薦できるようになる。なお、このような機能追加は、第２実施形態のアイテム推薦装置に対して行ってもよい。この場合、例えば、人間関係タグに相当する情報が文脈ベクトルの次元の一部として組み込まれる。
【０１１４】
本実施形態のアイテム推薦装置は、例えば、街中に設置されたインタラクティブ型の案内板などを用いたアイテム推薦の用途において有効である。例えばグループで近くのレストランを探すために案内板を利用しようとしたとする。グループの中心人物が案内板に対して音声による自然言語要求を行う。この際、案内板に内蔵されたカメラによりグループを構成する人物群を撮影し、その画像を解析（画像認識処理）することでグループの人間関係を表す人間関係タグを生成して、推薦アイテムの順位付けに利用する。これにより、グループがファミリーであればファミリー向けのレストランを推薦することができ、グループがカップルであればカップル向けのレストランを推薦することができる。また、人物群を撮影した画像から選択された中心人物の属性を、ユーザ情報の代わりに利用することができるので、街中の案内板のように、不特定多数の人が利用することが想定されるためにユーザＤＢ１０４を予め用意できない場合でも、精度のよいアイテム推薦を実現できる。
【０１１５】
以下、第１実施形態との差分について説明する。図１９は、第３実施形態のアイテム推薦装置の構成例を示すブロック図である。本実施形態のアイテム推薦装置は、図１９に示すように、第１実施形態の文脈認識型推薦エンジン２０に代えて、文脈認識型推薦エンジン２０Ｂを備える。また、本実施形態のアイテム推薦装置は、画像解析エンジン３０（人間関係情報生成部）と、統合エンジン４０（統合部）とをさらに備える。なお、第１実施形態で候補アイテムの順位付けに用いたユーザＤＢ１０４は、本実施形態では設けられていない。
【０１１６】
文脈認識型推薦エンジン２０Ｂの内部には、第１実施形態で説明した順位付け器２２に代えて順位付け器２２Ｂが設けられている。順位付け器２２Ｂは、第１実施形態で説明した文脈タグ群Ｄ４に代えて人間関係付き文脈タグ群Ｄ１５、ユーザＤＢ１０４から抽出するユーザ情報に代えて主人公属性Ｄ１４をそれぞれ用いるが、学習および予測の処理自体は第１実施形態の順位付け器２２と同様である。
【０１１７】
画像解析エンジン３０は、人物群を撮像した画像Ｄ１１を入力として受け取り、画像Ｄ１１に対して公知の画像認識処理を行うことで人物属性群Ｄ１２を生成する。人物属性群Ｄ１２は、画像Ｄ１１から検出された各人物の属性の集合である。また、画像解析エンジン３０は、生成した人物属性群Ｄ１２を予め定めた人間関係推定ルール１１０と照合することで、人間関係タグＤ１３（人間関係情報）を生成し出力する。また、画像解析エンジン３０は、画像Ｄ１１から検出された人物の中でグループの中心人物（主人公）と推定される人物を選択し、その人物の属性を主人公属性Ｄ１４として出力する。画像解析エンジン３０は、これらの機能を実現するために、人物属性推定器３１とグループ属性推定器３２とを内部に備える。
【０１１８】
統合エンジン４０は、意味解析エンジン１０により生成された文脈タグ群Ｄ４と、画像解析エンジン３０により生成された人間関係タグＤ１３とを入力として受け取り、人間関係タグＤ１３を文脈タグ群Ｄ４に統合して人間関係付き文脈タグ群Ｄ１５を生成し出力する。統合エンジン４０は、人間関係付き文脈タグ群Ｄ１５を生成するために、タグ統合器４１を内部に備える。
【０１１９】
以下では、人物属性推定器３１、グループ属性推定器３２およびタグ統合器４１による処理の具体例を説明する。
【０１２０】
まず、人物属性推定器３１について説明する。図２０は、人物属性推定器３１による処理手順の一例を示すフローチャートである。人物属性推定器３１は内部に画像認識器を具備しており、例えば以下のステップＳ７０１〜ステップＳ７０６の処理により、画像Ｄ１１から人物属性群Ｄ１２を生成して出力する。
【０１２１】
ステップＳ７０１：人物属性推定器３１は、画像Ｄ１１から人物の顔領域をすべて検出する。画像から人物の顔領域を検出する技術は広く知られているため、詳細な説明は省略する。
【０１２２】
ステップＳ７０２：人物属性推定器３１は、ステップＳ７０１で検出された顔領域を１つ取り出す。
【０１２３】
ステップＳ７０３：人物属性推定器３１は、ステップＳ７０２で取り出した顔領域の特徴量をもとに、人物の属性（例えば年齢と性別）を推定する。ただし、ここでは推定された年齢の１０未満は切り捨てて、０（１０歳未満），１０（１０〜１９歳），２０（２０〜２９歳），・・・，といった情報を出力するものとする。以下ではこれを年代と呼ぶ。顔領域の特徴量から人物の年齢を推定する技術としては、例えば、特開２０１４−１５３８１５号公報に記載されている技術を用いることができる。また、ここでは人物の属性として年代や性別を推定する例を想定するが、年代や性別以外にも、例えば特開２０１２−３６２３号公報に記載されているような様々な属性を利用することができる。
【０１２４】
ステップＳ７０４：人物属性推定器３１は、ステップＳ７０３で推定した人物の属性情報を、ステップＳ７０２で取り出した顔領域の座標情報とともに出力バッファに追加する。
【０１２５】
ステップＳ７０５：人物属性推定器３１は、画像Ｄ１１から検出したすべての顔領域を取り出したか否かを判定する。そして、判定の結果がＹｅｓであればステップＳ７０６に進み、ＮｏであればステップＳ７０２に戻る。
【０１２６】
ステップＳ７０６：人物属性推定器３１は、出力バッファ内のすべての属性情報と座標情報とのペアを人物属性群Ｄ１２として出力する。
【０１２７】
次に、グループ属性推定器３２について説明する。グループ属性推定器３２は、入力された人物属性群Ｄ１２に対して人間関係推定ルール１１０を適用することで、画像Ｄ１１に含まれる人物群の人間関係を推定し、推定した人間関係を表す人間関係タグＤ１３を生成して出力する。また、グループ属性推定器３２は、画像Ｄ１１に含まれる人物群の中から主人公を推定し、推定した主人公の属性情報を人物属性群Ｄ１２から取り出して主人公属性Ｄ１４として出力する。グループ属性推定器３２が人間関係タグＤ１３を生成して出力する処理を人間関係推定処理と呼び、主人公属性Ｄ１４を出力する処理を主人公推定処理と呼ぶ。主人公属性Ｄ１４は、第１実施形態でユーザＤＢ１０４から取り出したユーザ情報の代わりとなるものである。
【０１２８】
まず、人間関係推定処理について説明する。人間関係推定処理で用いる人間関係推定ルール１１０の例を以下に示す。矢印の元がマッチングルールであり、矢印の先が人間関係タグＤ１３である。
１０歳未満の人物が含まれている  →  子連れ
２０代以上の男女が１人ずつ含まれ、かつ年代差が２０以下である  →  カップル
２０代以上の男女が１人ずつと１０歳未満の人物とが含まれている  →  ファミリー
【０１２９】
人間関係推定処理では、このように予め定められた人間関係推定ルール１１０を人物属性群Ｄ１２に対して順に適用し、マッチした段階で該当する人間関係タグＤ１３を出力する。したがって、人間関係タグＤ１３は１種類のみ出力される。
【０１３０】
次に、主人公推定処理について説明する。本実施形態では、画像Ｄ１１から検出された顔領域が最も大きい人物を主人公と推定する。具体的には、人物属性群Ｄ１２に含まれる顔領域の座標情報から顔領域の大きさを判断し、顔領域の大きさが最大の人物を選択してこれを主人公とする。また、画像Ｄ１１から検出された顔領域が画像Ｄ１１の中心に最も近い位置にある人物を主人公と推定するようにしてもよい。この場合は、人物属性群Ｄ１２に含まれる顔領域の座標情報から画像Ｄ１１中の顔領域の位置を判断し、顔領域の位置が画像Ｄ１１の中心に最も近い位置にある人物を選択してこれを主人公とする。そして、このように特定された主人公の属性（例えば年代や性別）を主人公属性Ｄ１４として出力する。
【０１３１】
また、上述したインタラクティブ型の案内板のように、音声を用いて自然言語要求Ｄ１を入力する適用例では、口唇領域の動静判定に基づいて検出された発話者を主人公とする方法もある。口唇領域の動静判定には、例えば、下記の参考文献４に記載された方法を用いることができる。例えば、口の開きごとに基準画像を用意しておき、画像Ｄ１１から検出された顔領域の各フレームに対して、Haar-Like特徴を用いたAdaBoost法を用いて口唇領域を検出する。そして、各フレームの口唇領域について、基準画像をもとに口の開き方を識別し、フレーム間で口の開き方が異なっている場合に、口唇領域に動きがあると判定する。
（参考文献４）甲斐寛規，宮崎大輔，古川亮，青山正人，日浦慎作，浅田尚紀、口唇領域の抽出と認識による発話検出、情報処理学会研究報告、Vol.2011-CVIM-177，No.13，pp．1-8(2011)
【０１３２】
次に、タグ統合器４１について説明する。タグ統合器４１は、第１実施形態で説明した文脈タグ群Ｄ４と上述した人間関係タグＤ１３とを統合して、人間関係付き文脈タグ群Ｄ１５を生成する。より具体的には、人間関係タグＤ１３を文脈タグ群Ｄ４の一部として組み込むことで、人間関係付き文脈タグ群Ｄ１５を生成する。すなわち、図７に例示したように、文脈タグ群Ｄ４は、例えば、シーンに関するタグ、同伴者に関するタグ、目的に関するタグ、状況に関するタグ、および時間帯に関するタグを含む。タグ統合器４１は、これらのうち、同伴者に関するタグとして人間関係タグＤ１３を組み込んで、人間関係付き文脈タグ群Ｄ１５を生成する。ただし、すでに文脈タグ群Ｄ４に同伴者に関するタグが含まれていた場合はそちらを優先し、人間関係タグＤ１３を組み込まないことが望ましい。ユーザが明示的に要望した文脈を優先するのが自然な解決方法と考えられるためである。
【０１３３】
人間関係付き文脈タグ群Ｄ１５は、文脈認識型推薦エンジン２０Ｂの順位付け器２２Ｂにおいて、推薦アイテムの順位付けを行うために用いられる。順位付け器２２Ｂは、文脈タグ群Ｄ４の代わりに人間関係付き文脈タグ群Ｄ１５、ユーザＤＢ１０４から抽出するユーザ情報の代わりに主人公属性Ｄ１４を入力として受け取り、第１実施形態と同様の処理により推薦アイテムの順位付けを行う。なお、利用ログＤＢ１０５の文脈タグカラムでは、文脈タグ群Ｄ４の代わりに人間関係付き文脈タグ群Ｄ１５を扱うものとする。
【０１３４】
以上、具体的な例を挙げながら詳細に説明したように、本実施形態のアイテム推薦装置によれば、第１実施形態のアイテム推薦装置と同様に、外部から観測可能な文脈情報だけでなく、自然言語要求Ｄ１および画像Ｄ１１から推定される内面的な情報も利用して、アイテムの推薦をより精度よく行うことができる。
【０１３５】
また、本実施形態のアイテム推薦装置によれば、不特定多数のユーザが利用するためにユーザＤＢ１０４を予め用意できない場合であっても、ユーザＤＢ１０４から抽出するユーザ情報の代わりに主人公属性Ｄ１４を用いることで、第１実施形態と同様に高精度なアイテムの推薦を実現することができる。
【０１３６】
＜補足説明＞
上述した実施形態のアイテム推薦装置における各処理部（例えば第１実施形態の形態素解析器１１、検索タグ抽出器１２、文脈タグ生成器１３、候補抽出器２１、順位付け器２２）は、ハードウェア、またはハードウェアと協働して動作するソフトウェア（プログラム）での実装が可能である。上記の各処理部をソフトウェアで実装する場合、アイテム推薦装置は、例えば図２１に示すように、ＣＰＵ（Central  Processing  Unit）５１などのプロセッサ回路、ＲＯＭ（Read  Only  Memory）５２やＲＡＭ（Random  Access  Memory）５３などの記憶装置、表示パネルや各種操作デバイスが接続される入出力Ｉ／Ｆ５４、ネットワークに接続して通信を行う通信Ｉ／Ｆ５５、各部を接続するバス５６などを備えた、通常のコンピュータを利用したハードウェア構成とすることができる。
【０１３７】
上述した実施形態のアイテム推薦装置で実行されるプログラムは、例えば、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact  Disk  Read  Only  Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（Compact  Disk  Recordable）、ＤＶＤ（Digital  Versatile  Disc）などのコンピュータで読み取り可能な記録媒体に記録されてコンピュータプログラムプロダクトとして提供される。
【０１３８】
また、上述したアイテム推薦装置で実行されるプログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、上述した実施形態のアイテム推薦装置で実行されるプログラムをインターネットなどのネットワーク経由で提供または配布するように構成してもよい。また、上述した実施形態のアイテム推薦装置で実行されるプログラムを、ＲＯＭ３２等に予め組み込んで提供するように構成してもよい。
【０１３９】
上述した実施形態のアイテム推薦装置で実行されるプログラムは、アイテム推薦装置の各処理部（例えば第１実施形態の形態素解析器１１、検索タグ抽出器１２、文脈タグ生成器１３、候補抽出器２１、順位付け器２２）を含むモジュール構成となっており、実際のハードウェアとしては、例えば、ＣＰＵ５１（プロセッサ回路）が上記記録媒体からプログラムを読み出して実行することにより、上述した各処理部がＲＡＭ５３（主記憶）上にロードされ、上述した各処理部がＲＡＭ５３（主記憶）上に生成されるようになっている。なお、上述した実施形態のアイテム推薦装置は、上述した各処理部の一部または全部を、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field-Programmable  Gate  Array）などの専用のハードウェアを用いて実現することも可能である。
【０１４０】
以上、本発明の実施形態を説明したが、ここで説明した実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。ここで説明した新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。ここで説明した実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１４１】
１０，１０Ａ  意味解析エンジン
１１  形態素解析器
１２  検索タグ抽出器
１３  文脈タグ生成器
１４  形態素解析および構文解析器
１５  文脈ベクトル生成器
２０，２０Ａ，２０Ｂ  文脈認識型推薦エンジン
２１  候補抽出器
２２，２２Ａ，２２Ｂ  順位付け器
３０  画像解析エンジン
３１  人物属性推定器
３２  グループ属性推定器
４０  統合エンジン
４１  タグ統合器
１０１  検索タグ辞書
１０２  文脈タグ辞書
１０３  店舗ＤＢ
１０４  ユーザＤＢ
１０５，１０５Ａ  利用ログＤＢ
１１０  人間関係推定ルール
Ｄ１  自然言語要求
Ｄ２  検索タグ群
Ｄ３  候補アイテム群
Ｄ４  文脈タグ群
Ｄ５  推薦アイテムリスト
Ｄ６  文脈ベクトル
Ｄ１１  画像
Ｄ１２  人物属性群
Ｄ１３  人間関係タグ
Ｄ１４  主人公属性
Ｄ１５  人間関係付き文脈タグ群
【図１】
0006478734.tif 000005
【図２】
0006478734.tif 000006
【図３】
0006478734.tif 000007
【図４】
0006478734.tif 000008
【図５】
0006478734.tif 000009
【図６】
0006478734.tif 000010
【図７】
0006478734.tif 000011
【図８】
0006478734.tif 000012
【図９】
0006478734.tif 000013
【図１０】
0006478734.tif 000014
【図１１】
0006478734.tif 000015
【図１２】
0006478734.tif 000016
【図１３】
0006478734.tif 000017
【図１４】
0006478734.tif 000018
【図１５】
0006478734.tif 000019
【図１６】
0006478734.tif 000020
【図１７】
0006478734.tif 000021
【図１８】
0006478734.tif 000022
【図１９】
0006478734.tif 000023
【図２０】
0006478734.tif 000024
【図２１】
0006478734.tif 000025