(58)【調査した分野】(Int.Cl.,DB名)
前記重み付け部は、時間的に古いノードに対して高い値が付くように、軌跡情報を構成する各ノードに対して値が重複しないように重み付けを行なう請求項1記載の処理装置。
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、次のノード(例えば、場所)を計算して求めるときに、パブリッククラウドのようなプライバシーの保護が図られていないサードパーティが提供しているサーバ(以下、クラウドサーバという)を利用してしまうと、軌跡情報を含むクエリのプライバシーの保護が困難になる。つまり、クラウドサーバで次のノードを計算して求める過程において、軌跡情報のプライバシーの保護を図ることができない。
【0005】
本発明では、プライバシーの保護を図りつつ、クラウドサーバを利用して次のノードを計算して求めることができる処理装置、演算装置、処理方法、演算方法、処理プログラム及び演算プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
処理装置は、複数のノードとエッジで構成されており、ユーザの行動履歴に基づいて作成された軌跡情報を受信する受信部と、前記受信部によって受信された軌跡情報にループ部分が存在する場合には、複数の軌跡情報に分割してループを解消する分割処理部と、軌跡情報を構成する各ノードに対して重み付けを行なう重み付け部と、前記重み付けが行われた軌跡情報に暗号化を行なう暗号化部と、前記暗号化部により暗号化された軌跡情報を送信する送信部とを備える構成である。
【0007】
処理装置では、前記分割処理部は、ループしているノードに向かって接続されているエッジを分断することにより複数の軌跡情報に分割してループを解消する構成でもよい。
【0008】
処理装置では、前記重み付け部は、時間的に古いノードに対して高い値が付くように、軌跡情報を構成する各ノードに対して値が重複しないように重み付けを行なう構成でもよい。
【0009】
演算装置は、送信されてきた暗号化されている軌跡情報を第1軌跡情報として受信する第1受信部と、ユーザ端末から暗号化されている軌跡情報を第2軌跡情報として受信する第2受信部と、前記第1受信部で受信した複数の前記第1軌跡情報を統合情報として統合する統合部と、前記第2軌跡情報に基づいて、前記統合情報を参照し、前記第2軌跡情報を構成している最後のノードに続く次のノードとして相応しいノードを算出する算出部と、前記算出部により算出されたノードの情報を前記ユーザ端末へ送信する送信部を備える構成である。
【0010】
演算装置では、前記算出部は、前記第2軌跡情報を構成している最後のノードに続く次のノードとして相応しいノードを複数個算出し、前記送信部は、前記算出部で算出された複数個のノードの情報を前記ユーザ端末へ送信する構成でもよい。
【0011】
処理方法は、複数のノードとエッジで構成されており、ユーザの行動履歴に基づいて作成された軌跡情報にループ部分が存在する場合には、複数の軌跡情報に分割してループを解消する分割処理工程と、軌跡情報を構成する各ノードに対して重み付けを行なう重み付け工程と、前記重み付けが行われた軌跡情報に暗号化を行なう暗号化工程と、前記暗号化工程により暗号化された軌跡情報を送信する送信工程とを備える構成である。
【0012】
演算方法は、送信されてきた暗号化されている軌跡情報を第1軌跡情報として受信する第1受信工程と、ユーザ端末から暗号化されている軌跡情報を第2軌跡情報として受信する第2受信工程と、前記第1受信工程で受信した複数の前記第1軌跡情報を統合情報として統合する統合工程と、前記第2軌跡情報に基づいて、前記統合情報を参照し、前記第2軌跡情報を構成している最後のノードに続く次のノードとして相応しいノードを算出する算出工程と、前記算出工程により算出されたノードの情報を前記ユーザ端末へ送信する送信工程を備える構成である。
【0013】
処理プログラムは、コンピュータに、複数のノードとエッジで構成されており、ユーザの行動履歴に基づいて作成された軌跡情報にループ部分が存在する場合には、複数の軌跡情報に分割してループを解消する分割処理工程と、軌跡情報を構成する各ノードに対して重み付けを行なう重み付け工程と、前記重み付けが行われた軌跡情報に暗号化を行なう暗号化工程と、前記暗号化工程により暗号化された軌跡情報を送信する送信工程とを実行させるためのプログラムである。
【0014】
演算プログラムは、コンピュータに、送信されてきた暗号化されている軌跡情報を第1軌跡情報として受信する第1受信工程と、ユーザ端末から暗号化されている軌跡情報を第2軌跡情報として受信する第2受信工程と、前記第1受信工程で受信した複数の前記第1軌跡情報を統合情報として統合する統合工程と、前記第2軌跡情報に基づいて、前記統合情報を参照し、前記第2軌跡情報を構成している最後のノードに続く次のノードとして相応しいノードを算出する算出工程と、前記算出工程により算出されたノードの情報を前記ユーザ端末へ送信する送信工程とを実行させるためのプログラムである。
【発明の効果】
【0015】
本発明によれば、クラウドサーバを利用して次のノードを計算して求めることができる。
【発明を実施するための形態】
【0017】
本実施形態について以下に説明する。
プライバシーの保護を図りつつ、サードパーティによって運営されているサーバを利用して次のノードを計算処理して求める処理システム1は、
図1に示すように、処理装置10と、演算装置20と、第1端末装置30と、第2端末装置40とから構成されている。第1端末装置30及び第2端末装置40は、スマートフォン、タブレット等の通信機能を有する端末装置であって、それぞれ複数の端末装置から構成されている。また、第2端末装置40は、ユーザにより所有される端末装置だけでなく、ユーザに代わって演算装置20に対して問合せを行なう第三者のサービスプロバイダにより所有される端末装置、情報処理装置、サーバ等であってもよい。
【0018】
なお、第1端末装置30を構成している複数の端末装置と、第2端末装置40を構成している複数の端末装置とは、一部又は全部が重複していてもよい。
以下では、演算装置20は、パブリッククラウドのようなプライバシーの保護が図られていないサードパーティが提供しているサーバ(以下、クラウドサーバという)を想定して説明するが、これに限られない。
【0019】
処理装置10は、
図2に示すように、受信部11と、分割処理部12と、重み付け部13と、暗号化部14と、送信部15とを備える。
受信部11は、複数のノードとエッジで構成されており、ユーザの行動履歴に基づいて作成された軌跡情報を第1端末装置30から受信する。
【0020】
分割処理部12は、受信部11によって受信された軌跡情報にループ部分が存在する場合には、複数の軌跡情報に分割してループを解消する。なお、分割処理部12により行われる分割処理は、第1端末装置30で行われてもよい。
【0021】
重み付け部13は、軌跡情報を構成する各ノードに対して重み付けを行なう。
暗号化部14は、重み付けが行われた軌跡情報に暗号化を行なう。具体的には、暗号化部14は、演算装置20において、暗号化したまま演算処理が行えるように、準同型暗号方式を利用して軌跡情報に暗号化を行なう。
送信部15は、暗号化部14により暗号化された軌跡情報を演算装置20に送信する。
【0022】
例えば、ユーザが訪れた場所をノードとして軌跡情報が構成されている場合、ユーザが同じ場所を訪れると、軌跡情報にループ部分が生じることになる。ループ部分が生じている軌跡情報の各ノードに重み付けを行ってしまうと、同じノードに対して重複して重み付けが行われてしまう。
そこで、処理装置10では、分割処理部12によって軌跡情報にループ部分が存在する場合には、複数の軌跡情報に分割してループを解消する。
【0023】
このようにして、処理装置10は、分割処理によって軌跡情報にループ部分が存在しないように処理するので、重み付け部13によって軌跡情報の各ノードに対して重複することなく重み付けを行なうことができる。
【0024】
また、処理装置10は、軌跡情報に対して暗号化を行なうので、クラウドサーバとしての演算装置20に軌跡情報を送信しても、軌跡情報を提供したユーザのプライバシーを保護することができる。
【0025】
分割処理部12は、ループしているノードに向かって接続されているエッジを分断することにより複数の軌跡情報に分割してループを解消する構成でもよい。
例えば、軌跡情報が「A→B→C→A→B→D→E→F」のように構成されており、ノードAでループしている場合を例にして説明する。
【0026】
分割処理部12は、ループしている最初のノードであるノードAの手前のエッジで分割する。分割処理部12は、軌跡情報を「A→B→C」と「A→B→D→E→F」に分割する。さらに、分割処理部12は、ノードCからノードAに向かう情報を残すために、後者の軌跡情報を「C→A→B→D→E→F」に修正する。
このようにして、処理装置10は、分割処理によって軌跡情報にループ部分が存在しないように処理する。
【0027】
重み付け部13は、時間的に古いノードに対して高い値が付くように、軌跡情報を構成する各ノードに対して値が重複しないように重み付けを行なう構成でもよい。
例えば、軌跡情報が「A→B→C→D→E」で構成されている場合、重み付け部13は、ノードAには「5」、ノードBには「4」、ノードCには「3」、ノードDには「2」、ノードDには「1」を付与する。
このようにして、処理装置10は、軌跡情報を構成する各ノードに対して重み付けを行なうことができる。
【0028】
演算装置20は、
図3に示すように、第1受信部21と、第2受信部22と、統合部23と、算出部24と、送信部25とを備える。
第1受信部21は、処理装置10によって送信されてきた暗号化されている軌跡情報を第1軌跡情報として受信する。
第2受信部22は、第2端末装置40から暗号化されている軌跡情報を第2軌跡情報として受信する。
【0029】
統合部23は、第1受信部21で受信した複数の第1軌跡情報を統合情報として統合する。
ここで、統合情報ついて説明する。第1受信部21は、例えば、処理装置10からの複数ユーザ(以下に示す、A氏、B氏、C氏、D氏、E氏)の暗号化されている軌跡情報を受信したものとする。例えば、A氏の軌跡情報は、分割及び重み付けが行われており、「A(5)→B(4)→C(3)→D(2)→E(1)」及び「C(3)→B(2)→A(1)」であるとする。例えば、B氏の軌跡情報は、「E(3)→C(2)→A(1)」であるとする。例えば、C氏の軌跡情報は、「B(3)→E(2)→C(1)」であるとする。例えば、D氏の軌跡情報は、例えば、「A(3)→D(2)→E(1)」であるとする。例えば、E氏の軌跡情報は、例えば、「F(4)→G(3)→H(2)→I(1)」であるとする。カッコ内の数字は、重み付け部13によって行われた重み付け値である。
【0030】
統合部23は、
図4に示すように、受信した軌跡情報をマージして、統合情報を生成する。なお、
図4に示す表の左端のカラム(
図4中のX)は、処理装置10から演算装置20に送信する際に削除されているので、統合情報に含まれない。
【0031】
また、処理装置10の重み付け部13は、上述に限らず、
図5に示すように、1になるように正規化して重み付けを行ってもよい。なお、
図5に示す表の左端のカラム(
図5中のX)は、処理装置10から演算装置20に送信する際に削除されているので、統合情報に含まれない。また、
図4及び
図5に示す統合情報は、一例であって、これに限られない。
【0032】
算出部24は、第2軌跡情報に基づいて、統合情報を参照し、第2軌跡情報を構成している最後のノードに続く次のノードに相応しいノードを算出する。例えば、算出部24は、第2軌跡情報が「A→B」の場合、
図4又は5に示す統合情報を参照し、「A→B」に続くノードとして重み付け値が最も高いノード「C」を算出する。
【0033】
送信部25は、算出部24により算出されたノードの情報を第2端末装置40へ送信する。なお、送信部25から送信されるノードの情報も暗号化されている。
【0034】
このようにして、演算装置20は、暗号化されている第1軌跡情報から統合情報を生成し、当該統合情報を参照して第2軌跡情報を構成している最後のノードに続く次のノードに相応しいノードを算出し、算出したノードの情報を第2端末装置40に送信する。よって、演算装置20は、プライバシーを保護しながら第2端末装置40に対して、次のノードの情報を提供することができる。
【0035】
算出部24は、第2軌跡情報を構成している最後のノードに続く次のノードに相応しいノードを複数個算出する構成でもよい。
送信部25は、算出部24で算出された複数個のノードの情報を第2端末装置40へ送信する。
【0036】
このようにして、演算装置20は、プライバシーを保護しながら第2端末装置40に対して、次のノードとして相応しい複数のノードを提供することができる。例えば、演算装置20は、第2軌跡情報が「A→B」の場合、統合情報を参照し、「A→B」に続くノードとして重み付け値が最も高いノードから順番に候補となるノードを算出し、算出したノードに順番を付けて第2端末装置40に提供することができる。
【0037】
ここで、処理システム1を適用して、次のノードを算出する具体例について、
図6を用いて説明する。以下では、旅行等の際に、今いる場所から次に向かう場所を算出する手順について説明するが、本実施形態に係る処理システム1の適用例はこれに限られない。例えば、次に観る映画等の算出にも適用することができる。
【0038】
ステップS1において、データ提供者(第1端末装置30に相当する)は、データブローカー(処理装置10に相当する)へ軌跡情報を送信する。
ステップS2において、データブローカーは、軌跡情報を協調フィルタリング(例えば、Slope One等)に適用できるように一般化(正規化)する。ここで、一般化(正規化)とは、訪れた場所に応じて重み付け値を付与する処理である。例えば、ノードAには「5」、ノードBには「4」、ノードCには「3」、ノードDには「2」、ノードDには「1」を付与する。
【0039】
ステップS3において、データブローカーは、個々の軌跡情報を、例えば、準同型暗号技術を利用して暗号化してクラウドサーバ(演算装置20に相当する)に送信する。なお、データブローカーは、一般化する過程で、軌跡情報にループが存在する場合には、分割を行なう。
【0040】
ステップS4において、クラウドサーバは、暗号化された軌跡情報に基づいて統合情報を生成する。
【0041】
ステップS5において、ユーザ(第2端末装置40に相当する)は、軌跡情報をクラウドサーバに送信し、次の場所(ノード)を検索する。
例えば、ユーザは、軌跡情報として「A→B→C」をクラウドサーバに送信し、ノードCの次の場所(ノード)を検索する。
【0042】
ステップS6において、クラウドサーバは、ユーザから送信されてきた軌跡情報に基づいて、統合情報を参照し、次の場所(ノードCの次のノード)を計算し、計算結果をユーザに送信する。なお、計算結果には、一つ又は複数の次の場所の情報(順位付けされて)が含まれていてもよい。
【0043】
なお、ステップ5の工程において、クラウドサーバに送信される軌跡情報は、暗号化を行なうことによってプライバシーの保護を図っている。
例えば、プライバシー保護協調フィルタリング(PPCF)において加法準同型暗号を利用することにより、軌跡情報に暗号化を行ってプライバシーを保護する。
【0044】
また、軌跡情報は、いわゆる、順序付き木構造(ordered vertex representation)によって協調フィルタリングで表現される。
また、第1端末装置30及び第2端末装置40により生成されるオリジナルの軌跡情報は、場所(座標)の情報から構成されているが、これに限られず、ユーザのアイデンティティ情報や、タイムスタンプ情報が含まれていてもよい。
オリジナルの軌跡情報は、異なる場所同士の僅かな差は、無視するように、空間と時間において統合され、数値的に分類された場所の順番(例えば、「A→B→C」等)に変換されて、処理装置10及び演算装置20に送信される。
【0045】
つぎに、ステップS2の工程について詳述する。
処理装置10は、受信した軌跡情報に対して、さらに、すべての場所(ノード)に重み付けを行なうことによって、順序付き木構造(ordered vertex representation)に変換する。例えば、軌跡情報が「A→B→C→D→E」で構成される場合、ノードAには「5」、ノードBには「4」、ノードCには「3」、ノードDには「2」、ノードDには「1」を付与する。
【0046】
また、軌跡情報の重み付けには、範囲に限界がある(非特許文献1を参照)。軌跡情報を構成するノードには必ず重み付け値が付与され、ゼロになるノードは存在しない。なお、軌跡情報の外側となるすべての場所では、その軌跡の重み付けがゼロになる。
【0047】
また、処理装置10は、軌跡情報が「A→B→C→C→D→E」のように、あるノード(本実施例では、ノードC)が繰り返されている場合には、「A→B→C→D→E」のようにして、複数回連続した発生して繰り返されたノードを削除する。つまり、処理装置10は、元々ノードが1つの軌跡データや削除によってノードが1つになってしまった軌跡データを無視する(取り除く)。
【0048】
このようにして、本実施例に係る処理システム1は、軌跡情報に準同型暗号による暗号化を行なうので、クラウドサーバ(演算装置20に相当する)を用いて次の場所(ノード)を計算してもプライバシーを保護することができる。
また、ユーザ(第2端末装置40に相当する)は、自身の軌跡情報を準同型暗号による暗号化を行なうので、プライバシーの保護を図りつつ、クラウドサーバを利用して次の場所(ノード)を検索することができる。
【0049】
また、本実施例では、主に、プライバシーの保護を図りつつ、サードパーティによって運営されているサーバを利用して次のノードを計算する処理システム1の処理装置10と演算装置20の構成と動作について説明したが、これに限られず、各構成要素を備え、プライバシーの保護を図りつつ、サードパーティによって運営されているサーバを利用して次のノードを計算するための方法、及びプログラムとして構成されてもよい。
【0050】
さらに、処理システム1を構成する処理装置10と演算装置20の機能を実現するためのプログラムをコンピュータで読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。
【0051】
ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータで読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0052】
さらに「コンピュータで読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時刻の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時刻プログラムを保持しているものも含んでもよい。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。