(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-12
(45)【発行日】2024-07-23
(54)【発明の名称】データ生成装置およびデータ生成方法
(51)【国際特許分類】
G06F 16/9035 20190101AFI20240716BHJP
【FI】
G06F16/9035
(21)【出願番号】P 2019222380
(22)【出願日】2019-12-09
【審査請求日】2022-02-25
【審判番号】
【審判請求日】2023-06-20
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】布目 光生
【合議体】
【審判長】吉田 美彦
【審判官】須田 勝巳
【審判官】大塚 俊範
(56)【参考文献】
【文献】特開2006-236341(JP,A)
【文献】特開2003-099458(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00
(57)【特許請求の範囲】
【請求項1】
複数のユーザそれぞれの属性を示すユーザ情報に基づいて、前記属性が相互に類似する複数のユーザを複数のクラスタのいずれかに分類し、複数の前記クラスタそれぞれについて、前記クラスタに分類された複数のユーザの属性のうち、複数のユーザ間で類似すると判定された属性を、前記クラスタの属性として決定する分類部と、
複数の前記ユーザが属する企業内に蓄積された複数の文書を対象とする複数の前記ユーザによる検索処理をシミュレーションして得られた検索結果に含まれる第1情報と、複数の前記クラスタの属性を示す第2情報との類似度に基づいて、前記ユーザが前記検索結果を選択するか否かを推定し、前記検索結果と、前記ユーザが前記検索結果を選択するか否かを示す推定情報と、を含むデータであって、複数の検索結果の順序を決定するためのランキングモデルの学習データを出力する推定部と、を備え、
前記推定部は、前記類似度が、前記第1情報と前記第2情報とが類似することを示す場合に、前記ユーザが前記検索結果を選択すると推定する、
データ生成装置。
【請求項2】
前記ユーザに対して設定されていない属性の属性値の入力を促す情報を出力し、出力した情報に応じて前記ユーザが入力した属性値により、前記ユーザに対して設定されていない属性の属性値を更新する更新部をさらに備える、
請求項1に記載のデータ生成装置。
【請求項3】
前記ランキングモデルを、前記学習データを用いて学習する学習部をさらに備える、
請求項1に記載のデータ生成装置。
【請求項4】
前記推定部は、指定された重みをさらに含む前記学習データを出力し、
前記学習部は、第1検索結果より前記重みの値が大きい第2検索結果が、前記第1検索結果より前の順序となるように、前記ランキングモデルを学習する、
請求項3に記載のデータ生成装置。
【請求項5】
検索処理を実行して複数の検索結果を求め、学習された前記ランキングモデルを用いて複数の前記検索結果の順序を決定する検索部と、
決定された順序で複数の前記検索結果を出力する出力制御部と、をさらに備える、
請求項3に記載のデータ生成装置。
【請求項6】
前記推定部は、前記推定情報をランダムに変更し、変更した前記推定情報を含む前記学習データを出力する、
請求項1に記載のデータ生成装置。
【請求項7】
コンピュータが、複数のユーザそれぞれの属性を示すユーザ情報に基づいて、前記属性が相互に類似する複数のユーザを複数のクラスタのいずれかに分類し、複数の前記クラスタそれぞれについて、前記クラスタに分類された複数のユーザの属性のうち、複数のユーザ間で類似すると判定された属性を、前記クラスタの属性として決定する分類ステップと、
コンピュータが、複数の前記ユーザが属する企業内に蓄積された複数の文書を対象とする複数の前記ユーザによる検索処理をシミュレーションして得られた検索結果に含まれる第1情報と、複数の前記クラスタの属性を示す第2情報との類似度に基づいて、前記ユーザが前記検索結果を選択するか否かを推定し、前記検索結果と、前記ユーザが前記検索結果を
選択するか否かを示す推定情報と、を含むデータであって、複数の検索結果の順序を決定するためのランキングモデルの学習データを出力する推定ステップと、を含み、
前記推定ステップは、前記類似度が、前記第1情報と前記第2情報とが類似することを示す場合に、前記ユーザが前記検索結果を選択すると推定する、
データ生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、データ生成装置およびデータ生成方法に関する。
【背景技術】
【0002】
文書を検索し、検索した文書を重要度などに基づいて決定した順序で出力する検索システムが知られている。また、検索システムの一例として、企業内に蓄積されている多種多様な業務文書の検索を実現するエンタープライズサーチシステムが知られている。
【先行技術文献】
【特許文献】
【0003】
【非特許文献】
【0004】
【文献】Akifumi Okuno et al., Thomas Huang, “Graph Embedding with Shifted Inner Product Similarity and Its Improved Approximation Capability”, in arXiv: 1810.03463 22 Feb. 2019.
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術では、順序付け(ランキング)が適切に実行されず、ユーザが必要な文書を効率的に探すことができない場合があった。
【課題を解決するための手段】
【0006】
実施形態のデータ生成装置は、分類部と推定部とを備える。分類部は、複数のユーザそれぞれの属性を示すユーザ情報に基づいて、属性が相互に類似する複数のユーザを複数のクラスタのいずれかに分類する。推定部は、検索結果に含まれる情報と、複数のクラスタの属性を示す情報との類似度に基づいて、検索結果がユーザに有益か否かを推定し、検索結果と、検索結果が有益か否かを示す推定情報と、を含むデータであって、複数の検索結果の順序を決定するためのランキングモデルの学習データを出力する。
【図面の簡単な説明】
【0007】
【
図1】実施形態にかかるデータ生成装置のブロック図。
【
図2】実施形態のデータ生成処理のフローチャート。
【
図3】RDFにより表現したグラフの一例を示す図。
【
図4】RDFにより表現したグラフの一例を示す図。
【
図6】実施形態の検索処理の一例を示すフローチャート。
【
図8】実施形態の推定処理の詳細を説明するための図。
【
図9】実施形態の更新処理の一例を示すフローチャート。
【
図10】実施形態にかかるデータ生成装置のハードウェア構成図。
【発明を実施するための形態】
【0008】
以下に添付図面を参照して、この発明にかかるデータ生成装置の好適な実施形態を詳細に説明する。
【0009】
例えば上記のようなエンタープライズサーチシステムは、一般的なウェブ検索と異なり、文書間に明示的なリンクが存在しないため、ページランク等の重みづけ手法が使えない場合がある。その結果、キーワード検索では大量の無関係な文書がヒットするとともに、提示されたランキングの妥当性が低くなり、ユーザが必要な文書を探すことが困難となる場合がある。
【0010】
また、エンタープライズサーチシステムでは、利用ユーザが小規模であり、かつ、ユーザの専門分野が偏る場合がある。このような場合、例えばソーシャルフィルタを検索結果に対して適用すると、検索結果の偏りおよび固定化を招く恐れがあり、稼働開始時から有用な検索システムを提供することが困難となる。
【0011】
そこで、本実施形態では、個々のユーザの属性を示すユーザ情報(ユーザプロフィールなど)を用いて複数のユーザを抽象化したユーザモデルを作成する。そして、ユーザモデルの属性と検索結果との類似性を用いて、検索結果のランキングを実行するためのモデル(ランキングモデル)を学習するための学習データを生成する。
【0012】
このようにして生成される学習データによって学習したランキングモデルを用いることにより、例えばシステムの稼働開始時であっても、ユーザの属性に応じたより適切な検索結果のランキングが可能となる。この結果、ユーザは必要な文書をより効率的に探すことが可能となる。
【0013】
本実施形態では、個々のユーザの属性が抽象化されたユーザモデルとの類似性によって、検索結果の順序を調整してユーザへ提示する。このため、検索クエリとなるキーワード、および、このキーワードの周辺に出現する語またはフレーズが一致していなくても、文脈での使われ方が似ている(埋め込み表現が類似する)未知のキーワードや専門用語を含む文書を、上位の検索結果として提示可能となる。
【0014】
図1は、本実施形態にかかるデータ生成装置100の構成の一例を示すブロック図である。
図1に示すように、データ生成装置100は、記憶部121と、表示部122と、受付部101と、解析部102と、分類部103と、推定部104と、学習部105と、検索部106と、出力制御部107と、更新部108と、を備えている。
【0015】
記憶部121は、データ生成装置100が実行する各種処理で用いられる各種データを記憶する。例えば記憶部121は、検索処理の対象となる情報(文書など)、各ユーザの属性が含まれるユーザプロフィール、および、ランキングモデルに関する情報などを記憶する。なおこれらの情報の一部または全部は、データ生成装置100の外部の記憶装置などに記憶されてもよい。
【0016】
記憶部121は、フラッシュメモリ、メモリカード、RAM(Random Access Memory)、HDD(Hard Disk Drive)、および、光ディスクなどの一般的に利用されているあらゆる記憶媒体により構成することができる。
【0017】
表示部122は、情報を表示する液晶ディスプレイなどの表示装置である。表示部122は、出力制御部107の制御に従って情報を表示する。
【0018】
受付部101は、処理対象とする各種データを受け付ける。例えば受付部101は、ユーザプロフィール、および、検索クエリとなるキーワードなどの入力を受け付ける。
【0019】
解析部102は、文書の解析処理を実行する。例えば解析部102は、ユーザプロフィールを解析し、ユーザの属性を抽出する。また、解析部102は、ユーザプロフィールに含まれる情報を例えば形態素解析し、検索クエリとなりうるキーワードを抽出する。抽出されたキーワードは、検索処理をシミュレーションするときの検索クエリとして用いられる。
【0020】
なお、ユーザプロフィールなどからユーザの属性が既に作成されている場合は、作成済みの情報を取得して使用してもよい。この場合、解析部102は、ユーザの属性を抽出する機能は備えなくてもよい。また、検索クエリとなるキーワードは、ユーザプロフィール以外の情報(例えば記憶部121に記憶された文書)から抽出されてもよい。予め定められたキーワード(管理者が指定するキーワードなど)が、シミュレーションで用いる検索クエリとして用いられてもよい。
【0021】
分類部103は、個々のユーザを、属性が抽象化されたユーザモデルのいずれかに分類する。例えば分類部103は、個々のユーザの属性(ユーザプロフィール)を用いて、属性が相互に類似する複数のユーザを複数のクラスタのいずれかに分類する。各クラスタが、複数のユーザを抽象化したユーザモデルに相当する。また、分類部103は、複数のクラスタそれぞれの属性を決定する。例えば分類部103は、クラスタに分類された複数のユーザの属性のうち、複数のユーザ間で類似すると判定された属性を、クラスタの属性として決定する。
【0022】
推定部104は、検索処理をシミュレーションして得られた検索結果がユーザにとって有益か否かを推定し、推定結果を示す推定情報を含む学習データを生成する。例えば推定部104は、解析部102により抽出された検索クエリを仮想的な検索クエリ(仮想クエリ)として検索処理(検索シミュレーション)を実行する。推定部104は、検索シミュレーションの検索結果に含まれる情報と、複数のクラスタそれぞれの属性を示す情報との類似度に基づいて、検索結果がユーザに有益か否かを推定する。
【0023】
検索結果がユーザに有益か否かの推定は、ユーザが検索結果を選択(クリックなど)するか否かの推定と解釈することができる。例えば、ユーザが検索結果を選択することが、検索結果が有益であることに相当し、ユーザが検索結果を選択しないことが、検索結果が有益でないことに相当する。推定部104は、例えば、検索結果に含まれる情報と、複数のクラスタの属性を示す情報とが類似する場合に、ユーザが検索結果を選択すると推定する。
【0024】
推定部104は、検索シミュレーションの検索結果と、検索結果に対して推定した推定情報と、を含む学習データを出力する。推定部104は、類似性により推定した推定情報をランダムに変更し、変更した推定情報を含む学習データを出力してもよい。例えば推定部104は、類似性により推定した推定情報のうち、ランダムに選択した一定の割合(例えば20%)の推定情報を変更する。例えば推定部104は、検索結果が有益である(ユーザが選択する)ことを示す推定情報を、有益でない(ユーザが選択しない)ことを示す推定情報に変更する処理、および、この逆の処理を行う。
【0025】
学習部105は、推定部104により出力された学習データを用いてランキングモデルを学習する。ランキングモデル、および、学習方法は、どのようなモデルおよび方法であってもよい。例えば学習部105は、XGBoost(eXtreme Gradient Boosting)などの決定木を用いたモデル、および、このモデルに適用可能な学習方法を使用することができる。
【0026】
検索部106は、検索処理を実行する。例えば検索部106は、記憶部121に記憶された文書を対象とする検索処理を実行して複数の検索結果を求め、学習されたランキングモデルを用いて複数の検索結果の順序を決定する。
【0027】
出力制御部107は、各種処理で用いられる各種情報の出力を制御する。例えば出力制御部107は、検索部106により決定された順序で、検索処理の複数の検索結果を出力する。出力方法はどのような方法であってもよいが、例えば、表示部122に表示する方法、プリンタなどの画像形成装置に出力する方法、および、ネットワーク(インターネットなど)を介して外部装置に送信する方法などを適用できる。
【0028】
更新部108は、ユーザプロフィールの更新処理を行う。例えば更新部108は、ユーザによる情報の検索処理の履歴に基づいて、ユーザが属するクラスタを推定し、推定したクラスタの属性のうち、ユーザに対して設定されていない属性の属性値を、ユーザから指定された属性値に更新する。
【0029】
上記各部(受付部101、解析部102、分類部103、推定部104、学習部105、検索部106、出力制御部107、および、更新部108)は、例えば、1または複数のプロセッサにより実現される。例えば上記各部は、CPU(Central Processing Unit)などのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のIC(Integrated Circuit)などのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち1つを実現してもよいし、各部のうち2以上を実現してもよい。
【0030】
なお、データ生成装置100は、上記各部のすべてを備える必要はなく、少なくともランキングモデルの学習データを生成するために必要な構成部を備えていればよい。本実施形態のデータ生成装置100は、ランキングモデルを学習する機能(学習部105)、および、ランキングモデルを用いる検索処理を実行する機能(検索部106)などを備えているが、これらの機能の一部または全部を1以上の他の装置に備えるように構成してもよい。
【0031】
またデータ生成装置100は、物理的に1つの装置によって構成されてもよいし、物理的に複数の装置によって構成されてもよい。例えばデータ生成装置100は、クラウド環境上で構築されてもよい。
【0032】
次に、このように構成された本実施形態にかかるデータ生成装置100によるデータ生成処理について説明する。
図2は、本実施形態におけるデータ生成処理の一例を示すフローチャートである。
【0033】
解析部102は、例えば記憶部121に記憶されているユーザプロフィールを解析し、ユーザの属性を抽出する(ステップS101)。ユーザプロフィールは、例えば、業務における役職、役割、専門性、経験年数、勤務プラント、取得済みの資格、および、教育受講履歴などの情報を含む作業員情報である。例えば解析部102は、このようなユーザプロフィールから、予め定められた属性と、この属性に対して設定された値(属性値)とを抽出する。解析部102は、ユーザごとに、ユーザプロフィールからの属性値の抽出処理を実行する。
【0034】
解析部102は、さらに、ユーザプロフィールから、検索シミュレーションで用いるキーワードを抽出し、抽出したキーワードのリスト(仮想クエリリスト)を生成する(ステップS102)。ユーザプロフィールは、資格名およびプラント名などのほか、配管溶接およびタービン据付などの作業内容、並びに、ユーザが専門な知識をもつ機器および装置名などの、ユーザの専門性を示す情報を含む。解析部102は、形態素解析処理、および、複合語抽出処理などにより、このような情報をユーザプロフィールからキーワードとして抽出する。
【0035】
次に分類部103は、ユーザの属性を示すグラフを生成する(ステップS103)。例えば分類部103は、ユーザごとに、抽出された属性の名称(見出し)、および、この属性に対する属性値を取得し、複数の属性間の関係を示すグラフを生成する。グラフは、例えば、RDF(Resource Description Framework)によるトリプル表現などのように、主語、述語、および、目的語の3つ組みで表現できるが、これに限定されるものではない。
【0036】
図3および
図4は、RDFにより表現したグラフの一例を示す図である。グラフ301のように、相互にエッジで接続された複数のノードを含む閉じたグラフそれぞれが、一人のユーザの属性を表す。
【0037】
図4は、あるユーザのグラフを拡大表示した図である。ノード401は、あるユーザを識別する情報(氏名、ユーザIDなど)に対応するノードである。ノード402、403、404、および、405は、それぞれ、ノード401のユーザの年齢、取得資格、一次会社、および、所属会社に対応するノードである。
【0038】
図2に戻り、分類部103は、グラフを用いてユーザをクラスタに分類する(ステップS104)。例えば分類部103は、各グラフに含まれる属性が相互に類似するグラフが同じクラスタに属するように、複数のグラフをいずれかのクラスタに分類(クラスタリング)する。このような処理により、類似する属性を有するユーザをクラスタに抽象化すること、すなわち、複数のユーザを属性の類似性によって同じクラスタにまとめることができる。クラスタに分類する方法は、例えばトップダウンアプローチによるGirvan-Newmanアルゴリズム、および、ボトムアップアプローチによるNewmanアルゴリズムなどがある。また、ニューラルネットワークを用いたグラフ埋め込み手法(例えば非特許文献1)も提案されている。
【0039】
さらに分類部103は、抽象化された各クラスタから、代表語を抽出する(ステップS105)。代表語は、各クラスタの特徴を示す用語であり、例えば、クラスタ構築の際に、類似性の手がかりとして採用された用語などが該当する。例えば、「火器取扱責任者」および「防火管理者」という用語が類似と判断され、ボトムアップクラスタリングの過程で、これらのキーワードを含むノードが同一クラスタにまとめ上げられたとする。この場合、分類部103は、それぞれのキーワード、および、それらを形態素解析した結果得られる形態素「火器」「取扱」「責任者」「防火」「管理者」などを代表語として抽出する。抽出された代表語は、例えば記憶部121に記憶される。代表語は、クラスタの属性を示す属性値であると解釈することもできる。
【0040】
この後、クラスタリングにより抽象化されたユーザ情報を用いて、検索シミュレーションが実行される。
【0041】
まず検索部106は、ステップS102で生成された仮想クエリリストを用いて、記憶部121に記憶された文書の検索処理を実行する(ステップS106)。例えば検索部106は、仮想クエリリストに含まれる1以上のキーワードをランダムに選択し、選択したキーワードを検索クエリとして文書を検索する。
【0042】
次に、推定部104は、検索結果である文書のうち1つを取得する(ステップS107)。推定部104は、取得した文書がユーザにとって有益か否かを推定する(ステップS108)。推定部104は、例えば、現在検索を実施していると仮定するユーザが属するクラスタの属性を示す情報と、文書に含まれる情報との類似度によって、文書が有益か否かを推定する。従って、推定部104は、まず、検索の主体となるユーザまたはユーザが属するクラスタを仮定する。そして推定部104は、仮定したユーザが属するクラスタ、または、仮定したクラスタの属性と、検索された文書との類似度を判定する。推定部104による推定処理の詳細は後述する。
【0043】
推定部104は、推定結果を示す推定情報を出力する(ステップS109)。
図5は、推定情報のデータ構造の一例を示す図である。
図5に示すように、推定情報は、クリック有無、クエリID、文書ID、および、複数の属性(属性1、属性2、属性3、属性4)を含む。
【0044】
クリック有無は、文書が有益か否かを示す情報の一例であり、クリック有(1)のとき文書が有益であり、クリック無(0)のとき文書が有益でないことを示す。クエリIDは、検索シミュレーションで用いられた検索クエリを識別する情報である。文書IDは、検索された文書を識別する情報である。属性1~4は、検索シミュレーションで仮定されたユーザの属性値、あるいは、仮定されたユーザが属するクラスタまたは仮定されたクラスタの属性値が設定される。
【0045】
推定部104は、さまざまな検索クエリ、仮定するユーザ(クラスタ)、および、検索結果の文書の組み合わせについて、
図5のような推定情報を生成し、例えば記憶部121に記憶する。
【0046】
図5の推定情報は、ユーザが文書をクリックしたか否かを示すクリックログの例であると解釈することもできる。
図5のクリックログは、検索を実行したユーザ、または、このユーザと同じクラスタに属するユーザと関連する用語が多く含まれるほど、クリックされる可能性が高い、という仮定で生成される。
【0047】
図2に戻り、推定部104は、検索されたすべての文書を処理したか否かを判定する(ステップS110)。すべての文書を処理していない場合(ステップS110:No)、推定部104は、ステップS107に戻り、次の未処理の文書を選択して処理を繰り返す。
【0048】
すべての文書を処理した場合(ステップS110:Yes)、学習部105は、推定された推定情報(クリックログ)を学習データとして、ランキングモデルを学習する(ステップS111)。例えば学習部105は、ペアワイズ(pairwise)法により、ある検索クエリに対して文書Xと文書Yのいずれがよい文書であるか(クリックされやすいか)を学習する。
【0049】
次に、学習されたランキングモデルを用いる検索処理について説明する。
図6は、検索処理の一例を示すフローチャートである。
【0050】
受付部101は、ユーザなどにより入力されたキーワードを受け付ける(ステップS201)。検索部106は、受け付けられたキーワードを検索クエリとして、記憶部121などに記憶された文書を検索する(ステップS202)。検索部106は、学習済みのランキングモデルを用いて、検索された検索結果の上位N件(Nは1以上の整数)の並び替えを実行する(ステップS203)。このように、ランキングモデルは、例えば検索された上位N件の検索結果に対して適用され、N件の検索結果の順序の並び替え処理に使用される。なお、検索部106が上位N件の検索結果を得るときに、ランキングモデルを適用するように構成してもよい。出力制御部107は、並び替え処理が実行された検索結果を出力し(ステップS204)、検索処理を終了する。
【0051】
図7は、検索結果の出力方法の一例を示す図である。
図7は、検索を実行したユーザの属性として「B-3」というプラントでの作業経験があること、および、「配管」系統に専門性があることが設定されており、「配管」という検索クエリが用いられた場合の検索結果の例を示している。また、
図7では、並び替えられた上位10件の検索結果のタイトルとともに、文書に対応する「経験」および「専門」の情報が出力される例が示されている。
図7に示すように、検索を実行したユーザの属性により関連している検索結果が、より上位に出力される。
【0052】
次に、推定部104による推定処理の詳細について説明する。
図8は、推定処理の詳細を説明するための図である。
【0053】
上記のように、解析部102がユーザプロフィールを解析して抽出したユーザの属性から、分類部103がユーザモデル(クラスタ)を生成し、ユーザモデル(クラスタ)ごとの属性を決定する。この属性が推定部104による推定処理に用いられる。
図8では、複数の属性それぞれがワンホットベクトル形式で表される例が示されている。属性の表現形式はこれに限られるものではない。
【0054】
また、解析部102により抽出されたキーワードを用いた検索シミュレーションによる検索結果が、属性との比較に用いられる。
【0055】
推定部104は、入力層503aおよび中間層503bを含むニューラルネットワークを用いて推定処理を実行する。
【0056】
入力生成部501は、検索部106による検索結果から、ニューラルネットワークに入力するための情報を生成する。例えば入力生成部501は、検索結果から、予め定められた項目を抽出し、ニューラルネットワークの入力層503aに入力する情報とする。
【0057】
例えばプラントなどで行われる作業に関する文書は、発生した事象(事実)、および、作業内容を示す情報(本文)などのように、記載する項目が定められている場合がある。入力生成部501は、このような項目を抽出してニューラルネットワークに入力する情報として生成する。
図8では、タイトル、本文、および、事象が予め定められた項目として抽出される例が示されている。
【0058】
タイトルエンコーダ502a、本文エンコーダ502b、事象エンコーダ502c、および、キーワードエンコーダ502dは、それぞれタイトル、本文、事象、および、検索クエリとされたキーワードを、ニューラルネットワークに入力する形式に符号化する。ニューラルネットワークには、これらのエンコーダが符号化した情報を要素とする多次元(例えば200次元)のベクトル形式の情報が入力される。
【0059】
図5に示す入力生成部501、タイトルエンコーダ502a、本文エンコーダ502b、事象エンコーダ502c、および、キーワードエンコーダ502dは、推定部104の機能の一部として実現されてもよい。
【0060】
ニューラルネットワークは、例えば、入力された情報がどのような種類の情報であるかを出力するように学習される。中間層503bの出力は、例えば、ユーザモデルの属性と比較可能な形式(ワンホットベクトルなど)で表される。推定部104は、中間層503bの出力と、ユーザモデルの属性とを比較し、類似度を算出する。推定部104は、例えば類似度が閾値より大きい場合に、文書がユーザにとって有益である(クリック有)と推定し、類似度が閾値未満の場合に、文書がユーザにとって有益でない(クリック無)と推定する。推定部104は、このようにして推定した推定結果504を出力する。
【0061】
学習部105には、入力生成部501から出力される検索結果と、この検索結果に対する推定結果504とが、学習データとして入力される。
【0062】
推定部104による推定処理は
図8に示す方法に限られるものではない。例えば推定部104は、上記の情報に加えてユーザモデルの属性も入力し、クリック有無を出力するように学習されたニューラルネットワークを用いて推定処理を実行するように構成してもよい。
【0063】
検索システムを管理する管理者などが検索結果の出力順序を制御できるようにするための機能が備えられてもよい。例えば、受付部101は、生成された学習データに付与する重みとしてユーザ(管理者など)により指定された情報の入力を受け付ける。推定部104は、指定された重みを含む学習データを出力する。学習部105は、ある検索結果(第1検索結果)より重みの値が大きい他の検索結果(第2検索結果)が、第1検索結果より前の順序となるように、ランキングモデルを学習する。
【0064】
管理者により指定された学習データの個数を増加させるように構成してもよい。この場合、ランキングモデルは、学習データの個数が多いほど、対応する検索結果が上位となるように学習されるモデルが用いられる。
【0065】
次に、更新部108によるユーザプロフィールの更新処理について説明する。
【0066】
例えばユーザプロフィールとして想定される作業員情報は、作業員が頻繁に入れ替わることなどに起因して正しく作成されない場合、および、作成されたとしてもその後は継続的に更新されない場合がある。そのため、ユーザプロフィールの少なくとも一部の情報が欠落し、内容が不十分となる場合が生じうる。更新部108は、このような場合に、適切な内容となるようにユーザプロフィールを更新するために用いられる。
【0067】
図9は、更新処理の一例を示すフローチャートである。例えば更新部108は、各ユーザがある検索クエリにより検索した検索結果のうち、いずれの検索結果の詳細を閲覧したかを示すクリックログ(検索処理の履歴の一例)から、当該ユーザが、いずれのクラスタに近いか(いずれのクラスタに属するか)を推定する(ステップS301)。
【0068】
更新部108は、推定したクラスタの属性のうち、当該ユーザがユーザプロフィールで指定していない属性があれば、その属性の属性値の入力を促す情報をユーザに出力する(ステップS302)。例えば、更新部108は、出力制御部107を介して、表示部122に属性の入力を促す情報を表示させる。出力制御部107は、属性の入力を促す情報を含むメッセージ(電子メールなど)をユーザに対して送信してもよい。
【0069】
出力した情報に応じてユーザが属性値を入力した場合、更新部108は、入力された属性値によりユーザプロフィールを更新する(ステップS303)。
【0070】
このような機能により、ユーザのユーザプロフィールが不十分な場合であっても、ユーザプロフィールの更新を促し、ユーザプロフィールを拡充させることが可能となる。
【0071】
検索部106が、更新部108により推定されたクラスタに属するユーザであると仮定して検索処理を実行するように構成してもよい。
【0072】
以上のように、本実施形態によれば、事前に蓄積されているユーザプロフィールを活用することで、特に業務および用途が特定の領域に特化されている場合でも、検索システムの稼働開始時から、ユーザの特性に応じた、ユーザにより適した検索結果を上位に提示することが可能となる。
【0073】
次に、本実施形態にかかるデータ生成装置のハードウェア構成について
図10を用いて説明する。
図10は、本実施形態にかかるデータ生成装置のハードウェア構成例を示す説明図である。
【0074】
本実施形態にかかるデータ生成装置は、CPU(Central Processing Unit)51などの制御装置と、ROM(Read Only Memory)52やRAM(Random Access Memory)53などの記憶装置と、ネットワークに接続して通信を行う通信I/F54と、各部を接続するバス61を備えている。
【0075】
本実施形態にかかるデータ生成装置で実行されるプログラムは、ROM52等に予め組み込まれて提供される。
【0076】
本実施形態にかかるデータ生成装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD-R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
【0077】
さらに、本実施形態にかかるデータ生成装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態にかかるデータ生成装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【0078】
本実施形態にかかるデータ生成装置で実行されるプログラムは、コンピュータを上述したデータ生成装置の各部として機能させうる。このコンピュータは、CPU51がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
【0079】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0080】
100 データ生成装置
101 受付部
102 解析部
103 分類部
104 推定部
105 学習部
106 検索部
107 出力制御部
108 更新部
121 記憶部
122 表示部