JP7464193B2 - 類似度導出システムおよび類似度導出方法 - Google Patents

類似度導出システムおよび類似度導出方法 Download PDF

Info

Publication number
JP7464193B2
JP7464193B2 JP2023520672A JP2023520672A JP7464193B2 JP 7464193 B2 JP7464193 B2 JP 7464193B2 JP 2023520672 A JP2023520672 A JP 2023520672A JP 2023520672 A JP2023520672 A JP 2023520672A JP 7464193 B2 JP7464193 B2 JP 7464193B2
Authority
JP
Japan
Prior art keywords
hash
hash value
sets
value calculation
function
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
JP2023520672A
Other languages
English (en)
Other versions
JPWO2022239174A5 (ja
JPWO2022239174A1 (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Publication of JPWO2022239174A1 publication Critical patent/JPWO2022239174A1/ja
Publication of JPWO2022239174A5 publication Critical patent/JPWO2022239174A5/ja
Application granted granted Critical
Publication of JP7464193B2 publication Critical patent/JP7464193B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、集合同士の類似度を導出する類似度導出システム、類似度導出方法、および、類似度導出プログラムに関する。
集合の各要素に同一のハッシュ関数を適用することによって、要素毎にハッシュ値が得られる。そのハッシュ値の最小値をMinHashと称する場合がある。本明細書では、同一のハッシュ関数に基づいて要素毎に得られるハッシュ値の最小値を最小ハッシュ値と記す。前述の集合の各要素に複数のハッシュ関数を適用すれば、ハッシュ関数と同数の最小ハッシュ値が得られる。
また、2つの集合に、共通の複数のハッシュ関数を適用し、集合毎に複数の最小ハッシュ値を求め、その複数の最小ハッシュ値に基づいて、2つの集合の類似度を求めることが考えられる。
また、特許文献1には、最小ハッシュ値を用いて類似テキストを探索する方法が記載されている。
特開2020-4107号公報
前述の例のように集合の類似度を求めるためには、個々の集合の個々の要素毎に、複数のハッシュ関数を適用することによって複数のハッシュ値を求めなければならない。これは、集合毎に、複数の最小ハッシュ値を求める必要があるためである。ここで、集合の個数をn個とする。また、ここでは、説明を簡単にするために、各集合の要素数がk個で共通であるとする。また、ハッシュ関数の数をm個とする。この場合、ハッシュ値の計算を、n・k・m回行う必要がある。
しかし、ハッシュ値の計算量は少ない方が好ましい。
そこで、本発明は、集合の類似度を導出する際に、ハッシュ値の計算量を低減させることができる類似度導出システム、類似度導出方法、および、類似度導出プログラムを提供することを目的とする。
本発明による類似度導出システムは、複数の集合に含まれる各集合の個々の要素に対して複数のハッシュ関数を適用して得られる複数のハッシュ値を求める際に、その複数のハッシュ関数のうちの所定のハッシュ関数によって得られるハッシュ値が一致し、かつ、要素自体が一致する複数の要素に関しては、所定のハッシュ関数以外の各ハッシュ関数の計算の重複を排除し、各集合の個々の要素に対して複数のハッシュ値を求めるハッシュ値計算手段と、複数の集合に含まれるそれぞれの集合に関して、個々のハッシュ関数毎に、ハッシュ値の最小値である最小ハッシュ値を特定する最小ハッシュ値特定手段と、複数の集合から得られる1組以上の集合のペアに関して、ペアをなす2つの集合の類似度を、個々のハッシュ関数に対応する最小ハッシュ値に基づいて導出する類似度導出手段とを備えることを特徴とする。
本発明による類似度導出方法は、コンピュータが、複数の集合に含まれる各集合の個々の要素に対して複数のハッシュ関数を適用して得られる複数のハッシュ値を求める際に、その複数のハッシュ関数のうちの所定のハッシュ関数によって得られるハッシュ値が一致し、かつ、要素自体が一致する複数の要素に関しては、所定のハッシュ関数以外の各ハッシュ関数の計算の重複を排除し、各集合の個々の要素に対して複数のハッシュ値を求めるハッシュ値計算処理複数の集合に含まれるそれぞれの集合に関して、個々のハッシュ関数毎に、ハッシュ値の最小値である最小ハッシュ値を特定する最小ハッシュ値特定処理、および、複数の集合から得られる1組以上の集合のペアに関して、ペアをなす2つの集合の類似度を、個々のハッシュ関数に対応する最小ハッシュ値に基づいて導出する類似度導出処理を実行することを特徴とする。
本発明による類似度導出プログラムは、コンピュータに、複数の集合に含まれる各集合の個々の要素に対して複数のハッシュ関数を適用して得られる複数のハッシュ値を求める際に、その複数のハッシュ関数のうちの所定のハッシュ関数によって得られるハッシュ値が一致し、かつ、要素自体が一致する複数の要素に関しては、所定のハッシュ関数以外の各ハッシュ関数の計算の重複を排除し、各集合の個々の要素に対して複数のハッシュ値を求めるハッシュ値計算処理、複数の集合に含まれるそれぞれの集合に関して、個々のハッシュ関数毎に、ハッシュ値の最小値である最小ハッシュ値を特定する最小ハッシュ値特定処理、および、複数の集合から得られる1組以上の集合のペアに関して、ペアをなす2つの集合の類似度を、個々のハッシュ関数に対応する最小ハッシュ値に基づいて導出する類似度導出処理を実行させる。
本発明によれば、集合の類似度を導出する際に、ハッシュ値の計算量を低減させることができる。
本発明の第1の実施形態の類似度導出システムの例を示すブロック図である。 第1の実施形態の処理経過の例を示すフローチャートである。 本発明の第2の実施形態の類似度導出システムの例を示すブロック図である。 各集合A,Bの個々の要素毎に得られた第1のハッシュ値の例を示す模式図である。 図4に示す集合A,Bから得られる全体集合を示す模式図である。 インデックス集合の例を示す模式図である。 図5に示す全体集合に属する各要素に対して、第2のハッシュ値計算部54が計算した各ハッシュ関数h2,・・・,hmに対応するハッシュ値の例を示す模式図である。 各集合の個々の要素に対して決定された、複数のハッシュ関数h1,h2,・・・,hmに対応する複数のハッシュ値の例を示す模式図である。 集合A、集合Bに関してそれぞれ、ハッシュ関数毎に特定された最小ハッシュ値を示す模式図である。 第2の実施形態の処理経過の例を示すフローチャートである。 ステップS3の動作の具体例の一例を示すフローチャートである。 本発明の第3の実施形態の類似度導出システムの例を示すブロック図である。 第3の実施形態の処理経過の例を示すフローチャートである。 第3の実施形態の処理経過の例を示すフローチャートである。 複数の集合のうちの1つの集合の例を示す模式図である。 最初にステップS73を実行した後に得られたハッシュ値の例を示す模式図である。 最初にステップS76を実行した後に得られたハッシュ値の例を示す模式図である。 ステップS77で未選択の要素がないと判定されるまでに得られたハッシュ値の例を示す模式図である。 複数の集合のうちの1つの集合の例を示す模式図である。 集合Bの要素”mountain”が選択され、ステップS73を実行した後に得られたハッシュ値の例を示す模式図である。 集合Bの要素”mountain”を選択したときにおけるステップS75の実行後に得られているハッシュ値の例を示す模式図である。 各集合の各要素に対して求められた複数のハッシュ値の例を示す模式図である。 本発明の実施形態の類似度導出システム1に係るコンピュータの構成例を示す概略ブロック図である。
以下、本発明の実施形態を図面を参照して説明する。以下に示す各実施形態では、複複数の集合が、予め、各実施形態の類似度導出システムに入力されているものとする。
実施形態1.
第1の実施形態は、本発明の概要を示す実施形態である。より具体的な事項については、後述の第2の実施形態、第3の実施形態で説明する。
図1は、本発明の第1の実施形態の類似度導出システムの例を示すブロック図である。類似度導出システム1は、ハッシュ値計算部2と、最小ハッシュ値特定部3と、類似度導出部4とを備える。
ハッシュ値計算部2は、複数の集合に含まれる各集合の個々の要素に対して、複数のハッシュ関数を適用して得られる複数のハッシュ値を求める。ただし、このとき、ハッシュ値計算部2は、その複数のハッシュ関数のうちの所定のハッシュ関数によって得られるハッシュ値が一致し、かつ、要素自体が一致する複数の要素に関しては、所定のハッシュ関数以外の各ハッシュ関数の計算の重複を排除し、各集合の個々の要素に対して複数のハッシュ値を求める。
複数のハッシュ関数の中で値域が最も広いハッシュ関数を所定のハッシュ関数として定めることが好ましい。すなわち、所定のハッシュ関数は、複数のハッシュ関数の中で最も値域が広いハッシュ関数であることが好ましい。
最小ハッシュ値特定部3は、複数の集合に含まれるそれぞれの集合に関して、個々のハッシュ関数毎に、ハッシュ値の最小値である最小ハッシュ値を特定する。例えば、1つの集合Aに着目したとする。また、あるハッシュ関数に着目した場合、そのハッシュ関数に対応する、集合Aの要素数分のハッシュ値が得られている。最小ハッシュ値特定部3は、そのハッシュ関数に対応する最小ハッシュ値として、それらのハッシュ値の最小値を特定する。最小ハッシュ値特定部3は、他の各ハッシュ関数に関してもそれぞれ、同様に、最小ハッシュ値を特定する。最小ハッシュ値特定部3は、この処理を、複数の集合に含まれるそれぞれの集合に対して行う。この結果、集合毎に、個々のハッシュ関数に対応する最小ハッシュ値が定まる。
類似度導出部4は、複数の集合から得られる1組以上の集合のペアに関して、ペアをなす2つの集合の類似度を、個々のハッシュ関数に対応する最小ハッシュ値に基づいて導出する。例えば、類似度導出部4は、複数の集合から得られる全てのペア(集合のペア)に関して、ペアをなす2つの集合の類似度を算出してもよい。
また、類似度導出部4は、例えば、個々のハッシュ値に対応する最小ハッシュ値同士が一致している数を、ペアをなす2つの集合の類似度として定めてもよい。
ハッシュ値計算部2、最小ハッシュ値特定部3、および、類似度導出部4は、例えば、類似度導出プログラムに従って動作するコンピュータのCPU(Central Processing Unit )によって実現される。例えば、CPUが、コンピュータのプログラム記憶装置等のプログラム記録媒体から類似度導出プログラムを読み込み、その類似度導出プログラムに従って、ハッシュ値計算部2、最小ハッシュ値特定部3、および、類似度導出部4として動作すればよい。
図2は、第1の実施形態の処理経過の例を示すフローチャートである。なお、既に説明した事項については、適宜、説明を省略する。
まず、ハッシュ値計算部2が、所定のハッシュ関数によって得られるハッシュ値が一致し、かつ、要素自体が一致する複数の要素に関しては、所定のハッシュ関数以外の各ハッシュ関数の計算の重複を排除し、各集合の個々の要素に対して複数のハッシュ値を求める(ステップS1)。
次に、最小ハッシュ値特定部3が、複数の集合に含まれるそれぞれの集合に関して、個々のハッシュ関数毎に最小ハッシュ値を特定する(ステップS2)。
次に、類似度導出部4が、複数の集合から得られる1組以上の集合のペアに関して、ペアをなす2つの集合の類似度を導出する(ステップS3)。
本実施形態によれば、ハッシュ値計算部2は、複数の集合に含まれる各集合の個々の要素に対して複数のハッシュ値を求める際に、所定のハッシュ関数によって得られるハッシュ値が一致し、かつ、要素自体が一致する複数の要素に関しては、所定のハッシュ関数以外の各ハッシュ関数の計算の重複を排除する。従って、その複数の要素に対して、同一のハッシュ関数の計算が繰り返し行われることはない。よって、集合の類似度を導出する際に、ハッシュ値の計算量を低減させることができる。
実施形態2.
第2の実施形態は、第1の実施形態をより具体的に示した実施形態である。図3は、本発明の第2の実施形態の類似度導出システムの例を示すブロック図である。本実施形態の類似度導出システム1も、ハッシュ値計算部2と、最小ハッシュ値特定部3と、類似度導出部4とを備える。最小ハッシュ値特定部3および類似度導出部4は、第1の実施形態における最小ハッシュ値特定部3および類似度導出部4と同様である。
また、ハッシュ値計算部2は、第1のハッシュ値計算部51と、全体集合生成部52と、インデックス情報生成部53と、第2のハッシュ値計算部54と、ハッシュ値決定部55とを備える。
第1のハッシュ値計算部51は、複数の集合に含まれる各集合の個々の要素に対して、複数のハッシュ関数のうちの所定のハッシュ関数を適用することによって、ハッシュ値を計算する。この所定のハッシュ関数によって得られるハッシュ値を第1のハッシュ値と記す。したがって、各集合の個々の要素毎に第1のハッシュ値が計算される。
以下では、説明を簡単にするために2つの集合A,Bに着目して説明するが、集合の数は3つ以上であってもよい。また、複数のハッシュ関数の数は、m個であり、個々のハッシュ関数をh1,h2,・・・,hmと記すこととする。そして、h1が、上記の所定のハッシュ関数であるものとする。
なお、複数のハッシュ関数の中から1つハッシュ関数を、予め所定の関数として定めておけばよい。このとき、複数のハッシュ関数の中で値域が最も広いハッシュ関数を所定のハッシュ関数として定めることが好ましい。すなわち、所定のハッシュ関数は、複数のハッシュ関数の中で最も値域が広いハッシュ関数であることが好ましい。本例では、ハッシュ関数h1の値域が、複数のハッシュ関数h1~hmの値域の中で最も広いものとする。この点は、前述の第1の実施形態や後述の第3の実施形態においても同様である。
図4は、各集合A,Bの個々の要素毎に得られた第1のハッシュ値の例を示す模式図である。図4に示すように、集合Aは4つ文字列を要素として持ち、集合Bは、3つの文字列を要素として持っているものとする。第1のハッシュ値計算部51は、これらの個々の要素に対して、所定のハッシュ関数h1によって、第1のハッシュ値を計算する。図4では、個々の要素の右側に示した値が、第1のハッシュ値である。
全体集合生成部52は、複数の集合に含まれる各集合の個々の要素のうち、第1のハッシュ値が一致し、かつ、要素自体が一致する複数の要素からは1つの要素だけを取り出すとともに、その複数の要素に該当しない各要素を取り出すことによって、重複なく全ての種類の要素を含む1つの集合を生成する。以下、この集合を全体集合と記す。
図5は、図4に示す集合A,Bから得られる全体集合を示す模式図である。図4に示すように、各集合の個々の要素のうち、第1のハッシュ値が一致し、かつ、要素自体が一致する複数の要素は、集合Aに属する”mountain”と、集合Bに属する”mountain”である。この2つの要素は、第1のハッシュ値が“666”で一致し、かつ、要素自体が”mountain”で一致している。全体集合生成部52は、この2つの要素から1つの要素だけを取り出す。このとき、集合Aに属する”mountain”を取りだしてもよく、あるいは、集合Bに属する”mountain”を取りだしてもよい。そして、全体集合生成部52は、第1のハッシュ値が一致し、かつ、要素自体が一致する複数の要素(集合Aに属する”mountain”、および、集合Bに属する”mountain”)に該当しない各要素(本例では、”the”,”highest”,”Fuji”,”room”,”view”)を取り出す。そして、全体集合生成部52は、取り出した各要素を含む1つの集合を、全体集合として生成する。本例では、図5に示すように、全体集合は、要素として、6個の文字列(”the”,”highest”,”mountain”,”Fuji”,”room”,”view”)を含む。全体集合生成部52は、前述のように集合A,Bから要素を取り出しているので、全体集合に属する要素に重複はなく、また、全体集合は、集合A,Bに属する全ての種類の要素を含んでいる。
インデックス情報生成部53は、複数の集合に含まれるどの集合のどの要素が全体集合のどの要素に該当するかを示すインデックス情報を生成する。
図6は、インデックス集合の例を示す模式図である。図6に例示するインデックス情報を生成する例を説明する。インデックス情報生成部53は、全体集合に属する各要素に対して識別情報を割り当てる。図6に示す例では、全体集合に属する各要素に対して“1”から“6”の識別情報が割り当てられている。そして、インデックス情報生成部53は、複数の集合に含まれる各集合の各要素毎に、その要素に該当する全体集合内の要素の識別情報を定めた情報を、インデックス情報として生成する。図6に示す例では、例えば、集合Aに属する要素”the”には、“1”というインデックス情報が定められている。このことは、集合Aに属する要素”the”が、全体集合内の要素のうちの、識別要素“1”が割り当てられた要素に該当することを示している。また、図6に示す例では、集合Aに属する要素”mountain”、および、集合Bに属する要素”mountain”は、いずれも、全体集合内の要素のうちの、識別要素“3”が割り当てられた要素に該当することを示している。すなわち、集合Aに属する要素”mountain”、および、集合Bに属する要素”mountain”は、全体集合内の同一の要素に該当することを示している。
第2のハッシュ値計算部54は、全体集合に属する各要素に対して、複数のハッシュ関数(本例では、ハッシュ関数h1,h2,・・・,hm)のうちの所定のハッシュ関数(本例では、ハッシュ関数h1)以外の各ハッシュ関数(すなわち、各ハッシュ関数h2,・・・,hm)を適用する。そして、第2のハッシュ値計算部54は、全体集合に属する各要素に対して、その各ハッシュ関数h2,・・・,hmに対応するハッシュ値をそれぞれ計算する。
図7は、図5に示す全体集合に属する各要素に対して、第2のハッシュ値計算部54が計算した各ハッシュ関数h2,・・・,hmに対応するハッシュ値の例を示す模式図である。
ハッシュ値決定部55は、インデックス情報に基づいて、複数の集合に含まれる各集合(本例では、集合A,B)の個々の要素の第1のハッシュ値(図4参照)と、その第1のハッシュ値に対応する、第2のハッシュ値計算部54によって計算されたハッシュ値(図7参照)とを組み合わせることことによって、各集合の個々の要素に対して、複数のハッシュ関数h1,h2,・・・,hmに対応する複数のハッシュ値を決定する。
本例では、各集合の各要素毎に、その要素に該当する全体集合内の要素の識別情報を定めた情報を、インデックス情報としている(図6参照)。また、第1のハッシュ値計算部51によって、各集合の各要素に対応付けて第1のハッシュ値が計算されている(図4参照)。さらに、第2のハッシュ値計算部54によって、全体集合に属する各要素に対して、所定のハッシュ関数h1以外の各ハッシュ関数h2,・・・,hmに対応するハッシュ値が計算されている。従って、ハッシュ値決定部55は、インデックス情報に基づいて、各集合の個々の要素の第1のハッシュ値と、第2のハッシュ値計算部54によって計算された各ハッシュ関数h2,・・・,hmに対応するハッシュ値を組み合わせることができる。そして、その結果、ハッシュ値決定部55は、各集合の個々の要素に対して、複数のハッシュ関数h1,h2,・・・,hmに対応する複数のハッシュ値を決定することができる。
図8は、各集合(本例では、集合A,B)の個々の要素に対して決定された、複数のハッシュ関数h1,h2,・・・,hmに対応する複数のハッシュ値の例を示す模式図である。
このように、第1のハッシュ値計算部51、全体集合生成部52、インデックス情報生成部53、第2のハッシュ値計算部54、および、ハッシュ値決定部55の動作によって、各集合の個々の要素に対して、複数のハッシュ関数を適用して得られる複数のハッシュ値を求める。また、このとき、第1のハッシュ値が一致し、かつ、要素自体が一致する複数の要素(本例では、集合Aに属する”mountain”、および、集合Bに属する”mountain”)については、所定のハッシュ関数h1以外のハッシュ関数h2,・・・,hmの計算を重複して行っていない。具体的には、”mountain”に対する、ハッシュ関数h2,・・・,hmに対応するハッシュ値の計算は、第2のハッシュ値計算部54がそれぞれ1回行っているのみである。
最小ハッシュ値特定部3は、複数の集合に含まれるそれぞれの集合(本例では、集合A、集合B)に関して、個々のハッシュ関数毎に最小ハッシュ値を特定する。図9は、集合A、集合Bに関してそれぞれ、ハッシュ関数毎に特定された最小ハッシュ値を示す模式図である。例えば、図9に示す例では、集合Aにおけるハッシュ関数h1の最小ハッシュ値は12であり、ハッシュ関数h2の最小ハッシュ値は56である。このように、最小ハッシュ値特定部3は、集合Aに関して、ハッシュ関数毎に最小ハッシュ値を特定する。さらに、最小ハッシュ値特定部3は、他の各集合に関しても、同様に、ハッシュ関数毎に最小ハッシュ値を特定する。
図4から図9では、複数の集合が2つの集合A,Bである場合を例にして説明した。類似度導出システム1に与えられる集合が3つ以上の場合であっても、第1のハッシュ値計算部51、全体集合生成部52、インデックス情報生成部53、第2のハッシュ値計算部54、ハッシュ値決定部55、および、最小ハッシュ値特定部3の動作は、上記の動作と同様である。
第1のハッシュ値計算部51、全体集合生成部52、インデックス情報生成部53、第2のハッシュ値計算部54、ハッシュ値決定部55を含むハッシュ値計算部2は、例えば、類似度導出プログラムに従って動作するコンピュータのCPUによって実現される。例えば、CPUが、コンピュータのプログラム記憶装置等のプログラム記録媒体から類似度導出プログラムを読み込み、その類似度導出プログラムに従って、第1のハッシュ値計算部51、全体集合生成部52、インデックス情報生成部53、第2のハッシュ値計算部54、ハッシュ値決定部55を含むハッシュ値計算部2として動作すればよい。
次に、第2の実施形態の処理経過の例を示す。なお、既に説明した事項については、適宜、説明を省略する。図10は、第2の実施形態の処理経過の例を示すフローチャートである。また、上記の例と同様に、複数のハッシュ関数をh1,h2,・・・,hmとし、h1が所定のハッシュ関数であるものとする。
まず、第1のハッシュ値計算部51が、複数の集合に含まれる各集合の個々の要素に対して所定のハッシュ関数h1を適用することによって、第1のハッシュ値を計算する(ステップS51)。この結果、各集合の個々の要素毎に、第1のハッシュ値が得られる。
次に、全体集合生成部52が、全体集合を生成する(ステップS52)。ステップS52において、全体集合生成部52は、各集合の個々の要素のうち、第1のハッシュ値が一致し、かつ、要素自体が一致する複数の要素からは1つの要素だけを取り出すとともに、その複数の要素に該当しない各要素を取り出し、取り出した各要素を含む1つの集合を全体集合とすればよい。
次に、インデックス情報生成部53が、インデックス情報を生成する(ステップS53)。例えば、インデックス情報生成部53は、全体集合に属する各要素に対して識別情報を割り当てる。そして、インデックス情報生成部53は、複数の集合に含まれる各集合の各要素毎に、その要素に該当する全体集合内の要素の識別情報を定めた情報を、インデックス情報として生成する。
次に、第2のハッシュ値計算部54が、全体集合に属する各要素に対して、所定のハッシュ関数h1以外の各ハッシュ関数h2,・・・,hmに対応するハッシュ値をそれぞれ計算する(ステップS54)。
次に、ハッシュ値決定部55が、インデックス情報に基づいて、各集合の個々の要素の第1のハッシュ値と、ステップS54で計算された各ハッシュ関数h2,・・・,hmに対応するハッシュ値とを組み合わせることによって、各集合の個々の要素に対して、複数のハッシュ関数h1,h2,・・・,hmに対応する複数のハッシュ値を決定する(ステップS55)。ステップS5の結果、例えば、図8に例示するように、各集合の個々の要素に対して、複数のハッシュ関数h1,h2,・・・,hmに対応する複数のハッシュ値が得られる。
ステップS51~ステップS55は、第1の実施形態のステップS1をより具体化した処理の一例である。
ステップS55の次に、最小ハッシュ値特定部3が、複数の集合に含まれるそれぞれの集合に関して、個々のハッシュ関数毎に最小ハッシュ値を特定する(ステップS2)。ステップS2の結果、例えば、図9に例示するように、各集合に関して、ハッシュ関数毎に最小ハッシュ値が特定される。
次に、類似度導出部4が、複数の集合から得られる1組以上の集合のペアに関して、ペアをなす2つの集合の類似度を導出する(ステップS3)。
ステップS2,S3は、第1の実施形態におけるステップS2,S3と同様である。
以下、ステップS3についてより具体的に説明する。図11は、ステップS3の動作の具体例の一例を示すフローチャートである。なお、類似度導出システム1に与えられる集合の数は、2つであっても、3つ以上であってもよい。以下の説明では、類似度導出システム1が、与えられた集合から得られる全てのペア(集合のペア)に関して、ペアをなす2つの集合の類似度を算出する場合を示す。ただし、類似度導出システム1に与えられた集合から得られる全てのペアのうち、例えば、類似度導出システム1の操作者によって指定されたペアに関してのみ、類似度を算出してもよい。
類似度導出部4は、複数の集合から、集合のペアを1つ取り出す(ステップS61)。1つのペアは、2つの集合からなる。また、ステップS61では、類似度導出部4は、まだ選択されていないペアを1つ取り出す。
類似度導出部4は、ステップS61で選択されたペアをなす2つの集合の類似度を、その2つの集合における個々のハッシュ関数に対応する最小ハッシュ値に基づいて導出する(ステップS62)。例えば、類似度導出部4は、ペアをなす2つの集合に関して、個々のハッシュ値に対応する最小ハッシュ値同士が一致している数(以下、一致数と記す。)を、ペアをなす2つの集合の類似度として定めてもよい。また、例えば、類似度導出部4は、ハッシュ関数の数に対する一致数の割合を、類似度として定めてもよい。
ステップS62の次に、類似度導出部4は、未選択の集合のペアが存在するか否かを判定する(ステップS63)。
未選択の集合のペアが存在するならば(ステップS63のYes)、類似度導出部4は、ステップS61以降の動作を繰り返す。
未選択の集合のペアが存在しないならば(ステップS63のNo)、全てのペアに関して、ペアをなす2つの集合の類似度が導出されていることになるので、その時点で処理を終了する。
本実施形態によれば、全体集合生成部52が、各集合の個々の要素のうち、第1のハッシュ値が一致し、かつ、要素自体が一致する複数の要素からは1つの要素だけを取り出すとともに、その複数の要素に該当しない各要素を取り出し、取り出した各要素を含む1つの全体集合を生成する。そして、第2のハッシュ値計算部54が、全体集合に属する各要素に対して、所定のハッシュ関数h1以外の各ハッシュ関数h2,・・・,hmに対応するハッシュ値をそれぞれ計算する。従って、第1のハッシュ値が一致し、かつ、要素自体が一致する複数の要素については、第2のハッシュ値計算部54は、ハッシュ関数h2,・・・,hmに対応するハッシュ値の計算を1回のみ行う。そのような複数の要素それぞれに対して、ハッシュ関数h2,・・・,hmに対応するハッシュ値の計算を行っても、同一の計算を行うことになり、同一のハッシュ値が得られるが、上記のように、第2のハッシュ値計算部54は、そのような複数の要素については、ハッシュ関数h2,・・・,hmに対応するハッシュ値の計算を1回のみ行う。従って、同一の計算を重複して行うことがなく、集合の類似度を導出する際に、ハッシュ値の計算量を低減させることができる。
実施形態3.
第3の実施形態は、第1の実施形態をより具体的に示した実施形態である。図12は、本発明の第3の実施形態の類似度導出システムの例を示すブロック図である。本実施形態の類似度導出システム1も、ハッシュ値計算部2と、最小ハッシュ値特定部3と、類似度導出部4とを備える。最小ハッシュ値特定部3および類似度導出部4は、第1の実施形態および第2の実施形態における最小ハッシュ値特定部3および類似度導出部4と同様である。
また、本実施の形態においても、第2の実施形態と同様に、複数のハッシュ関数の数は、m個であり、個々のハッシュ関数をh1,h2,・・・,hmと記すこととする。そして、h1が、所定のハッシュ関数であるものとする。
既に説明したように、複数のハッシュ関数の中で値域が最も広いハッシュ関数を所定のハッシュ関数として定めることが好ましい。すなわち、所定のハッシュ関数は、複数のハッシュ関数の中で最も値域が広いハッシュ関数であることが好ましい。本例では、ハッシュ関数h1の値域が、複数のハッシュ関数h1~hmの値域の中で最も広いものとする。
また、所定のハッシュ関数h1で計算されたハッシュ値を、第1のハッシュ値と記す。
第3の実施形態のハッシュ値計算部2は、集合選択部61と、要素選択部62と、第1のハッシュ値計算部63と、判定部64と、第2のハッシュ値計算部65とを備える。なお、第3の実施形態における第1のハッシュ値計算部63および第2のハッシュ値計算部65の動作は、第2の実施形態における第1のハッシュ値計算部51および第2のハッシュ値計算部54の動作とは異なる。
集合選択部61は、複数の集合から、順次、1つの集合を選択する。
要素選択部62は、集合選択部61によって選択された集合から、順次、1つの要素を選択する。
第1のハッシュ値計算部63は、要素選択部62によって選択された要素に所定のハッシュ関数を適用することによって、その選択された要素の第1のハッシュ値を計算する。
判定部64は、要素選択部62によって選択された要素と、第1のハッシュ値が一致し、かつ、要素自体が一致する要素が既に選択されているか否かを判定する。
以下、要素選択部62によって選択された要素と、第1のハッシュ値が一致し、かつ、要素自体が一致する要素を、一致要素と記す。
第2のハッシュ値計算部65は、一致要素が既に選択されている場合に、要素選択部62によって選択された要素の所定のハッシュ関数h1以外の各ハッシュ関数h2,・・・,hmに対応するハッシュ値を、その一致要素の各ハッシュ関数h2,・・・,hmに対応するハッシュ値と同一であると定める。
また、第2のハッシュ値計算部65は、一致要素が 選択されていない場合に、要素選択部62によって選択された要素の所定のハッシュ関数h1以外の各ハッシュ関数h2,・・・,hmに対応するハッシュ値を計算する。
集合選択部61、要素選択部62、第1のハッシュ値計算部63、判定部64、第2のハッシュ値計算部65を含むハッシュ値計算部2は、例えば、類似度導出プログラムに従って動作するコンピュータのCPUによって実現される。例えば、CPUが、コンピュータのプログラム記憶装置等のプログラム記録媒体から類似度導出プログラムを読み込み、その類似度導出プログラムに従って、集合選択部61、要素選択部62、第1のハッシュ値計算部63、判定部64、第2のハッシュ値計算部65を含むハッシュ値計算部2として動作すればよい。
次に、第3の実施形態の処理経過の例を示す。なお、既に説明した事項については、適宜、説明を省略する。図13および図14は、第3の実施形態の処理経過の例を示すフローチャートである。
まず、集合選択部61が、複数の集合から1つの集合を選択する(ステップS71)。ステップS71で、集合選択部61は、まだ選択されていない集合を1つ選択する。
本例では、図15に示す集合が選択されたものとする。以下、図15に示す集合を集合Aと記す。なお、図15は、複数の集合のうちの1つの集合の例を示す模式図である。
次に、要素選択部62が、ステップS71で選択された集合から1つの要素を選択する(ステップS72)。ステップS72で、要素選択部62は、まだ選択されていない要素を1つ選択する。ここでは、集合Aから要素”the”を選択したものとする。
次に、第1のハッシュ値計算部63が、ステップS72で選択された要素に所定のハッシュ関数h1を適用することによって、その要素の第1のハッシュ値を計算する(ステップS73)。図16は、最初にステップS73を実行した後に得られたハッシュ値の例を示す模式図である。図16に示すように、この時点では、要素”the”の第1のハッシュ値が得られているが、他のハッシュ値は得られていない。
ステップS73の後に、判定部64は、ステップS72で選択された要素と、第1のハッシュ値が一致し、かつ、要素自体が一致する要素(すなわち、一致要素)が既に選択されているか否かを判定する(ステップS74)。
一致要素が既に選択されている場合(ステップS74のYes)、ステップS75に移行し、一致要素が選択されていない場合(ステップS74のNo)、ステップS76に移行する。本例では、集合Aの要素”the”は、1番目に選択された要素であり、一致要素は選択されていない。したがって、ステップS76に移行する。
ステップS76では、第2のハッシュ値計算部65が、ステップS72で選択された要素の所定のハッシュ関数h1以外の各ハッシュ関数h2,・・・,hmに対応するハッシュ値を計算する。図17は、最初にステップS76を実行した後に得られたハッシュ値の例を示す模式図である。図17に示すように、この時点では、要素”the”の複数のハッシュ関数h1,h2・・・,hmに対応するハッシュ値が得られている。
ステップS75またはステップS76の実行後には、要素選択部62が、選択されている集合の中に未選択の要素があるか否かを判定する(ステップS77)。本例では、選択されている集合Aの中に未選択の要素があると判定する(ステップS77のYes)。この場合、ステップS72以降の処理を繰り返す。
集合Aの要素は全て異なる要素であるので(図15参照)、集合Aを選択しているときにステップS74では、一致要素は選択されていないと判定され、ステップS76に移行する。図18は、ステップS77で未選択の要素がないと判定されるまでに得られたハッシュ値の例を示す模式図である。
ステップS77で、選択している集合の中に未選択の要素がないと判定した場合(ステップS77のNo)、ステップS78に移行する。ステップS78では、集合選択部61が、未選択の集合があるか否かを判定する。
未選択の集合があると判定した場合(ステップS78のYes)、ステップS71以降の処理を繰り返す。ここでは、まだ、図19に示す集合Bが選択されていないものとする。なお、図19は、複数の集合のうちの1つの集合の例を示す模式図である。
ステップS71で集合選択部61が集合Bを選択し、ステップS72で要素選択部62が集合Bの要素”room”を選択したとする。その後、ステップS73が実行される。この場合、要素”room”に応じた一致要素は選択されていないので(ステップS74のNo)、ステップS76に移行する。この結果、集合Bの要素”room” の複数のハッシュ関数h1,h2・・・,hmに対応するハッシュ値が得られる。
次に、ステップS72で、要素選択部62が、集合Bの要素”mountain”を選択したとする。すると、第1のハッシュ値計算部63は、集合Bの要素”mountain”に所定のハッシュ関数を適用することによって、その要素の第1のハッシュ値を計算する(ステップS73)。図20は、集合Bの要素”mountain”が選択され、ステップS73を実行した後に得られたハッシュ値の例を示す模式図である。
次に、判定部64は、ステップS72で選択された要素(ここでは、集合Bの要素”mountain”)と、第1のハッシュ値が一致し、かつ、要素自体が一致する要素(すなわち、一致要素)が既に選択されているか否かを判定する(ステップS74)。
この時点では、集合Bの要素”mountain”と、第1のハッシュ値が一致し、かつ、要素自体が一致する要素である「集合Aの要素”mountain”」が選択済みである(ステップS74のYes)。従って、ステップS75に移行する。なお、この場合、「集合Aの要素”mountain”」が一致要素に該当する。
ステップS75では、第2のハッシュ値計算部65は、ステップS72で選択された「集合Bの要素”mountain”」の所定のハッシュ関数h1以外の各ハッシュ関数h2,・・・,hmに対応するハッシュ値を、一致要素(集合Aの要素”mountain”)の各ハッシュ関数h2,・・・,hmに対応するハッシュ値と同一であると定める。図21は、集合Bの要素”mountain”を選択したときにおけるステップS75の実行後に得られているハッシュ値の例を示す模式図である。
未選択の要素”view”が存在するので(ステップS77のYes)、ステップS72で、要素選択部62が、集合Bの要素”view”を選択し、ステップS73以降の処理を繰り返す。この場合、要素”view”に応じた一致要素は選択されていないので(ステップS74のNo)、ステップS76に移行する。この結果、集合Bの要素”view” の複数のハッシュ関数h1,h2・・・,hmに対応するハッシュ値が得られる。
ここで、集合Bの要素は全て選択された状態になっているので(ステップS77のNo)、ステップS78に移行する。図22は、この時点で得られているハッシュ値の例を示す模式図である。
ステップS78で、判定部64が、未選択の集合がないと判定したとする(ステップS78のNo)。この場合、ステップS2(図14参照)に移行する。
ステップS2に移行するまでの処理(ステップS78で未選択の集合がないと判定するまでの処理)は、第1の実施形態のステップS1をより具体化した処理の一例である。
ステップS2では、最小ハッシュ値特定部3が、複数の集合に含まれるそれぞれの集合に関して、個々のハッシュ関数毎に最小ハッシュ値を特定する。本例では、複数の集合が、2つの集合A,Bであるとする。この場合、ステップS2の結果、第2の実施形態で示した図9に例示するように、各集合に関して、ハッシュ関数毎に最小ハッシュ値が特定される。
ステップS2の次に、類似度導出部4が、複数の集合から得られる1組以上の集合のペアに関して、ペアをなす2つの集合の類似度を導出する(ステップS3)。
ステップS2,S3は、第1の実施形態および第2の実施形態におけるステップS2,S3と同様である。
ステップS3のより具体的な動作の例については、第2の実施形態で図11を参照して説明したので、ここでは説明を省略する。
本実施形態によれば、判定部64が、ステップS72で選択された要素に応じた一致要素が既に選択済みであると判定した場合(ステップS74のYes)、ステップS75に移行する。一致要素の各ハッシュ関数h2,・・・,hmに対応するハッシュ値は、既に計算されている。そして、ステップS75において、第2のハッシュ値計算部65は、ステップS72で選択された要素の各ハッシュ関数h2,・・・,hmに対応するハッシュ値を、一致要素の各ハッシュ関数h2,・・・,hmに対応するハッシュ値と同一であると定める。ステップS72で選択された要素に応じた一致要素は、ステップS72で選択された要素と一致する。従って、ステップS75において、第2のハッシュ値計算部65は、ステップS72で選択された要素の各ハッシュ関数h2,・・・,hmに対応するハッシュ値を、一致要素の各ハッシュ関数h2,・・・,hmに対応するハッシュ値と同一であると定めることができる。そして、ステップS72で選択された要素に応じた一致要素が既に選択済みである場合に、ステップS75に移行する。その結果、既に計算された各ハッシュ関数h2,・・・,hmに対応するハッシュ値を再度計算する必要がない。よって、集合の類似度を導出する際に、ハッシュ値の計算量を低減させることができる。
次に、各実施形態の変形例について説明する。この変形例では、複数の集合に含まれる各集合の各要素を、複数のハッシュ関数h1,h2,・・・,hmとは別のハッシュ関数(h0と記す。)によって、ハッシュ値(数値)に変換する。このハッシュ関数h0を数値化ハッシュ関数と記す。例えば、各集合の各要素が文字列である場合、それぞれの文字列に数値化ハッシュ関数h0を適用して、各集合の各要素を文字列から数値に変換する。
そして、変換後の各要素を、各集合の各要素として、上記の第1の実施形態、第2の実施形態、第3の実施形態を適用してもよい。文字列に対して複数のハッシュ関数のハッシュ値を計算する計算量よりも、数値に対して複数のハッシュ関数のハッシュ値を計算する計算量の方が少ない。従って、上記のように、各集合の各要素を文字列から数値に変換することで計算量を少なくすることができる。
ただし、数値化ハッシュ関数h0による変換後の各要素は、数値である。この場合、第1の実施形態のステップS1では、ハッシュ値計算部2は、数値化ハッシュ関数h0による変換後のハッシュ値が一致する複数の要素に関しては、複数のハッシュ関数の計算の重複を排除し、各集合の個々の要素に対して複数のハッシュ値を求めればよい。
また、本変形例を第2の実施形態に適用する場合には、第1のハッシュ値計算部51が、数値化ハッシュ関数h0を用いて、各集合の各要素を数値に変換する。そして、全体集合生成部52は、各集合の個々の要素(変換後の要素)のうち、数値化ハッシュ関数h0による変換後のハッシュ値が一致する複数の要素からは1つの要素だけを取り出すとともに、その複数の要素に該当しない各要素を取り出すことによって、重複なく全ての種類の要素を1つ含む1つの全体集合を生成すればよい。また、この場合、第2のハッシュ値計算部54は、全体集合に属する各要素に対して、複数のハッシュ関数h1,h2,・・・,hmに対応するハッシュ値をそれぞれ計算する。ハッシュ値決定部55は、インデックス情報に基づいて、各集合の個々の要素に対して、複数のハッシュ関数h1,h2,・・・,hmに対応するハッシュ値を特定する。
また、本変形例を第3の実施形態に適用する場合には、ステップS73において、第1のハッシュ値計算部63が、ステップS72で選択された要素に数値化ハッシュ関数h0を適用して、その要素を数値の要素に変換する。ステップS74では、判定部64は、数値化ハッシュ関数h0で変換された要素と一致する要素を一致要素とし、一致要素が既に得られているか否かを判定すればよい。そして、一致要素が得られていない場合、ステップS76で、第2のハッシュ値計算部65は、変換後の要素に対して、複数のハッシュ関数h1,h2,・・・,hmを適用することによって、複数のハッシュ関数h1,h2,・・・,hmに対応する各ハッシュ値を計算する。また、一致要素が得られている場合、ステップS75で、第2のハッシュ値計算部65は、変換後の要素の複数のハッシュ関数h1,h2,・・・,hmに対応する各ハッシュ値を、一致要素の複数のハッシュ関数h1,h2,・・・,hmに対応する各ハッシュ値と同一であると定める。
図23は、本発明の実施形態の類似度導出システム1に係るコンピュータの構成例を示す概略ブロック図である。コンピュータ1000は、CPU1001と、主記憶装置1002と、補助記憶装置1003と、インタフェース1004とを備える。
本発明の各実施形態の類似度導出システム1は、例えば、コンピュータ1000によって実現される。類似度導出システム1の動作は、類似度導出プログラムの形式で補助記憶装置1003に記憶されている。CPU1001は、その類似度導出プログラムを読み出し、類似度導出プログラムを主記憶装置1002に展開し、その類似度導出プログラムに従って、上記の各実施形態で説明した処理を実行する。
補助記憶装置1003は、一時的でない有形の媒体の例である。一時的でない有形の媒体の他の例として、インタフェース1004を介して接続される磁気ディスク、光磁気ディスク、CD-ROM(Compact Disk Read Only Memory )、DVD-ROM(Digital Versatile Disk Read Only Memory )、半導体メモリ等が挙げられる。また、プログラムが通信回線によってコンピュータ1000に配信される場合、配信を受けたコンピュータ1000がそのプログラムを主記憶装置1002に展開し、そのプログラムに従って上記の実施形態で説明した処理を実行してもよい。
また、各構成要素の一部または全部は、汎用または専用の回路(circuitry )、プロセッサ等やこれらの組合せによって実現されてもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各構成要素の一部または全部は、上述した回路等とプログラムとの組合せによって実現されてもよい。
各構成要素の一部または全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
上記の本発明の実施形態は、以下の付記のようにも記載され得るが、以下に限定されるわけではない。
(付記1)
複数の集合に含まれる各集合の個々の要素に対して複数のハッシュ関数を適用して得られる複数のハッシュ値を求める際に、前記複数のハッシュ関数のうちの所定のハッシュ関数によって得られるハッシュ値が一致し、かつ、要素自体が一致する複数の要素に関しては、前記所定のハッシュ関数以外の各ハッシュ関数の計算の重複を排除し、前記各集合の個々の要素に対して前記複数のハッシュ値を求めるハッシュ値計算手段と、
前記複数の集合に含まれるそれぞれの集合に関して、個々のハッシュ関数毎に、ハッシュ値の最小値である最小ハッシュ値を特定する最小ハッシュ値特定手段と、
前記複数の集合から得られる1組以上の集合のペアに関して、ペアをなす2つの集合の類似度を、個々のハッシュ関数に対応する最小ハッシュ値に基づいて導出する類似度導出手段とを備える
ことを特徴とする類似度導出システム。
(付記2)
前記ハッシュ値計算手段は、
前記各集合の個々の要素に対して前記所定のハッシュ関数を適用することによって第1のハッシュ値を計算する第1のハッシュ値計算手段と、
前記各集合の個々の要素のうち、前記第1のハッシュ値が一致し、かつ、要素自体が一致する複数の要素からは1つの要素だけを取り出すとともに、前記複数の要素に該当しない各要素を取り出すことによって、重複なく全ての種類の要素を含む1つの集合である全体集合を生成する全体集合生成手段と、
前記複数の集合に含まれるどの集合のどの要素が前記全体集合のどの要素に該当するかを示すインデックス情報を生成するインデックス情報生成手段と、
前記全体集合に属する各要素に対して、前記複数のハッシュ関数のうちの前記所定のハッシュ関数以外の各ハッシュ関数を適用することによって、前記各ハッシュ関数に対応するハッシュ値を計算する第2のハッシュ値計算手段と、
前記インデックス情報に基づいて、前記各集合の個々の要素の前記第1のハッシュ値と、当該第1のハッシュ値に対応する、前記第2のハッシュ値計算手段によって計算されたハッシュ値とを組み合わせることによって、前記各集合の個々の要素に対して、前記複数のハッシュ関数に対応する複数のハッシュ値を決定するハッシュ値決定手段とを含む
付記1に記載の類似度導出システム。
(付記3)
前記ハッシュ値計算手段は、
前記複数の集合から、順次、1つの集合を選択する集合選択手段と、
選択された集合から、順次、1つの要素を選択する要素選択手段と、
選択された要素に前記所定のハッシュ関数を適用することによって前記選択された要素の第1のハッシュ値を計算する第1のハッシュ値計算手段と、
前記選択された要素と、第1のハッシュ値が一致し、かつ、要素自体が一致する要素である一致要素が既に選択されているか否かを判定する判定手段と、
前記一致要素が既に選択されている場合に、前記選択された要素の前記所定のハッシュ関数以外の各ハッシュ関数に対応するハッシュ値を、前記一致要素の前記各ハッシュ関数に対応するハッシュ値と同一であると定め、
前記一致要素が選択されていない場合に、前記選択された要素の前記所定のハッシュ関数以外の各ハッシュ関数に対応するハッシュ値を計算する第2のハッシュ値計算手段とを含む
付記1に記載の類似度導出システム。
(付記4)
前記所定のハッシュ関数は、前記複数のハッシュ関数の中で最も値域が広いハッシュ関数である
付記1から付記3のうちのいずれか1項に記載の類似度導出システム。
(付記5)
前記類似度導出手段は、
個々のハッシュ関数に対応する最小ハッシュ値同士が一致している数を、ペアをなす2つの集合の類似度として定める
付記1から付記4のうちのいずれか1項に記載の類似度導出システム。
(付記6)
複数の集合に含まれる各集合の個々の要素に対して複数のハッシュ関数を適用して得られる複数のハッシュ値を求める際に、前記複数のハッシュ関数のうちの所定のハッシュ関数によって得られるハッシュ値が一致し、かつ、要素自体が一致する複数の要素に関しては、前記所定のハッシュ関数以外の各ハッシュ関数の計算の重複を排除し、前記各集合の個々の要素に対して前記複数のハッシュ値を求めるハッシュ値計算処理と、
前記複数の集合に含まれるそれぞれの集合に関して、個々のハッシュ関数毎に、ハッシュ値の最小値である最小ハッシュ値を特定する最小ハッシュ値特定処理と、
前記複数の集合から得られる1組以上の集合のペアに関して、ペアをなす2つの集合の類似度を、個々のハッシュ関数に対応する最小ハッシュ値に基づいて導出する類似度導出処理とを含む
ことを特徴とする類似度導出方法。
(付記7)
前記ハッシュ値計算処理は、
前記各集合の個々の要素に対して前記所定のハッシュ関数を適用することによって第1のハッシュ値を計算する第1のハッシュ値計算処理と、
前記各集合の個々の要素のうち、前記第1のハッシュ値が一致し、かつ、要素自体が一致する複数の要素からは1つの要素だけを取り出すとともに、前記複数の要素に該当しない各要素を取り出すことによって、重複なく全ての種類の要素を含む1つの集合である全体集合を生成する全体集合生成処理と、
前記複数の集合に含まれるどの集合のどの要素が前記全体集合のどの要素に該当するかを示すインデックス情報を生成するインデックス情報生成処理と、
前記全体集合に属する各要素に対して、前記複数のハッシュ関数のうちの前記所定のハッシュ関数以外の各ハッシュ関数を適用することによって、前記各ハッシュ関数に対応するハッシュ値を計算する第2のハッシュ値計算処理と、
前記インデックス情報に基づいて、前記各集合の個々の要素の前記第1のハッシュ値と、当該第1のハッシュ値に対応する、前記第2のハッシュ値計算処理で計算されたハッシュ値とを組み合わせることによって、前記各集合の個々の要素に対して、前記複数のハッシュ関数に対応する複数のハッシュ値を決定するハッシュ値決定処理とを含む
付記6に記載の類似度導出方法。
(付記8)
前記ハッシュ値計算処理は、
前記複数の集合から、順次、1つの集合を選択する集合選択処理と、
選択された集合から、順次、1つの要素を選択する要素選択処理と、
選択された要素に前記所定のハッシュ関数を適用することによって前記選択された要素の第1のハッシュ値を計算する第1のハッシュ値計算処理と、
前記選択された要素と、第1のハッシュ値が一致し、かつ、要素自体が一致する要素である一致要素が既に選択されているか否かを判定する判定処理と、
前記一致要素が既に選択されている場合に、前記選択された要素の前記所定のハッシュ関数以外の各ハッシュ関数に対応するハッシュ値を、前記一致要素の前記各ハッシュ関数に対応するハッシュ値と同一であると定め、
前記一致要素が選択されていない場合に、前記選択された要素の前記所定のハッシュ関数以外の各ハッシュ関数に対応するハッシュ値を計算する第2のハッシュ値計算処理とを含む
付記6に記載の類似度導出方法。
(付記9)
コンピュータに、
複数の集合に含まれる各集合の個々の要素に対して複数のハッシュ関数を適用して得られる複数のハッシュ値を求める際に、前記複数のハッシュ関数のうちの所定のハッシュ関数によって得られるハッシュ値が一致し、かつ、要素自体が一致する複数の要素に関しては、前記所定のハッシュ関数以外の各ハッシュ関数の計算の重複を排除し、前記各集合の個々の要素に対して前記複数のハッシュ値を求めるハッシュ値計算処理、
前記複数の集合に含まれるそれぞれの集合に関して、個々のハッシュ関数毎に、ハッシュ値の最小値である最小ハッシュ値を特定する最小ハッシュ値特定処理、および、
前記複数の集合から得られる1組以上の集合のペアに関して、ペアをなす2つの集合の類似度を、個々のハッシュ関数に対応する最小ハッシュ値に基づいて導出する類似度導出処理
を実行させるための類似度導出プログラムを記録したコンピュータ読取可能な記録媒体。
(付記10)
前記コンピュータに、
前記ハッシュ値計算処理で、
前記各集合の個々の要素に対して前記所定のハッシュ関数を適用することによって第1のハッシュ値を計算する第1のハッシュ値計算処理、
前記各集合の個々の要素のうち、前記第1のハッシュ値が一致し、かつ、要素自体が一致する複数の要素からは1つの要素だけを取り出すとともに、前記複数の要素に該当しない各要素を取り出すことによって、重複なく全ての種類の要素を含む1つの集合である全体集合を生成する全体集合生成処理、
前記複数の集合に含まれるどの集合のどの要素が前記全体集合のどの要素に該当するかを示すインデックス情報を生成するインデックス情報生成処理、
前記全体集合に属する各要素に対して、前記複数のハッシュ関数のうちの前記所定のハッシュ関数以外の各ハッシュ関数を適用することによって、前記各ハッシュ関数に対応するハッシュ値を計算する第2のハッシュ値計算処理、および、
前記インデックス情報に基づいて、前記各集合の個々の要素の前記第1のハッシュ値と、当該第1のハッシュ値に対応する、前記第2のハッシュ値計算処理で計算されたハッシュ値とを組み合わせることによって、前記各集合の個々の要素に対して、前記複数のハッシュ関数に対応する複数のハッシュ値を決定するハッシュ値決定処理を実行させる
類似度導出プログラムを記録した付記9に記載のコンピュータ読取可能な記録媒体。
(付記11)
前記コンピュータに、
前記ハッシュ値計算処理で、
前記複数の集合から、順次、1つの集合を選択する集合選択処理、
選択された集合から、順次、1つの要素を選択する要素選択処理、
選択された要素に前記所定のハッシュ関数を適用することによって前記選択された要素の第1のハッシュ値を計算する第1のハッシュ値計算処理、
前記選択された要素と、第1のハッシュ値が一致し、かつ、要素自体が一致する要素である一致要素が既に選択されているか否かを判定する判定処理、および、
前記一致要素が既に選択されている場合に、前記選択された要素の前記所定のハッシュ関数以外の各ハッシュ関数に対応するハッシュ値を、前記一致要素の前記各ハッシュ関数に対応するハッシュ値と同一であると定め、
前記一致要素が選択されていない場合に、前記選択された要素の前記所定のハッシュ関数以外の各ハッシュ関数に対応するハッシュ値を計算する第2のハッシュ値計算処理を実行させる
類似度導出プログラムを記録した付記9に記載のコンピュータ読取可能な記録媒体。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
産業上の利用の可能性
本発明は、集合同士の類似度を導出する類似度導出システムに好適に適用される。
1 類似度導出システム
2 ハッシュ値計算部
3 最小ハッシュ値特定部
4 類似度導出部
51 第1のハッシュ値計算部
52 全体集合生成部
53 インデックス情報生成部
54 第2のハッシュ値計算部
55 ハッシュ値決定部
61 集合選択部
62 要素選択部
63 第1のハッシュ値計算部
64 判定部
65 第2のハッシュ値計算部

Claims (10)

  1. 複数の集合に含まれる各集合の個々の要素に対して複数のハッシュ関数を適用して得られる複数のハッシュ値を求める際に、前記複数のハッシュ関数のうちの所定のハッシュ関数によって得られるハッシュ値が一致し、かつ、要素自体が一致する複数の要素に関しては、前記所定のハッシュ関数以外の各ハッシュ関数の計算の重複を排除し、前記各集合の個々の要素に対して前記複数のハッシュ値を求めるハッシュ値計算手段と、
    前記複数の集合に含まれるそれぞれの集合に関して、個々のハッシュ関数毎に、ハッシュ値の最小値である最小ハッシュ値を特定する最小ハッシュ値特定手段と、
    前記複数の集合から得られる1組以上の集合のペアに関して、ペアをなす2つの集合の類似度を、個々のハッシュ関数に対応する最小ハッシュ値に基づいて導出する類似度導出手段とを備える
    ことを特徴とする類似度導出システム。
  2. 前記ハッシュ値計算手段は、
    前記各集合の個々の要素に対して前記所定のハッシュ関数を適用することによって第1のハッシュ値を計算する第1のハッシュ値計算手段と、
    前記各集合の個々の要素のうち、前記第1のハッシュ値が一致し、かつ、要素自体が一致する複数の要素からは1つの要素だけを取り出すとともに、前記複数の要素に該当しない各要素を取り出すことによって、重複なく全ての種類の要素を含む1つの集合である全体集合を生成する全体集合生成手段と、
    前記複数の集合に含まれるどの集合のどの要素が前記全体集合のどの要素に該当するかを示すインデックス情報を生成するインデックス情報生成手段と、
    前記全体集合に属する各要素に対して、前記複数のハッシュ関数のうちの前記所定のハッシュ関数以外の各ハッシュ関数を適用することによって、前記各ハッシュ関数に対応するハッシュ値を計算する第2のハッシュ値計算手段と、
    前記インデックス情報に基づいて、前記各集合の個々の要素の前記第1のハッシュ値と、当該第1のハッシュ値に対応する、前記第2のハッシュ値計算手段によって計算されたハッシュ値とを組み合わせることによって、前記各集合の個々の要素に対して、前記複数のハッシュ関数に対応する複数のハッシュ値を決定するハッシュ値決定手段とを含む
    請求項1に記載の類似度導出システム。
  3. 前記ハッシュ値計算手段は、
    前記複数の集合から、順次、1つの集合を選択する集合選択手段と、
    選択された集合から、順次、1つの要素を選択する要素選択手段と、
    選択された要素に前記所定のハッシュ関数を適用することによって前記選択された要素の第1のハッシュ値を計算する第1のハッシュ値計算手段と、
    前記選択された要素と、第1のハッシュ値が一致し、かつ、要素自体が一致する要素である一致要素が既に選択されているか否かを判定する判定手段と、
    前記一致要素が既に選択されている場合に、前記選択された要素の前記所定のハッシュ関数以外の各ハッシュ関数に対応するハッシュ値を、前記一致要素の前記各ハッシュ関数に対応するハッシュ値と同一であると定め、
    前記一致要素が選択されていない場合に、前記選択された要素の前記所定のハッシュ関数以外の各ハッシュ関数に対応するハッシュ値を計算する第2のハッシュ値計算手段とを含む
    請求項1に記載の類似度導出システム。
  4. 前記所定のハッシュ関数は、前記複数のハッシュ関数の中で最も値域が広いハッシュ関数である
    請求項1から請求項3のうちのいずれか1項に記載の類似度導出システム。
  5. 前記類似度導出手段は、
    個々のハッシュ関数に対応する最小ハッシュ値同士が一致している数を、ペアをなす2つの集合の類似度として定める
    請求項1から請求項4のうちのいずれか1項に記載の類似度導出システム。
  6. コンピュータが、
    複数の集合に含まれる各集合の個々の要素に対して複数のハッシュ関数を適用して得られる複数のハッシュ値を求める際に、前記複数のハッシュ関数のうちの所定のハッシュ関数によって得られるハッシュ値が一致し、かつ、要素自体が一致する複数の要素に関しては、前記所定のハッシュ関数以外の各ハッシュ関数の計算の重複を排除し、前記各集合の個々の要素に対して前記複数のハッシュ値を求めるハッシュ値計算処理
    前記複数の集合に含まれるそれぞれの集合に関して、個々のハッシュ関数毎に、ハッシュ値の最小値である最小ハッシュ値を特定する最小ハッシュ値特定処理、および、
    前記複数の集合から得られる1組以上の集合のペアに関して、ペアをなす2つの集合の類似度を、個々のハッシュ関数に対応する最小ハッシュ値に基づいて導出する類似度導出処理を実行する
    ことを特徴とする類似度導出方法。
  7. 前記コンピュータが、
    前記ハッシュ値計算処理で、
    前記各集合の個々の要素に対して前記所定のハッシュ関数を適用することによって第1のハッシュ値を計算する第1のハッシュ値計算処理
    前記各集合の個々の要素のうち、前記第1のハッシュ値が一致し、かつ、要素自体が一致する複数の要素からは1つの要素だけを取り出すとともに、前記複数の要素に該当しない各要素を取り出すことによって、重複なく全ての種類の要素を含む1つの集合である全体集合を生成する全体集合生成処理
    前記複数の集合に含まれるどの集合のどの要素が前記全体集合のどの要素に該当するかを示すインデックス情報を生成するインデックス情報生成処理
    前記全体集合に属する各要素に対して、前記複数のハッシュ関数のうちの前記所定のハッシュ関数以外の各ハッシュ関数を適用することによって、前記各ハッシュ関数に対応するハッシュ値を計算する第2のハッシュ値計算処理、および、
    前記インデックス情報に基づいて、前記各集合の個々の要素の前記第1のハッシュ値と、当該第1のハッシュ値に対応する、前記第2のハッシュ値計算処理で計算されたハッシュ値とを組み合わせることによって、前記各集合の個々の要素に対して、前記複数のハッシュ関数に対応する複数のハッシュ値を決定するハッシュ値決定処理を実行する
    請求項6に記載の類似度導出方法。
  8. 前記コンピュータが、
    前記ハッシュ値計算処理で、
    前記複数の集合から、順次、1つの集合を選択する集合選択処理
    選択された集合から、順次、1つの要素を選択する要素選択処理
    選択された要素に前記所定のハッシュ関数を適用することによって前記選択された要素の第1のハッシュ値を計算する第1のハッシュ値計算処理
    前記選択された要素と、第1のハッシュ値が一致し、かつ、要素自体が一致する要素である一致要素が既に選択されているか否かを判定する判定処理、および、
    前記一致要素が既に選択されている場合に、前記選択された要素の前記所定のハッシュ関数以外の各ハッシュ関数に対応するハッシュ値を、前記一致要素の前記各ハッシュ関数に対応するハッシュ値と同一であると定め、
    前記一致要素が選択されていない場合に、前記選択された要素の前記所定のハッシュ関数以外の各ハッシュ関数に対応するハッシュ値を計算する第2のハッシュ値計算処理を実行する
    請求項6に記載の類似度導出方法。
  9. コンピュータに、
    複数の集合に含まれる各集合の個々の要素に対して複数のハッシュ関数を適用して得られる複数のハッシュ値を求める際に、前記複数のハッシュ関数のうちの所定のハッシュ関数によって得られるハッシュ値が一致し、かつ、要素自体が一致する複数の要素に関しては、前記所定のハッシュ関数以外の各ハッシュ関数の計算の重複を排除し、前記各集合の個々の要素に対して前記複数のハッシュ値を求めるハッシュ値計算処理、
    前記複数の集合に含まれるそれぞれの集合に関して、個々のハッシュ関数毎に、ハッシュ値の最小値である最小ハッシュ値を特定する最小ハッシュ値特定処理、および、
    前記複数の集合から得られる1組以上の集合のペアに関して、ペアをなす2つの集合の類似度を、個々のハッシュ関数に対応する最小ハッシュ値に基づいて導出する類似度導出処理
    を実行させるための類似度導出プログラム。
  10. 前記コンピュータに、
    前記ハッシュ値計算処理で、
    前記各集合の個々の要素に対して前記所定のハッシュ関数を適用することによって第1のハッシュ値を計算する第1のハッシュ値計算処理、
    前記各集合の個々の要素のうち、前記第1のハッシュ値が一致し、かつ、要素自体が一致する複数の要素からは1つの要素だけを取り出すとともに、前記複数の要素に該当しない各要素を取り出すことによって、重複なく全ての種類の要素を含む1つの集合である全体集合を生成する全体集合生成処理、
    前記複数の集合に含まれるどの集合のどの要素が前記全体集合のどの要素に該当するかを示すインデックス情報を生成するインデックス情報生成処理、
    前記全体集合に属する各要素に対して、前記複数のハッシュ関数のうちの前記所定のハッシュ関数以外の各ハッシュ関数を適用することによって、前記各ハッシュ関数に対応するハッシュ値を計算する第2のハッシュ値計算処理、および、
    前記インデックス情報に基づいて、前記各集合の個々の要素の前記第1のハッシュ値と、当該第1のハッシュ値に対応する、前記第2のハッシュ値計算処理で計算されたハッシュ値とを組み合わせることによって、前記各集合の個々の要素に対して、前記複数のハッシュ関数に対応する複数のハッシュ値を決定するハッシュ値決定処理を実行させる
    請求項9に記載の類似度導出プログラム。
JP2023520672A 2021-05-13 2021-05-13 類似度導出システムおよび類似度導出方法 Active JP7464193B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/018169 WO2022239174A1 (ja) 2021-05-13 2021-05-13 類似度導出システムおよび類似度導出方法

Publications (3)

Publication Number Publication Date
JPWO2022239174A1 JPWO2022239174A1 (ja) 2022-11-17
JPWO2022239174A5 JPWO2022239174A5 (ja) 2023-12-08
JP7464193B2 true JP7464193B2 (ja) 2024-04-09

Family

ID=84028068

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023520672A Active JP7464193B2 (ja) 2021-05-13 2021-05-13 類似度導出システムおよび類似度導出方法

Country Status (3)

Country Link
US (1) US20240214211A1 (ja)
JP (1) JP7464193B2 (ja)
WO (1) WO2022239174A1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170078286A1 (en) 2015-09-16 2017-03-16 RiskIQ, Inc. Using hash signatures of dom objects to identify website similarity
US20170161375A1 (en) 2015-12-07 2017-06-08 Adlib Publishing Systems Inc. Clustering documents based on textual content
US20170322930A1 (en) 2016-05-07 2017-11-09 Jacob Michael Drew Document based query and information retrieval systems and methods
US20180095941A1 (en) 2016-09-30 2018-04-05 Quantum Metric, LLC Techniques for view capture and storage for mobile applications
US20180181609A1 (en) 2016-12-28 2018-06-28 Google Inc. System for De-Duplicating Job Postings
WO2021038887A1 (ja) 2019-08-30 2021-03-04 富士通株式会社 類似文書検索方法、類似文書検索プログラム、類似文書検索装置、索引情報作成方法、索引情報作成プログラムおよび索引情報作成装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170078286A1 (en) 2015-09-16 2017-03-16 RiskIQ, Inc. Using hash signatures of dom objects to identify website similarity
US20170161375A1 (en) 2015-12-07 2017-06-08 Adlib Publishing Systems Inc. Clustering documents based on textual content
US20170322930A1 (en) 2016-05-07 2017-11-09 Jacob Michael Drew Document based query and information retrieval systems and methods
US20180095941A1 (en) 2016-09-30 2018-04-05 Quantum Metric, LLC Techniques for view capture and storage for mobile applications
US20180181609A1 (en) 2016-12-28 2018-06-28 Google Inc. System for De-Duplicating Job Postings
WO2021038887A1 (ja) 2019-08-30 2021-03-04 富士通株式会社 類似文書検索方法、類似文書検索プログラム、類似文書検索装置、索引情報作成方法、索引情報作成プログラムおよび索引情報作成装置

Also Published As

Publication number Publication date
WO2022239174A1 (ja) 2022-11-17
JPWO2022239174A1 (ja) 2022-11-17
US20240214211A1 (en) 2024-06-27

Similar Documents

Publication Publication Date Title
US20200349482A1 (en) Techniques for workflow analysis and design task optimization
WO2018180970A1 (ja) 情報処理システム、特徴量説明方法および特徴量説明プログラム
KR101939209B1 (ko) 신경망 기반의 텍스트의 카테고리를 분류하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
WO2017124930A1 (zh) 一种特征数据处理方法及设备
JP2017134582A (ja) グラフインデックス探索装置及びグラフインデックス探索装置の動作方法
JP6331756B2 (ja) テストケース生成プログラム、テストケース生成方法、及びテストケース生成装置
JPWO2017090475A1 (ja) 情報処理システム、関数作成方法および関数作成プログラム
JP7464193B2 (ja) 類似度導出システムおよび類似度導出方法
JP6984729B2 (ja) 意味推定システム、方法およびプログラム
US8661061B2 (en) Data structure, data structure generation method, information processing apparatus, information processing system, and computer-readable storage medium having stored therein information processing program
JP6988991B2 (ja) 意味推定システム、方法およびプログラム
JPWO2020152804A1 (ja) 情報提供システム、方法およびプログラム
JP7436005B2 (ja) コマンド変換処理装置、コマンド変換処理方法、制御プログラム、及び処理装置
TWI748867B (zh) 圖像瑕疵檢測方法、裝置、電子設備及存儲介質
WO2021234916A1 (ja) 分析装置、分析方法および分析プログラム
WO2019073912A1 (ja) 擬似データ生成装置、その方法、およびプログラム
WO2022070422A1 (ja) 計算機システム及び文字認識方法
JP2005352670A (ja) シミュレーション装置及び検査装置
JP7384285B2 (ja) ニューラルネットワーク処理装置、方法、および、プログラム
JP2024012018A (ja) 情報処理装置、情報処理方法、及び、プログラム
JPH09330224A (ja) 決定木生成装置
JP7391766B2 (ja) テストスクリプト生成システム、テストスクリプト生成方法、電子制御装置
US20240289621A1 (en) Neural network model conversion device and method
KR102289411B1 (ko) 가중치 기반의 피처 벡터 생성 장치 및 방법
WO2024060893A1 (zh) 根源定位的方法、装置及存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230913

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230913

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240123

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240208

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: 20240227

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240311

R150 Certificate of patent or registration of utility model

Ref document number: 7464193

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150