JP5734820B2 - ランキング関数学習装置、方法、及びプログラム - Google Patents

ランキング関数学習装置、方法、及びプログラム Download PDF

Info

Publication number
JP5734820B2
JP5734820B2 JP2011266048A JP2011266048A JP5734820B2 JP 5734820 B2 JP5734820 B2 JP 5734820B2 JP 2011266048 A JP2011266048 A JP 2011266048A JP 2011266048 A JP2011266048 A JP 2011266048A JP 5734820 B2 JP5734820 B2 JP 5734820B2
Authority
JP
Japan
Prior art keywords
local
parameter
updating
training data
global
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011266048A
Other languages
English (en)
Other versions
JP2013117921A (ja
Inventor
ドゥ ケヴィン
ドゥ ケヴィン
鈴木 潤
潤 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2011266048A priority Critical patent/JP5734820B2/ja
Publication of JP2013117921A publication Critical patent/JP2013117921A/ja
Application granted granted Critical
Publication of JP5734820B2 publication Critical patent/JP5734820B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ランキング関数学習装置、方法、及びプログラムに係り、特に、検索クエリに基づいて検索して得られた検索結果(文書の集合)に対して提示順序を決定するランキング関数を学習するランキング関数学習装置、方法、及びプログラムに関する。
ウェブ検索システムは、入力された検索要求単語集合(クエリ)に適合する文書集合を、被検索対象となる全文書集合から抽出する問題とみなすことができる。ただし、近年のウェブ検索システムは、クエリに適合する文書集合を抽出するというよりは、クエリとの適合度がより高い文書を、より上位に表示するランキング問題とみなしてシステムを構築している。つまり、検索システムにクエリが与えられると、図12に示すように、検索対象となる全文書、或いは、クエリを含む全文書に対して、クエリと文書の適合度に則した「検索スコア」を計算し、検索スコアにしたがって文書を降順に並べて表示することによって検索結果を提示する。
クエリに対する各文書の適合度は、TF-IDFのようなクエリ頻度に基づくスコアや、PageRankのようなリンク解析に基づくスコアなど、多数の要因を用いて計算される。ここでは、これらの要因を「ランキング要因」と呼び、多数のランキング要因から提示順序を決定する処理を「ランキング処理」と呼ぶこととする。
人間の直観に合った検索文書のランキング処理を実現する方法として、人手によって作成した訓練データを用いてランキング処理装置を構築する技術が、これまでに多数提案されている(例えば、非特許文献1)。訓練データとは、想定されるクエリと、そのクエリに適合する文書集合とのペアで構成されており、各文書には、そのクエリとの適合度を示すラベルが人手により付けられている。このとき、クエリと各文書間の適合度を計算する際に利用するランキング要因の数がD個とすると、各文書は、各ランキング要因に基づくスコアをD個並べたD次元のベクトルで表現することができる。これに従い、ここでは、各文書をz= (z1, . . . , zD)のベクトルで表し、文書の「特徴ベクトル」と呼ぶ。ただし、ziはi番目のランキング要因のスコアである。クエリIDがi番目で、そのクエリに適合する文書集合内の文書番号がj番目の文書の特徴ベクトルをzi,jとする。訓練データの例を図13に示す。
上記図13において、それぞれの行が、あるクエリに対する検索結果文書の特徴表現と適合度を表している。適合度が大きい方が、当該クエリに対してより適切な結果であることを示している。注意点として、適合度は、クエリと文書のペアに対して付与されるため、たとえ同じ文書であっても、クエリによって異なる適合度が付与される。適合度は、例えば被験者が判断し、付与した多段階(例えば5段階)の値を用いる。
あたえられた訓練データから、ランキング処理装置を構築する従来技術について述べる。ここでの目標は、あたえられた訓練データの適合度と一致したランキングをあたえる関数を構築することになる。ここで、ランキングをあたえる関数を「ランキング関数」と呼ぶ。つまり、訓練データ中のクエリがあたえられたときに、クエリに関する文書集合の全順序関係を訓練データ通りにあたえる関数である。ただし、実際には全順序関係を決定する関数を構築するのは計算量の観点でコストが高くなる。そこで、各クエリ内の文書集合に対して訓練データに付与された適合度の違う2つの文書の組み合わせを可能な全ての組み合わせで作成し、2つの文書のどちらがより適合度が高いかという観点でランキング関数を構築する方法がよく用いられる(上記の非特許文献1を参照)。よって、実際に訓練データを利用する際には、訓練データは(ym, xm)の形式で利用される。ただし、図14に示すように、クエリIDがi番目で適合度の異なるある文書のペア(zi,j ,zi,k)に対し、ペアにした文書で便宜上左側の文書の適合度が高いときに1、右の文書が高いときに−1となる変数をymとし、各文書を特徴ベクトル表現にしたものの差分ベクトルをxmとする(つまりxm=zi,j−zi,k)。
ここで,各ランキング要因に対する重み(信頼度)を表すパラメータをwとする。また、訓練データ中の文書ペアの総数をMとする。このとき、上記の非特許文献1で提案されているRankSVM法では、以下の(1)式で示される最適化問題の解を用いてランキング関数を構築する。
ただし、w・xmはwとxmの内積を表す。
この時、生成されるランキング関数は、パラメータベクトル^wにより表現される。この^wは、訓練データに基づいて得られた、ランキングを決定する各要因に対する信頼度に相当する値となっている。よって、ランキング関数f()は以下の(2)式で表わされる。
ランキング処理自体は、上記(2)式のランキング関数の出力値に基づいて文書を降順に並べることで行われる。
検索システムでは検索要求が多種多様なため、どのようなクエリに対しても精度良くランキングを提示するランキング関数を生成するのは難しい。少しでも精度の高いランキング関数を生成するためには、より多くの訓練データを用いてランキング関数を構築することが望まれる。よって、ランキング関数生成処理では、多くの訓練データを効率良く扱う枠組が必要となる。
訓練データの大規模化に対応するための方法は、これまでいくつか提案されている。基本的には、分散並列処理により対応する方法が現在主流である。複数の計算ノードに対して、分割した部分訓練データを割り振り、個々の計算ノードは独立に、割り当てられたデータのみを利用してランキング関数を構築する。その後、できあがった複数のランキング関数をそれぞれの方法で結合するというのが現在の使われている主な方法である(例えば、非特許文献2、3、4)
Thorsten Joachims. Optimizing search engines using clickthrough data. In Proc. of the eighth ACM international conference on Knowledge Discovery and Data mining (KDD '02), pages 133-142, 2002. Krysta M. Svore and Christopher J.C. Burges. Large-scale learning to rank using boosted decision trees. In Ron Bekkerman, Misha Bilenko, and John Langford, editors, Scaling Up Machine Learning: Parallel and Distributed Approaches. Cambridge Univ. Press, May 2011. Stephen Tyree, Kilian Wienberger, Kunal Agrawal, and Jennifer Paykin. Parallel boosted regression trees for web search ranking. In WWW, 2011. Jerry Ye, Jyh-Herng Chow, Jiang Chen, and Zhaohui Zheng. Stochastic gradient boosted distributed decision trees. In CIKM, 2009.
しかしながら、上記の非特許文献2〜4で使われている方法は、単純な結合方法であるため、訓練データ全体を用いて構築したランキング関数より精度が落ちることがほとんどである。つまり、分散処理により高速化はできているが、精度を犠牲にしている面がある。
本発明は、上記の事情を鑑みてなされたもので、ランキング精度の低下を抑制して、高速にランキング関数を学習することができるランキング関数学習装置、方法、及びプログラムを提供することを目的とする。
上記の目的を達成するために第1の発明に係るランキング関数学習装置は、検索クエリに基づき文書の集合を検索した検索結果をランキングするためのランキング関数に関するパラメータを学習する装置であって、検索クエリに対する検索結果の各文書について求められた特徴値及び前記検索クエリに対する適合度を含む訓練データの集合を記憶した訓練データ記憶手段と、前記ランキング関数に関するパラメータを学習するN個(Nは2以上の自然数である)の計算ノードと、前記訓練データ記憶手段に記憶された前記訓練データの集合を、N個の部分集合に分割して前記N個の計算ノードに割り当てる分割手段と、を含み、前記N個の計算ノードの各々は、前記分割手段によって割り当てられた前記訓練データの部分集合に基づいて、前記ランキング関数に関するパラメータであって、かつ、局所的なパラメータを更新する局所更新手段と、前記局所更新手段によって更新された前記局所的なパラメータを、他の計算ノードに通知すると共に、前記他の計算ノードから通知された前記局所的なパラメータを取得する同期手段と、前記同期手段によって取得した前記他の計算ノードの前記局所的なパラメータ及び前記局所更新手段によって更新された前記局所的なパラメータに基づいて、前記ランキング関数に関するパラメータであって、かつ、各計算ノードの前記局所的なパラメータを一致させるための大域的なパラメータを更新する大域更新手段と、前記大域的なパラメータの値が収束したか否かを判定し、前記大域的なパラメータの値が収束したと判定するまで、前記局所更新手段による更新、前記同期手段による通知及び取得、並びに前記大域更新手段による更新を繰り返す収束判定手段とを含んで構成されている。
第2の発明に係るランキング関数学習方法は、検索クエリに対する検索結果の各文書について求められた特徴値及び前記検索クエリに対する適合度を含む訓練データの集合を記憶した訓練データ記憶手段と、N個(Nは2以上の自然数である)の計算ノードと、分割手段とを含む、検索クエリに基づき文書の集合を検索した検索結果をランキングするためのランキング関数に関するパラメータを学習する装置におけるランキング関数学習方法であって、前記分割手段によって、前記訓練データ記憶手段に記憶された前記訓練データの集合を、N個の部分集合に分割して前記N個の計算ノードに割り当てるステップと、前記N個の計算ノードの各々によって、前記ランキング関数に関するパラメータを学習するステップとを含み、前記計算ノードによって学習するステップは、局所更新手段によって、前記分割手段によって割り当てられた前記訓練データの部分集合に基づいて、前記ランキング関数に関するパラメータであって、かつ、局所的なパラメータを更新するステップと、同期手段によって、前記局所更新手段によって更新された前記局所的なパラメータを、他の計算ノードに通知すると共に、前記他の計算ノードから通知された前記局所的なパラメータを取得するステップと、大域更新手段によって、前記同期手段によって取得した前記他の計算ノードの前記局所的なパラメータ及び前記局所更新手段によって更新された前記局所的なパラメータに基づいて、前記ランキング関数に関するパラメータであって、かつ、各計算ノードの前記局所的なパラメータを一致させるための大域的なパラメータを更新するステップと、収束判定手段によって、前記大域的なパラメータの値が収束したか否かを判定し、前記大域的なパラメータの値が収束したと判定するまで、前記局所更新手段による更新、前記同期手段による通知及び取得、並びに前記大域更新手段による更新を繰り返すステップとを含む。
第1の発明及び第2の発明によれば、前記分割手段によって、前記訓練データ記憶手段に記憶された前記訓練データの集合を、N個の部分集合に分割して前記N個の計算ノードに割り当てる。前記N個の計算ノードの各々によって、前記ランキング関数に関するパラメータを学習する。
このとき、各計算ノードでは、局所更新手段によって、前記分割手段によって割り当てられた前記訓練データの部分集合に基づいて、前記ランキング関数に関するパラメータであって、かつ、局所的なパラメータを更新する。同期手段によって、前記局所更新手段によって更新された前記局所的なパラメータを、他の計算ノードに通知すると共に、前記他の計算ノードから通知された前記局所的なパラメータを取得する。大域更新手段によって、前記同期手段によって取得した前記他の計算ノードの前記局所的なパラメータ及び前記局所更新手段によって更新された前記局所的なパラメータに基づいて、前記ランキング関数に関するパラメータであって、かつ、各計算ノードの前記局所的なパラメータを一致させるための大域的なパラメータを更新する。収束判定手段によって、前記大域的なパラメータの値が収束したか否かを判定し、前記大域的なパラメータの値が収束したと判定するまで、前記局所更新手段による更新、前記同期手段による通知及び取得、並びに前記大域更新手段による更新を繰り返す。
このように、各計算ノードにおいて、割り当てられた訓練データの部分集合に基づいて局所的なパラメータを更新し、他の計算ノードから取得した局所的なパラメータを用いて、大域的なパラメータを更新することを収束するまで繰り返すことにより、ランキング精度の低下を抑制して、高速にランキング関数を学習することができる。
第3の発明に係るランキング関数学習装置は、検索クエリに基づき文書の集合を検索した検索結果をランキングするためのランキング関数に関するパラメータを学習する装置であって、検索クエリに対する検索結果の各文書について求められた特徴値及び前記検索クエリに対する適合度を含む訓練データの集合を記憶した訓練データ記憶手段と、前記ランキング関数に関するパラメータを学習するN個(Nは2以上の自然数である)の計算ノードと、前記訓練データ記憶手段に記憶された前記訓練データの集合を、N個の部分集合に分割して前記N個の計算ノードに割り当てる分割手段と、大域更新手段と、収束判定手段とを含み、前記N個の計算ノードの各々は、前記分割手段によって割り当てられた前記訓練データの部分集合に基づいて、前記ランキング関数に関するパラメータであって、かつ、局所的なパラメータを更新する局所更新手段を含み、前記大域更新手段は、前記全ての計算ノードの前記局所更新手段によって更新された前記局所的なパラメータに基づいて、前記ランキング関数に関するパラメータであって、かつ、各計算ノードの前記局所的なパラメータを一致させるための大域的なパラメータを更新する手段であり、前記収束判定手段は、前記大域的なパラメータの値が収束したか否かを判定し、前記大域的なパラメータの値が収束したと判定するまで、各計算ノードの前記局所更新手段による更新及び前記大域更新手段による更新を繰り返す手段であることを特徴とする。
第4の発明に係るランキング関数学習方法は、検索クエリに対する検索結果の各文書について求められた特徴値及び前記検索クエリに対する適合度を含む訓練データの集合を記憶した訓練データ記憶手段と、N個(Nは2以上の自然数である)の計算ノードと、分割手段と、大域更新手段と、収束判定手段とを含む、検索クエリに基づき文書の集合を検索した検索結果をランキングするためのランキング関数に関するパラメータを学習する装置におけるランキング関数学習方法であって、前記分割手段によって、前記訓練データ記憶手段に記憶された前記訓練データの集合を、N個の部分集合に分割して前記N個の計算ノードに割り当てるステップと、前記N個の計算ノードの各々によって、前記ランキング関数に関するパラメータを学習するステップと、前記大域更新手段によって更新するステップと、前記収束判定手段によって判定するステップと、を含み、前記計算ノードによって学習するステップは、局所更新手段によって、前記分割手段によって割り当てられた前記訓練データの部分集合に基づいて、前記ランキング関数に関するパラメータであって、かつ、局所的なパラメータを更新するステップを含み、前記大域更新手段によって更新するステップは、前記全ての計算ノードの前記局所更新手段によって更新された前記局所的なパラメータに基づいて、前記ランキング関数に関するパラメータであって、かつ、各計算ノードの前記局所的なパラメータを一致させるための大域的なパラメータを更新するステップであり、前記収束判定手段によって判定するステップは、前記大域的なパラメータの値が収束したか否かを判定し、前記大域的なパラメータの値が収束したと判定するまで、各計算ノードの前記局所更新手段による更新及び前記大域更新手段による更新を繰り返すステップであることを特徴とする。
第5の発明に係るプログラムは、コンピュータを、上記のランキング関数学習装置の各手段として機能させるためのプログラムである。
以上説明したように、本発明のランキング関数学習装置、方法、及びプログラムによれば、各計算ノードにおいて、割り当てられた訓練データの部分集合に基づいて局所的なパラメータを更新し、他の計算ノードから取得した局所的なパラメータを用いて、大域的なパラメータを更新することを収束するまで繰り返すことにより、ランキング精度の低下を抑制して、高速にランキング関数を学習することができる、という効果が得られる。
本発明の第1の実施の形態に係るランキング関数学習処理の流れを示す図である。 本発明の第1の実施の形態に係るランキング関数学習装置の構成を示す概略図である。 本発明の第1の実施の形態に係るランキング関数学習装置の計算ノードにおけるランキング関数学習処理ルーチンの内容を示すフローチャートである。 本発明の第1の実施の形態に係るランキング関数学習装置の構成の他の例を示す概略図である。 本発明の第2の実施の形態に係るランキング関数学習処理の流れを示す図である。 本発明の第2の実施の形態に係るランキング関数学習装置の構成を示す概略図である。 本発明の第3の実施の形態に係るランキング関数学習システムの構成を示す概略図である。 本発明の第3の実施の形態に係る学習制御装置の構成を示す概略図である。 本発明の第3の実施の形態に係る学習装置の構成を示す概略図である。 性能比較結果を示すグラフである。 分散並列処理を行った場合の実験結果を示す図である。 ランキング処理装置による処理を説明するための図である。 訓練データを示す図である。 訓練データを示す図である。
以下、図面を参照して本発明の実施の形態を詳細に説明する。
〔第1の実施の形態〕
<発明の概要>
本発明の処理の枠組は、基本的に分散計算環境を想定する。ここでは、図1に示すように、N個の計算ノードがあるとする。つぎに、M個の訓練データをN個に分割する。この時、分割した訓練データのn番目の部分集合をMnと書く。また、各部分集合は重複するデータを持たないと仮定する。つまり、∪nMn =(1, ... ,M),∩n Mn =空集合である。
訓練データの集合を分割し、各計算ノードに割り当てた後、各計算ノードは、自分自身に割り当てられた訓練データのみを用い、上記(1)式に示した従来法等を用いてランキング関数を学習する。このとき、n番目の計算ノードで得られるランキング関数で用いられるパラメータをvnとする。このvnは上記(1)式中のwに相当する。本発明の枠組では、各計算ノードは独立にランキング関数で用いるパラメータを学習することができるため、単純計算で学習時間を1/Nに縮減できるという計算量的な利点がある。ただし、vnは部分的な訓練データのみから生成されるため、部分的な情報しか用いることができないという観点で、基本的に訓練データ全体を使って学習したwを用いたランキング関数よりランキング精度は一般的に低くなる、という問題がある。また、独立に得られたvnから最良のvnを選択する方法、或いは、効果的にvnを結合する方法などはこれまで知られていない。
本発明では、各計算ノードで得られたvnは一致しなくてはいけないという制約パラメータwを導入する。この制約を入れることで、部分的なデータのみから生成されるvnは全体で一致しなくてはいけなくなるため、間接的に訓練データ全体の情報を包含した関数を学習することが可能となる。つまり、訓練データ集合を分割することで、ランキング関数の学習時間を短縮する性質を保持したまま、従来と同様に全体の訓練データを使って学習したランキング関数と同じようにランキング精度の高い関数を学習することが可能となる。また、分散計算環境を用いれば訓練データが増えても容易に扱えることから、従来では利用できなかった量の訓練データを用いてランキング関数を構築することができるようになるため、より高精度なランキング関数を学習することが可能となる。本発明の枠組では、ランキング関数に用いるパラメータ^wは、以下の(3)式で示す最適化式を解くことで得られる。
本発明では、参考文献1(Daniel Gabay and Bertrand Mercier. A dual algorithm for the solution of nonlinear variational problems via finite element approximation. Computers and Mathematics with Applications, 2(1):17 - 40, 1976.)及び参考文献2(Stephen Boyd, Neal Parikh, Eric Chu, Borja Peleato, and Jonathan Eckstein. Distributed optimization and statistical learning via the alternating direction method of multipliers. Foundations and Trends in Machine Learning, 2011.)に記載されたalternating direction method of multipliers (ADMM)と呼ばれる最適化の枠組を用いて上記最適化問題を解く。まず、ADMMの枠組に則って上記(3)式の最適化式を変形し、以下の(4)式に示す目的関数Lρを得る。
ここで、μnは、上記(4)式の制約をラグランジュ未定乗数法で表現した際のラグランジュ乗数に相当し、ρ/2 ||vn−w||2は最適化の解を効率的に求めるための追加の項である。ρは人手により決定するパラメータでρ>0とする。上記参考文献2に従って、unn/ρで上式を置き換える。その結果、上記(4)式は、以下の(5)式に変形される。
上記(5)式を用いることで、実際の最適化問題は、vn,w,unを順番に繰り返し求めることで最適解が得られることが保証されている。また、後述する第2の実施の形態のように、訓練データが逐次的に増加しても、つまり、計算ノードの個数が増加しても、最終的な最適解^wが得られることが参考文献3(Pedro Forero, Alfonso Cano, and Georgios Giannakis. Consensus-based distributed support vector machines. JMLR, 2010.)により保証される。これらの性質を利用することで、分散処理かつデータの逐次投入によるランキング関数学習処理を行うことが可能となる。
<システム構成>
本発明の第1の実施の形態に係るランキング関数学習装置100は、学習用として与えられた訓練データを入力として受け取り、ランキング関数に関するパラメータを出力する。このランキング関数学習装置100は、CPUと、RAMと、後述するランキング関数学習処理ルーチンを実行するためのプログラムを記憶したROMとを備えたコンピュータで構成され、機能的には次に示すように構成されている。図2に示すように、ランキング関数学習装置100は、入力部10と、演算部20と、出力部30とを備えている。
入力部10は、入力された訓練データとして、上記図14で示した文書のペアによる訓練データを複数受け付ける。各訓練データは、ある検索クエリに対する検索結果文書ペアの複数の特徴値の各々の差分からなる差分ベクトルと、当該検索クエリに対する適合度の大小関係を示す変数とを含む。また、入力される訓練データには、様々な検索クエリに基づく訓練データが含まれる。
また、入力部10は、人手により入力された計算ノード数Nとパラメータρを受け付ける。
演算部20は、訓練データ記憶部21、分割部22、及びN個の計算ノード231〜23Nを備えている。なお、計算ノード231〜23Nのうちの任意の計算ノードを示す場合には、計算ノード23と称することとする。
訓練データ記憶部21は、入力部10により受け付けた大量の訓練データからなる訓練データ集合を記憶する。訓練データ記憶部21のデータ構造は、上記図14に示す。
上記図14に示すように、それぞれの行が、ある検索クエリに対する検索結果文書のペアの文書IDと、ペアにした文書で便宜上左側の文書の適合度が高いときに1、右の文書が高いときに−1となる変数ymと、各文書を各特徴ベクトル表現にしたものの差分ベクトルxmとを表している。
分割部22は、訓練データ記憶部21に記憶された訓練データ集合を、N個の部分集合に分割し、N個の計算ノード231〜23Nに割り当てる。また、分割部22は、入力されたパラメータρを、N個の計算ノード231〜23Nの各々に通知する。
N個の計算ノード231〜23Nの各々は、分割データ記憶部31、局所更新部32、同期部33、大域更新部34、及び収束判定部35を備えている。各N個の分割データ記憶部31、局所更新部32、同期部33、大域更新部34、及び収束判定部35が存在することになるが、同様の機能を有す処理部は同じ番号で表わしている。
分割データ記憶部31には、計算ノード23に割り当てられた訓練データ集合の部分集合を記憶する。
局所更新部32は、分割データ記憶部31に記憶された訓練データ集合の部分集合を用いて、以下に説明するように、ラグランジュ未定乗数un及び局所的なパラメータvnを更新する。
(ラグランジュ未定乗数unの更新)
最初の処理として、局所更新部32は、当該計算ノード23nにおけるラグランジュ未定乗数unを更新する。
wとvnを固定したときunの最適値の方向は、以下の(6)式に示すように、上記(5)式に示す目的関数Lρ(w, vn,un)のunに関する勾配方向である。
上記(6)式の関係から、以下の(7)式に示す更新式を得る。
局所更新部32は、上記(7)式に従って、ラグランジュ未定乗数unを更新する。上記(7)式の更新式は、各計算ノード23で独立に計算できるため、他の計算ノード23と通信などを行う必要がない。
(局所的なパラメータvnの更新)
次に、局所更新部32は、当該計算ノード23nにおける局所的なパラメータvnを更新する。
反復計算k(kは繰り返し回数を管理する変数)の時点で、unとwを固定したとき各vnの最適解は、以下の(8)式に示すように、上記(5)式に示す目的関数Lρ(w, vn,un)を最小にするvnを見つける問題である。
定義に従って、局所的なパラメータvnに関係する項のみを取り出すと、以下の(9)式が得られる。
上記(9)式は、従来法で示したRankSVMにバイアス項(−w+un)を追加したモデルとみなせる。また、バイアス項(−w +un)は、ここでは定数となるので、従来法のRankSVMと同じ方法で解くことができる。また、もし(−w+un)=0なら、RankSVMの式と一致する。つまり、ここの計算ノードでは、あたえられた訓練データの部分集合を使って独立に従来法のRankSVMを用いてパラメータvnを生成することと等価である。
局所更新部32は、上記(9)式に従って、局所的なパラメータvnを更新する。また、パラメータvnも、unと同様に、各計算ノード23で独立に更新することができる。
同期部33は、当該計算ノード23で今回更新されたunとvnを、自分以外の全ての計算ノード23iへ通知する。また、同期部33は、他の計算ノード23i全てから通知された、今回更新されたuiとviを受け取る。この処理によって、個々の計算ノード23は全ての計算ノード23nの持つunとvnの値を取得することができる。
大域更新部34は、他の計算ノード23n全てから受け取ったunとvnを使って、以下のように、大域的制約パラメータwを更新する。
unとvnを固定したときwの最適解は、上記(5)式に示す目的関数Lρ(w, vn,un)のwに関する勾配が零ベクトルになる点である。その関係から以下の(10)式〜(13)式に示す関係式が得られる。
ただし、 ̄v=ΣN n=1vn/N, ̄u=ΣN n=1un/Nである。
上記(13)式に示す関係式から、反復計算kの時点でのwは以下の(14)式で求められる。
大域的制約パラメータwの更新には、全てのvnとunが必要である。
そこで,大域更新部34は、取得した全ての計算ノード23nの持つunとvnの値を用いて、上記(14)式に従って、大域的制約パラメータwを更新する。
個々の計算ノード23で独立にwを求める。ここでの注意点として、個々の計算ノード23は独立でwを求めるが、得られるwは全ての計算ノード23で一致する。処理方法としては、任意のひとつの計算ノード23でwを計算し、その後に各計算ノード23に通知するといった処理を行うようにしてもよい。ただし、その場合には、選択された計算ノード23の計算が終了し、結果が通知されるまで、それ以外の計算ノードは待機する必要がある。本実施の形態では、個々の計算ノード23で同じ計算を行う方式をとった場合を例に説明する。
収束判定部35は、得られた大域的制約パラメータwが収束して最適値になっているか判定する。
二つの小さな正の実数ε1、ε2をあたえ、以下の(15)式、(16)式を満たした際に収束したと判定する(参考文献2を参照)。
収束判定で、収束していなかった場合は、k=k+1として、局所更新部32による処理に戻る。収束していると判定された場合は、繰り返し処理を終了する。
この収束判定の処理もwと同様に任意のひとつの計算ノード23で行い、その結果を全体に通知するようにしてもよい。しかし、同期処理が必要となるため、本実施の形態では、収束判定も全ての計算ノード23で個別に行い、収束と判定されれば処理を終了する場合を例に説明する。この収束判定も、全ての計算ノードで結果が必ず一致するため、個々に判定をおこなっても結果は同じになる。
収束判定部35は、収束したと判定されたときに得られた大域的制約パラメータwを、ランキング関数を構成するパラメータとして出力部30により出力する。なお、本実施の形態では、任意の一つの計算ノード23から、大域的制約パラメータwが出力される場合を例に説明したが、全ての計算ノード23から、大域的制約パラメータwが出力されてもよい。また、実際のランキングを生成する際には、従来法と同様に上記(2)式を用いて検索スコアを計算する。
<ランキング関数学習装置の作用>
次に、本実施の形態に係るランキング関数学習装置100の作用について説明する。まず、大量の訓練データからなる訓練データ集合がランキング関数学習装置100に入力されると、ランキング関数学習装置100によって、入力された訓練データ集合が、訓練データ記憶部21へ格納される。そして、ランキング関数学習装置100において、分割部22によって、訓練データ記憶部21の訓練データ集合を、N個の部分集合に分割し、N個の計算ノード231〜23Nに割り当てる。訓練データ集合の各部分集合が、計算ノード231〜23Nの各々の分割データ記憶部31に格納される。
そして、ランキング関数学習装置100の各計算ノード23によって、図3に示すランキング関数学習処理ルーチンが実行される。なお、以下では、計算ノード23nによって実行した場合について説明する。
まず、ステップS101において、ラグランジュ未定乗数un、局所的なパラメータvn、及び大域的制約パラメータwの各々に、適当な値(例えば、0)を与えて初期化する。
そして、ステップS102において、局所更新部32によって、上記ステップS101で初期化されたラグランジュ未定乗数un、局所的なパラメータvn、及び大域的制約パラメータw、又は前回更新されたラグランジュ未定乗数un、局所的なパラメータvn、及び大域的制約パラメータwに基づいて、上記(7)式に従って、ラグランジュ未定乗数unを更新する。
次のステップS103では、局所更新部32によって、上記ステップ102で更新されたラグランジュ未定乗数unと、上記ステップS101で初期化された大域的制約パラメータw、又は前回更新された大域的制約パラメータwと、分割データ記憶部31に記憶された訓練データ集合の部分集合とに基づいて、上記(9)式に従って、局所的なパラメータvnを更新する。
そして、ステップS104では、同期部33によって、上記ステップS102で更新されたラグランジュ未定乗数un及び上記ステップ103で更新された局所的なパラメータvnを他の計算ノード23に通知すると共に、他の計算ノード23i全てから、更新されたラグランジュ未定乗数ui及び上記ステップ103で更新された局所的なパラメータviを取得する(i=1,・・・,n−1,n+1,・・・,N)。
ステップS105では、大域更新部34によって、上記ステップS102で更新されたラグランジュ未定乗数un及び上記ステップ103で更新された局所的なパラメータvnと、上記ステップS104で他の計算ノード23i全てから取得したラグランジュ未定乗数uiび局所的なパラメータviとに基づいて、上記(14)式に従って、大域的制約パラメータwを更新する。
次のステップS106では、上記ステップ103で更新された局所的なパラメータvnと、上記ステップ105で更新された大域的制約パラメータwと、前回更新された大域的制約パラメータwとに基づいて、上記(15)式、(16)式に従って、大域的制約パラメータwが収束したか否かを判定する。上記(15)式および(16)式を満たさない場合には、収束していないと判断し、上記ステップS102へ戻る。一方、上記(15)式及び(16)式を満たした場合には、収束したと判断し、上記ステップS107へ移行する。
ステップS107では、上記ステップS105で最終的に更新された大域的制約パラメータwkを、得られた最適解^wとして出力部30により出力して、ランキング関数学習処理ルーチンを終了する。
以上説明したように、第1の実施の形態に係るランキング関数学習装置によれば、各計算ノードにおいて、割り当てられた訓練データの部分集合に基づいてラグランジュ未定乗数及び局所的なパラメータを更新し、他の計算ノードから取得したラグランジュ未定乗数及び局所的なパラメータを用いて、大域的制約パラメータを更新することを収束するまで繰り返すことにより、ランキング精度の低下を抑制して、高速にランキング関数を学習することができる。
また、web検索エンジン等で用いられている、文書の検索結果を表示する際に適合文書をどのような順序で提示するかを決定するランキング処理装置を自動的に構築することができる。
なお、上記の実施の形態では、各計算ノード23が、大域更新部34及び収束判定部35を備えている場合を例に説明したが、これに限定されるものではない。例えば、図4に示すように、各計算ノード23は、分割データ記憶部31及び局所更新部32を備え、演算部20が、大域更新部34、及び収束判定部35を1つずつ備えるように構成してもよい。この場合には、大域更新部34は、全ての計算ノード23nで得られたunとvnを使って、大域的制約パラメータwを更新し、収束判定部35は、得られた大域的制約パラメータwが収束して最適値になっているか判定するようにする。収束判定で、収束していなかった場合は、各計算ノード23に得られた大域的制約パラメータwを通知して局所更新部32による処理に戻るようにする。
〔第2の実施の形態〕
次に、第2の実施の形態について説明する。なお、第1の実施の形態と同様の構成となる部分については、同一符号を付して説明を省略する。
第2の実施の形態では、訓練データ集合に新たな訓練データが追加された際の処理を行っている点が、第1の実施の形態と異なっている。
<発明の概要>
ランキング関数生成時に考慮したいこととして、ウェブ検索システムの検索対象となる文書集合は、時々刻々と変化しているため、それらの変化に対応したシステム作りがあげられる。この事象に対応するひとつの方法として、例えば、その時々で適した訓練データを逐次的に増やしていき、ランキング関数を現在の状態により適合したものに更新するという方法が考えられる。また、人間が検索システムを利用しているときに得られるクエリとそのときに選択した文書のペアを訓練データとみなすこともできるため、これらのフィードバックをリアルタイムで反映するといったことも考えられる。
上記非特許文献2〜4では、訓練データが逐次的に増加したときにどのように新しい訓練データを取り入れてランキング関数を構築するかといった点が特に言及されていないため、訓練データを逐次的に追加する際に必ずしも効率的になるとは言えない、という問題がある。
ここで、本発明における訓練データが逐次的に追加される際の処理について、図5を用いて説明する。
訓練データが逐次的に追加される際にも、本発明の枠組みは容易に対応することが可能である。本質的には、上記の第1の実施の形態で説明した静的な訓練データ集合を用いた学習方法をそのまま用いることができる。訓練データが時間毎に増加する際の処理では、前提として訓練データは無限に存在するという仮定をする。ただし、ある時刻tの時点では、たまたま、稼動している計算ノードはn個であったと想定する。その際に、本発明の枠組みでは、稼動しているn個の計算ノードだけを用いて部分的に処理を続行することが可能である。そして、時刻t+1の時にn+1個の計算ノードが利用できるといったように、各時刻で増加した訓練データの集合を、新たに追加したひとつの計算ノードに割り当てるような形で、訓練データが逐次的に増加する際にも学習処理を継続して行うことができる。
これは、本発明の方法が、ほぼ全ての計算を各計算ノード独立で行うことが可能であることに由来する。また、唯一全計算ノードで情報を共有しているwの更新では、最初からN個の計算ノードが止まることなく稼動して得られる解^wと、逐次的に追加して利用できる計算ノードを含む全ての計算ノードを利用して得た解^wとは一致する性質を持つ。この性質から、訓練データが逐次的に増加する環境でも効率良く計算することができる。
<システム構成>
図6に示すように、第2の実施の形態に係るランキング関数学習装置200の演算部220は、訓練データ記憶部21、分割部22、N個の計算ノード231〜23N、及びデータ追加部222を備えている。また、訓練データ記憶部21に新たに訓練データが追加された場合には、演算部220は、訓練データの追加に対応する少なくとも1つ(図6の例では2つ)の計算ノード223N+1、223N+2を備える。なお、計算ノード223N+1、223N+2のうちの任意の計算ノードを示す場合には、計算ノード223と称することとする。
データ追加部222は、ある時点までで訓練データ集合が追加された場合に、訓練データ集合の追加分を、計算ノード223N+1に割り当てる。また、次の時点までで訓練データ集合が更に追加された場合には、データ追加部222は、訓練データ集合の更なる追加分を、計算ノード223N+2に割り当てる。
計算ノード223N+1〜223N+2の各々は、追加データ記憶部231、局所更新部32、同期部33、大域更新部34、及び収束判定部35を備えている。
追加データ記憶部231には、計算ノード223に割り当てられた、追加分の訓練データ集合を記憶する。
計算ノード223の局所更新部32及び収束判定部35は、計算ノード23と同様である。
計算ノード223の同期部33は、当該計算ノード223nで今回更新されたunとvnを、自分以外の全ての計算ノード23、223へ通知する。また、計算ノード23の同期部33も、当該計算ノード23iで今回更新されたuiとviを、自分以外の全ての計算ノード23、223へ通知する。計算ノード23、223の各々の同期部33は、他の計算ノード23、223全てから通知された、今回更新されたunとvnを受け取る。この処理によって、個々の計算ノード23、223は全ての計算ノード23、223の持つunとvnの値を取得することができる。
計算ノード23、223の各々の大域更新部34は、他の計算ノード23、223全てから受け取ったunとvnを使って、上記(14)式に従って、大域的制約パラメータwを更新する。
<ランキング関数学習装置の作用>
次に、本実施の形態に係るランキング関数学習装置200の作用について説明する。まず、大量の訓練データからなる訓練データ集合がランキング関数学習装置200に入力されると、ランキング関数学習装置200によって、入力された訓練データ集合が、訓練データ記憶部21へ格納される。そして、ランキング関数学習装置200において、分割部22によって、訓練データ記憶部21の訓練データ集合を、N個の部分集合に分割し、N個の計算ノード231〜23Nに割り当てる。
そして、ランキング関数学習装置200の各計算ノード23によって、上記図3に示すランキング関数学習処理ルーチンが実行される。
各計算ノード23によるランキング関数学習処理ルーチンの実行中に、訓練データ集合がランキング関数学習装置200に追加入力されると、ランキング関数学習装置200によって、追加入力された訓練データ集合が、訓練データ記憶部21へ格納される。そして、ランキング関数学習装置200において、データ追加部222によって、訓練データ記憶部21の訓練データ集合の追加分を、計算ノード223N+1に割り当てる。ランキング関数学習装置200の計算ノード223N+1によって、各計算ノード23と同様に、ランキング関数学習処理ルーチンが実行される。
このとき、各計算ノード23、223で実行されるランキング関数学習処理ルーチンのステップS104では、更新されたラグランジュ未定乗数ui及び局所的なパラメータviを他の計算ノード23、223に通知すると共に、他の計算ノード23、223全てから、更新されたラグランジュ未定乗数ui及び上記ステップ103で更新された局所的なパラメータviを取得する。
また、各計算ノード23、223N+1によるランキング関数学習処理ルーチンの実行中に、訓練データ集合がランキング関数学習装置200に追加入力されると、ランキング関数学習装置200によって、追加入力された訓練データ集合が、訓練データ記憶部21へ格納される。データ追加部222によって、訓練データ記憶部21の訓練データ集合の更なる追加分を、計算ノード223N+2に割り当てる。ランキング関数学習装置200の計算ノード223N+2によって、各計算ノード23と同様に、ランキング関数学習処理ルーチンが実行される。
また、訓練データ集合が追加入力される毎に、計算ノード223N+3, 223N+4,・・・と計算ノード223を追加し、訓練データ集合の更なる追加分を割り当て、ランキング関数学習処理ルーチンを同様に実行させる。
以上説明したように、第2の実施の形態に係るランキング関数学習装置によれば、ランキング処理装置で利用するランキング関数を学習する際に、訓練データの大規模化と逐次投入化を同時に可能とする。これにより、従来扱えなかった大量の訓練データを用いて従来より高精度なランキング関数を構築することが可能となる。また、逐次的に訓練データを増加させながら、ランキング関数の構築が可能となるため、時々刻々と変化するデータに対応してランキング関数を適応させることが容易となる。
また、検索のランキング関数学習処理においては、実際にユーザが入力した検索クエリとユーザがクリックしたWebページが、擬似的な訓練データとして利用可能である。これらのいわゆるユーザフィードバックを逐次的に取り入れてランキング関数の性能を向上させることが可能となる。
なお、上記の実施の形態では、訓練データの追加前から実行されているランキング関数学習処理ルーチンを、計算ノードが実行している間に、訓練データが追加される場合を例に説明したが、これに限定されるものではない。N個の計算ノードによって、ランキング関数学習処理ルーチンの実行が終了した後に、訓練データが追加された場合であってもよい。この場合には、訓練データの追加前に実行完了したランキング関数学習処理ルーチンで最終的に得られた各種変数u,v,wの値を保持しておき、保持した値を、各種変数の初期値として設定して、追加された計算ノードを含む複数の計算ノードの各々によって、ランキング関数学習処理ルーチンを実行するようにすればよい。これによって、訓練データが追加される前に学習した結果を有効利用することができる。
〔第3の実施の形態〕
次に、第3の実施の形態について説明する。なお、第1の実施の形態と同様の構成となる部分については、同一符号を付して説明を省略する。
第3の実施の形態では、ネットワークで接続された複数の学習装置を備えた分散並列計算環境において、複数の学習装置による分散並列計算で、パラメータ更新を行っている点が、第1の実施の形態と異なっている。
<システム構成>
図7に示すように、第3の実施の形態に係るランキング関数学習システム300は、学習制御装置301、及びN個の学習装置3021〜302Nを備えている。学習制御装置301及びN個の学習装置3021〜302Nは、ネットワーク303を介して接続されている。なお、学習装置3021〜302Nのうちの任意の学習装置を示す場合には、学習装置302と称することとする。
図8に示すように、学習制御装置301は、入力部10、演算部320、及び出力部330を備えている。
演算部320は、訓練データ記憶部21及び分割部22を備えている。
分割部22は、訓練データ記憶部21に記憶された訓練データ集合を、N個の部分集合に分割し、ネットワーク303を介してN個の学習装置3021〜302Nに送信する。また、分割部22は、入力されたパラメータρを、ネットワーク303を介してN個の学習装置3021〜302Nの各々に送信する。
N個の学習装置3021〜302Nの各々は、図9に示すように、入力部340、演算部350、及び出力部360を備えている。
入力部340は、学習制御装置301から送信された訓練データ集合の部分集合を受け付ける。また、入力部340は、他の学習装置302からネットワーク303を介して送信された情報を受け付ける。
演算部350は、分割データ記憶部31、局所更新部32、同期部33、大域更新部34、及び収束判定部35を備えている。
分割データ記憶部31には、学習装置302に送信された訓練データ集合の部分集合を記憶する。
同期部33は、当該学習装置302nで今回更新されたunとvnを、自分以外の全ての学習装置302へネットワーク303を介して送信する。また、同期部33は、他の学習装置302i全てから送信された、今回更新されたuiとviを受け取る。この処理によって、個々の学習装置302は全ての学習装置302nの持つunとvnの値を取得することができる。
大域更新部34は、他の学習装置302i全てから受け取ったuiとviを使って、上記(14)式に従って、大域的制約パラメータwを更新する。
収束判定部35は、得られた大域的制約パラメータwが収束して最適値になっているか判定し、収束したと判定されたときに得られた大域的制約パラメータwを、ランキング関数を構成するパラメータとして、出力部360により学習制御装置301へ送信する。
<ランキング関数学習システムの作用>
次に、本実施の形態に係るランキング関数学習システム300の作用について説明する。まず、大量の訓練データからなる訓練データ集合が学習制御装置301に入力されると、学習制御装置301によって、入力された訓練データ集合が、訓練データ記憶部21へ格納される。そして、学習制御装置301において、分割部22によって、訓練データ記憶部21の訓練データ集合を、N個の部分集合に分割し、ネットワーク303を介してN個の学習装置302へ送信して、N個の学習装置302に割り当てる。訓練データ集合の部分集合が、学習装置3021〜302Nの分割データ記憶部31に格納される。
そして、各学習装置302によって、上記図3に示すランキング関数学習処理ルーチンが実行される。
少なくとも1つの学習装置302によって、最終的に更新された大域的制約パラメータwが、ネットワーク303を介して学習制御装置301へ送信される。学習制御装置301は、学習装置302により受信した大域的制約パラメータwを出力部330により出力する。
以上説明したように、第3の実施の形態に係るランキング関数学習システムによれば、ネットワークを介して接続された複数の学習装置によって、分散並列処理によるランキング関数学習処理を行うため、処理を高速化でき、訓練データの更なる大規模化に対応することができる。
なお、上記の実施の形態において、上述した第2の実施の形態における訓練データの逐次追加に対応する技術を適用してもよい。この場合には、訓練データが追加される毎に、ランキング学習処理を行う学習装置を増やして対応すればよい。
<実験例>
次に、本発明の実施の形態で提案するランキング関数学習方法を用いた実験の結果について説明する。
訓練データ集合が静的な場合と、逐次的に訓練データが追加される場合とについて、それぞれ実験を行った。また、比較手法として、参考文献3(Ryan McDonald, Keith Hall, and Gideon Mann. Distributed training strategies for the structured perceptron. In NAACL HLT, 2010.)に記載の方法を用いた。
図10に実験結果を示す。図10のグラフの縦軸は精度であり、横軸は学習処理中の繰り返し回数である。また、「Batch」とは、全訓練データをはじめから利用した場合の実験結果を表わし、「Stream」とは、逐次的に訓練データを投入した場青の実験結果を表わす。また、「Batch ADMM」及び「Stream ADMM」が、本発明の実施の形態で提案するランキング関数学習方法提案手法の実験結果を表わし、「Batch Iter. Param Mix」及び「Stream Iter. Param Mix」が、比較手法を用いた場合の実験結果を表わす。本発明の実施の形態で提案するランキング関数学習方法を用いた場合には、従来方法より、精度が高くなることがわかった。また、逐次的に投入しても、全訓練データをはじめから使っているときとほぼ同じ解が得られることがわかった。
また、分散並列処理を行う方法を用いた実験を行った。学習処理を行う計算機の数を、1個、12個、36個、72個とした場合それぞれについて実験を行った。図11に実験結果を示す。図11のグラフの縦軸はエラー率であり、横軸は学習処理中の繰り返し回数である。分散並列処理を行う計算機の数を増やすほどエラーを少なくできることがわかった。
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
例えば、上述のランキング関数学習装置、学習制御装置、学習装置は、内部にコンピュータシステムを有しているが、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。
10、340 入力部
20、220、320、350演算部
21 訓練データ記憶部
22 分割部
23、223 計算ノード
31 分割データ記憶部
32 局所更新部
33 同期部
34 大域更新部
35 収束判定部
100、200ランキング関数学習装置
231 追加データ記憶部
300 ランキング関数学習システム
301 学習制御装置
302 学習装置

Claims (7)

  1. 検索クエリに基づき文書の集合を検索した検索結果をランキングするためのランキング関数に関するパラメータを学習する装置であって、
    検索クエリに対する検索結果の各文書について求められた特徴値及び前記検索クエリに対する適合度を含む訓練データの集合を記憶した訓練データ記憶手段と、
    前記ランキング関数に関するパラメータを学習するN個(Nは2以上の自然数である)の計算ノードと、
    前記訓練データ記憶手段に記憶された前記訓練データの集合を、N個の部分集合に分割して前記N個の計算ノードに割り当てる分割手段と、を含み、
    前記N個の計算ノードの各々は、
    前記分割手段によって割り当てられた前記訓練データの部分集合に基づいて、前記ランキング関数に関するパラメータであって、かつ、局所的なパラメータを更新する局所更新手段と、
    前記局所更新手段によって更新された前記局所的なパラメータを、他の計算ノードに通知すると共に、前記他の計算ノードから通知された前記局所的なパラメータを取得する同期手段と、
    前記同期手段によって取得した前記他の計算ノードの前記局所的なパラメータ及び前記局所更新手段によって更新された前記局所的なパラメータに基づいて、前記ランキング関数に関するパラメータであって、かつ、各計算ノードの前記局所的なパラメータを一致させるための大域的なパラメータを更新する大域更新手段と、
    前記大域的なパラメータの値が収束したか否かを判定し、前記大域的なパラメータの値が収束したと判定するまで、前記局所更新手段による更新、前記同期手段による通知及び取得、並びに前記大域更新手段による更新を繰り返す収束判定手段と
    を含むランキング関数学習装置。
  2. 前記局所更新手段は、前記分割手段によって割り当てられた前記訓練データの部分集合と、前回更新されたラグランジュ未定乗数、前記局所的なパラメータ、及び前記大域的なパラメータとを用いて、予め定められた目的関数の値を最適化するように、前記ラグランジュ未定乗数及び前記局所的なパラメータを更新し、
    前記同期手段は、前記局所更新手段によって更新された前記ラグランジュ未定乗数及び前記局所的なパラメータを、他の計算ノードに通知すると共に、前記他の計算ノードから通知された前記ラグランジュ未定乗数及び前記局所的なパラメータを取得し、
    前記大域更新手段は、前記同期手段によって取得した前記他の計算ノードの前記ラグランジュ未定乗数及び前記局所的なパラメータ、並びに前記局所更新手段によって更新された前記ラグランジュ未定乗数及び前記局所的なパラメータに基づいて、前記目的関数の値を最適化するように、前記大域的なパラメータを更新する請求項1記載のランキング関数学習装置。
  3. 前記訓練データ記憶手段に前記訓練データの集合が追加された場合に、前記ランキング関数に関するパラメータを学習する追加の計算ノードを更に含み、
    前記追加の計算ノードは、
    前記追加された前記訓練データの集合に基づいて、前記局所的なパラメータを更新する局所更新手段と、
    前記局所更新手段によって更新された前記局所的なパラメータを、他の計算ノードに通知すると共に、前記他の計算ノードから前記局所的なパラメータを取得する同期手段と、
    前記同期手段によって取得した前記他の計算ノードの前記局所的なパラメータに基づいて、前記大域的なパラメータを更新する大域更新手段と、
    前記大域的なパラメータの値が収束したか否かを判定し、前記大域的なパラメータの値が収束したと判定するまで、前記局所更新手段による更新、前記同期手段による通知及び取得、並びに前記大域更新手段による更新を繰り返す収束判定手段とを含み、
    前記計算ノードの各々の同期手段は、前記局所更新手段によって更新された前記局所的なパラメータを、他の計算ノード及び前記追加の計算ノードに通知すると共に、前記他の計算ノード及び前記追加の計算ノードから通知された前記局所的なパラメータを取得する請求項1又は2記載のランキング関数学習装置。
  4. 検索クエリに対する検索結果の各文書について求められた特徴値及び前記検索クエリに対する適合度を含む訓練データの集合を記憶した訓練データ記憶手段と、N個(Nは2以上の自然数である)の計算ノードと、分割手段とを含む、検索クエリに基づき文書の集合を検索した検索結果をランキングするためのランキング関数に関するパラメータを学習する装置におけるランキング関数学習方法であって、
    前記分割手段によって、前記訓練データ記憶手段に記憶された前記訓練データの集合を、N個の部分集合に分割して前記N個の計算ノードに割り当てるステップと、
    前記N個の計算ノードの各々によって、前記ランキング関数に関するパラメータを学習するステップとを含み、
    前記計算ノードによって学習するステップは、
    局所更新手段によって、前記分割手段によって割り当てられた前記訓練データの部分集合に基づいて、前記ランキング関数に関するパラメータであって、かつ、局所的なパラメータを更新するステップと、
    同期手段によって、前記局所更新手段によって更新された前記局所的なパラメータを、他の計算ノードに通知すると共に、前記他の計算ノードから通知された前記局所的なパラメータを取得するステップと、
    大域更新手段によって、前記同期手段によって取得した前記他の計算ノードの前記局所的なパラメータ及び前記局所更新手段によって更新された前記局所的なパラメータに基づいて、前記ランキング関数に関するパラメータであって、かつ、各計算ノードの前記局所的なパラメータを一致させるための大域的なパラメータを更新するステップと、
    収束判定手段によって、前記大域的なパラメータの値が収束したか否かを判定し、前記大域的なパラメータの値が収束したと判定するまで、前記局所更新手段による更新、前記同期手段による通知及び取得、並びに前記大域更新手段による更新を繰り返すステップと
    を含むランキング関数学習方法。
  5. 前記局所更新手段によって更新するステップは、前記分割手段によって割り当てられた前記訓練データの部分集合と、前回更新されたラグランジュ未定乗数、前記局所的なパラメータ、及び前記大域的なパラメータとを用いて、予め定められた目的関数の値を最適化するように、前記ラグランジュ未定乗数及び前記局所的なパラメータを更新し、
    前記同期手段によって通知及び取得するステップは、前記局所更新手段によって更新された前記ラグランジュ未定乗数及び前記局所的なパラメータを、他の計算ノードに通知すると共に、前記他の計算ノードから通知された前記ラグランジュ未定乗数及び前記局所的なパラメータを取得し、
    前記大域更新手段によって更新するステップは、前記同期手段によって取得した前記他の計算ノードの前記ラグランジュ未定乗数及び前記局所的なパラメータ、並びに前記局所更新手段によって更新された前記ラグランジュ未定乗数及び前記局所的なパラメータに基づいて、前記目的関数の値を最適化するように、前記大域的なパラメータを更新する請求項記載のランキング関数学習方法。
  6. 追加の計算ノードによって、前記訓練データ記憶手段に前記訓練データの集合が追加された場合に、前記ランキング関数に関するパラメータを学習するステップを更に含み、
    前記追加の計算ノードによって学習するステップは、
    局所更新手段によって、前記追加された前記訓練データの集合に基づいて、前記局所的なパラメータを更新するステップと、
    同期手段によって、前記局所更新手段によって更新された前記局所的なパラメータを、他の計算ノードに通知すると共に、前記他の計算ノードから前記局所的なパラメータを取得するステップと、
    大域更新手段によって、前記同期手段によって取得した前記他の計算ノードの前記局所的なパラメータに基づいて、前記大域的なパラメータを更新するステップと、
    収束判定手段によって、前記大域的なパラメータの値が収束したか否かを判定し、前記大域的なパラメータの値が収束したと判定するまで、前記局所更新手段による更新、前記同期手段による通知及び取得、並びに前記大域更新手段による更新を繰り返すステップとを含み、
    前記計算ノードの各々の同期手段によって通知及び取得するステップは、前記局所更新手段によって更新された前記局所的なパラメータを、他の計算ノード及び前記追加の計算ノードに通知すると共に、前記他の計算ノード及び前記追加の計算ノードから通知された前記局所的なパラメータを取得する請求項又は記載のランキング関数学習方法。
  7. コンピュータを、請求項1〜請求項の何れか1項記載のランキング関数学習装置の各手段として機能させるためのプログラム。
JP2011266048A 2011-12-05 2011-12-05 ランキング関数学習装置、方法、及びプログラム Active JP5734820B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011266048A JP5734820B2 (ja) 2011-12-05 2011-12-05 ランキング関数学習装置、方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011266048A JP5734820B2 (ja) 2011-12-05 2011-12-05 ランキング関数学習装置、方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2013117921A JP2013117921A (ja) 2013-06-13
JP5734820B2 true JP5734820B2 (ja) 2015-06-17

Family

ID=48712425

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011266048A Active JP5734820B2 (ja) 2011-12-05 2011-12-05 ランキング関数学習装置、方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP5734820B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5530469B2 (ja) * 2012-03-07 2014-06-25 日本電信電話株式会社 自然言語解析処理装置、方法、及びプログラム
US20190102670A1 (en) * 2017-10-02 2019-04-04 Imec Vzw Secure Broker-Mediated Data Analysis and Prediction
CN108009668B (zh) * 2017-10-31 2023-08-25 中国南方电网有限责任公司 一种应用机器学习的大规模地调负荷预测方法
WO2019187120A1 (ja) * 2018-03-30 2019-10-03 富士通株式会社 回答出力プログラム、回答出力方法、情報処理装置および機械学習プログラム
JP6966395B2 (ja) * 2018-08-23 2021-11-17 株式会社日立製作所 最適化システム及び最適化方法
JP7030296B1 (ja) * 2021-05-26 2022-03-07 株式会社エス・ケイ通信 プログラム、方法、情報処理装置
CN113538178A (zh) * 2021-06-10 2021-10-22 北京易创新科信息技术有限公司 知识产权价值评价方法、装置、电子设备及可读存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8019763B2 (en) * 2006-02-27 2011-09-13 Microsoft Corporation Propagating relevance from labeled documents to unlabeled documents
JP5202569B2 (ja) * 2010-04-28 2013-06-05 株式会社エヌ・ティ・ティ・ドコモ 機械学習方法および機械学習システム
JP5143182B2 (ja) * 2010-04-28 2013-02-13 株式会社エヌ・ティ・ティ・ドコモ 機械学習方法および機械学習システム

Also Published As

Publication number Publication date
JP2013117921A (ja) 2013-06-13

Similar Documents

Publication Publication Date Title
JP5734820B2 (ja) ランキング関数学習装置、方法、及びプログラム
Eichner et al. Semi-cyclic stochastic gradient descent
US11423082B2 (en) Methods and apparatus for subgraph matching in big data analysis
Price et al. FastTree: computing large minimum evolution trees with profiles instead of a distance matrix
US10102292B2 (en) Method and system of processing a search query
US20190362267A1 (en) Method of and system for generating a prediction model and determining an accuracy of a prediction model
US9864807B2 (en) Identifying influencers for topics in social media
Boussau et al. Efficient likelihood computations with nonreversible models of evolution
Tyree et al. Parallel boosted regression trees for web search ranking
US20110313844A1 (en) Real-time-ready behavioral targeting in a large-scale advertisement system
EP3847556A1 (en) End-to-end structure-aware convolutional networks for knowledge base completion
WO2017039010A1 (en) Distributed model-building
WO2021003391A1 (en) Machine learning systems and methods for evaluating sampling bias in deep active classification
US20120158740A1 (en) Caching web documents in two or more caches
JP2019519027A (ja) 履歴ログからの学習と、etlツール内のデータアセットに関するデータベースオペレーションの推奨
Borisyuk et al. CaSMoS: A framework for learning candidate selection models over structured queries and documents
US20130151536A1 (en) Vertex-Proximity Query Processing
Ordentlich et al. Network-efficient distributed word2vec training system for large vocabularies
JP2007317068A (ja) リコメンド装置およびリコメンドシステム
WO2015099810A1 (en) Learning graph
US20200084019A1 (en) Blockchain Ranking Engine
US11256485B2 (en) Systems and methods for synthesizing code from input and output examples
US20130054566A1 (en) Acceleration of ranking algorithms using a graphics processing unit
US11109085B2 (en) Utilizing one hash permutation and populated-value-slot-based densification for generating audience segment trait recommendations
Svore et al. Large-scale learning to rank using boosted decision trees

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140220

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140829

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140930

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141031

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150317

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150415

R150 Certificate of patent or registration of utility model

Ref document number: 5734820

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150