(58)【調査した分野】(Int.Cl.,DB名)
【背景技術】
【0003】
インターネット電子商取引は、日々発展し続けている。消費者・消費者間(C2C)及び企業・消費者間(B2C)電子商取引ウェブサイトの多くでは、売り手ユーザが、大量の製品情報の発行(掲載)及びアップデート(「情報提供」と呼ばれることもある)を毎日行っている。自身が必要とする製品を買い手ユーザが検索するとき、電子商取引ウェブサイトは、売り手ユーザによってサブミット(投稿)された製品情報の中の一致する情報に基づいて、検索結果を表示する。例えば、買い手ユーザが「携帯電話」を検索するときは、電子商取引ウェブサイトは、売り手によって発行された全ての製品情報の中で「携帯電話」という用語を含む製品情報を検索する。次いで、電子商取引ウェブサイトは、買い手ユーザが一致した製品情報を閲覧できるように、携帯電話情報を含む全ての製品情報をウェブサイト上に表示する。
【0004】
しかしながら、売り手ユーザの中には、冗長な製品情報を発行する売り手ユーザもいる。売り手ユーザは、キーワード「ネックレス」を使用した買い手ユーザによる検索に対し、冗長な製品一覧が見つかるように翡翠ネックレスという製品について多数の同一の製品情報(例えば製品一覧)を発行するかもしれない。こうすれば、返ってきた製品一覧に買い手ユーザが目を通している間に、売り手ユーザによる冗長な製品一覧が買い手ユーザの目を惹くだろう。しかしながら、買い手ユーザは、冗長な製品一覧を精読することは役に立たない上に所望情報を見つけるために非効率的でもあると感じ得るので、冗長な製品一覧を精読することを望まないであろう。
【0005】
既存のシステムには、重複する製品情報を一定期間ごとに決定しようと試みるシステムがある。このような技術は、その時点で記憶されている製品情報を一定期間ごとに調べて重複情報を特定するという意味において、ほぼオフラインである。
【0006】
図1は、幾つかの既存のシステムによって使用されている、重複製品情報を決定するためのプロセスの一例である。
【0007】
ステップ102では、ユーザによってサブミットされた製品情報が、サーバに記憶される。例えば、1つ以上の売り手ユーザによってサブミットされた製品情報が、プロセス100においてサーバに記憶されてよい。
【0008】
ステップ104では、一定期間ごとに、サーバに記憶されている記憶製品情報(記憶された製品情報)に対してオフラインの特徴ベクトル計算が実施され、製品情報間における相関性が決定される。例えば、一定期間は、一か月であってよい。したがって、月ごとに、その時点で記憶されている製品情報が分析され、異なる製品情報間における特徴ベクトル計算が決定され、異なる製品情報間における相関性が決定される。
【0009】
ステップ106では、異なる製品情報間における決定された相関性に基づいて、記憶製品情報に対して重複排除が実施される。例えば、2つの製品情報は、その互いに対する相関性に基づいて、互いに重複していると決定されるかもしれず、そのような情報の一方は、ストレージから削除されてよい。
【0010】
しかしながら、このようなオフラインの手法は、重複する製品情報がストレージに追加された後に発生する買い手ユーザによる検索に対しては、製品情報の重複排除の実行が間に合わないであろう。例えば、売り手Aが、同じ携帯電話製品情報のコピーを2つ、月曜日にサブミットするかもしれない。次のオフラインの重複排除動作は、(例えば次の月曜日に実行される予定であるゆえに)まだ実行されていないので、買い手Bが、次の月曜日よりも前に携帯電話製品情報を検索すると、携帯電話情報のコピーの両方が、依然として検索結果に現れることになる。その結果、検索エンジンから得られた検索結果は、売り手Aによってサブミットされた同じ携帯電話製品情報のコピーを2つとも含む冗長な情報を含むことになる。買い手Bは、検索結果のうちの少なくとも2つが同一であることを決定するために時間を費やすことによって、また、与えられる固有の検索結果が1つ少なくなることによって、不利益を被るだろう。
【発明を実施するための形態】
【0017】
本発明は、プロセス、装置、システム、合成物、コンピュータ読み取り可能なストレージ媒体に実装されたコンピュータプログラム製品、並びに/又は結合先のメモリに記憶されている命令及び/若しくは結合先のメモリによって提供される命令を実行するように構成されるプロセッサなどのプロセッサのような、数々の形態で実現することができる。本明細書では、これらの実現形態、又は本発明がとりえるその他のあらゆる形態が、技術と称されるだろう。総じて、開示されたプロセスのステップの順序は、本発明の範囲内で変更されてよい。別途明記されない限り、タスクを実施するように構成されたものとして説明されるプロセッサ又はメモリなどのコンポーネントは、所定時にタスクを実施するように一時的に構成された汎用コンポーネントとして、又はタスクを実施するように製造された特殊コンポーネントとして実現されてよい。本明細書で使用される「プロセッサ」という用語は、コンピュータプログラム命令などのデータを処理するように構成される1つ以上のデバイス、回路、並びに/又は処理コアを言う。
【0018】
本発明の原理を例示した添付の図面とともに、以下で、本発明の1つ以上の実施形態の詳細な説明が提供される。本発明は、このような実施形態との関わりのもとで説明されるが、いずれの実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定され、本発明は、数々の代替形態、変更形態、及び均等物を包含している。以下の説明では、本発明の完全な理解を与えるために、数々の具体的詳細が明記されている。これらの詳細は、例示を目的として提供されたものであり、本発明は、これらの詳細の一部又は全部を伴わずとも、特許請求の範囲にしたがって実施されえる。明瞭さを期するために、本発明に関係する技術分野で知られる技術要素は、本発明が不必要に不明瞭にされないように、詳細な説明を省略されている。
【0019】
本出願の実施形態を更に詳しく説明する前に、本出願の原理を実現するために使用することができる適切なコンピュータシステムアーキテクチャについて説明しよう。以下の説明では、本出願の実施形態は、別途明記されない限り、1つ以上のコンピュータによって実行される操作及び動作を表わす記号を参照にして説明される。このようにすれば、1つ以上のコンピュータによって実行されたものとして特許請求されるこのような操作及び動作が、場合によっては、構造化された形でデータとして表わされる電気信号に対してコンピュータ処理ユニットによってなされる動作を含んでもよいことがわかる。データを変換するための又はデータをコンピュータストレージシステム内の場所に維持するためのこれらのステップは、当業者が理解できるやり方でコンピュータ動作を再構成する又は変更することを伴う。データを維持するためのデータ構造は、データフォーマットによって定められた特定の属性を伴った、ストレージデバイスの物理的位置である。本出願は、上記の文脈のなかで説明されているが、このような説明は、制限を示唆するものではない。当業者にならば理解されるように、以下で説明される操作及び動作は、ハードウェアを通じて達成することもできる。
【0020】
図面に関しては、図中の同じ参照符号は、同じ要素を指している。本出願の原理は、適切なコンピュータ環境の中で実現されるものとして示されている。以下の説明は、上記本出願の実施形態に基づくものであり、本出願は、代替の実施形態が本明細書で説明されていないという理由で限定されることを想定されるべきでない。
【0021】
本出願の原理は、その他の汎用の又は専用の、コンピュータ又は通信の、環境又は構成を通じて実行に移すことができる。本出願に適用可能である広く知られたコンピュータシステム、環境、及び構成の非限定的な例として、パソコン、サーバ、多重処理システム、マイクロ加工をベースにしたシステム、ミニコンピュータ、メインフレームコンピュータ、及び上記の任意のシステム又は機器を含む分散型の計算環境が挙げられる。
【0022】
その最も基本的な構成では、製品情報のためのリアルタイムな重複削除デバイスをサーバ内に配することができる。サーバの非限定的な例として、マイクロプロセッサMCU又はプログラム可能論理デバイスFPGAなどの処理デバイス、データを記憶するためのストレージデバイス、及びクライアントとやり取りするための伝送デバイスが挙げられる。
【0023】
本出願によって使用される「サブモジュール」、「モジュール」、「コンポーネント」、又は「ユニット」という用語は、ハードウェア上で実行されるソフトウェアオブジェクト又はソフトウェアルーチンを言うことができる。ここで説明される様々なコンポーネント、サブモジュール、モジュール、ユニット、エンジン、及びサービスは、オブジェクト又はプロセスとして(例えば独立したスレッドとして)実現されえる。ここで説明されるシステム及びプロセスは、ソフトウェアを通じて実現されることが好ましいが、ハードウェアを通じて又はハードウェアとソフトウェアとの組み合わせを通じてそれらを実現することが考え出されてもよい。
【0024】
本明細書では、製品情報検索結果の重複排除について説明される。様々な実施形態において、記憶製品情報は、リアルタイムで重複排除される。一部の実施形態では、既存の製品情報の集合が維持される。例えば、既存の製品情報の集合は、売り手ユーザによってサブミット(提供、掲載)された製品情報を含んでいてよい。一部の実施形態では、記憶製品情報に対するアップデート(更新)が受信される。例えば、アップデートとして、記憶製品情報に追加されるユーザによってサブミットされた新しい製品情報、既存の記憶製品情報に対する変更、及び/又は既存の記憶製品情報の削除が挙げられる。一部の実施形態では、製品情報に対するアップデートを受けて、アップデート済みの製品情報集合(例えば、受信されたアップデートによって変更された既存の記憶製品情報の集合)に対して重複排除が実施される。その結果、記憶製品情報に対するアップデート後に受信された検索クエリの場合は、発見された検索結果が重複する製品情報を含んでいない可能性が高い。
【0025】
図2は、製品情報検索結果に対して重複排除を実施するためのシステムの一実施形態を示した図である。この例では、システム200は、クライアント202と、クライアント204と、ネットワーク206と、ウェブサーバ208と、製品情報重複排除サーバ210と、データベース212とを含む。ネットワーク206は、高速データネットワーク及び/又は電気通信デットワークを含む。
【0026】
クライアント202及び204は、クライアント202又はクライアント204のいずれかを使用しているユーザが、ウェブサーバ208によってサポートされているウェブサイトにアクセスするときに、ネットワーク206を通じてウェブサーバ208とやり取りしてよい。一部の実施形態では、ウェブサイトは、電子商取引ウェブサイトであってよい。クライアント202及び204は、それぞれラップトップとして示されているが、クライアント202及び204のその他の例として、デスクトップコンピュータ、モバイル機器、スマートフォン、タブレット端末、及びその他の任意のタイプの計算装置が挙げられる。例えば、或る売り手ユーザが、自身がウェブサイトで販売している製品に関連付けられている製品情報をウェブサーバ208にサブミットするだろう。一部の実施形態では、ウェブサーバ208は、サブミットされた製品情報を製品情報重複排除サーバ210に送信してよく、すると、サーバは、その製品情報をデータベース212に記憶させる。場合によっては、売り手ユーザは、自身の製品を買い手ユーザが購入するチャンスを冗長な情報によって増やせると考えて、冗長な製品情報をサブミットして、ユーザに対して表示するだろう。しかしながら、買い手ユーザは、検索結果内に冗長な製品情報を受信することを望んでいないと考えられるので、データベース212に記憶されている製品情報に対して重複排除が実施される必要がある。
【0027】
クライアント202を使用しているユーザ(例えば売り手)が、ウェブサイトの製品情報に対するアップデートをウェブサーバ208にサブミットするだろう。アップデートは、新しい製品情報を追加すること、既存の製品情報を変更すること、及び/又は既存の製品情報をデータベース212から削除することを含んでいてよい。アップデート情報の受信を受けて、ウェブサーバ208は、アップデート情報を含むメッセージを製品情報重複排除サーバ210に送信するように構成される。製品情報重複排除サーバ210は、受信されたアップデート情報に基づいて、データベース212に記憶されている製品情報をアップデートし、アップデートされた製品情報に対して重複排除を実施する。以下で更に論じられるように、重複排除を実施するにあたり、製品情報重複排除サーバ210は、類似の又は重複する製品情報を同じカテゴリに分類する。このような製品情報カテゴリは、次いで、データベース212に記憶される。
【0028】
重複排除プロセスに続いて、クライアント204を使用しているユーザ(例えば買い手)が、関連の製品情報を求める検索クエリをウェブサイトにおいてサブミットし得る。ウェブサーバ208に関連付けられている検索エンジンは、検索クエリを受信し、データベース212に記憶されている記憶製品情報を通じて検索を実施してよい。冗長な検索結果を提示することを回避するために、一部の実施形態では、各一致するカテゴリから1つの製品情報のみが選択され(同じカテゴリから複数の重複する製品情報は選択されない)、クライアント204におけるユーザに返される。
【0029】
図3は、製品情報検索結果の重複排除を実施するためのプロセスの一実施形態を示したフローチャートである。
【0030】
プロセス300では、データベースが、既存の製品情報を記憶していてよい。例えば、売り手ユーザによって、製品情報がサブミットされるだろう。一部の実施形態では、各記憶製品情報について、1つ以上の対応する特徴ベクトルが決定されて記憶されていてよい。プロセス300とともに更に説明されるように、記憶製品情報に対して(例えばユーザサブミッションに基づいて)アップデートがなされてよい。例えば、アップデートとして、記憶製品情報に追加されるユーザによってサブミットされた新しい製品情報、既存の記憶製品情報に対する変更、及び/又は既存の記憶製品情報の削除が挙げられる。以下で更に説明されるように、アップデートが発生するたびに、アップデート(例えば(1つ以上の)新しい製品情報の追加、(1つ以上の)既存の製品情報の変更、又は(1つ以上の)既存の製品情報の削除)によって変更された既存の記憶製品情報の集合に対して重複排除が実施される。このようにして、記憶製品情報は、アップデートを受けて重複排除され、冗長な製品情報が追加される可能性があるほぼそのたびに重複排除されるので、記憶製品情報は、比較的リアルタイムな方式で重複排除されるだろう。このようにして、アップデート及び重複排除の後に続く製品情報の検索は、重複する製品情報を返す可能性が低くなる。こうして、プロセス300は、検索結果内の冗長な情報を減らし、サーバからクライアントへの検索結果の速やかな伝送を可能にし、検索結果の精度を向上させるだろう。
【0031】
ステップ302では、記憶製品情報に関連付けられているアップデート情報が受信される。
【0032】
様々な実施形態において、データベースには、1つ以上のウェブサイトに関連付けられている既存の製品情報が維持される。例えば、ウェブサイトが電子商取引ウェブサイトである場合、記憶製品情報は、ウェブサイトの売り手ユーザによってサブミットされた製品情報を含み得る。例えば、製品情報は、その製品情報をサブミットした売り手ユーザに関連付けられている識別情報、製品の価格、製品の仕様、製品の画像、提供可能な製品の個数などを含み得る。例えば、特定の売り手ユーザによって、売られている各製品のために電子商取引ウェブサイトにウェブページが作成されてよく、その製品に関連付けられている製品情報は、その特定の売り手ユーザによってサブミットされてそのウェブページに表示されてよい。一部の実施形態では、製品情報は、特定の製品及びその製品の特定の売り手に関連付けられている、ウェブページに表示されるべき製品情報を含んでいる。記憶製品情報が維持されているので、ウェブサイトである製品を購入したいと望む可能性のある、任意のユーザがウェブサイトで検索クエリをサブミットすると、そのクエリに一致する記憶製品情報がその買い手ユーザのための検索結果として返されることになる。
【0033】
様々な実施形態では、記憶製品情報に対してアップデートがなされてよい。例えば、アップデータは、売り手ユーザによる、(1つ以上の)新しい製品情報をサブミットするという選択、(1つ以上の)既存の製品情報を変更するという選択、及び/又は(1つ以上の)既存の製品情報を削除するという選択によってなされてよい。例えば、電子商取引ウェブサイトにおけるあるウェブページにおいて、売り手ユーザが、新しい製品情報をサブミットすること、既存の製品情報を変更すること、及び/又は既存の製品情報を削除することに関連付けられているユーザインターフェースウィジェット(例えば(1つ以上の)選択ボタン)をアクティブにしてよい。
【0034】
一部の実施形態では、アップデート情報は、少なくとも、アップデートが新しい製品情報のサブミッション、既存の製品情報の変更、及び/又は既存の製品情報の削除に関連付けられているか否かを含んでいる。一部の実施形態では、アップデート情報は、また、少なくとも、追加される(1つ以上の)新しい製品情報、変更される(1つ以上の)既存の製品情報及び該製品情報に関連付けられている(1つ以上の)変更を特定する情報、並びに/又は削除される(1つ以上の)既存の製品情報を特定する情報も含んでいる。
【0035】
ステップ304では、記憶製品情報と、該記憶製品情報に関連付けられている特徴ベクトルの集合とが取り出されてアップデートされ、このアップデートは、少なくとも一部にはアップデート情報に基づいて決定された新しく追加された製品情報又は変更された製品情報についての特徴ベクトルの集合を生成することを含む。
【0036】
様々な実施形態では、各記憶製品情報について、1つ以上の特徴ベクトルが生成される。特徴ベクトルは、製品情報の特性を表わしており、様々な実施形態では、製品情報の特徴ベクトル集合は、その製品情報を表わすために使用されてよい。一部の実施形態では、各特徴ベクトル集合は、それが表わしている製品情報を特定する情報とともに記憶される。例えば、ある製品情報について生成された1つ以上の特徴ベクトルは、その製品情報をサブミットしたユーザの識別情報、製品の名称、製品の属性、製品のモデル、製品のメーカ、製品のブランド、及び製品のキーワードを含んでいてよい。
【0037】
以下で論じられるように、第1の製品情報と、第2の製品情報との間における類似性は、第1の製品情報について生成された特徴ベクトル集合と、第2の製品情報について生成された特徴ベクトル集合とに基づいて計算されてよい。2つの製品情報間における類似性は、一方が他方の重複であるか否かを示していてよい。
【0038】
様々な実施形態では、既存の記憶製品情報、及びその既存の製品情報について生成された記憶された特徴ベクトルの集合が取り出され、アップデート情報に基づいてアップデートされる。アップデート指示の受信を受けて、そのアップデートが新しい製品情報の追加、既存の製品情報の変更、及び/又は既存の製品情報の削除に関連付けられているか否かが決定される。次いで、記憶製品情報及びそれに対応する特徴ベクトル集合が、以下のようにアップデートされる。
【0039】
アップデート情報が、変更される既存の製品情報を特定している場合は、その既存の製品情報は、変更され、新しく変更された製品情報について、対応する特徴ベクトル集合が生成される(例えば、新しく変更された製品情報から、対応する特徴ベクトル集合が抽出される)。例えば、アップデート情報が、製品情報Aが変更されることを指示しており、したがって、製品情報Aについて決定された以前の特徴ベクトルが削除され、変更後の製品情報Aに基づいて新しく生成された特徴ベクトルA1、A2、及びA3で置き換えられると想定する。アップデートプロセスでは、製品情報Aと、A1、A2、及びA3を含む特徴ベクトル集合との間における対応関係が記憶される。例えば、この対応関係は、製品情報Aが特徴ベクトルA1、A2、及びA3に関連付けられていることを示し得る。
【0040】
アップデート情報が、追加される新しい製品情報を特定している場合は、その新しい製品情報は、記憶製品情報の集合に追加され、その新しい製品情報について、対応する特徴ベクトル集合が生成される(例えば、その新しい製品情報から、対応する特徴ベクトル集合が抽出される)。例えば、アップデート情報が、新しい製品情報Bが追加されることを示しており、したがって、新しい製品情報Bについて新しい特徴ベクトルB1、B2、及びB3が生成されると想定する。アップデートプロセスでは、製品情報Bと、B1、B2、及びB3を含む特徴ベクトル集合との間における対応関係が記憶される。例えば、この対応関係は、製品情報Bが特徴ベクトルB1、B2、及びB3に関連付けられていることを示し得る。
【0041】
アップデート情報が、削除される既存の製品情報を特定している場合は、その既存の製品情報は、記憶製品情報の集合から削除され、それに対応する特徴ベクトル集合もまた、削除される。例えば、アップデート情報が、既存の製品情報Cが削除されることを示しており、削除される製品情報Cについて記憶されている特徴ベクトルがC1、C2、及びC3であることを示していたと想定する。アップデートプロセスでは、製品情報Cと、C1、C2、及びC3を含む特徴ベクトル集合との間における記憶されていた対応関係が削除される。例えば、対応関係は、製品情報Cが特徴ベクトルC1、C2、及びC3に関連付けられていることを示し得る。
【0042】
一部の実施形態では、新しい製品情報又は変更された製品情報について、以下のように、特徴ベクトル集合が生成されてよい。先ず、ユーザによってサブミットされた、記憶製品情報に対するアップデート情報が受信される。サブミットされたアップデート情報は、次いで、チェックされる。例えば、製品情報の発行形式又はアップデート情報をサブミットしたユーザのアクセス権限が、ルール/記憶されたセキュリティ許可に照らしてチェックされてよい。アップデートが承認された場合は、新しい製品情報及び/又は変更された製品情報についての特徴ベクトルの生成を要求するメッセージが背景サーバに送信される。背景サーバは、新しく追加された各製品情報についての新しい特徴ベクトルの集合と、変更された各製品情報についての新しい特徴ベクトルの集合とを生成する。
【0043】
一部の実施形態では、システム管理者によって、まとめて生成される特徴ベクトルに関連付けられているパラメータが設定されてよい。一部の実施形態では、効率を高めるために、アップデートによって導入される新しい又は変更された製品情報が最大量に到達するまでまとめられ、次いで一括して処理されるように、既定の最大量が事前に設定されてよい。例えば、アップデートのために特徴ベクトルを生成される新しい又は変更された製品情報の量が最大量を超える場合、新しい又は変更された製品情報のうちの最大量未満の部分についての特徴ベクトルが生成されてよい。このように、まとまりごとに特徴ベクトルを生成される製品情報の量は、確立された最大量に基づいて制御される。まとまりごとに特徴ベクトルを生成される製品情報の量を制御することは、処理の時間を特定の範囲内に維持するのに有用である。アップデートごとに、1つ以上のまとまりの特徴ベクトルが生成されてよい。特徴ベクトルの生成をまとめることは、リアルタイムなこの製品情報重複排除技術に対して一貫性及び効率性を与えるだろう。
【0044】
ステップ306では、少なくとも一部には、アップデートされた特徴ベクトルの集合に基づいて、アップデートされた記憶製品情報間における相関性が決定される。
【0045】
一部の実施形態では、アップデートがあるたびに、アップデートされた全ての製品情報(すなわち、削除されなかった既存の製品情報、新しく追加された製品情報、又は変更された製品情報)と、その他の全ての製品情報との間における相関性が決定される。一部の実施形態では、2つの製品情報間における相関性は、それら2つの製品情報間における類似の程度を表わしている。例えば、2つの製品情報が高い相関性を共有している場合、それら2つの製品情報は、互いに非常に類似している。一部の実施形態では、対応するそれらの特徴ベクトル集合に基づいて、2つの製品情報間における相関性が決定される。
【0046】
一部の実施形態では、更に逐次的な手法として、アップデートがあるたびに、アップデートされた各製品情報(すなわち、新しく追加された製品情報、又は変更された製品情報のいずれか)と、既存の(変更されたのでも削除されたのでもない)製品情報との間における相関性が決定される。
【0047】
例えば、新しく追加された製品情報Bに、特徴ベクトルの集合B1、B2、及びB3が関連付けられており、変更された製品情報Cに、特徴ベクトルの集合C1、C2、及びC3が関連付けられていると想定する。また、既存の(新しく追加されたのでも、変更されたのでも、削除されたのでもない)製品情報Aに、特徴ベクトルの集合A1、A2、及びA3が関連付けられていると想定する。既存の製品情報と、新しく追加された又は変更された製品情報との間における相関性を計算するにあたっては、特徴ベクトルの集合(A1、A2、及びA3)、(B1、B2、及びB3)、及び(C1、C2、及びC3)を使用して、製品情報Aと製品情報Bとの間における相関性、及び製品情報Aと製品情報Cとの間における相関性が計算される。製品情報Aと製品情報Bとの間における相関性を例にとると、AとBとの間における相関性は、A1とB1との間における類似性S1と、A2とB2との間における類似性S2と、A3とB3との間における類似性S3との組み合わせに基づいて決定されてよい。特徴ベクトル集合間における類似性を決定するために、様々な既知の技術が使用されてよい。
【0048】
ステップ308では、1つ以上のアップデートされた記憶製品情報が、少なくとも一部にはそれら1つ以上のアップデートされた記憶製品情報に関連付けられている決定された相関性に基づいて、1つのカテゴリに分類される。そのカテゴリからは、その後の検索クエリを受けて、1つの製品情報が選択される。
【0049】
一部の実施形態では、既存の記憶製品情報の一部が、(例えば先の決定に基づいて、)互いに非常に類似している1つ以上の製品情報をそれぞれ含む様々なカテゴリに分類されてよい。一部の実施形態では、互いに対する相関性が閾値を超える製品情報が同じカテゴリに分類されうるように、類似性の閾値が事前に設定されてよい。カテゴリは、少なくとも1つの製品情報を含んでいてよい。同じカテゴリ内の製品情報間における強い類似性ゆえに、各カテゴリ内の製品情報は、互いに重複していると見なされる。
【0050】
一部の実施形態では、もしあるならば新しく追加された製品情報と、もしあるならば変更された製品情報とが、既存の製品情報が既に属しているカテゴリに又は新しいカテゴリに入れられる。このようにして、アップデートされた製品情報(新しく追加された製品情報及び変更された製品情報)は、重複情報のカテゴリに速やかに分類されるだろう。
【0051】
類似の製品情報を一括して1つのカテゴリに分類することによって、検索結果内における製品情報の重複排除が達成されるだろう。一部の実施形態では、同じカテゴリに分類された全ての製品情報が、互いに重複していると見なされ、また、そのカテゴリの識別情報(例えばそのカテゴリに関連付けられている記述情報)によってラベル付けされる。
【0052】
様々な実施形態では、検索結果内における製品情報の重複排除は、各カテゴリから、検索クエリに一致する製品情報を1つずつ見つけ出し、そのカテゴリについての検索結果として返すことを含む。同じカテゴリ内の製品情報は、互いに重複していると見なされるので、一部の実施形態では、一致するカテゴリごとに1つの製品情報のみを選択し、検索結果として提示する(一方で、選択されなかった製品情報は、検索結果として提示されない)ことによって、検索しているユーザに対して提示される冗長な情報の量が低減される。一部の実施形態では、各カテゴリから、最も類似している(例えば、検索クエリとの間に最も高い相関性を有する又は検索クエリと最も一致する)製品情報が選択される。例えば、先ず、カテゴリに関連付けられている識別情報に基づいて、各検索クエリがどのカテゴリに一致するかが決定されてよく、次いで、各一致するカテゴリから、検索クエリに最も類似している製品情報が選ばれ、検索結果の1つとして提示される。別の例では、先ず、どのカテゴリからの製品情報が検索クエリに一致するかが決定されてよく、次いで、各カテゴリから、検索クエリに最も類似している製品情報のみが選択され、検索結果の1つとして提示される。提示される検索結果に対してこのような重複排除を実施することによって、クライアントに提示されるためにサーバから見つけ出して送る必要がある検索結果が減り、これは、効率を向上させる。
【0053】
一部の実施形態では、製品情報をカテゴリに分類することは、製品情報を、同じ売り手ユーザ(製品情報をサブミットしたユーザ)に関連付けられている対応する相関性に基づいて、カテゴリに分類することを含んでいてよい。このようにして、各カテゴリは、類似の製品情報のみならず、同じ売り手ユーザによってサブミットされた製品情報も含む。これは、異なるユーザによってサブミットされた類似の製品情報を重複としてラベル付けする事態を回避できるだろう。
【0054】
一部の実施形態では、システム管理者によって、検索結果を決定する時刻に関連付けられているパラメータが設定されてよい。場合によっては、検索クエリは、重複排除プロセスの完了前に受信されてよい。検索結果を比較的速やかなやり方で提示することによって、検索しているユーザの目的に更に良く叶うように、既定の期間閾値が設定されてよい。したがって、重複排除プロセスが期間閾値内に完了しない場合、冗長な結果を返す可能性を伴う検索結果を速やかに返すほうが、冗長な結果を伴わない結果を時間をかけて返すよりも、検索しているユーザの目的に良く叶うだろうという前提に基づいて、完全には重複排除されていない製品情報の中から、検索結果が見つけ出される。
【0055】
図4は、製品情報検索結果に対して重複排除を実施するためのシステムの一実施形態を示した図である。この例では、システム400は、受信ユニット402と、アップデートユニット404と、査定モジュール4041と、処理モジュール4042と、計算ユニット406と、重複排除ユニット408と、分類モジュール4081と、発行モジュール4082とを含む。
【0056】
ユニット及びサブユニットは、1つ以上の汎用プロセッサ上で実行されるソフトウェアコンポーネントとして、又はプログラム可能論理デバイス及び/若しくは特定の機能を実施するように設計された特殊用途向け集積回路などのハードウェアとして、又はそれらの組み合わせとして実装することができる。一部の実施形態では、ユニット及びサブユニットは、本発明の実施形態で説明される方法を(パソコン、サーバ、ネットワーク機器などの)計算装置に実行させるための幾つかの命令を含み尚且つ(光ディスク、フラッシュストレージデバイス、モバイルハードディスクなどの)不揮発性のストレージ媒体に記憶させることができるソフトウェア製品の形で具現化することができる。ユニット及びサブユニットは、1つのデバイスに実装されてよい、又は複数のデバイスに分散されてよい。
【0057】
一部の実施形態では、受信ユニット402は、ユーザによって入力された製品アップデート情報を受信するように構成される。アップデートユニット404は、記憶製品情報と、この記憶製品情報に関連付けられている特徴ベクトル集合とを取り出してアップデートするように構成される。アップデートは、少なくとも一部にはアップデート情報に基づいて決定された新しく追加された製品情報又は変更された製品情報についての特徴ベクトル集合を生成することを含む。計算ニット406は、少なくとも一部には、アップデートされた特徴ベクトル集合に基づいて、アップデートされた記憶製品情報の間における相関性を決定するように構成される。重複排除ユニット408は、少なくとも一部には、1つ以上のアップデートされた記憶製品情報の間における決定された相関性に基づいて、1つ以上のアップデートされた記憶製品情報を1つのカテゴリに分類するように構成され、そのカテゴリからは、その後の検索クエリを受けて、1つの製品情報のみが選択される。
【0058】
様々な実施形態では、記憶製品情報に対応する特徴ベクトルは、重複排除を実施するためにオンラインで、尚且つ(例えば設定された期間ごとではなく)受信されたアップデート情報を受けてリアルタイムでアップデートされる。
【0059】
アップデートユニット404は、査定モジュール4041と、処理モジュール4042とを含む。査定モジュール4041は、アップデート情報が、既存の製品情報が変更されること、又は既存の製品情報が削除されること、又は新しい製品情報が追加されることを指示しているのかを査定するように構成される。処理モジュール4042は、アップデート情報が、既存の製品情報が変更されることを指示しているときに、その変更される製品情報についての特徴ベクトルを特徴ベクトル集合から取得し、その変更される製品情報に対応する特徴ベクトルをアップデートするように構成される。処理モジュール4042は、アップデート情報が、新しい製品情報が変更されることを指示しているときに、その新しい製品情報についての特徴ベクトルを生成し、その新しい製品情報についての特徴ベクトルを特徴ベクトル集合に追加するように構成される。処理モジュール4042は、アップデート情報が、既存の製品情報が削除されることを指示しているときに、その既存の製品情報に対応する特徴ベクトルを特徴ベクトル集合から削除するように構成される。
【0060】
一部の実施形態では、受信ユニット402は、ユーザによってサブミットされたアップデート情報をオンラインで受信し、次いで、アップデート情報をチェックする。もし、受信ユニット402が、そのアップデート情報を承認したならば、受信ユニット402は、特徴ベクトルの生成を要求するメッセージをアップデートユニット404に送信する。アップデートユニット404は、特徴ベクトルの生成を要求するメッセージに対し、変更された製品情報についての特徴ベクトル又は新しい製品情報についての特徴ベクトルを計算することによって応える。
【0061】
一部の実施形態では、処理モジュール4042は、また、アップデートされる特徴ベクトルの量が最大量を超えたときに、アップデート情報指示に基づいてまとめて特徴ベクトルをアップデートするようにも構成され、アップデートされる特徴ベクトルの各まとまりの量は、上記最大量を超えない。
【0062】
重複排除ユニット408は、分類モジュール4081と、発行モジュール4082とを含む。一部の実施形態では、分類モジュール4081は、同じカテゴリに含められることを決定された製品情報についてのカテゴリラベルを決定するように構成される。発行モジュール4082は、各カテゴリの中で、サブミットされた検索クエリに最も類似している製品情報を、表示される検索結果の一部として送信するように構成される。一部の実施形態では、分類モジュール4081は、先ず、製品情報をサブミットしたユーザのIDに基づいて、その製品情報を分類するように構成される。
【0063】
一部の実施形態では、システム400の中に、好ましい発行済みモジュール(不図示)が含められ、このモジュールは、完了までの期間閾値を超える時間を重複排除プロセスが費やしたか否かを決定し、そうである場合、重複排除を完了されていない製品情報を使用して、受信された検索クエリについての検索結果を決定するように構成される。
【0064】
図5は、製品情報検索結果に対して重複排除を実施するためのシステムの一実施形態を示した図である。この例では、システム500は、オフラインモジュール502と、オンラインモジュール504と、アップデートモジュール506と、ID割り当てモジュール508と、製品情報待ち行列管理モジュール510とを含む。
【0065】
オフラインモジュール502は、1つ以上のウェブサイトサーバに記憶されている全ての既存の製品情報を集約させ、記憶製品情報に対応する特徴ベクトルについてのマスタインデックスファイルを生成し、各製品情報が属すると決定された各カテゴリについての識別情報(カテゴリIDを含む)を決定するように構成される。オフラインモジュール502は、この情報(製品情報、該製品情報についての特徴ベクトル、製品情報の部分集合が属するカテゴリを含む)をデータベースに保存するように構成される。一部の実施形態では、オフラインモジュール502は、システム500が使用される前に一度だけ起動される。
【0066】
オンラインモジュール504は、伝送された製品情報を受信するように構成される。オンラインモジュール504は、マスタインデックス及び増分データシートを使用して査定を実施する。オンラインモジュール504は、受信された製品情報が重複であるか(例えば、別の製品情報に類似しているか)どうかと、その情報が属しているカテゴリの識別情報とを決定してよい。更に、オンラインモジュール504は、この製品情報についての特徴ベクトル情報を、伝送された製品情報について追跡される増分データシートに保存する。
【0067】
アップデートモジュール506は、マスタインデックスを増分インデックスによってアップデートするように構成される。アップデートモジュール506は、オンライン製品情報データベースのなかの情報を使用して、マスタインデックス及び増分データシートのなかの情報をフィルタ除去する(例えば削除する又は無効にする)。更に、アップデートモジュール506は、マスタインデックスと増分データシートとを合体させて新しいマスタインデックスファイルを生成するように構成される。アップデートモジュール506は、既存のカテゴリに関連付けられている識別情報によって使用されていない全ての未使用IDを回復させるために、IDアロケータ508を呼び出してもよい。
【0068】
IDアロケータ508は、オンラインモジュール504と協働して32桁のDを割り当てるように構成される。IDアロケータ508は、各決定された製品情報カテゴリに対して一意なコードを割り振って、そのカテゴリに関連付けられている識別情報に含めるように構成される。言い換えると、同じカテゴリのなかの複数の製品情報が、同じカテゴリIDを有することになる。
【0069】
製品情報待ち行列管理モジュール510は、アプリケーションから送信された製品情報を受信して、待ち行列管理を実施するように構成される。製品情報待ち行列管理モジュール510は、オンラインモジュール504が過剰にビジーではないことを保証するために、オンラインモジュール504を使用して査定を順次実施し、その結果を送り返す。
【0070】
一部の実施形態では、製品情報に対するリアルタイムな重複排除のために、初期化プロセスにおいて、ウェブサイトサーバ上に記憶されている何十億もの製品情報に対して分散型のオフライン計算が実施されてよい。全ての製品情報間における類似性が決定され、それらの類似性に基づいて製品情報が決定され、この情報(製品情報、該製品情報についての特徴ベクトル、及び該製品情報が属しているカテゴリを含む)は、データベースに記憶される。同時に、ユーザによってリアルタイムで発行(投稿)された製品情報のまとまりが、増加する製品情報カテゴリ分け情報をリアルタイムで決定するために処理される。データベースは、次いで、増加する製品情報カテゴリ分け情報に基づいてアップデートされる。検索プロセスにおいて、ユーザは、検索エンジンにクエリ情報を入力し、検索エンジンは、データベースのなかでクエリ情報に一致する1つ以上のカテゴリを探す。検索エンジンによって見つけ出された1つ以上のカテゴリからは、クエリ情報に対して最も高い類似性を有する製品情報が各カテゴリから見つけ出され、検索結果として表示される。その結果、表示される検索結果に対して効率的な重複排除が達成され、売り手ユーザは、重複製品を発行する詐欺行為に携わることを阻まれる。
【0071】
一部の実施形態では、説明された重複排除技術が検索エンジンにおいて実施されてよい。例えば、検索クエリの受信を受けて、検索エンジンは、同じカテゴリ内の製品情報を検索クエリに対するそのそれぞれの類似性に基づいてランク付けし、そのカテゴリ内でユーザによって入力されたクエリに最も密接に関係している製品情報を表示してよい。
【0072】
一部の実施形態では、重複する製品情報を決定するためのプログラムを展開させるために、及び検索エンジンのベースレイヤのために、C++プログラミング言語が使用されてよい。ウェブサイトにおける、全ての製品情報についてのカテゴリ情報の算出は、計算上の効率を確実にするために、分散型のデータ前処理システム環境を必要とするだろう。データベースシステム(例えばOracle)は、データの精度及び一貫性を確実にするために、極めて強力な同期化メカニズム及びトリガメカニズムを必要とするだろう。
【0073】
一部の実施形態では、リアルタイムにおける各既存の製品情報と、増加する各製品情報との間における類似性が決定される。ウェブサイト製品情報の類似性の決定(重複の決定)は、構造化データの多次元ベクトルを使用して関連性を計算することによって完了される。類似性を決定する(重複を決定する)ために使用されるアルゴリズムの例として、Match、Shingliing、SimHash(近いものに対して高感度なハッシュ)、Random Projection、及びSpotSigが挙げられる。
【0074】
一部の実施形態では、データベースからデータ(例えば製品情報についての特徴ベクトルなど)が得られた後、データが誤って取り除かれないことを保証するために、例外処理能力が使用されてよい。このように、製品情報がひとたび様々なカテゴリに分類されたら、各カテゴリから、ユーザによってサブミットされた検索クエリに最も類似する製品情報が、検索結果内に提示されるために返される。
【0075】
また、リアルタイムな情報重複排除のための技術的解決策を提供するにあたっては、リアルタイムな動作環境における相違にしたがって、インデックスを構築する技術的フレームワークが選択されるべきである。それと同時に、類似性のリアルタイム計算が所望の時間的限界を超えた場合における代償メカニズムを有することが検討される必要がある。最後に、水平情報(制限的要件を伴う情報集合)の重複排除は、異なるビジネス動作要件にしたがって、垂直情報(制限的要件を伴わない情報集合)のそれに置き換えることが可能である。
【0076】
当業者にならば、明らかに、本出願において上述された各モジュール又は各ステップが汎用の計算装置を通じて実現可能であることが理解されるべきである。これらのモジュール又はステップは、1つの装置に集中させることができる、又は幾つかの計算装置で構成されるネットワークに分散させることができる。随意として、これらのモジュール又はステップは、計算装置の実行可能プログラムコードを通じて実現することができ、したがって、ストレージデバイスに記憶されて、計算装置によって実行することができる。更に、特定の状況では、示された又は説明されたステップは、ここでの以外の順序で実行されてよい。或いは、それらは、様々な集積回路モジュールに分けて入れられてよい、又は複数のモジュール若しくはステップが、1つの集積回路モジュールに入れられてよい。したがって、本出願は、ハードウェアとソフトウェアとのいかなる特定の組み合わせにも限定されない。
【0077】
上記は、本出願の好ましい実施形態に過ぎず、本出願を制限するためのものではない。当業者にとっては、本出願は、様々な修正及び変更を有しているだろう。本出願の趣旨及び原理の範囲内でなされたいかなる変更、均等物、置換、又は改善も、本出願の保護範囲内に含まれるものとする。
【0078】
以上の実施形態は、理解を明瞭にすることを目的として幾らか詳細に説明されてきたが、本発明は、与えられた詳細に限定されない。本発明を実現するには、多くの代替的手法がある。開示された実施形態は、例示的なものであり、非限定的である。
適用例1:製品情報検索結果に対して重複排除を実施するためのシステムであって、1つ以上のプロセッサであって、記憶製品情報に関連付けられているアップデート情報を受信し、前記記憶製品情報と、前記記憶製品情報に関連付けられている特徴ベクトルの集合とを取り出してアップデートし、前記アップデートすることは、少なくとも一部には前記アップデート情報に基づいて決定された新しく追加された製品情報又は変更された製品情報についての特徴ベクトルの集合を生成することを含み、少なくとも一部には前記アップデートされた特徴ベクトルの集合に基づいて、前記アップデートされた記憶製品情報の間における相関性を決定し、1つ以上の前記アップデートされた記憶製品情報を、少なくとも一部には前記1つ以上の前記アップデートされた記憶製品情報に関連付けられている前記決定された相関性に基づいて、1つのカテゴリに分類するように構成されている1つ以上のプロセッサと、その後の検索クエリを受けて、前記カテゴリから1つの製品情報が選択されること、前記1つ以上のプロセッサに接続され、前記1つ以上のプロセッサに命令を提供するように構成されている1つ以上のメモリと、を備える、システム。
適用例2:適用例1に記載のシステムであって、
前記アップデート情報は、追加される新しい製品情報を識別する情報、変更される第1の既存の製品情報を識別する情報、及び削除される第2の既存の製品情報を識別する情報のうちの、1つ以上を示す、システム。
適用例3:適用例1に記載のシステムであって、前記記憶製品情報と、前記記憶製品情報に関連付けられている前記特徴ベクトルの集合とを取り出してアップデートする前に、前記アップデート情報をチェック及び承認する、システム。
適用例4:適用例1に記載のシステムであって、前記記憶製品情報を取り出してアップデートすることは、新しい製品情報を追加すること、第1の既存の製品情報を変更すること、及び第2の既存の製品情報を削除することのうちの、1つ以上を含む、システム。
適用例5:適用例1に記載のシステムであって、少なくとも一部には前記アップデート情報に基づいて決定された新しく追加された製品情報又は変更された製品情報についての特徴ベクトルの集合を生成することは、前記新しく追加された製品情報又は変更された製品情報の量が最大量を超えるか否かを決定し、前記最大量を超えた場合に、前記最大量よりも少ない前記新しく追加された製品情報又は変更された製品情報を含むまとまりについての特徴ベクトルの集合を生成すること、を含む、システム。
適用例6:適用例1に記載のシステムであって、第1のアップデートされた記憶製品情報と、第2のアップデートされた記憶製品情報との間における相関性は、前記第1のアップデートされた記憶製品情報と、前記第2のアップデートされた記憶製品情報との間における類似の程度を示す、システム。
適用例7:適用例1に記載のシステムであって、前記カテゴリに分類された前記1つ以上の前記アップデートされた記憶製品情報は、前記カテゴリに関連付けられている識別情報とともに記憶される、システム。
適用例8:適用例1に記載のシステムであって、前記カテゴリから選択された前記製品情報は、1つ以上のその他の検索結果とともに検索結果として提示される、システム。
適用例9:製品情報検索結果に対して重複排除を実施するための方法であって、記憶製品情報に関連付けられているアップデート情報を受信し、前記記憶製品情報と、前記記憶製品情報に関連付けられている特徴ベクトルの集合とを取り出してアップデートし、前記アップデートは、少なくとも一部には前記アップデート情報に基づいて決定された新しく追加された製品情報又は変更された製品情報についての特徴ベクトルの集合を生成することを含み、少なくとも一部には前記アップデートされた特徴ベクトルの集合に基づいて、前記アップデートされた記憶製品情報の間における相関性を決定し、1つ以上の前記アップデートされた記憶製品情報を、少なくとも一部には前記1つ以上の前記アップデートされた記憶製品情報に関連付けられている前記決定された相関性に基づいて、1つのカテゴリに分類し、その後の検索クエリを受けて、前記カテゴリから1つの製品情報が選択されること、を備える方法。
適用例10:適用例9に記載の方法であって、前記アップデート情報は、追加される新しい製品情報を識別する情報、変更される第1の既存の製品情報を識別する情報、及び削除される第2の既存の製品情報を識別する情報のうちの、1つ以上を示す、方法。
適用例11:適用例9に記載の方法であって、前記記憶製品情報と、前記記憶製品情報に関連付けられている前記特徴ベクトルの集合とを取り出してアップデートする前に、前記アップデート情報をチェック及び承認する、方法。
適用例12:適用例9に記載の方法であって、前記記憶製品情報を取り出してアップデートすることは、新しい製品情報を追加すること、第1の既存の製品情報を変更すること、及び第2の既存の製品情報を削除することのうちの、1つ以上を含む、方法。
適用例13:適用例9に記載の方法であって、少なくとも一部には前記アップデート情報に基づいて決定された新しく追加された製品情報又は変更された製品情報についての特徴ベクトルの集合を生成することは、前記新しく追加された製品情報又は変更された製品情報の量が最大量を超えるか否かを決定し、前記最大量を超えた場合に、前記最大量よりも少ない前記新しく追加された製品情報又は変更された製品情報を含むまとまりについての特徴ベクトルの集合を生成すること、を含む、方法。
適用例14:適用例9に記載の方法であって、第1のアップデートされた記憶製品情報と、第2のアップデートされた記憶製品情報との間における相関性は、前記第1のアップデートされた記憶製品情報と、前記第2のアップデートされた記憶製品情報との間における類似の程度を示す、方法。
適用例15:適用例9に記載の方法であって、前記カテゴリに分類された前記1つ以上の前記アップデートされた記憶製品情報は、前記カテゴリに関連付けられている識別情報とともに記憶される、方法。
適用例16:適用例9に記載の方法であって、前記カテゴリから選択された前記製品情報は、1つ以上のその他の検索結果とともに検索結果として提示される、方法。
適用例17:コンピュータ読み取り可能なストレージ媒体に実装された、製品情報検索結果に対して重複排除を実施するためのコンピュータプログラム製品であって、記憶製品情報に関連付けられているアップデート情報を受信するためのコンピュータ命令と、前記記憶製品情報と、前記記憶製品情報に関連付けられている特徴ベクトルの集合とを取り出してアップデートするためのコンピュータ命令と、前記アップデートすることは、少なくとも一部には前記アップデート情報に基づいて決定された新しく追加された製品情報又は変更された製品情報についての特徴ベクトルの集合を生成することを含み、少なくとも一部には前記アップデートされた特徴ベクトルの集合に基づいて、前記アップデートされた記憶製品情報の間における相関性を決定するためのコンピュータ命令と、1つ以上の前記アップデートされた記憶製品情報を、少なくとも一部には前記1つ以上の前記アップデートされた記憶製品情報に関連付けられている前記決定された相関性に基づいて、1つのカテゴリに分類するためのコンピュータ命令と、その後の検索クエリを受けて、前記カテゴリから1つの製品情報が選択されること、を備えるコンピュータプログラム製品。