IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ネイバー コーポレーションの特許一覧

特許7112475ベクトル量子化を利用した重複文書探知方法およびシステム
<>
  • 特許-ベクトル量子化を利用した重複文書探知方法およびシステム 図1
  • 特許-ベクトル量子化を利用した重複文書探知方法およびシステム 図2
  • 特許-ベクトル量子化を利用した重複文書探知方法およびシステム 図3
  • 特許-ベクトル量子化を利用した重複文書探知方法およびシステム 図4
  • 特許-ベクトル量子化を利用した重複文書探知方法およびシステム 図5
  • 特許-ベクトル量子化を利用した重複文書探知方法およびシステム 図6
  • 特許-ベクトル量子化を利用した重複文書探知方法およびシステム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-26
(45)【発行日】2022-08-03
(54)【発明の名称】ベクトル量子化を利用した重複文書探知方法およびシステム
(51)【国際特許分類】
   G06F 16/903 20190101AFI20220727BHJP
【FI】
G06F16/903
【請求項の数】 15
(21)【出願番号】P 2020208547
(22)【出願日】2020-12-16
(65)【公開番号】P2021096858
(43)【公開日】2021-06-24
【審査請求日】2020-12-16
(31)【優先権主張番号】10-2019-0169132
(32)【優先日】2019-12-17
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】505205812
【氏名又は名称】ネイバー コーポレーション
【氏名又は名称原語表記】NAVER Corporation
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】金 成旻
(72)【発明者】
【氏名】韓 丙勳
【審査官】白石 圭吾
(56)【参考文献】
【文献】米国特許出願公開第2018/0329935(US,A1)
【文献】米国特許出願公開第2016/0147891(US,A1)
【文献】Shicong Liu, et al.,"Accurate Deep Representaion Quantization with Gradient Snapping Layer for Similarity Search",[online],2016年10月30日,[令和3年10月26日検索], インターネット <URL:https://arxiv.org/pdf/1610.09645.pdf>
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00 - 16/958
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサを含むコンピュータ装置の重複文書探知方法であって、
前記少なくとも1つのプロセッサが、文書間の意味的類似度に基づいて文書に対するベクトル表現を出力するように学習された類似度モデルにより、文書集合に含まれた文書それぞれに対するベクトル表現を取得する段階、
前記少なくとも1つのプロセッサが、前記ベクトル表現をベクトル量子化して2進数の文字列で実現されるキーを生成する段階、および
前記少なくとも1つのプロセッサが、前記キーにより、前記文書集合に含まれた文書のうちから重複文書を探知する段階
を含み、
前記類似度モデルは、以下の段階により学習させたものであり、
前記類似度モデルを学習させるための段階は、
前記少なくとも1つのプロセッサが、文書データベースから、同じ属性を有する複数の類似文書ペアを含む類似文書ペア集合およびランダムに抽出された複数の非類似文書ペアを含む非類似文書ペア集合を抽出する段階、
前記少なくとも1つのプロセッサが、前記複数の類似文書ペアそれぞれおよび前記複数の非類似文書ペアそれぞれに対して数学的尺度を利用した数学的類似度を計算する段階、
前記少なくとも1つのプロセッサが、前記複数の類似文書ペアそれぞれに対して計算された数学的類似度を増加させ、前記複数の非類似文書ペアそれぞれに対して計算された数学的類似度を減少させて、前記複数の類似文書ペアそれぞれおよび前記複数の非類似文書ペアそれぞれに対する意味的類似度を計算する段階、および
前記少なくとも1つのプロセッサが、前記複数の類似文書ペア、前記複数の非類似文書ペア、および前記意味的類似度を利用して前記類似度モデルを学習させる段階
をさらに含む、重複文書探知方法。
【請求項2】
前記ベクトル表現は、N(前記Nは2以上の自然数)次元実数ベクトルの形態であることを特徴とする、請求項1に記載の重複文書探知方法。
【請求項3】
前記キーを生成する段階は、
前記ベクトル表現の各成分の値が0以上の場合には該当の成分の値を1に、各成分の値が負数の場合には該当の成分の値を0に替えて前記ベクトル表現をベクトル量子化し、2進数の文字列を生成キーとして生成することを特徴とする、請求項1に記載の重複文書探知方法。
【請求項4】
前記重複文書を探知する段階は、
同じキーを有する文書を重複文書として探知することを特徴とする、請求項1に記載の重複文書探知方法。
【請求項5】
前記ベクトル表現を生成する段階は、
前記類似度モデルが出力した値と実際値との差に対して付与される、加重値によって調整された前記類似度モデルの損失関数を利用して前記ベクトル表現を生成することを特徴とする、請求項1に記載の重複文書探知方法。
【請求項6】
前記ベクトル表現を生成する段階は、
前記加重値の値を調節することによって前記ベクトル表現間の平均距離を調節することを特徴とする、請求項5に記載の重複文書探知方法。
【請求項7】
前記属性は、文書の作成者、文書の掲示セクション、および文書の登録時間範囲のうちの少なくとも1つを含むことを特徴とする、請求項に記載の重複文書探知方法。
【請求項8】
前記意味的類似度を計算する段階は、
前記複数の類似文書ペアそれぞれに対して計算された数学的類似度を第1非線形関数に入力して増加させ、前記複数の非類似文書ペアそれぞれに対して計算された数学的類似度を第2非線形関数に入力して減少させ、
前記第1非線形関数および前記第2非線形関数は、前記第1非線形関数が同一するすべての入力値に対して前記第2非線形関数よりも高い値を算出するという条件を満たす2つの非線形関数であることを特徴とする、請求項に記載の重複文書探知方法。
【請求項9】
コンピュータ装置と結合して請求項1~のうちのいずれか一項に記載の方法をコンピュータ装置に実行させる、コンピュータプログラム。
【請求項10】
請求項1~のうちのいずれか一項に記載の方法をコンピュータ装置に実行させるためのコンピュータプログラムが記録されている、コンピュータ読み取り可能な記録媒体。
【請求項11】
コンピュータ読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサ
を含み、
前記少なくとも1つのプロセッサは、
文書間の意味的類似度に基づいて文書に対するベクトル表現を出力するように学習された類似度モデルにより、文書集合に含まれた文書それぞれに対するベクトル表現を取得し、
前記ベクトル表現をベクトル量子化して2進数の文字列で実現されるキーを生成し、
前記キーにより、前記文書集合に含まれた文書のうちから重複文書を探知し、
前記類似度モデルは、以下の段階により学習させたものであり、
前記類似度モデルを学習させるための段階は、
前記少なくとも1つのプロセッサが、文書データベースから、同じ属性を有する複数の類似文書ペアを含む類似文書ペア集合およびランダムに抽出された複数の非類似文書ペアを含む非類似文書ペア集合を抽出する段階、
前記少なくとも1つのプロセッサが、前記複数の類似文書ペアそれぞれおよび前記複数の非類似文書ペアそれぞれに対して数学的尺度を利用した数学的類似度を計算する段階、
前記少なくとも1つのプロセッサが、前記複数の類似文書ペアそれぞれに対して計算された数学的類似度を増加させ、前記複数の非類似文書ペアそれぞれに対して計算された数学的類似度を減少させて、前記複数の類似文書ペアそれぞれおよび前記複数の非類似文書ペアそれぞれに対する意味的類似度を計算する段階、および
前記少なくとも1つのプロセッサが、前記複数の類似文書ペア、前記複数の非類似文書ペア、および前記意味的類似度を利用して前記類似度モデルを学習させる段階
を含む
コンピュータ装置。
【請求項12】
前記ベクトル表現は、N(前記Nは2以上の自然数)次元実数ベクトルの形態であること
を特徴とする、請求項11に記載のコンピュータ装置。
【請求項13】
前記少なくとも1つのプロセッサはさらに、
前記ベクトル表現の各成分の値が0以上の場合には該当の成分の値を1に、各成分の値が負数の場合には該当の成分の値を0に替えて前記ベクトル表現をベクトル量子化し、2進数の文字列を生成キーとして生成すること
を特徴とする、請求項11に記載のコンピュータ装置。
【請求項14】
前記少なくとも1つのプロセッサはさらに、
同じキーを有する文書を重複文書として探知すること
を特徴とする、請求項11に記載のコンピュータ装置。
【請求項15】
前記少なくとも1つのプロセッサはさらに、
前記類似度モデルが出力した値と実際値との差に対して付与される加重値によって調整された前記類似度モデルの損失関数を利用して前記ベクトル表現を生成すること
を特徴とする、請求項11に記載のコンピュータ装置。
【発明の詳細な説明】
【技術分野】
【0001】
以下の説明は、ベクトル量子化を利用した重複文書探知方法およびシステムに関する。
【背景技術】
【0002】
大きな文書集合内で類似の文書をクラスタリングしようとするときに、従来には、k平均法(k-means Clustering)のようなクラスタリングアルゴリズムを実行したり、クラスタリングアルゴリズムと同じような役割をするモデルを学習させたり、あるいは文書の内容に対するMD5(Message-Digest algorithm 5)のような暗号化アルゴリズムを利用したハッシュアルゴリズムを実行したりしていた。例えば、特許文献1は、重複ウェブページ除去装置および方法に関するものであって、入力されたウェブページの内容に含まれた相対アドレスを絶対アドレスに変換し、絶対アドレスに変換された絶対アドレスウェブページのハッシュ値を計算し、計算されたハッシュ値がハッシュ値リストに存在するかを判断し、該当のハッシュ値が存在しない場合には、ハッシュ値をハッシュ値リストに追加し、収集されたウェブページをウェブページ格納部に格納する方式によって重複ウェブページを除去することを開示している。
【0003】
文書クラスタリングを直接学習する場合、文書の数が増加するほど学習時間が増加するという短所があり、k平均法などのクラスタリングアルゴリズムは、学習後の予測を行うだけでもクラスタの個数に比例する計算費用が発生するという問題がある。また、MD5のような暗号化アルゴリズムは、その多くの場合が、文書の内容が完全に同じ場合に限って、2つの文書が同じキー値(ハッシュ値)を有するようにできるため、一部の内容が違うだけでも重複する文書を探知することができないという問題がある。
【先行技術文献】
【特許文献】
【0004】
【文献】韓国公開特許第10-2010-0008466号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ベクトル量子化に基づいて文書間の重複の可否を迅速に決定することができる、重複文書探知方法およびシステムを提供する。
【課題を解決するための手段】
【0006】
少なくとも1つのプロセッサを含むコンピュータ装置の重複文書探知方法であって、前記少なくとも1つのプロセッサが、文書間の意味的類似度に基づいて文書に対するベクトル表現を出力するように学習された類似度モデルにより、文書集合に含まれた文書それぞれに対するベクトル表現を取得する段階、前記少なくとも1つのプロセッサが、前記ベクトル表現をベクトル量子化して2進数の文字列で実現されるキーを生成する段階、および前記少なくとも1つのプロセッサが、前記キーにより、前記文書集合に含まれた文書のうちから重複文書を探知する段階を含む、重複文書探知方法を提供する。
【0007】
一側によると、前記ベクトル表現は、N(前記Nは2以上の自然数)次元実数ベクトルの形態であることを特徴としてよい。
【0008】
他の側面によると、前記キーを生成する段階は、前記ベクトル表現の各成分の値が0以上の場合には該当の成分の値を1に、各成分の値が負数の場合には該当の成分の値を0に替えて前記ベクトル表現をベクトル量子化し、2進数の文字列を生成キーとして生成することを特徴としてよい。
【0009】
また他の側面によると、前記重複文書を探知する段階は、同じキーを有する文書を重複文書として探知することを特徴としてよい。
【0010】
また他の側面によると、前記ベクトル表現を生成する段階は、前記類似度モデルが出力した値と実際値との差に対して付与される加重値によって調整された前記類似度モデルの損失関数を利用して前記ベクトル表現を生成することを特徴としてよい。
【0011】
また他の側面によると、前記ベクトル表現を生成する段階は、前記加重値の値を調節することによって前記ベクトル表現間の平均距離を調節することを特徴としてよい。
【0012】
また他の側面によると、前記重複文書探知方法は、前記少なくとも1つのプロセッサが、文書データベースから、同じ属性を有する複数の類似文書ペアを含む類似文書ペア集合およびランダムに抽出された複数の非類似文書ペアを含む非類似文書ペア集合を抽出する段階、前記少なくとも1つのプロセッサが、前記複数の類似文書ペアそれぞれおよび前記複数の非類似文書ペアそれぞれに対して数学的尺度を利用した数学的類似度を計算する段階、前記少なくとも1つのプロセッサが、前記複数の類似文書ペアそれぞれに対して計算された数学的類似度を増加させ、前記複数の非類似文書ペアそれぞれに対して計算された数学的類似度を減少させて、前記複数の類似文書ペアそれぞれおよび前記複数の非類似文書ペアそれぞれに対する意味的類似度を計算する段階、および前記少なくとも1つのプロセッサが、前記複数の類似文書ペア、前記複数の非類似文書ペア、および前記意味的類似度を利用して類似度モデルを学習させる段階をさらに含んでよい。
【0013】
また他の側面によると、前記属性は、文書の作成者、文書の掲示セクション、および文書の登録時間範囲のうちの少なくとも1つを含むことを特徴としてよい。
【0014】
さらに他の側面によると、前記意味的類似度を計算する段階は、前記複数の類似文書ペアそれぞれに対して計算された数学的類似度を第1非線形関数に入力して増加させ、前記複数の非類似文書ペアそれぞれに対して計算された数学的類似度を第2非線形関数に入力して減少させ、前記第1非線形関数および前記第2非線形関数は、前記第1非線形関数が同一するすべての入力値に対して前記第2非線形関数よりも高い値を算出するという条件を満たす2つの非線形関数であることを特徴としてよい。
【0015】
コンピュータ装置と結合して前記方法をコンピュータ装置に実行させるためにコンピュータ読み取り可能な記録媒体に記録された、コンピュータプログラムを提供する。
【0016】
前記方法をコンピュータ装置に実行させるためのプログラムが記録されている、コンピュータ読み取り可能な記録媒体を提供する。
【0017】
コンピュータ読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサは、文書間の意味的類似度に基づいて文書に対するベクトル表現を出力するように学習された類似度モデルにより、文書集合に含まれた文書それぞれに対するベクトル表現を取得し、前記ベクトル表現をベクトル量子化して2進数の文字列で実現されるキーを生成し、前記キーにより、前記文書集合に含まれた文書のうちから重複文書を探知することを特徴とする、コンピュータ装置を提供する。
【発明の効果】
【0018】
ベクトル量子化に基づいて文書間の重複の可否を迅速に決定することができる。
【0019】
モデルがクラスタリングを直接実行するように学習させるのではなく、モデルに対する文書ペアの類似度学習によって各文書に対するベクトル表現を得るように学習した後、ベクトル量子化によって各文書に対するハッシュ値を得ることにより、計算費用を減らすことができる。
【0020】
MD5のような暗号化アルゴリズムよりも広範囲で類似の文書に対して同じキー値を有するようにできるため、内容の一部が互いに異なる文書に対しても重複の可否を決定することができる。
【図面の簡単な説明】
【0021】
図1】本発明の一実施形態における、ネットワーク環境の例を示した図である。
図2】本発明の一実施形態における、コンピュータ装置の例を示したブロック図である。
図3】本発明の一実施形態における、類似度モデルの学習過程の例を示した図である。
図4】本発明の一実施形態における、文書重複探知過程の例を示した図である。
図5】本発明の一実施形態における、ベクトル量子化の例を示した図である。
図6】本発明の一実施形態における、損失関数の調整例を示した図である。
図7】本発明の一実施形態における、重複文書探知方法の例を示したフローチャートである。
【発明を実施するための形態】
【0022】
以下、実施形態について、添付の図面を参照しながら詳しく説明する。
【0023】
本発明の実施形態に係る重複文書探知システムは、少なくとも1つのコンピュータ装置によって実現されてよく、本発明の実施形態に係る重複文書探知方法は、重複文書探知システムに含まれる少なくとも1つのコンピュータ装置によって実行されてよい。コンピュータ装置においては、本発明の一実施形態に係るコンピュータプログラムがインストールされて実行されてよく、コンピュータ装置は、実行されるコンピュータプログラムの制御にしたがって本発明の実施形態に係る重複文書探知方法を実行してよい。上述したコンピュータプログラムは、コンピュータ装置と結合して重複文書探知方法をコンピュータに実行させるためにコンピュータ読み取り可能な記録媒体に記録されてよい。
【0024】
図1は、本発明の一実施形態における、ネットワーク環境の例を示した図である。図1のネットワーク環境は、複数の電子機器110、120、130、140、複数のサーバ150、160、およびネットワーク170を含む例を示している。このような図1は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が図1のように限定されることはない。また、図1のネットワーク環境は、本実施形態に適用可能な環境のうちの1つの例を説明するものに過ぎず、本実施形態に適用可能な環境が図1のネットワーク環境に限定されることはない。
【0025】
複数の電子機器110、120、130、140は、コンピュータ装置によって実現される固定端末や移動端末であってよい。複数の電子機器110、120、130、140の例としては、スマートフォン、携帯電話、ナビゲーション、PC(personal computer)、ノート型PC、デジタル放送用端末、PDA(Personal Digital Assistant)、PMP(Portable Multimedia Player)、タブレットなどがある。一例として、図1では、電子機器110の例としてスマートフォンを示しているが、本発明の実施形態において、電子機器110は、実質的に無線または有線通信方式を利用し、ネットワーク170を介して他の電子機器120、130、140および/またはサーバ150、160と通信することのできる多様な物理的なコンピュータ装置のうちの1つを意味してよい。
【0026】
通信方式が限定されることはなく、ネットワーク170が含むことのできる通信網(一例として、移動通信網、有線インターネット、無線インターネット、放送網)を利用する通信方式だけではなく、機器間の近距離無線通信が含まれてもよい。例えば、ネットワーク170は、PAN(personal area network)、LAN(local area network)、CAN(campus area network)、MAN(metropolitan area network)、WAN(wide area network)、BBN(broadband network)、インターネットなどのネットワークのうちの1つ以上の任意のネットワークを含んでよい。さらに、ネットワーク170は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター-バスネットワーク、ツリーまたは階層的ネットワークなどを含むネットワークトポロジのうちの任意の1つ以上を含んでもよいが、これらに限定されることはない。
【0027】
サーバ150、160それぞれは、複数の電子機器110、120、130、140とネットワーク170を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供する1つ以上のコンピュータ装置によって実現されてよい。例えば、サーバ150は、ネットワーク170を介して接続した複数の電子機器110、120、130、140にサービス(一例として、コンテンツ提供サービス、グループ通話サービス(または、音声会議サービス)、メッセージングサービス、メールサービス、ソーシャルネットワークサービス、地図サービス、翻訳サービス、金融サービス、決済サービス、検索サービスなど)を提供するシステムであってよい。
【0028】
図2は、本発明の一実施形態における、コンピュータ装置の例を示したブロック図である。上述した複数の電子機器110、120、130、140それぞれやサーバ150、160それぞれは、図2に示したコンピュータ装置200によって実現されてよい。
【0029】
このようなコンピュータ装置200は、図2に示すように、メモリ210、プロセッサ220、通信インタフェース230、および入力/出力インタフェース240を含んでよい。メモリ210は、コンピュータ読み取り可能な記録媒体であって、RAM(random access memory)、ROM(read only memory)、およびディスクドライブのような永続的大容量記録装置を含んでよい。ここで、ROMやディスクドライブのような永続的大容量記録装置は、メモリ210とは区分される別の永続的記録装置としてコンピュータ装置200に含まれてもよい。また、メモリ210には、オペレーティングシステムと、少なくとも1つのプログラムコードが記録されてよい。このようなソフトウェア構成要素は、メモリ210とは別のコンピュータ読み取り可能な記録媒体からメモリ210にロードされてよい。このような別のコンピュータ読み取り可能な記録媒体は、フロッピー(登録商標)ドライブ、ディスク、テープ、DVD/CD-ROMドライブ、メモリカードなどのコンピュータ読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータ読み取り可能な記録媒体ではない通信インタフェース230を通じてメモリ210にロードされてもよい。例えば、ソフトウェア構成要素は、ネットワーク170を介して受信されるファイルによってインストールされるコンピュータプログラムに基づいてコンピュータ装置200のメモリ210にロードされてよい。
【0030】
プロセッサ220は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ210または通信インタフェース230によって、プロセッサ220に提供されてよい。例えば、プロセッサ220は、メモリ210のような記録装置に記録されたプログラムコードにしたがって受信される命令を実行するように構成されてよい。
【0031】
通信モジュール230は、ネットワーク170を介してコンピュータ装置200が他の装置(一例として、上述した記録装置)と互いに通信するための機能を提供してよい。一例として、コンピュータ装置200のプロセッサ220がメモリ210のような記録装置に記録されたプログラムコードにしたがって生成した要求や命令、データ、ファイルなどが、通信インタフェース230の制御にしたがってネットワーク170を介して他の装置に伝達されてよい。これとは逆に、他の装置からの信号や命令、データファイルなどが、ネットワーク170を経てコンピュータ装置200の通信モジュール230を通じてコンピュータ装置200に受信されてよい。通信インタフェース230を通じて受信された信号や命令、データなどは、プロセッサ220やメモリ210に伝達されてよく、ファイルなどは、コンピュータ装置200がさらに含むことのできる記録媒体(上述した永続的記録装置)に記録されてよい。
【0032】
入力/出力インタフェース240は、入力/出力装置250とのインタフェースのための手段であってよい。例えば、入力装置は、マイク、キーボード、マウスなどの装置を、出力装置は、ディスプレイ、スピーカのような装置を含んでよい。他の例として、入力/出力インタフェース240は、タッチスクリーンのように入力と出力のための機能が1つに統合された装置とのインタフェースのための手段であってもよい。入力/出力装置250は、コンピュータ装置200と1つの装置で構成されてもよい。
【0033】
また、他の実施形態において、コンピュータ装置200は、図2の構成要素よりも少ないか多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、コンピュータ装置200は、上述した入力/出力装置250のうちの少なくとも一部を含むように実現されてもよいし、トランシーバやデータベースなどのような他の構成要素をさらに含んでもよい。
【0034】
本発明の実施形態において、「文書」は、ブログリスティングやニュース、コメントなどのように、任意の作成者がウェブ上にアップロードした掲示物を含んでよい。また、「属性」とは、文書に対して予め定義される特徴であって、一例として、文書の作成者、文書の掲示セクション、および文書の登録時間範囲のうちの少なくとも1つに基づいて決定されてよい。ここで、文書の掲示セクションは、1つのサービスで文書が表示されるセクションに基づいてよい。一例として、2つの文書の掲示セクションが同じであるということは、1つのサービス内で文書が表示される複数の掲示セッションのうち、2つの文書が掲示された掲示セッションが同じ場合を意味してよい。作成者が属性として定義される場合、同じ作成者の互いに異なる2つのブログリスティングは、同じ属性の文書として認識されてよい。他の例として、作成者、掲示セクション、および1時間範囲が属性として定義される場合、同じ作成者によって同じ掲示セクションに1時間以内に登録された2つのコメントは同じ属性の文書として認識されてよい。また、本発明の実施形態において、文書間の「重複」とは、2つの文書が閾値以上の意味的類似度を有することを意味してよい。例えば、文書間の意味的類似度の値を0.00~1.00の範囲で表現し、重複のための閾値を0.95と仮定するとき、文書1と文書2の意味的類似度の値が0.97であれば、文書1と文書2は重複する文書として決定されてよい。言い換えれば、2つの文書の内容が互いに完全に同じでなくても、一定以上に類似する内容を含む文書であれば重複文書として決定されてよい。
【0035】
図3は、本発明の一実施形態における、類似度モデルの学習過程の例を示した図である。重複文書探知システム300は、上述したコンピュータ装置200によって実現されてよく、コンピュータ装置200が含むプロセッサ220の制御にしたがって以下で説明する類似度モデルの学習過程が処理されてよい。
【0036】
重複文書探知システム300は、文書DB310に含まれた文書間の重複の可否を決定してよい。このために、重複文書探知システム300は、類似度モデル320を学習させてよい。
【0037】
文書DB310は、重複文書探知システム300を実現する物理的な装置(第1装置)に含まれて文書を提供するように実現されてもよいが、重複文書探知システム300外部の他の物理的な装置(第2装置)に実現され、第1装置と第2装置がネットワーク170を介して互いに通信する形態で文書を提供するように実現されてもよい。
【0038】
重複文書探知システム300は、文書DB310から類似文書ペア集合330と非類似文書ペア集合340を抽出してよい。ここで、類似文書ペア集合330とは、予め定義された属性が同じである文書ペアの集合を意味してよく、非類似文書ペア集合340とは、属性を考慮せずに任意に(ランダムに)抽出された文書ペアの集合を意味してよい。実施形態によって、非類似文書ペア集合340は、予め定義された属性が同じでない文書ペアの集合を意味してもよい。
【0039】
一実験例として、1億4千万件のコメントのうちから、予め定義された属性の文書ペアである「同じ作成者が同じ掲示セクションで1時間以内に作成した文書ペア」である3500万件を類似文書ペア集合330として抽出し、任意の2つのコメントからなる3500万件の文書ペアを非類似文書ペア集合340として抽出した。ここで、仮説1は、2つのコメントの抽出回数が無限大に増加することにより、同じ属性の2つのコメントの意味が類似する確率αが、任意に抽出された2つのコメントの意味が類似する確率βよりも高いということであり、仮説2は、数学的尺度を利用した類似度(以下、数学的類似度)の値が同じであると仮定するとき、同じ属性の2つのコメントの数学的類似度は数学的尺度によって過小評価される確率が高く、任意に抽出された2つのコメントの数学的類似度は数学的尺度によって過大評価される確率が高いということである。このような仮説1および仮説2は、一実験例から得られた数学的類似度のコメントを比較することによって確認された。例えば、数学的類似度が0.2以下と低い値をもつ同じ2つのコメントに意味的/主題的類似性が存在する場合の比重は高かったが、数学的類似度が0.7以上と高い値をもつ任意に抽出された2つのコメントに意味的/主題的類似性が含まれない場合の比重は高かった。
【0040】
このように確認された仮説に基づき、本実施形態に係る重複文書探知システム300は、先ず、類似文書ペア集合330の類似文書ペアそれぞれと非類似文書ペア集合340の非類似文書ペアそれぞれに対して数学的尺度を利用して数学的類似度を計算してよい。このとき、重複文書探知システム300は、計算された数学的類似度を、属性の同一状態に応じて増加させたり減少させたりすることで文書ペアそれぞれに対する意味的類似度を決定してよい。例えば、類似文書ペア集合330の類似文書ペアそれぞれに対して計算された数学的類似度は、数学的類似度の値が過小評価されたものと見なし、計算された数学的類似度の値を適切に増加させることによって意味的類似度を計算してよい。これとは逆に、非類似文書ペア集合340の非類似文書ペアそれぞれに対して計算された数学的類似度は、数学的類似度の値が過大評価されたものと見なし、計算された数学的類似度の値を適切に減少させることによって意味的類似度を計算してよい。
【0041】
より具体的な例として、重複文書探知システム300は、類似文書ペアの数学的類似度の値を第1非線形関数に入力して類似文書ペアの数学的類似度の値を増加させてよく、非類似文書ペアの数学的類似度の値を第2非線形関数に入力して非類似文書ペアの数学的類似度の値を減少させてよい。第1非線形関数は、類似文書ペアに対しては過小評価された数学的類似度の値を増加させるためのものであり、第2非線形関数は、非類似文書ペアに対しては過大評価された数学的類似度の値を減少させるためのものであって、第1非線形関数が同一するすべての入力値に対して第2非線形関数よりも高い値を算出するという条件を満たす2つの非線形関数であれば、第1非線形関数および第2非線形関数として活用されてよい。
【0042】
文書ペアに対して計算された意味的類似度は、類似度モデル320のための正答スコアとして見なされてよい。例えば、重複文書探知システム300は、類似文書ペア集合330、非類似文書ペア集合340、正答スコアを学習データとして活用して類似度モデル320を学習させてよい。例えば、類似度モデル320は、入力される文書ペアの意味的類似度を算出するように学習されてよい。
【0043】
より具体的な例として、類似度モデル320は、入力される文書ペアに対する出力値と正答スコアとの平均二乗誤差(Mean Squared Error:MSE)を最小化するように学習されてよい。例えば、類似度モデル320は、平均二乗誤差を利用した損失関数に出力値と正答スコアを入力して損失が最小化されるように学習されてよい。なお、類似度モデル320としては、周知のディープラーニングモデルのうちの少なくとも1つが活用されてよい。例えば、CNN(Convolutional Neural Network)やRNN(Recurrent Neural Network)などが類似度モデル320を実現するために活用されてよい。この場合、類似度モデル320は、文書ペアの入力を受けて0~1範囲の実数(意味的類似度)を出力するように実現されてよい。出力される値の範囲は一例に過ぎず、0~1の範囲に限定されてはならない。
【0044】
学習された類似度モデル320は、文書間の重複の可否を探知するために活用されてよい。例えば、重複文書探知システム300は、多数のコメントが登録された状態で作成者が新しいコメントの登録を要求したときに、作成者の新しいコメントと重複するコメントを探知してよい。このとき、重複文書探知システム300は、重複するコメントがN件以上探知される場合、キャプチャ(Captcha)を表示することにより、重複する新しいコメントの無分別な登録を防いでよい。
【0045】
他の実施形態において、類似度モデル320は、類似度学習を実行し、上述した意味的類似度の代わりに、各文書に対する適切なベクトル表現を出力するように学習されてよい。一例として、ディープラーニングに基づく文書類似度を測定するモデルは、類似度を出力する過程において量子化前のベクトル表現を取得し、2つのベクトル表現間の距離によって最終類似度を算出してよい。したがって、類似度計算過程を関数で見るとき、類似度は従属変数、2つのベクトル表現は独立変数となる。結局、従属変数を所望する値に調整するためには、独立変数である2つのベクトル表現を適切に調整しなければならず、これにより、類似度を学習する過程は、各文書に対する適切なベクトル表現を得る過程と同じであると見なされてよい。これにより、以下で説明する実施形態では、類似度モデル320が、意味的類似度の代わりに各文書に対する適切なベクトル表現を出力するように学習されてよい。
【0046】
図4は、本発明の一実施形態における、重複文書探知過程の例を示した図である。重複文書探知システム300は、上述したコンピュータ装置200によって実現されてよく、コンピュータ装置200が含むプロセッサ220の制御にしたがって以下で説明する重複文書探知過程が処理されてよい。
【0047】
作成者が1つの文書を作成するたびに他のすべての作成者の文書と類似度を比較する作業には莫大な計算費用が発生する。このような問題を解決するために、図3の実施形態に係る重複文書探知システム300は、次のような方式によって重複文書を探知してよい。
【0048】
先ず、重複文書探知システム300は、文書集合410が含む文書420の入力を受け、各文書に対応するベクトル表現を出力するように類似度モデル320を学習させてよい。言い換えれば、類似度モデル320は、文書間の類似度を算出するための学習過程において、各文書をN次元実数ベクトル430で表象(represent)してベクトル表現を出力するように学習されてよい。このような類似度モデル320は、文書が含む内容の意味に基づいてベクトルを出力するため、文書の内容の一部が相違したとしても、意味が類似する場合には、類似するベクトル表現を得ることができるようになる。
【0049】
また、重複文書探知システム300は、類似度モデル320から得られるN次元実数ベクトルをベクトル量子化(vector quantization)して2進数の文字列を生成してよい。生成される2進数の文字列は該当の文書のキーとして活用されてよく、キーが重複する文書は重複文書として探知されてよい。例えば、表440は、キーと、このキーに対応する文書を互いに関連付けて格納した様子を示している。このとき、表440において、同じキーで関連付けられた文書1および文書2は、重複文書として見なされてよい。
【0050】
図5は、本発明の一実施形態における、ベクトル量子化の例を示した図である。第1点線枠510は、任意の文書のテキスト内容の例を示している。このとき、類似度モデル320は、該当の文書の入力を受けて第2点線枠520のようなN(図5の実施形態ではN=64)次元実数ベクトルを出力する例を示している。このとき、第3点線枠530は、N次元実数ベクトルを2進数の文字列にベクトル量子化した例を示している。例えば、重複文書探知システム300は、N次元実数ベクトルの各成分(component)の値が0または正数の場合には「1」に、各成分の値が負数の場合には「0」にと、該当の成分の値を替えるベクトル量子化によって2進数ベクトルを生成してよい。このとき、2進数ベクトルの成分を一列に並べたバイト列が、該当の文書のキーとなってよい。この場合、同じキー値を有するすべての文書は、互いに重複するものと見なしてよい。
【0051】
なお、ベクトル量子化の性能を向上させるために、類似度モデル320のための損失関数が調整されてよい。例えば、損失関数は、以下の数式(1)から数式(2)のように拡張されてよい。
【数1】
【0052】
損失関数とは、ニューラルネットワークが出力した値と実際値との誤差に対する関数であって、v1、v2は2つの文書のベクトル表現を意味してよく、exp(-||v1-v2||)は類似度モデル320によって計算された類似度、yは正答類似度を意味してよい。MSEは平均二乗誤差(mean squared error)を意味してよい。alpha(α)は0~1の範囲に含まれる実数であって、重複文書探知システム300は、類似度モデル320の損失関数でαを調節することによって文書のベクトル表現間の平均距離を調節してよい。このとき、αの値が0に近くなるほど、文書に対するベクトル表現間の平均距離は遠くなってよい。
【0053】
図6は、本発明の一実施形態における、損失関数の調整例を示した図である。図6は、重複文書探知システム300が類似度モデル320の損失関数でαの値を減少させることにより、第1グラフ610に示された点間の距離から第2グラフ620に示された点間の距離のように、ベクトル表現間の平均距離が相対的に遠くなる例を示している。αの活用は、文書に対するベクトル表現が十分に広がっている状態でベクトル量子化による区画化を進めることによって実際に類似度が高い文書間に同じキーを有するようにするためである。
【0054】
図7は、本発明の一実施形態における、重複文書探知方法の例を示したフローチャートである。本実施形態に係る重複文書探知方法は、上述した重複文書探知システム300を実現するコンピュータ装置200によって実行されてよい。このとき、コンピュータ装置200のプロセッサ220は、メモリ210が含むオペレーティングシステムのコードと、少なくとも1つのコンピュータプログラムのコードとによる制御命令(instruction)を実行するように実現されてよい。ここで、プロセッサ220は、コンピュータ装置200に記録されたコードが提供する制御命令にしたがってコンピュータ装置200が図7の方法に含まれる段階710~730を実行するようにコンピュータ装置200を制御してよい。
【0055】
段階710で、コンピュータ装置200は、文書間の意味的類似度に基づいて文書に対するベクトル表現を出力するように学習された類似度モデルにより、文書集合に含まれた文書それぞれに対するベクトル表現を取得してよい。一例として、類似度モデルは、入力される文書の意味に基づいて文書に対するベクトル表現を出力するように学習されてよい。言い換えれば、類似度モデルは、意味的類似度が高い文書に対しては互いに類似するベクトル表現を出力するように学習されてよい。ここで、ベクトル表現は、N(Nは2以上の自然数)次元実数ベクトルの形態であってよい。
【0056】
ベクトル表現を生成するにあたり、コンピュータ装置200は、類似度モデルが出力した値と実際値との差に対して付与される加重値によって調整された類似度モデルの損失関数を利用してベクトル表現を生成してよい。このような加重値は、数式(2)を参照しながら説明したαに対応してよい。このとき、コンピュータ装置200は、図6を参照しながら説明したように、加重値の値αを調節することによってベクトル表現間の平均距離を調節してよい。
【0057】
より具体的な例として、コンピュータ装置200は、文書データベースから、同じ属性を有する複数の類似文書ペアを含む類似文書ペア集合およびランダムに抽出された複数の非類似文書ペアを含む非類似文書ペア集合を抽出してよい。一例として、文書データベースは、図3を参照しながら説明した文書DB310に対応してよく、類似文書ペア集合と非類似文書ペア集合それぞれは、図3を参照しながら説明した類似文書ペア集合330および非類似文書ペア集合340に対応してよい。ここで、属性は、文書の作成者、文書の掲示セクション、および文書の登録時間範囲のうちの少なくとも1つを含んでよい。一例として、作成者が属性として定義される場合、同じ作成者の互いに異なる2つの文書は、同じ属性を有する文書として認識されてよい。他の例として、作成者、掲示セクション、および1時間範囲が属性として定義される場合、同じ作成者によって同じ掲示セクションに1時間以内に登録された2つの文書が、同じ属性の文書として認識されてよい。非類似文書ペアは、ランダムに抽出される2つの文書を含んでよく、実施形態によっては、ランダムに抽出された文書ペアのうちで同じ属性を有する文書ペアは非類似文書ペアから除外されてもよい。
【0058】
また、コンピュータ装置200は、複数の類似文書ペアそれぞれおよび複数の非類似文書ペアそれぞれに対して数学的尺度を利用した数学的類似度を計算してよい。一例として、コンピュータ装置200は、数学的尺度としてコサイン類似度(Cosine Similarity)、ユークリッド距離(Euclidean Distance)およびジャカード類似度(Jaccard Similarity)のうちの少なくとも1つを利用して数学的類似度を計算してよい。
【0059】
また、コンピュータ装置200は、複数の類似文書ペアそれぞれに対して計算された数学的類似度を増加させ、複数の非類似文書ペアそれぞれに対して計算された数学的類似度を減少させて、複数の類似文書ペアそれぞれおよび複数の非類似文書ペアそれぞれに対する意味的類似度を計算してよい。例えば、コンピュータ装置200は、複数の類似文書ペアそれぞれに対して計算された数学的類似度を第1非線形関数に入力して増加させ、複数の非類似文書ペアそれぞれに対して計算された数学的類似度を第2非線形関数に入力して減少させてよい。この場合、第1非線形関数および第2非線形関数は、第1非線形関数が同一するすべての入力値に対して第2非線形関数よりも高い値を算出するという条件を満たす2つの非線形関数であってよい。類似文書ペアに対する数学的類似度が数学的尺度によって過小評価され、非類似文書ペアに対する数学的類似度が数学的尺度によって過大評価されるについては、上で説明した。コンピュータ装置200は、過小評価された数学的類似度は増加させ、過大評価された数学的類似度は減少させて、意味的類似度を計算してよい。数学的類似度を増加または減少させる程度は、選択される第1非線形関数および第2非線形関数によって決定されてよい。
【0060】
また、コンピュータ装置200は、複数の類似文書ペア、複数の非類似文書ペア、および意味的類似度を利用して類似度モデルを学習させてよい。上述したように、コンピュータ装置200は、複数の類似文書ペアそれぞれおよび複数の非類似文書ペアそれぞれを類似度モデルに順に入力して類似度モデルの出力値と入力された文書ペアに対応する意味的類似度間の平均二乗誤差(Mean Squared Error:MSE)が最小化するように類似度モデルを学習させてよい。これは、平均二乗誤差を利用した損失関数に類似度モデルの出力値と対応する意味的類似度を正答スコアとして入力して損失が最小化するように類似度モデルを学習させることに対応してよい。
【0061】
段階720で、コンピュータ装置200は、ベクトル表現をベクトル量子化して2進数の文字列で実現されるキーを生成してよい。例えば、コンピュータ装置200は、ベクトル表現の各成分の値が0以上の場合には該当の成分の値を1に、各成分の値が負数の場合には該当の成分の値を0に替えてベクトル表現をベクトル量子化して2進数の文字列をキーとして生成してよい。
【0062】
段階730で、コンピュータ装置200は、キーにより、文書集合に含まれた文書のうちから重複文書を探知してよい。文書集合の文書それぞれに対してキーが生成されれば、コンピュータ装置200は、キーと該当の文書を互いに関連付けて格納してよい。この場合、同じキーを有する文書は、同じ1つのキーと関連付けて格納してよい。したがって、1つのキーに対して複数の文書が関連付いて格納された場合、コンピュータ装置200は、該当の複数の文書を重複文書として探知してよい。言い換えれば、コンピュータ装置200は、同じキーを有する文書を重複文書として探知してよい。
【0063】
MD5のような暗号化アルゴリズムを利用する従来技術では、文書の内容が完全に同じ場合に限って、2つの文書が同じキー値(ハッシュ値)を有するようにすることができるため、文書内容の一部は相違するが残りのほとんどは同じ場合であっても、重複する文書を探知することができないという問題があった。この反面、本実施形態に係る重複文書探知方法では、文書の内容に対するハッシュ値ではなく、類似度モデルを利用することにより、文書の意味に基づいて出力されるベクトル表現をベクトル量子化してキーとして活用するため、文書の内容の一部が相違する場合であっても、意味が類似する文書間には同じキーを有するようにキーを生成することができる。実際の実験では、本実施形態に係る重複文書探知方法は、MD5に比べて平均で20倍以上の重複コメント探知件数を記録し、99%以上の正確度を達成した。
【0064】
このように、本発明の実施形態によると、ベクトル量子化に基づいて文書間の重複の可否を迅速に決定することができる。また、モデルがクラスタリングを直接実行するように学習させるのではなく、モデルが文書ペアに対する類似度学習によって各文書に対するベクトル表現を得るように学習した後、ベクトル量子化によって各文書に対するハッシュ値を得るようにすることにより、計算費用を減らすことができる。さらに、MD5のような暗号化アルゴリズムよりも広範囲で類似の文書に対して同じキー値が得られるようにすることにより、一部の内容が互いに相違する文書に対しても、重複の可否を決定することができる。
【0065】
上述したシステムまたは装置は、ハードウェア構成要素、またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)およびOS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを記録、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。
【0066】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置、コンピュータ記録媒体または装置に具現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で記録されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータ読み取り可能な記録媒体に記録されてよい。
【0067】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に記録されてよい。コンピュータ読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独または組み合わせて含んでよい。媒体は、コンピュータ実行可能なプログラムを継続して記録するものであっても、実行またはダウンロードのために一時記録するものであってもよい。また、媒体は、単一または複数のハードウェアが結合した形態の多様な記録手段または格納手段であってよく、あるコンピュータシステムに直接接続する媒体に限定されることはなく、ネットワーク上に分散して存在するものであってもよい。媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープのような磁気媒体、CD-ROMおよびDVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどを含み、プログラム命令が記録されるように構成されたものであってよい。また、媒体の他の例として、アプリケーションを配布するアプリケーションストアやその他の多様なソフトウェアを供給または配布するサイト、サーバなどで管理する記録媒体または格納媒体が挙げられる。プログラム命令の例には、コンパイラによって生成されるもののような機械語コードだけでなく、インタプリタなどを使用してコンピュータによって実行されることのできる高級言語コードが含まれる。
【0068】
以上のように、実施形態を、限定された実施形態および図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
【0069】
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。
【符号の説明】
【0070】
300:重複文書探知システム
320:類似度モデル
410:文書集合
420:文書
430:ベクトル
図1
図2
図3
図4
図5
図6
図7