JP2020149120A - Information processing device, information processing method, and program - Google Patents

Information processing device, information processing method, and program Download PDF

Info

Publication number
JP2020149120A
JP2020149120A JP2019043917A JP2019043917A JP2020149120A JP 2020149120 A JP2020149120 A JP 2020149120A JP 2019043917 A JP2019043917 A JP 2019043917A JP 2019043917 A JP2019043917 A JP 2019043917A JP 2020149120 A JP2020149120 A JP 2020149120A
Authority
JP
Japan
Prior art keywords
transaction
tourist
data
recommendation
value
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.)
Granted
Application number
JP2019043917A
Other languages
Japanese (ja)
Other versions
JP7253410B2 (en
Inventor
茂樹 川森
Shigeki Kawamori
茂樹 川森
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.)
NTT Data Group Corp
Original Assignee
NTT Data 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 NTT Data Corp filed Critical NTT Data Corp
Priority to JP2019043917A priority Critical patent/JP7253410B2/en
Publication of JP2020149120A publication Critical patent/JP2020149120A/en
Application granted granted Critical
Publication of JP7253410B2 publication Critical patent/JP7253410B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

To suitably analyze transaction data stored on a block.SOLUTION: An information processing device stores transaction data on a data block connected via a hash chain constructed in a network on the basis of a fact that the transaction has occurred. Then, the information processing device extracts data of a prescribed transaction among the stored transaction data, sets a specific transaction object among the transaction objects specified by the extracted transaction data to be a recommendation object person, performs a prescribed arithmetic operation on the basis of the transaction data for all the transaction objects related to the recommendation object person, and recommends an object matching the preference of the recommendation object person according to the result of the arithmetic operation.SELECTED DRAWING: Figure 14

Description

本発明は、情報処理装置、情報処理方法およびプログラムに関する。 The present invention relates to information processing devices, information processing methods and programs.

近年、ビットコイン(登録商標)等の仮想通貨を用いた商取引が行われている。当該仮想通貨を用いた商取引では、中央集権的な管理を必要とせずに不正を防止するため、ブロックチェーンと呼ばれる技術が用いられている。ブロックチェーンでは、複数のトランザクションデータ、直前のハッシュ値及びその他の情報を「ブロック」として定義し、参加者全体で形成されるネットワーク内での合意形成のプロセスによって当該「ブロック」内の情報の信頼性を担保している。しかしながら、このようなブロックチェーンの技術により仮想通貨の商取引を行う場合、1秒あたりに処理可能な件数が少ないといった問題がある。 In recent years, commercial transactions using virtual currencies such as Bitcoin (registered trademark) have been carried out. In commercial transactions using the virtual currency, a technology called blockchain is used to prevent fraud without the need for centralized management. In the blockchain, multiple transaction data, previous hash values and other information are defined as "blocks", and the trust of the information in the "blocks" by the process of consensus building within the network formed by all participants. The sex is guaranteed. However, when conducting commercial transactions of virtual currency by such blockchain technology, there is a problem that the number of cases that can be processed per second is small.

このような問題に対応するため、例えば非特許文献1には、ハッシュグラフと呼ばれる技術が開示されている。 In order to deal with such a problem, for example, Non-Patent Document 1 discloses a technique called a hash graph.

”ブロックチェーンを超える技術が存在!分散型台帳「Hashgraph」とは?”、[Online]、[平成30年9月3日検索]、インターネット<URL:https://coin-otaku.com/topic/7754>"There is technology that goes beyond blockchain! What is the blockchain" Hashgraph "? , [Online], [Search on September 3, 2018], Internet <URL: https://coin-otaku.com/topic/7754>

非特許文献1に開示されているハッシュグラフの技術では、ランダムに選ばれた一部のユーザの承認によりトランザクションデータの記録を行うことから、ブロックチェーンの技術を用いた処理よりも高速な処理を実現可能となる。しかしながら、複数のトランザクションデータを時系列に格納したブロックを複数つないでいく点ではいずれの技術も共通であり、ブロック上に格納したトランザクションデータを好適に分析するという面からすると未だ十分ではなかった。 The hash graph technology disclosed in Non-Patent Document 1 records transaction data with the approval of some randomly selected users, so that processing is faster than processing using blockchain technology. It will be feasible. However, all the techniques are common in that a plurality of blocks in which a plurality of transaction data are stored in a time series are connected, and the transaction data stored in the blocks is not sufficiently analyzed in a suitable manner.

本発明は、上述のような事情に鑑みてなされたものであり、ブロック上に格納されたトランザクションデータを好適に分析することができる情報処理装置、情報処理方法およびプログラムを提供することを目的としている。 The present invention has been made in view of the above circumstances, and an object of the present invention is to provide an information processing device, an information processing method, and a program capable of suitably analyzing transaction data stored on a block. There is.

上記目的を達成するため、本発明の第1の観点に係る情報処理装置は、
トランザクションが発生したことに基づいて、ネットワーク内に構築されるハッシュチェーンで連結されるデータブロックに、前記トランザクションのデータを格納するデータ格納手段と、
前記データ格納手段に格納された前記トランザクションのデータのうち、所定の前記トランザクションのデータを抽出する抽出手段と、
前記抽出手段で抽出した前記トランザクションのデータに基づいて、予め定められた演算を行う演算手段と、
前記演算手段による演算結果に応じて、推薦対象者の好みに対応する対象を推薦する推薦手段と、を備え、
前記トランザクションのデータには、前記トランザクションの取引対象を特定する情報が含まれ、
前記演算手段は、前記抽出手段で抽出した前記トランザクションのデータにより特定される前記取引対象のうちの特定の前記取引対象を前記推薦対象者とし、前記推薦対象者に関連する全ての前記取引対象について、前記トランザクションのデータに基づき前記予め定められた演算を行う、
ことを特徴とする。
In order to achieve the above object, the information processing device according to the first aspect of the present invention is
A data storage means for storing the data of the transaction in a data block connected by a hash chain constructed in the network based on the occurrence of the transaction.
An extraction means for extracting the data of a predetermined transaction from the data of the transaction stored in the data storage means, and an extraction means.
An arithmetic means that performs a predetermined operation based on the transaction data extracted by the extraction means, and
It is provided with a recommendation means for recommending a target corresponding to the preference of the recommendation target person according to the calculation result by the calculation means.
The transaction data includes information that identifies the transaction target of the transaction.
The calculation means sets a specific transaction target among the transaction targets specified by the transaction data extracted by the extraction means as the recommendation target person, and all the transaction targets related to the recommendation target person. , Performs the predetermined calculation based on the transaction data.
It is characterized by that.

前記抽出手段は、前記データ格納手段に前記トランザクションのデータが新たに格納された場合、該トランザクションのデータを新たに抽出し、
前記演算手段は、前記抽出手段で新たに抽出した前記トランザクションのデータにより特定される前記取引対象を前記推薦対象者とし、前記推薦対象者に関連する全ての前記取引対象について、前記トランザクションのデータに基づき前記予め定められた演算を行うことで、前記演算手段により既に行われた演算結果を更新する、
ようにしてもよい。
When the data of the transaction is newly stored in the data storage means, the extraction means newly extracts the data of the transaction.
The calculation means sets the transaction target specified by the transaction data newly extracted by the extraction means as the recommendation target person, and all the transaction targets related to the recommendation target person are converted into the transaction data. By performing the predetermined calculation based on the above, the calculation result already performed by the calculation means is updated.
You may do so.

前記演算手段は、前記予め定められた演算として、前記推薦対象者に初期値を割り振り、前記推薦対象者に関連する全ての前記取引対象について、前記初期値を基準に、前記トランザクションのデータにより算出される重みを乗じた値を算出する、
ようにしてもよい。
The calculation means allocates an initial value to the recommendation target person as the predetermined calculation, and calculates all the transaction targets related to the recommendation target person from the transaction data based on the initial value. Calculate the value multiplied by the weight to be
You may do so.

前記トランザクションのデータには、前記トランザクションの取引対象の属性を示す属性情報がさらに含まれ、
前記演算手段は、前記推薦対象者の前記属性情報により示される属性に前記初期値をさらに割り振り、前記推薦対象者と同じ属性の前記取引対象に関連する全ての前記取引対象について、前記初期値を基準に、前記トランザクションのデータにより算出される重みを乗じた値をさらに算出し、
前記推薦手段は、前記演算手段による演算結果に応じて、前記推薦対象者の好みに対応する対象に加え、前記推薦対象者の属性の好みに対応する対象を推薦する、
ようにしてもよい。
The transaction data further includes attribute information indicating the transaction target attribute of the transaction.
The calculation means further allocates the initial value to the attribute indicated by the attribute information of the recommendation target person, and sets the initial value for all the transaction targets related to the transaction target having the same attributes as the recommendation target person. A value obtained by multiplying the reference by the weight calculated from the transaction data is further calculated.
The recommendation means recommends a target corresponding to the preference of the attribute of the recommendation target person in addition to the target corresponding to the preference of the recommendation target person according to the calculation result by the calculation means.
You may do so.

上記目的を達成するため、本発明の第2の観点に係る情報処理方法は、
情報処理装置における情報処理方法であって、
トランザクションが発生したことに基づいて、ネットワーク内に構築されるハッシュチェーンで連結されるデータブロックに、前記トランザクションのデータを格納するデータ格納ステップと、
前記データ格納ステップで格納された前記トランザクションのデータのうち、所定の前記トランザクションのデータを抽出する抽出ステップと、
前記抽出ステップで抽出した前記トランザクションのデータに基づいて、予め定められた演算を行う演算ステップと、
前記演算ステップによる演算結果に応じて、推薦対象者の好みに対応する対象を推薦する推薦ステップと、を備え、
前記トランザクションのデータには、前記トランザクションの取引対象を特定する情報が含まれ、
前記演算ステップでは、前記抽出ステップで抽出した前記トランザクションのデータにより特定される前記取引対象のうちの特定の前記取引対象を前記推薦対象者とし、前記推薦対象者に関連する全ての前記取引対象について、前記トランザクションのデータに基づき前記予め定められた演算を行う、
ことを特徴とする。
In order to achieve the above object, the information processing method according to the second aspect of the present invention is
It is an information processing method in an information processing device.
A data storage step for storing the data of the transaction in a data block connected by a hash chain constructed in the network based on the occurrence of the transaction.
An extraction step for extracting the data of a predetermined transaction from the data of the transaction stored in the data storage step, and
A calculation step that performs a predetermined calculation based on the transaction data extracted in the extraction step, and
It is provided with a recommendation step of recommending a target corresponding to the preference of the recommendation target person according to the calculation result of the calculation step.
The transaction data includes information that identifies the transaction target of the transaction.
In the calculation step, a specific transaction target among the transaction targets specified by the transaction data extracted in the extraction step is set as the recommendation target person, and all the transaction targets related to the recommendation target person are used. , Performs the predetermined calculation based on the transaction data.
It is characterized by that.

上記目的を達成するため、本発明の第3の観点に係るプログラムは、
コンピュータを、
トランザクションが発生したことに基づいて、ネットワーク内に構築されるハッシュチェーンで連結されるデータブロックに、前記トランザクションのデータを格納するデータ格納手段、
前記データ格納手段に格納された前記トランザクションのデータのうち、所定の前記トランザクションのデータを抽出する抽出手段、
前記抽出手段で抽出した前記トランザクションのデータに基づいて、予め定められた演算を行う演算手段、
前記演算手段による演算結果に応じて、推薦対象者の好みに対応する対象を推薦する推薦手段、として機能させ、
前記トランザクションのデータには、前記トランザクションの取引対象を特定する情報が含まれ、
前記演算手段は、前記抽出手段で抽出した前記トランザクションのデータにより特定される前記取引対象のうちの特定の前記取引対象を前記推薦対象者とし、前記推薦対象者に関連する全ての前記取引対象について、前記トランザクションのデータに基づき前記予め定められた演算を行う、
ことを特徴とする。
In order to achieve the above object, the program according to the third aspect of the present invention is
Computer,
A data storage means for storing the data of the transaction in a data block connected by a hash chain constructed in the network based on the occurrence of the transaction.
An extraction means for extracting a predetermined transaction data from the transaction data stored in the data storage means.
An arithmetic means that performs a predetermined operation based on the transaction data extracted by the extraction means,
It functions as a recommendation means for recommending a target corresponding to the preference of the person to be recommended according to the calculation result by the calculation means.
The transaction data includes information that identifies the transaction target of the transaction.
The calculation means sets a specific transaction target among the transaction targets specified by the transaction data extracted by the extraction means as the recommendation target person, and all the transaction targets related to the recommendation target person. , Performs the predetermined calculation based on the transaction data.
It is characterized by that.

本発明によれば、ブロック上に格納されたトランザクションデータを好適に分析することができる。 According to the present invention, transaction data stored on a block can be suitably analyzed.

本発明の実施形態に係る情報処理システムの一例を示すブロック図である。It is a block diagram which shows an example of the information processing system which concerns on embodiment of this invention. 本発明の実施形態に係る情報処理装置の一例を示すブロック図である。It is a block diagram which shows an example of the information processing apparatus which concerns on embodiment of this invention. 初期登録処理の一例を示すフローチャートである。It is a flowchart which shows an example of the initial registration process. データブロック登録処理の一例を示すフローチャートである。It is a flowchart which shows an example of a data block registration process. ハッシュチェーンの構成例を示す図である。It is a figure which shows the configuration example of a hash chain. 発生したトランザクションの一例を示す図である。It is a figure which shows an example of the transaction which occurred. ハッシュチェーンの登録内容の例を示す図である。It is a figure which shows the example of the registration contents of a hash chain. グラフ生成処理の一例を示すフローチャートである。It is a flowchart which shows an example of a graph generation process. 重みの算出例を説明するための説明図である。It is explanatory drawing for demonstrating the calculation example of a weight. グラフ生成処理により生成される有向二部グラフの一例を示す図である。It is a figure which shows an example of the directed bipartite graph generated by the graph generation process. レコメンド処理の一例を示すフローチャートである。It is a flowchart which shows an example of a recommendation process. レコメンド値算出処理の一例を示すフローチャートである。It is a flowchart which shows an example of the recommendation value calculation process. レコメンド値を算出する場合における説明図である。It is explanatory drawing in the case of calculating the recommendation value. レコメンド値を算出する場合における説明図である。It is explanatory drawing in the case of calculating the recommendation value. レコメンド値を算出する場合における説明図である。It is explanatory drawing in the case of calculating the recommendation value. レコメンド値を算出する場合における説明図である。It is explanatory drawing in the case of calculating the recommendation value. レコメンド値を算出する場合における説明図である。It is explanatory drawing in the case of calculating the recommendation value. レコメンド値の変化を説明するための説明図である。It is explanatory drawing for demonstrating the change of the recommendation value. 属性毎の傾向を分析する場合における説明図である。It is explanatory drawing in the case of analyzing the tendency for each attribute. 属性を推計する場合における説明図である。It is explanatory drawing in the case of estimating the attribute. 属性情報に基づくレコメンドの有効性について説明するための説明図である。It is explanatory drawing for demonstrating the effectiveness of the recommendation based on the attribute information. トランザクションデータの順序性に着目した場合における説明図である。It is explanatory drawing when paying attention to the order of transaction data. トランザクションデータの順序性に着目した場合における説明図である。It is explanatory drawing when paying attention to the order of transaction data.

本発明における情報処理装置100を、図1に示す情報処理システム1に適用した例を用いて説明する。情報処理システム1では、図1に示すように、情報処理装置100A〜100C(情報処理装置100A〜100Cを単に情報処理装置100ともいう)、観光客A〜Dの端末100Dのそれぞれがネットワーク210を介して通信可能に接続されている。なお、観光客A〜Dの端末100Dは、それぞれ単体で情報処理装置100としても機能することが可能であるが、理解を容易にするため、この実施の形態では、これらを情報処理装置100と区別して説明する。 An example in which the information processing device 100 in the present invention is applied to the information processing system 1 shown in FIG. 1 will be described. In the information processing system 1, as shown in FIG. 1, the information processing devices 100A to 100C (the information processing devices 100A to 100C are also simply referred to as the information processing device 100) and the terminals 100D of the tourists A to D each connect the network 210. It is connected so that it can communicate via. The terminals 100D of tourists A to D can each function as the information processing device 100 by themselves, but in order to facilitate understanding, in this embodiment, these are referred to as the information processing device 100. It will be explained separately.

情報処理装置100は、携帯電話やスマートフォン、タブレットやPC(Personal Computer)等の情報端末(所謂コンピュータ)であり、P2P(Peer to Peer)等の分散型のネットワーク210を構築している。なお、情報処理システム1は、P2P型のシステムに限られず、例えばクラウドコンピューティング型であってもよい。 The information processing device 100 is an information terminal (so-called computer) such as a mobile phone, a smartphone, a tablet, or a PC (Personal Computer), and constructs a distributed network 210 such as P2P (Peer to Peer). The information processing system 1 is not limited to the P2P type system, and may be, for example, a cloud computing type.

情報処理装置100は、例えば、観光客Cが観光スポット2を訪れた、などといった、観光客と観光先(観光スポット)との間で発生した事象を示すデータ(トランザクションデータ)をネットワーク210から受信したことに基づいて、新たなデータブロックを生成して当該受信データを格納し、既存のハッシュチェーンに連結する、ハッシュチェーン登録装置として機能する。なお、上述したように、観光客A〜Dの端末100Dが情報処理装置100として機能することもあることから、情報処理装置100は、トランザクションデータを生成し、ネットワーク210へ配信する機能を有するトランザクション生成装置として機能することもある。ハッシュチェーン登録装置にて登録された内容は、ネットワーク210を介して、各情報処理装置100で共有される。また、通常、一定数のトランザクションデータが一つのデータブロックに格納される(一定数のトランザクションデータをひとまとめにして一つのブロックに格納する)が、この実施の形態では、理解を容易にするため、一つのトランザクションデータが一つのデータブロックに格納されるものとする。 The information processing device 100 receives data (transaction data) indicating an event occurring between a tourist and a tourist destination (sightseeing spot) from the network 210, such as when tourist C visits tourist spot 2. Based on the above, it functions as a hash chain registration device that generates a new data block, stores the received data, and connects it to an existing hash chain. As described above, since the terminals 100D of the tourists A to D may function as the information processing device 100, the information processing device 100 has a function of generating transaction data and distributing it to the network 210. It may also function as a generator. The content registered by the hash chain registration device is shared by each information processing device 100 via the network 210. Further, usually, a certain number of transaction data is stored in one data block (a certain number of transaction data are collectively stored in one block), but in this embodiment, in order to facilitate understanding, It is assumed that one transaction data is stored in one data block.

この実施の形態において、観光客と観光スポットとの間で発生した事象により生成された(端末Dがトランザクション生成装置として機能して生成された)トランザクションデータは、データブロックと呼ばれる一つの単位に格納され、当該データブロックを時系列に連結したそれぞれの種別のハッシュチェーンによって管理される。例えば、観光客Cが観光スポット2を訪れた、といった事象のトランザクションデータは、観光客Cの種別のハッシュチェーンおよび観光スポット2の種別のハッシュチェーンとに、それぞれ新たなデータブロックとして同内容のデータが登録されて管理される。 In this embodiment, transaction data generated by an event occurring between a tourist and a tourist spot (generated by the terminal D functioning as a transaction generator) is stored in one unit called a data block. It is managed by each type of hash chain that concatenates the data blocks in chronological order. For example, the transaction data of an event such as tourist C visiting tourist spot 2 has the same contents as a new data block for each of the tourist spot C type hash chain and the tourist spot 2 type hash chain. Is registered and managed.

また、この実施の形態における情報処理装置100は、各種別のハッシュチェーンに含まれるデータブロックから、ユーザにより指定された登録データを対象として、対象となる観光客に対し、おすすめの観光スポットを提示するレコメンド装置としても機能する。 In addition, the information processing device 100 in this embodiment presents recommended tourist spots to the target tourists by targeting the registered data specified by the user from the data blocks included in each type of hash chain. It also functions as a recommendation device.

この実施の形態における情報処理装置100のレコメンド装置としての機能は、詳しくは後述するが、複数登録されたデータブロックから、ユーザにより指定されたトランザクションデータを抽出して所定の演算を行うとともに有向二部グラフを生成してレコメンド値を算出することにより、対象となる観光客に対し、おすすめの観光スポットを提示する。 The function of the information processing device 100 as a recommendation device in this embodiment will be described in detail later, but transaction data specified by the user is extracted from a plurality of registered data blocks to perform a predetermined operation and is directed. By generating a two-part graph and calculating the recommendation value, recommended tourist spots are presented to the target tourists.

次に、図2を参照し、この実施の形態における情報処理装置100の構成について説明する。なお、図示する例では、情報処理装置100Aを例としているが、情報処理装置100Bおよび100C、端末100Dが情報処理装置100として機能する場合についても同様であるため、説明は省略する。なお、図示は省略しているが、トランザクション生成装置としての機能を有する機能部が設けられていてもよい。 Next, the configuration of the information processing apparatus 100 in this embodiment will be described with reference to FIG. In the illustrated example, the information processing device 100A is taken as an example, but the same applies to the case where the information processing devices 100B and 100C and the terminal 100D function as the information processing device 100, and thus the description thereof will be omitted. Although not shown, a functional unit having a function as a transaction generator may be provided.

図2に示すように、情報処理装置100A(以下、情報処理装置100)は、記憶部110と、制御部120と、入出力部130と、通信部140と、これらを相互に接続するシステムバス(図示省略)と、を備えている。 As shown in FIG. 2, the information processing device 100A (hereinafter, information processing device 100) includes a storage unit 110, a control unit 120, an input / output unit 130, a communication unit 140, and a system bus that connects them to each other. (Not shown) and.

記憶部110は、ROM(Read Only Memory)やRAM(Random Access Memory)等を備える。ROMは制御部120のCPU(Central Processing Unit)が実行するプログラム及び、プログラムを実行する上で予め必要なデータを記憶する(図示省略)。具体的に、この実施の形態では、当該情報処理装置100を、ハッシュチェーン登録装置およびレコメンド装置として機能させるためのプログラムが、予めインストールされている。RAMは、プログラム実行中に作成されたり変更されたりするデータを記憶する。記憶部110は、制御部120が実行するプログラムが用いる主要な情報として、各種別のハッシュチェーン111を記憶する。 The storage unit 110 includes a ROM (Read Only Memory), a RAM (Random Access Memory), and the like. The ROM stores a program executed by the CPU (Central Processing Unit) of the control unit 120 and data necessary for executing the program in advance (not shown). Specifically, in this embodiment, a program for making the information processing device 100 function as a hash chain registration device and a recommendation device is pre-installed. RAM stores data that is created or modified during program execution. The storage unit 110 stores various types of hash chains 111 as main information used by the program executed by the control unit 120.

各種別のハッシュチェーン111は、観光客A〜D、観光スポット1〜4のそれぞれの種別に対応するハッシュチェーンであり、それぞれのハッシュチェーンは、トランザクションデータが格納されたデータブロックが連結されたものである。各種別のハッシュチェーン111は、後述するデータブロック登録処理にて当該記憶部110に記憶され、後述するグラフ生成処理やレコメンド処理により参照される。 The hash chain 111 of each type is a hash chain corresponding to each type of tourists A to D and tourist spots 1 to 4, and each hash chain is a concatenation of data blocks in which transaction data is stored. Is. The hash chain 111 of each type is stored in the storage unit 110 in the data block registration process described later, and is referred to by the graph generation process and the recommendation process described later.

制御部120は、CPUやASIC(Application Specific Integrated Circuit)等から構成される。制御部120は、記憶部110に記憶されたプログラムに従って動作し、当該プログラムに従った処理を実行する。制御部120は、記憶部110に記憶されたプログラムにより提供される主要な機能部として、初期登録部121と、同期処理部122と、データブロック登録部123と、データ取得部124と、グラフ生成部125と、レコメンド処理部126と、を備える。 The control unit 120 is composed of a CPU, an ASIC (Application Specific Integrated Circuit), and the like. The control unit 120 operates according to the program stored in the storage unit 110, and executes the process according to the program. The control unit 120 includes an initial registration unit 121, a synchronization processing unit 122, a data block registration unit 123, a data acquisition unit 124, and a graph generation unit as main functional units provided by a program stored in the storage unit 110. A unit 125 and a recommendation processing unit 126 are provided.

初期登録部121は、ユーザの入出力部130に対する操作や、通信部140を介して受信した要求に基づいて、新たな種別のハッシュチェーンを生成するために必要な初期情報を登録する機能を実現する機能部である。詳しくは後述するが、初期登録部121は、例えば、観光客Cの種別のハッシュチェーンを生成するために必要な初期情報として、観光客Cのアドレス、インデックス値などを登録する機能(すなわち、後述するハッシュチェーンの土台情報を登録する機能)を有している。 The initial registration unit 121 realizes a function of registering initial information necessary for generating a new type of hash chain based on an operation on the user's input / output unit 130 and a request received via the communication unit 140. It is a functional part to do. Although details will be described later, the initial registration unit 121 has a function of registering, for example, the address, index value, etc. of tourist C as initial information necessary for generating a hash chain of the type of tourist C (that is, described later). It has a function to register the base information of the hash chain to be used.

同期処理部122は、当該情報処理装置100に記憶された各種別のハッシュチェーンと、他の情報処理装置100に記憶された各種別のハッシュチェーンとを同期する機能を実現する機能部である。詳しくは後述するが、同期処理部122は、後述するデータブロック登録処理にてトランザクションデータを当該情報処理装置100におけるデータブロックに登録する前と後に、他の情報処理装置100と同期する機能を有している。また、同期処理部122は、後述する初期登録処理において他の情報処理装置100へ、ハッシュチェーンの土台情報を同期させる機能を有している。 The synchronization processing unit 122 is a functional unit that realizes a function of synchronizing various different hash chains stored in the information processing device 100 with various different hash chains stored in the other information processing device 100. Although details will be described later, the synchronization processing unit 122 has a function of synchronizing the transaction data with the other information processing device 100 before and after registering the transaction data in the data block of the information processing device 100 in the data block registration process described later. are doing. Further, the synchronization processing unit 122 has a function of synchronizing the base information of the hash chain with another information processing device 100 in the initial registration process described later.

データブロック登録部123は、発生したトランザクションのトランザクションデータを含むデータブロックを、当該情報処理装置100の各種別のハッシュチェーン111のうち、対応する種別のハッシュチェーンに追加する機能を実現する機能部である。詳しくは後述するが、データブロック登録部123は、例えば、観光客Cが観光スポット2を訪れた場合、観光客Cと観光スポット2のそれぞれの種別のハッシュチェーンに、当該内容(トランザクションデータ)を、新たなデータブロックとして登録する機能を有している。 The data block registration unit 123 is a functional unit that realizes a function of adding a data block including transaction data of a generated transaction to a hash chain of a corresponding type among various hash chains 111 of the information processing apparatus 100. is there. As will be described in detail later, for example, when tourist C visits tourist spot 2, the data block registration unit 123 adds the content (transaction data) to the hash chains of each type of tourist C and tourist spot 2. , Has a function to register as a new data block.

データ取得部124は、ユーザの指定に基づいて、登録された各種別のハッシュチェーン111に含まれるデータブロックに含まれるトランザクションデータを取得する機能を実現する機能部である。 The data acquisition unit 124 is a functional unit that realizes a function of acquiring transaction data included in a data block included in each registered hash chain 111 based on a user's designation.

グラフ生成部125は、データ取得部124により取得したトランザクションデータに基づいて有向二部グラフを生成する機能を実現する機能部である。 The graph generation unit 125 is a functional unit that realizes a function of generating a directed bipartite graph based on transaction data acquired by the data acquisition unit 124.

レコメンド処理部126は、グラフ生成部125により生成された有向二部グラフを編成し、レコメンド対象者に対しおすすめの観光スポットを提示する機能を実現する機能部である。 The recommendation processing unit 126 is a functional unit that organizes a directed bipartite graph generated by the graph generation unit 125 and realizes a function of presenting recommended tourist spots to the recommendation target person.

これら各機能部が協働して、当該情報処理装置100をハッシュチェーン登録装置およびレコメンド装置として機能させる。 Each of these functional units cooperates to make the information processing device 100 function as a hash chain registration device and a recommendation device.

入出力部130は、キーボード、マウス、カメラ、マイク、液晶ディスプレイ、有機EL(Electro−Luminescence)ディスプレイ等から構成され、データの入出力を行うための装置である。 The input / output unit 130 is composed of a keyboard, a mouse, a camera, a microphone, a liquid crystal display, an organic EL (Electro-Luminence) display, and the like, and is a device for inputting / outputting data.

通信部140は、他の情報処理装置100や端末C〜端末Gとネットワーク210を介して通信を行うためのデバイスである。 The communication unit 140 is a device for communicating with another information processing device 100 or terminals C to G via a network 210.

以上が、情報処理装置100の構成である。続いて情報処理装置100の動作などについて、図3〜図17を参照して説明する。まず、ハッシュチェーン登録装置として機能した場合における情報処理装置100の動作について、図3〜7を参照して説明する。 The above is the configuration of the information processing device 100. Subsequently, the operation of the information processing apparatus 100 and the like will be described with reference to FIGS. 3 to 17. First, the operation of the information processing device 100 when functioning as a hash chain registration device will be described with reference to FIGS. 3 to 7.

まず、ユーザの入出力部130に対する操作(入力操作)や、端末100Dから受信した要求(登録要求)に基づいて、図3に示す初期登録処理が行われる。初期登録処理は、新たな種別のハッシュチェーンを生成するために必要な初期情報を登録する処理である。この例では、理解を容易にするため、観光客Cについての初期登録を行う場合について説明する。初期登録処理を開始すると、情報処理装置100は、初期登録部121の機能により、種別データを生成する(ステップS101)。具体的に、ステップS101では、入力操作や登録要求に含まれる、種別情報である観光客Cの情報および観光客Cのアドレスを、観光客Cの種別のハッシュチェーンを生成するための情報として、記憶部110へ登録する。なお、当該情報は、各種別のハッシュチェーン111のうちの種別Cのハッシュチェーンとして登録されればよい。また、種別情報は登録せず、アドレスのみ登録するようにしてもよい。なお、この実施の形態では、観光客A〜Dのアドレスをそれぞれ01〜04、観光スポット1〜4のアドレスをそれぞれX1〜X4としている。 First, the initial registration process shown in FIG. 3 is performed based on the operation (input operation) on the input / output unit 130 of the user and the request (registration request) received from the terminal 100D. The initial registration process is a process of registering the initial information necessary for generating a new type of hash chain. In this example, in order to facilitate understanding, a case where the initial registration of tourist C is performed will be described. When the initial registration process is started, the information processing apparatus 100 generates type data by the function of the initial registration unit 121 (step S101). Specifically, in step S101, the information of tourist C and the address of tourist C, which are the type information included in the input operation and the registration request, are used as the information for generating the hash chain of the type of tourist C. Register in the storage unit 110. The information may be registered as a hash chain of type C among the hash chains 111 of each type. Further, the type information may not be registered and only the address may be registered. In this embodiment, the addresses of tourists A to D are 01 to 04, and the addresses of tourist spots 1 to 4 are X1 to X4, respectively.

次に、情報処理装置100は、初期登録部121の機能により、登録した観光客Cの種別のハッシュチェーンのインデックス値に、初期値である「0」を登録する(ステップS102)。インデックス値が「0」であることは、当該ハッシュチェーンが初期状態であること(何らデータブロックが登録されていない状態であること)を示している。すなわち、ステップS101およびステップS102の処理では、データブロックがチェーンで連結されてはいないものの、データブロックが未登録のハッシュチェーン(ハッシュチェーンの土台情報)が生成されていると言える。なお、この状態では、データブロックがチェーンで連結されていないため、データを削除でき、また、削除したことを検証することができない、といった問題がある。そこで、対改ざん性を高めるため、ランダムで選択したハッシュチェーンに対して特別なトランザクションを発生させ、インデックス値が「0」のデータブロックをチェーンで連結する処理を行うようにしてもよい。 Next, the information processing apparatus 100 registers the initial value “0” in the index value of the registered tourist C type hash chain by the function of the initial registration unit 121 (step S102). When the index value is "0", it indicates that the hash chain is in the initial state (the state in which no data block is registered). That is, in the processes of steps S101 and S102, it can be said that a hash chain (hash chain base information) in which the data blocks are not registered is generated although the data blocks are not connected by a chain. In this state, since the data blocks are not connected by a chain, there is a problem that the data can be deleted and it cannot be verified that the data has been deleted. Therefore, in order to improve the tamper resistance, a special transaction may be generated for a hash chain selected at random, and a process of concatenating data blocks having an index value of "0" in the chain may be performed.

ステップS102の処理を実行した後、情報処理装置100は、同期処理部122の機能により、他の情報処理装置100へ、当該内容を登録し(ステップS103)、初期登録処理を終了する。具体的に、ステップS103では、当該情報処理装置100における観光客Cの種別のハッシュチェーン(ハッシュチェーンの土台情報)の内容を、他の情報処理装置100の記憶部110における各種別のハッシュチェーン111へコピーする。これにより、全ての情報処理装置100において観光客Cの種別のハッシュチェーン(ハッシュチェーンの土台情報)が共有されることとなる。 After executing the process of step S102, the information processing device 100 registers the content in the other information processing device 100 by the function of the synchronization processing unit 122 (step S103), and ends the initial registration process. Specifically, in step S103, the contents of the hash chain (base information of the hash chain) of the tourist C type in the information processing device 100 are converted into various different hash chains 111 in the storage unit 110 of the other information processing device 100. Copy to. As a result, the hash chain (base information of the hash chain) of the tourist C type is shared by all the information processing devices 100.

次に、発生したトランザクションについて、当該トランザクションデータを対応する種別のハッシュチェーンのデータブロックへ登録するデータブロック登録処理について説明する。当該データブロック登録処理は、発生したトランザクションに対応するトランザクションデータを受信することにより実行される。トランザクションデータは、端末100Dにより受信するものであるが、入出力部130に入力されてもよい。なお、この実施の形態では、上述したように、一つのトランザクションにつき一つのデータブロックが作成され登録されることから、当該データブロック登録処理は、登録すべきトランザクションの数が複数ある場合、繰り返し実行されることとなる。 Next, the data block registration process for registering the generated transaction in the data block of the corresponding type of hash chain will be described. The data block registration process is executed by receiving transaction data corresponding to the generated transaction. Although the transaction data is received by the terminal 100D, it may be input to the input / output unit 130. In this embodiment, as described above, one data block is created and registered for one transaction. Therefore, the data block registration process is repeatedly executed when there are a plurality of transactions to be registered. Will be done.

図4は、データブロック登録処理の一例を示すフローチャートである。この例では、理解を容易にするため、観光客Cが観光スポット2を訪れたというトランザクションが発生した場合のデータブロック登録処理(図5(A)の状態から(B)の状態へと移行する場合)について説明する。 FIG. 4 is a flowchart showing an example of the data block registration process. In this example, in order to facilitate understanding, the data block registration process when a transaction that tourist C visits tourist spot 2 occurs (transition from the state of FIG. 5 (A) to the state of (B)). Case) will be described.

観光客Cが観光スポット2を訪れたというトランザクションが発生すると、これに対応するトランザクションデータが観光客Cの端末100Dから送信される。これにより、情報処理装置100は、データブロック登録部123の機能により、データブロック登録処理を開始する。なお、例えば、観光客Cの端末100Dと、観光スポット2の端末の両方から同内容のトランザクションデータを受信することをもってデータブロック登録処理を開始するようにしてもよい。この場合、異なる内容のトランザクションデータを受信した場合には、エラーを出力するようにしてもよい。 When a transaction that tourist C visits tourist spot 2 occurs, transaction data corresponding to the transaction is transmitted from the terminal 100D of tourist C. As a result, the information processing apparatus 100 starts the data block registration process by the function of the data block registration unit 123. Note that, for example, the data block registration process may be started by receiving transaction data having the same contents from both the terminal 100D of the tourist C and the terminal of the tourist spot 2. In this case, if transaction data with different contents is received, an error may be output.

データブロック登録処理を開始すると、情報処理装置100は、まず、同期処理部122の機能により、当該情報処理装置100における対象のハッシュチェーンと、他の情報処理装置100における対象のハッシュチェーンとが、同期しているか否かを判定する(ステップS201)。具体的に、この例におけるステップS201の処理では、各種別のハッシュチェーン111のうち、観光客Cの種別のハッシュチェーンに含まれる最新のデータブロックのインデックス値とハッシュ値、および観光スポット2の種別のハッシュチェーンに含まれる最新のデータブロックのインデックス値とハッシュ値とが、他の全ての情報処理装置100に記憶されたものと同一であるか否かを判定することで、同期しているか否かを判定する。 When the data block registration process is started, the information processing apparatus 100 first uses the function of the synchronization processing unit 122 to cause the target hash chain in the information processing apparatus 100 and the target hash chain in the other information processing apparatus 100. It is determined whether or not they are synchronized (step S201). Specifically, in the process of step S201 in this example, the index value and hash value of the latest data block included in the hash chain of the tourist C type among the hash chains 111 of each type, and the type of the tourist spot 2 Whether or not the index value and the hash value of the latest data block included in the hash chain of the above are synchronized by determining whether or not they are the same as those stored in all the other information processing devices 100. Is determined.

図5(A)に示す例を用いて説明すると、当該情報処理装置100(トランザクションデータを受信した情報処理装置100のことをいう、以下同様)の各種別のハッシュチェーン111のうち、観光客Cのハッシュチェーンには、インデックス値「N−1」のデータブロックが最新のデータブロックとして登録されており、観光スポット2のハッシュチェーンには、インデックス値「Z−1」のデータブロックが最新のデータブロックとして登録されている。なお、図示するように、この実施の形態におけるハッシュチェーンのデータブロック(第mのデータブロック)には、登録データ(トランザクションデータ)と、現在のハッシュチェーンの末尾(1つ前)のデータブロック(第m−1のデータブロック)のハッシュ値(256ビット)が含まれる点は、従来のブロックチェーンの仕組みと同様である。また、データブロックには、例えば、当該データブロックに登録データが登録された日時を示すタイムスタンプなどの分析用付加データが含まれる(図示省略)点についても、従来のブロックチェーンの仕組みと同様である。 Explaining using the example shown in FIG. 5 (A), among the hash chains 111 of each type of the information processing device 100 (referring to the information processing device 100 that has received transaction data, the same applies hereinafter), tourist C The data block with the index value "N-1" is registered as the latest data block in the hash chain of the tourist spot 2, and the data block with the index value "Z-1" is the latest data in the hash chain of the tourist spot 2. It is registered as a block. As shown in the figure, the hash chain data block (mth data block) in this embodiment includes the registered data (transaction data) and the data block at the end (one before) of the current hash chain (one before). The point that the hash value (256 bits) of the m-1th data block) is included is the same as the conventional blockchain mechanism. Further, the data block includes, for example, additional data for analysis such as a time stamp indicating the date and time when the registered data was registered in the data block (not shown), which is the same as the conventional blockchain mechanism. is there.

図4のステップS201の処理では、インデックス値「N−1」と当該N−1のハッシュ値、およびインデックス値「Z−1」と当該Z−1のハッシュ値が、他の全ての情報処理装置100に記憶されているものと一致するか否かを判定することで、同期しているか否かを判定する。例えば、インデックス値「N」と当該Nのハッシュ値が記憶されている情報処理装置100が存在する場合には、当該情報処理装置100に記憶されている観光客Cの種別のハッシュチェーンの情報が古いと判定する(インデックス値「Z」および当該Zのハッシュ値の場合には観光スポット2の種別のハッシュチェーン)。一方、インデックス値「N−2」と当該N−2のハッシュ値が記憶されている情報処理装置100が存在する場合には、その情報処理装置100に記憶されている観光客Cの種別のハッシュチェーンの情報が古いと判定する(インデックス値「Z−2」および当該Z−2のハッシュ値の場合には観光スポット2の種別のハッシュチェーン)。 In the process of step S201 of FIG. 4, the index value "N-1" and the hash value of the N-1 and the index value "Z-1" and the hash value of the Z-1 are all other information processing devices. By determining whether or not it matches what is stored in 100, it is determined whether or not it is synchronized. For example, when there is an information processing device 100 in which the index value "N" and the hash value of the N are stored, the hash chain information of the tourist C type stored in the information processing device 100 is stored. It is determined to be old (in the case of the index value "Z" and the hash value of the Z, the hash chain of the tourist spot 2 type). On the other hand, when there is an information processing device 100 in which the index value "N-2" and the hash value of the N-2 are stored, the hash of the type of tourist C stored in the information processing device 100. It is determined that the chain information is old (in the case of the index value "Z-2" and the hash value of the Z-2, the hash chain of the tourist spot 2 type).

同期していない場合(ステップS201;No)、情報処理装置100は、同期処理部122の機能により、最新のハッシュチェーンの内容を、古いと判定したハッシュチェーンが登録されている情報処理装置100へコピーする同期処理を実行する(ステップS202)。なお、ステップS202の処理では、ハッシュチェーン全体をコピーしてもよいし、不足しているデータブロックのみ(インデックス値やハッシュ値も含む)コピーしてもよい。 When not synchronized (step S201; No), the information processing device 100 uses the function of the synchronization processing unit 122 to transfer the contents of the latest hash chain to the information processing device 100 in which the hash chain determined to be old is registered. The synchronization process for copying is executed (step S202). In the process of step S202, the entire hash chain may be copied, or only the missing data blocks (including the index value and the hash value) may be copied.

ステップS201にて同期していると判定した場合(ステップS201;Yes)、またはステップS202の処理を実行した場合、情報処理装置100は、対象のハッシュチェーンに同一の登録データを格納したデータブロックをそれぞれ追加する(ステップS203)。なお、上述したように、新たなデータブロック(第mのデータブロック)をハッシュチェーンに追加する場合、登録データ(トランザクションデータ)と、現在のハッシュチェーンの末尾(1つ前)のデータブロック(第m−1のデータブロック)のハッシュ値(256ビット)をデータブロックに格納し、現在のハッシュチェーンの末尾(1つ前)のデータブロック(第m−1のデータブロック)に連結する点は、従来のブロックチェーンの仕組みと同様である。 When it is determined in step S201 that the data is synchronized (step S201; Yes), or when the process of step S202 is executed, the information processing apparatus 100 stores a data block in which the same registered data is stored in the target hash chain. Each is added (step S203). As described above, when adding a new data block (mth data block) to the hash chain, the registered data (transaction data) and the data block at the end (one before) of the current hash chain (first data block). The point that the hash value (256 bits) of the m-1 data block) is stored in the data block and connected to the data block (the previous m-1 data block) at the end (one before) of the current hash chain is It is the same as the conventional blockchain mechanism.

具体的に、ステップS203の処理では、図5(B)に示すように、観光客Cの種別のハッシュチェーンには、インデックス値「N」のデータブロックがインデックス値「N−1」のデータブロックに連結されるとともに、観光スポット2の種別のハッシュチェーンには、インデックス値「Z」のデータブロックがインデックス値「Z−1」のデータブロックに連結される。連結されるそれぞれのデータブロックは、同一のトランザクションデータが含まれる。具体的に、観光客Cが(From:03)観光スポット2を(To:X2)訪れたことを示す内容が登録される。図示するように、「From」と「To」により、どの観光客がどの観光スポットを訪れたかが示される。なお、例えば顧客が店舗にて商品を購入したことを示す場合には、価値の大きさを、例えばコインの移動量を示すデータをさらに登録することで示してもよい。なお、観光客Cの種別のハッシュチェーンにおけるインデックス値「N」のデータブロックには、N−1のハッシュ値が格納され、観光スポット2の種別のハッシュチェーンにおけるインデックス値「Z」のデータブロックには、Z−1のハッシュ値が格納される。このように、この実施の形態における情報処理装置100は、対応するそれぞれのハッシュチェーンに、同一のトランザクションデータを追加する。 Specifically, in the process of step S203, as shown in FIG. 5B, the data block having the index value “N” is the data block having the index value “N-1” in the hash chain of the tourist C type. In addition to being linked to, the data block having the index value "Z" is linked to the data block having the index value "Z-1" in the hash chain of the tourist spot 2 type. Each concatenated data block contains the same transaction data. Specifically, the content indicating that the tourist C visited the tourist spot 2 (From: 03) (To: X2) is registered. As shown, "From" and "To" indicate which tourists visited which tourist spot. In addition, for example, when indicating that the customer has purchased the product at the store, the magnitude of the value may be indicated by further registering data indicating, for example, the amount of movement of coins. The hash value of N-1 is stored in the data block of the index value "N" in the hash chain of the tourist C type, and the data block of the index value "Z" in the hash chain of the tourist spot 2 type is stored. Stores the hash value of Z-1. As described above, the information processing apparatus 100 in this embodiment adds the same transaction data to each corresponding hash chain.

図4に戻り、ステップS203の処理を実行した後、情報処理装置100は、同期処理部122の機能により、ステップS203にてデータブロックを追加した種別のハッシュチェーンを他の情報処理装置100へ登録することにより、当該情報処理装置100と他の情報処理装置100とを同期してから(ステップS204)、データブロック登録処理を終了する。なお、ステップS204の処理では、当該情報処理装置100における観光客Cおよび観光スポット2の種別のハッシュチェーンそれぞれの内容を、他の情報処理装置100の記憶部110における各種別のハッシュチェーン111へコピーする。なお、ステップS205の処理では、ステップS202の処理と同様に、ハッシュチェーン全体をコピーしてもよいし、不足しているデータブロックのみ(インデックス値やハッシュ値も含む)コピーしてもよい。 Returning to FIG. 4, after executing the process of step S203, the information processing device 100 registers the hash chain of the type to which the data block is added in step S203 with the other information processing device 100 by the function of the synchronization processing unit 122. By doing so, the information processing apparatus 100 and the other information processing apparatus 100 are synchronized (step S204), and then the data block registration process is terminated. In the process of step S204, the contents of each of the types of hash chains of tourist C and tourist spot 2 in the information processing device 100 are copied to various different hash chains 111 in the storage unit 110 of the other information processing device 100. To do. In the process of step S205, the entire hash chain may be copied, or only the missing data block (including the index value and the hash value) may be copied, as in the process of step S202.

このように、トランザクションが発生する度に、図4に示すデータブロック登録処理が行われ、トランザクションデータが対象のハッシュチェーンに登録されることとなる。例えば、図6(A)に示すように9個のトランザクションが発生した場合(図6(B)に示す場合には10個)には、図4に示すデータブロック登録処理が9回(図6(B)に示す場合には10回)行われ、対象となる種別のハッシュチェーンにそれぞれのトランザクションデータが登録されることとなる。図7は、図6(A)に示す9個のトランザクションについて図4に示すデータブロック登録処理が9回行われた場合におけるそれぞれのハッシュチェーンの登録内容を示している。なお、図7に示す例では、理解を容易にするため、各データブロックに格納されているハッシュ値や分析用付加データについては省略している。 In this way, each time a transaction occurs, the data block registration process shown in FIG. 4 is performed, and the transaction data is registered in the target hash chain. For example, when 9 transactions occur as shown in FIG. 6 (A) (10 in the case shown in FIG. 6 (B)), the data block registration process shown in FIG. 4 is performed 9 times (FIG. 6). In the case shown in (B), it is performed 10 times), and each transaction data is registered in the hash chain of the target type. FIG. 7 shows the registration contents of each hash chain when the data block registration process shown in FIG. 4 is performed 9 times for the 9 transactions shown in FIG. 6 (A). In the example shown in FIG. 7, the hash value and the additional data for analysis stored in each data block are omitted for ease of understanding.

具体的に、図6(A)の1つ目のトランザクションに対応する観光客Aが観光スポット1を訪れたというトランザクションデータは、図4に示すデータブロック登録処理が行われることにより、図7に示す観光客Aの種別のハッシュチェーンにおけるデータブロック(1)および観光スポット1の種別のハッシュチェーンにおけるデータブロック(1)に登録される。図6(A)の2つ目のトランザクションに対応する観光客Aが観光スポット4を訪れたというトランザクションデータは、図4に示すデータブロック登録処理が再度行われることにより、図7に示す観光客Aの種別のハッシュチェーンにおけるデータブロック(2)および観光スポット4の種別のハッシュチェーンにおけるデータブロック(1)に登録される。そして、図6(A)の3つ目のトランザクションに対応する観光客Bが観光スポット2を訪れたというトランザクションデータは、図4に示すデータブロック登録処理が再度行われることにより、図7に示す観光客Bの種別のハッシュチェーンにおけるデータブロック(1)および観光スポット2の種別のハッシュチェーンにおけるデータブロック(1)に登録される。このように、トランザクションの数に対応した回数のデータブロック登録処理が行われることにより、それぞれのトランザクションデータが対応する種別のハッシュチェーンに連結する(図6(A)の4つ目以降のトランザクションについても同様)。 Specifically, the transaction data that the tourist A corresponding to the first transaction in FIG. 6 (A) visited the tourist spot 1 is shown in FIG. 7 by performing the data block registration process shown in FIG. It is registered in the data block (1) in the hash chain of the tourist A type and the data block (1) in the hash chain of the tourist spot 1 type. The transaction data that the tourist A corresponding to the second transaction of FIG. 6 (A) visited the tourist spot 4 is the tourist shown in FIG. 7 by performing the data block registration process shown in FIG. 4 again. It is registered in the data block (2) in the hash chain of the type A and the data block (1) in the hash chain of the tourist spot 4. Then, the transaction data that the tourist B corresponding to the third transaction of FIG. 6 (A) visited the tourist spot 2 is shown in FIG. 7 by performing the data block registration process shown in FIG. 4 again. It is registered in the data block (1) in the hash chain of the tourist B type and the data block (1) in the hash chain of the tourist spot 2 type. By performing the data block registration process for the number of times corresponding to the number of transactions in this way, each transaction data is linked to the corresponding type of hash chain (for the fourth and subsequent transactions in FIG. 6 (A)). The same applies).

以上がハッシュチェーン登録装置として機能した場合における情報処理装置100の動作である。続いてレコメンド装置として機能した場合における情報処理装置100の動作について、図8〜図17を参照して説明する。なお、理解を容易にするため、以下の例では、図6(A)に示す9個のトランザクションが発生して各トランザクションに対応して9回のデータブロック登録処理が行われ、図7に示すように各ハッシュチェーンのデータブロックが登録されているものとする。また、その後に図6(B)に示す10個目のトランザクションが発生し、10個目のトランザクション(観光客Dが観光スポット2を訪れた)の内容が、観光客Dの種別のハッシュチェーンおよび観光スポット2の種別のハッシュチェーンにそれぞれ登録されるものとして、以下説明する。 The above is the operation of the information processing device 100 when it functions as a hash chain registration device. Subsequently, the operation of the information processing device 100 when functioning as the recommendation device will be described with reference to FIGS. 8 to 17. In order to facilitate understanding, in the following example, nine transactions shown in FIG. 6A are generated, and nine data block registration processes are performed corresponding to each transaction, which is shown in FIG. 7. It is assumed that the data block of each hash chain is registered as described above. Further, after that, the tenth transaction shown in FIG. 6B occurs, and the content of the tenth transaction (tourist D visits tourist spot 2) is the hash chain of the type of tourist D and the hash chain. It will be described below assuming that each of the tourist spots 2 is registered in the hash chain of the type.

図8は、グラフ生成処理の一例を示すフローチャートである。当該グラフ生成処理は、ユーザの入出力部130に対する操作(入力操作)に基づいて開始される。当該グラフ生成処理は、各種別のハッシュチェーン111からユーザに所望された期間のトランザクションデータを取得し、有向二部グラフを生成するための処理である。有向二部グラフの詳細については後述する。なお、この実施の形態では、図4に示すデータブロック登録処理により、図7に示す登録内容のハッシュチェーンが生成されており(すなわち、図6(A)に示す9個のトランザクションが発生して各トランザクションに対応して9回のデータブロック登録処理が行われた状態)、図7に示す全てのブロックを対象とした有向二部グラフを生成する場合を例に説明する。 FIG. 8 is a flowchart showing an example of the graph generation process. The graph generation process is started based on an operation (input operation) on the input / output unit 130 of the user. The graph generation process is a process for acquiring transaction data for a period desired by the user from each type of hash chain 111 and generating a directed bipartite graph. Details of the directed bipartite graph will be described later. In this embodiment, the data block registration process shown in FIG. 4 generates a hash chain of the registered contents shown in FIG. 7 (that is, nine transactions shown in FIG. 6A are generated). A case where a directed bipartite graph for all the blocks shown in FIG. 7 is generated will be described as an example in a state where the data block registration process is performed 9 times corresponding to each transaction).

グラフ生成処理を開始すると、情報処理装置100は、データ取得部124の機能により、まず、グラフ生成の対象が指定されているか否かを判定する(ステップS301)。具体的に、ステップS301では、ユーザの入力操作により対象の期間(開始時間と終了時間)が指定されているか否かを判定する。 When the graph generation process is started, the information processing apparatus 100 first determines whether or not the graph generation target is specified by the function of the data acquisition unit 124 (step S301). Specifically, in step S301, it is determined whether or not the target period (start time and end time) is specified by the user's input operation.

ステップS301にて対象の期間が指定されていると判定した場合(ステップS301;Yes)、情報処理装置100は、データ取得部124の機能により、指定された期間に対応するデータブロックのトランザクションデータ(対象データ)を取得する(ステップS302)。ステップS302では、ユーザの入力操作により指定された期間に対応するデータブロックを、分析用不可データに含まれるタイムスタンプに基づいて特定し、当該データブロックに登録されたトランザクションデータ(対象データ)を取得する。 When it is determined in step S301 that the target period is specified (step S301; Yes), the information processing apparatus 100 uses the function of the data acquisition unit 124 to perform transaction data (transaction data of the data block corresponding to the specified period). Target data) is acquired (step S302). In step S302, the data block corresponding to the period specified by the user's input operation is specified based on the time stamp included in the non-analyzable data, and the transaction data (target data) registered in the data block is acquired. To do.

一方、ステップS301にて対象の期間が指定されていないと判定した場合(ステップS301;No)、情報処理装置100は、データ取得部124の機能により、全てのデータブロックのトランザクションデータ(対象データ)を取得する(ステップS303)。上述したように、この実施の形態では、図7に示す全てのブロックを対象とした有向二部グラフを生成することから、ステップS303では、図7に示す全てのブロックのトランザクションデータが取得される。 On the other hand, when it is determined in step S301 that the target period is not specified (step S301; No), the information processing apparatus 100 uses the function of the data acquisition unit 124 to perform transaction data (target data) of all data blocks. (Step S303). As described above, in this embodiment, since the directed bipartite graph for all the blocks shown in FIG. 7 is generated, in step S303, the transaction data of all the blocks shown in FIG. 7 is acquired. To.

ステップS302またはステップS303の処理を実行した後、情報処理装置100は、グラフ生成部125の機能により、トランザクションデータの内容に基づいて、種別毎に重みを算出する(ステップS304)。具体的に、ステップS304の処理では、図9(A)に示すように、観光客Cが観光スポット2を4回訪問しており、観光スポット3を1回訪問しており、合計で5回の観光をしているような場合、ステップS304では、図9(B)に示すように、各観光スポットへの訪問回数を合計値で除算して重みを算出する。観光客Cは、観光スポット2を4回訪問しており、観光スポット3を1回訪問していることから、図9(B)に示すように、それぞれの重みは、0.80と0.20となる。ステップS304では、この処理を全ての観光客について行うとともに、観光スポット側についても同様の処理を行う。例えば、観光スポット1については、観光客Aのみが2回訪問していることから、観光スポット1から観光客Aに対する重みは1.00となる(図10参照)。観光スポット2については、観光客Bが1回、観光客Cが4回訪問しているため、観光スポット2から観光客Bに対する重みが0.20、観光客Cに対する重みが0.80となる(図10参照)。 After executing the process of step S302 or step S303, the information processing apparatus 100 calculates the weight for each type based on the contents of the transaction data by the function of the graph generation unit 125 (step S304). Specifically, in the process of step S304, as shown in FIG. 9A, tourist C has visited tourist spot 2 four times and tourist spot 3 once, for a total of five times. In step S304, as shown in FIG. 9B, the number of visits to each tourist spot is divided by the total value to calculate the weight. Since tourist C has visited tourist spot 2 four times and visited tourist spot 3 once, the weights are 0.80 and 0, respectively, as shown in FIG. 9 (B). It becomes 20. In step S304, this process is performed for all tourists, and the same process is performed for tourist spots. For example, with respect to the tourist spot 1, since only the tourist A visits twice, the weight from the tourist spot 1 to the tourist A is 1.00 (see FIG. 10). As for tourist spot 2, since tourist B visits once and tourist C visits four times, the weight of tourist spot 2 to tourist B is 0.20 and the weight of tourist C is 0.80. (See FIG. 10).

図8に戻り、ステップS305の処理にて全ての種別について重みを算出した後、情報処理装置100は、グラフ生成部125の機能により、それぞれの種別のうち、起点(From)と終点(To)である取引対象をそれぞれ頂点とし、それぞれの頂点を辺で結んだ有向二部グラフを生成し(ステップS305)、グラフ生成処理を終了する。具体的に、ステップS305の処理では、それぞれの観光客を起点としそれぞれの観光スポットを終点とした頂点を、訪問有無に応じて辺で結び、図10に示すような有向二部グラフを生成する。なお、図示する例では、理解を容易にするため、観光客側から観光スポット方向への矢印のみにて辺を表し、かつ、図8のステップS304にて算出した重みを、観光客側と観光スポット側のそれぞれで記載しているが、実際には、辺(矢印)の太さにより片側方向(観光客から観光スポット方向)の重みを表す(辺が太いほど重みが大きい)。この場合、観光スポット側から観光客側方向への辺(矢印)の太さにより、観光スポット側から(観光スポットから観光客方向)の重みを表せばよい。すなわち、ステップS305では、ステップS304にて算出した重みに応じた太さの辺(矢印)で、頂点をそれぞれの方向から結べばよい。 Returning to FIG. 8, after calculating the weights for all the types in the process of step S305, the information processing apparatus 100 uses the function of the graph generation unit 125 to set the start point (From) and the end point (To) of each type. A directed bipartite graph is generated (step S305) in which each of the transaction targets is set as a vertex and each vertex is connected by an edge, and the graph generation process is completed. Specifically, in the process of step S305, the vertices starting from each tourist and ending at each tourist spot are connected by edges according to the presence or absence of a visit, and a directed bipartite graph as shown in FIG. 10 is generated. To do. In the illustrated example, in order to facilitate understanding, the side is represented only by the arrow from the tourist side toward the tourist spot, and the weight calculated in step S304 of FIG. 8 is used for sightseeing with the tourist side. Although it is described for each spot side, in reality, the weight in one side (from the tourist to the tourist spot) is represented by the thickness of the side (arrow) (the thicker the side, the heavier the weight). In this case, the weight from the tourist spot side (from the tourist spot to the tourist direction) may be expressed by the thickness of the side (arrow) from the tourist spot side to the tourist side. That is, in step S305, the vertices may be connected from each direction by the sides (arrows) having the thickness corresponding to the weight calculated in step S304.

この実施の形態における観光客Aは、観光スポット1と観光スポット4を訪れていることから(図6(A)、図7参照)、図10に示すように、観光客Aの頂点は、観光スポット1と観光スポット4と結ばれる。観光客Bは、観光スポット2を訪れているため(図6(A)、図7参照)、観光客Bの頂点は、観光スポット2と結ばれる。観光客Cは、観光スポット2と観光スポット3を訪れていることから(図6(A)、図7参照)、図10に示すように、観光客Cの頂点は、観光スポット2と観光スポット3と結ばれる。なお、当該有向二部グラフには、図10に示すように、訪問回数に応じて図8のステップS304で算出された重みが含まれる(観光客側からの辺(矢印)の太さや、観光スポット側からの辺(矢印)の太さによりそれぞれの方向からの重みが表される)。 Since the tourist A in this embodiment is visiting the tourist spot 1 and the tourist spot 4 (see FIG. 6 (A) and FIG. 7), as shown in FIG. 10, the top of the tourist A is sightseeing. It is connected to Spot 1 and Tourist Spot 4. Since tourist B is visiting tourist spot 2 (see FIG. 6 (A) and FIG. 7), the apex of tourist B is connected to tourist spot 2. Since tourist C visits tourist spot 2 and tourist spot 3 (see FIG. 6 (A) and FIG. 7), as shown in FIG. 10, the top of tourist C is tourist spot 2 and tourist spot. It is tied with 3. As shown in FIG. 10, the directed bipartite graph includes the weight calculated in step S304 of FIG. 8 according to the number of visits (the thickness of the side (arrow) from the tourist side and the thickness of the side (arrow)). The weight from each direction is represented by the thickness of the side (arrow) from the tourist spot side).

このように、グラフ生成処理が実行されることにより、図10に示す有向二部グラフが生成されることとなる。このような状態において、図6(B)に示す10個目のトランザクションが発生すると、図4のデータブロック登録処理により、10個目のトランザクション(観光客Dが観光スポット2を訪れた)の内容が、観光客Dの種別のハッシュチェーンおよび観光スポット2の種別のハッシュチェーンにそれぞれ登録される(図示省略)。このような状況において、観光客Dに対しておすすめの観光スポットを提示する場合(観光客Dを推薦対象者(レコメンド対象とも言う)としておすすめの観光スポットを推薦する場合)におけるレコメンド処理について、以下説明する。なお、通常は、様々なトランザクションが発生するため、図10に示す有向二部グラフについても、これに合わせてリアルタイムで更新されるが、この実施の形態では、理解を容易にするため、観光客Dが観光スポット2を訪れたという内容のトランザクションのみ発生し、その他のトランザクションについては発生しないものとする。すなわち、図10に示す有向二部グラフは、リアルタイムでの更新が行われていないものとして以下説明する。 By executing the graph generation process in this way, the directed bipartite graph shown in FIG. 10 is generated. In such a state, when the tenth transaction shown in FIG. 6B occurs, the content of the tenth transaction (tourist D visits tourist spot 2) by the data block registration process of FIG. Is registered in the hash chain of the tourist D type and the hash chain of the tourist spot 2 type (not shown). In such a situation, the recommendation processing when presenting a recommended tourist spot to tourist D (when recommending a recommended tourist spot with tourist D as a recommendation target (also referred to as a recommendation target)) is as follows. explain. Normally, since various transactions occur, the directed bipartite graph shown in FIG. 10 is also updated in real time in accordance with this, but in this embodiment, in order to facilitate understanding, sightseeing It is assumed that only the transaction in which the customer D has visited the tourist spot 2 occurs, and the other transactions do not occur. That is, the directed bipartite graph shown in FIG. 10 will be described below assuming that it has not been updated in real time.

図11は、レコメンド処理の一例を示すフローチャートである。当該レコメンド処理は、端末100Dにより実行指示を受信することで実行されるものであるが、ユーザの入出力部130に対する操作(入力操作)に基づいて開始されてもよい。 FIG. 11 is a flowchart showing an example of the recommendation process. The recommendation process is executed by receiving an execution instruction from the terminal 100D, but may be started based on an operation (input operation) on the input / output unit 130 of the user.

図11に示すレコメンド処理を開始すると、情報処理装置100は、レコメンド処理部126の機能により、指定されたデータブロック(対象ブロック)のトランザクションデータを取得する(ステップS401)。この例では、図6(B)に示す10個目のトランザクション(観光客Dが観光スポット2を訪れた)が対象であることから、観光客Dの種別のハッシュチェーンと観光スポット2の種別のハッシュチェーンから当該内容のトランザクションデータを取得する。なお、対象のトランザクションデータの取得については、例えば、FromとToの内容と期間とを指定して行えばよい。 When the recommendation processing shown in FIG. 11 is started, the information processing apparatus 100 acquires the transaction data of the designated data block (target block) by the function of the recommendation processing unit 126 (step S401). In this example, since the tenth transaction (tourist D visited tourist spot 2) shown in FIG. 6B is the target, the hash chain of the tourist D type and the tourist spot 2 type Acquire transaction data of the relevant contents from the hash chain. Regarding the acquisition of the target transaction data, for example, the contents and period of From and To may be specified.

ステップS401の処理を実行した後、情報処理装置100は、レコメンド処理部126の機能により、図8のグラフ生成処理にて生成した有向二部グラフを編成する(ステップS402)。この例では、観光客Dが観光スポット2を訪れたというトランザクションが追加されたことから、図10に示す有向二部グラフに、当該新たなトランザクションデータに対応する有向二部グラフが加算される。具体的に、この例におけるステップS402では、図13に示すように、観光客Dの頂点を観光スポット2と結ぶ処理が行われる。なお、この例では、新たな観光客Dが観光スポット2を訪れたというトランザクションであったため、新たな辺(矢印)で結ぶ例を示したが、例えば、既存の観光客が既に訪問した観光スポットを再度訪問したような場合、すなわち訪問回数が増加した場合については、辺(矢印)の太さを、重みに応じて太い態様へと編成すればよい。 After executing the process of step S401, the information processing apparatus 100 organizes the directed bipartite graph generated by the graph generation process of FIG. 8 by the function of the recommendation processing unit 126 (step S402). In this example, since the transaction that tourist D visited the tourist spot 2 was added, the directed bipartite graph corresponding to the new transaction data is added to the directed bipartite graph shown in FIG. To. Specifically, in step S402 in this example, as shown in FIG. 13, a process of connecting the apex of the tourist D with the tourist spot 2 is performed. In this example, since the transaction was that a new tourist D visited the tourist spot 2, an example of connecting with a new side (arrow) was shown. For example, a tourist spot that an existing tourist has already visited. In the case of visiting again, that is, when the number of visits increases, the thickness of the side (arrow) may be organized into a thicker mode according to the weight.

また、この例では、観光客Dが観光スポット2を訪れたというトランザクションが追加された場合について示していることから、新たなトランザクションデータに対応する有向二部グラフが図10に示す有向二部グラフに加算される例を示したが、過去のトランザクションデータに対応する有向二部グラフを減算するようにしてもよい。例えば、図6(A)に示す1個目のトランザクションに対応する有向二部グラフを減算する場合(観光客Aが観光スポット1を訪れたというトランザクションを削除する場合)には、観光客Aが観光スポット1への訪問回数が1減少するため(2回から1回となる)、図10における観光客Aから観光スポット1への辺(矢印)の太さを、重みに応じて細い態様へと編成すればよい(なお、観光スポット1から観光客Aへの辺(矢印)については、当該観光スポット1には観光客Aのみが訪問していることから重みが変更されないため、編成しなくてよい)。また、図6(A)に示す2個目のトランザクションに対応する有向二部グラフを減算する場合(観光客Aが観光スポット4を訪れたというトランザクションを削除する場合)には、観光客Aが観光スポット4への訪問回数が0回となるため、図10における観光客Aから観光スポット4への辺(矢印)を削除する編成を行うとともに、観光スポット4から観光客Aへの辺(矢印)を合わせて削除する編成を行えばよい。 Further, in this example, since the case where the transaction that the tourist D visited the tourist spot 2 is added, the directed bipartite graph corresponding to the new transaction data is shown in FIG. Although the example of being added to the part graph is shown, the directed bipartite graph corresponding to the past transaction data may be subtracted. For example, when subtracting the directed two-part graph corresponding to the first transaction shown in FIG. 6 (A) (when deleting the transaction that tourist A has visited tourist spot 1), tourist A However, since the number of visits to tourist spot 1 is reduced by 1 (from 2 times to 1 time), the thickness of the side (arrow) from tourist A to tourist spot 1 in FIG. 10 is reduced according to the weight. (Note that the side (arrow) from tourist spot 1 to tourist A is organized because the weight is not changed because only tourist A is visiting the tourist spot 1. It doesn't have to be). Further, when subtracting the directed bipartite graph corresponding to the second transaction shown in FIG. 6 (A) (when deleting the transaction that tourist A has visited tourist spot 4), tourist A Since the number of visits to tourist spot 4 is 0, the side (arrow) from tourist A to tourist spot 4 in FIG. 10 is deleted, and the side from tourist spot 4 to tourist A ( Organize to delete by matching the arrow).

図11のステップS402の処理を実行した後、情報処理装置100は、レコメンド処理部126の機能により、レコメンド値を算出するレコメンド値算出処理を実行する(ステップS403)。具体的に、ステップS403では、レコメンド対象の観光客が訪問した観光スポットのスコア(値1)を算出し、当該観光スポットを訪問した観光客のスコア(値2)を、値1に基づいて算出し、当該観光客が訪問した観光スポットのスコアをレコメンド値として、値2に基づいて算出する。換言すると、レコメンド対象者と似た行動を行っている観光客のスコアを算出し、当該スコアとその観光客の行動(訪れた観光スポット)から、レコメンド対象の観光客に対する行動(観光スポット)のレコメンド値を算出する。以下、観光客Dが観光スポット2を訪れた場合における、図11のステップS403におけるレコメンド値算出処理について、図12〜図14を用いて説明する。 After executing the process of step S402 of FIG. 11, the information processing apparatus 100 executes the recommendation value calculation process of calculating the recommendation value by the function of the recommendation processing unit 126 (step S403). Specifically, in step S403, the score (value 1) of the tourist spot visited by the recommended tourist is calculated, and the score (value 2) of the tourist who visited the tourist spot is calculated based on the value 1. Then, the score of the tourist spot visited by the tourist is used as the recommended value, and is calculated based on the value 2. In other words, the score of the tourist who is performing the behavior similar to the recommended person is calculated, and the behavior (sightseeing spot) for the recommended tourist is calculated from the score and the behavior of the tourist (visited tourist spot). Calculate the recommendation value. Hereinafter, the recommendation value calculation process in step S403 of FIG. 11 when the tourist D visits the tourist spot 2 will be described with reference to FIGS. 12 to 14.

図12は、図11のステップS403の処理において実行されるレコメンド値算出処理の一例を示すフローチャートである。図12に示すレコメンド値算出処理において、情報処理装置100は、まず、レコメンド対象の観光客(推薦対象者)に初期値である1.00の値を与え、当該レコメンド対象者と結ばれた頂点(すなわち、推薦対象者に関連する取引対象)について、順方向(観光客から観光スポット方向)の重みを乗じて値1を算出する(ステップS501)。具体的に、ステップS501では、図13に示すように、レコメンド対象である観光客Dに1.00の値を与える。そして、観光客Dに結ばれている辺は観光スポット2のみであることから、重みの1.00を乗じて、観光客Dから見た観光スポット2の値を1.00と算出する(図13に示す観光スポット2の値1)。図12のステップS501の処理を実行した後、情報処理装置100は、値1を持つ頂点に結ばれた頂点(すなわち、値1の取引対象に関連する取引対象)について、逆方向(観光スポットから観光客方向)の重みを乗じて値2を算出する(ステップS502)。具体的に、ステップS502では、観光スポット2側からの重みは、観光客Bへの重みが0.20、観光客Cへの重みが0.80であることから、観光スポット2から見た観光客Bの値を、値1の1.00に重みの0.20を乗じて0.20(図13に示す観光客Bの値2)と算出し、観光客Cの値を、値1の1.00に重みの0.80を乗じて0.80と算出する(図13に示す観光客Cの値2)。 FIG. 12 is a flowchart showing an example of the recommendation value calculation process executed in the process of step S403 of FIG. In the recommendation value calculation process shown in FIG. 12, the information processing device 100 first gives a value of 1.00, which is an initial value, to the tourists (recommendation target persons) to be recommended, and the apex connected to the recommendation target person. (That is, the transaction target related to the recommended person) is multiplied by the weight in the forward direction (from the tourist to the tourist spot direction) to calculate the value 1 (step S501). Specifically, in step S501, as shown in FIG. 13, a value of 1.00 is given to the tourist D who is the recommended target. Since only tourist spot 2 is connected to tourist D, the value of tourist spot 2 seen from tourist D is calculated as 1.00 by multiplying by the weight of 1.00 (Fig.). Value 1) of tourist spot 2 shown in 13. After executing the process of step S501 in FIG. 12, the information processing apparatus 100 reverses the direction (from the tourist spot) with respect to the apex connected to the apex having the value 1 (that is, the transaction target related to the transaction target having the value 1). The value 2 is calculated by multiplying the weight in the tourist direction (step S502). Specifically, in step S502, the weight from the tourist spot 2 side is 0.20 for the tourist B and 0.80 for the tourist C. Therefore, the sightseeing seen from the tourist spot 2 The value of tourist B is calculated as 0.20 (value 2 of tourist B shown in FIG. 13) by multiplying 1.00 of value 1 by 0.20 of the weight, and the value of tourist C is set to value 1. Multiply 1.00 by 0.80 of the weight to calculate 0.80 (value 2 of tourist C shown in FIG. 13).

図12のステップS502の処理を実行した後、情報処理装置100は、値2を持つ頂点と結ばれた頂点(すなわち、値2の取引対象に関連する取引対象)について、順方向(観光客から観光スポット方向)の重みを乗じてレコメンド値を算出し(ステップS503)、レコメンド値算出処理を終了する。具体的に、ステップS502では、図14に示すように、観光客Bと観光客Cのそれぞれの値(図14に示す観光客Bおよび観光客Cの値2)に、観光客側から観光スポット側方向の重みを乗じて、それぞれの観光スポットのレコメンド値を算出する。より具体的に、情報処理装置100は、レコメンド処理部126の機能により、観光客Bの値2の0.20に観光スポット2への重み1.00を乗じて0.20を算出する。また、観光客Cから観光スポット2への辺も存在することから、観光客Cの値2の0.80に観光スポット2への重み0.80を乗じて0.64を算出する。そして、これらの値を合計して(0.20+0.64)、観光スポット2のレコメンド値0.84(図14に示す観光スポット2のレコメンド値)を算出する。また、情報処理装置100は、レコメンド処理部126の機能により、観光客Cの値2の0.80に観光スポット3への重み0.20を乗じて0.16を算出する。当該観光スポット3については観光客Cのみが訪れており、観光客Bは訪れていないことから、当該0.16の値をそのまま観光スポット3のレコメンド値(図14に示す観光スポット3のレコメンド値)とする。 After executing the process of step S502 of FIG. 12, the information processing apparatus 100 forwards (from the tourist) about the vertex connected to the vertex having the value 2 (that is, the transaction target related to the transaction target having the value 2). The recommendation value is calculated by multiplying the weight of the tourist spot direction (step S503), and the recommendation value calculation process is completed. Specifically, in step S502, as shown in FIG. 14, each value of tourist B and tourist C (value 2 of tourist B and tourist C shown in FIG. 14) is set to a tourist spot from the tourist side. Multiply the weight in the lateral direction to calculate the recommendation value for each tourist spot. More specifically, the information processing apparatus 100 calculates 0.20 by multiplying 0.20 of the value 2 of tourist B by 1.00 the weight to the tourist spot 2 by the function of the recommendation processing unit 126. Further, since there is a side from tourist C to tourist spot 2, 0.64 is calculated by multiplying 0.80 of the value 2 of tourist C by 0.80 of the weight to tourist spot 2. Then, these values are totaled (0.20 + 0.64) to calculate the recommendation value of the tourist spot 2 of 0.84 (the recommended value of the tourist spot 2 shown in FIG. 14). Further, the information processing apparatus 100 calculates 0.16 by multiplying 0.80 of the value 2 of tourist C by 0.20 of the weight to the tourist spot 3 by the function of the recommendation processing unit 126. Since only tourist C has visited the tourist spot 3 and tourist B has not visited the tourist spot 3, the value of 0.16 is used as it is as the recommended value of the tourist spot 3 (the recommended value of the tourist spot 3 shown in FIG. 14). ).

このように、図12に示すレコメンド値算出処理では、レコメンド対象者に1.00の値を与え、当該レコメンド対象者と似た行動を取った者のスコア(値2)から当該レコメンド対象者向けのレコメンド値を算出する。 As described above, in the recommendation value calculation process shown in FIG. 12, a value of 1.00 is given to the recommendation target person, and the score (value 2) of the person who has taken an action similar to that of the recommendation target person is used for the recommendation target person. Calculate the recommendation value of.

図11に戻り、ステップS403の処理にてレコメンド値を算出した後、情報処理装置100は、レコメンド処理部126の機能により、ステップS403の処理で算出したレコメンド値に基づいて、おすすめの観光スポットを入出力部130に表示することで観光客Dに対してレコメンドし(ステップS404)、レコメンド処理を終了する。図14に示す例において、観光スポット2のレコメンド値は0.84であり、観光スポット3のレコメンド値は0.16である。ステップS404では通常、最も大きいレコメンド値の観光スポットを表示するが、観光客Dは既に観光スポット2を直近で訪問していることから、この例では、次点である観光スポット3が表示される。なお、最も高いレコメンド値の観光スポットを未訪問であれば、その観光スポットが表示されればよい。さらに、最も高いレコメンド値の観光スポットを直近で訪問していなくとも、既に訪問している場合には、次点の観光スポットを表示するようにしてもよい。また、例えば、3回以上訪問している場合は表示しないなど、訪問回数に応じて表示するか否かを決定してもよい。また、表示する観光スポットは1つでなくてもよく、上位3つを表示するようにしてもよい。この場合、既に訪問した観光スポットが含まれる場合には、さらに次点のレコメンド値の観光スポットを表示させる(上位4つなど)ようにしてもよい。なお、ステップS404では、当該レコメンド処理は、端末100Dにより実行指示を受信することで実行された場合には、端末100Dの入出力部130へ表示し、ユーザの入出力部130に対する操作(入力操作)に基づいて開始された場合には、当該入出力部130へ表示すればよい。 Returning to FIG. 11, after calculating the recommendation value in the process of step S403, the information processing apparatus 100 uses the function of the recommendation processing unit 126 to select a recommended tourist spot based on the recommendation value calculated in the process of step S403. By displaying the information on the input / output unit 130, the tourist D is recommended (step S404), and the recommendation process is completed. In the example shown in FIG. 14, the recommendation value of the tourist spot 2 is 0.84, and the recommended value of the tourist spot 3 is 0.16. In step S404, the tourist spot with the highest recommended value is usually displayed, but since tourist D has already visited tourist spot 2 most recently, in this example, tourist spot 3 which is the runner-up is displayed. .. If the tourist spot with the highest recommended value has not been visited, the tourist spot may be displayed. Furthermore, even if the tourist spot with the highest recommended value has not been visited most recently, if the tourist spot has already been visited, the next tourist spot may be displayed. Further, for example, it may be decided whether or not to display according to the number of visits, such as not displaying when visited three times or more. Further, the number of tourist spots to be displayed does not have to be one, and the top three may be displayed. In this case, if the tourist spots that have already been visited are included, the tourist spots with the next recommended value may be displayed (such as the top four). In step S404, when the recommendation process is executed by receiving an execution instruction from the terminal 100D, it is displayed on the input / output unit 130 of the terminal 100D, and an operation (input operation) on the user's input / output unit 130 is performed. ), It may be displayed on the input / output unit 130.

このように、この実施の形態における情報処理装置100は、ハッシュチェーンで連結されたデータブロックに格納されたトランザクションデータから、任意の期間のデータを抽出して、有向二部グラフを生成する。そして、当該有向二部グラフを生成した後に発生したトランザクションデータをデータブロックから抽出して新たな有向二部グラフを生成し、それを加算することで有向二部グラフを編成して最新化することができる。また過去のトランザクションデータに対応する部分の有向二部グラフを減算することで、当該有向二部グラフから、時間が経過した過去分の影響を減ずることができる。すなわち、加算や減算を行うことで、いずれの期間のトランザクションを対象にレコメンドを行うかといった時間軸を任意に調整することが可能となる。したがって、トランザクションデータを好適に分析可能となり、さらに、当該分析結果に基づいて対象者にレコメンドすることが可能となる。 As described above, the information processing apparatus 100 in this embodiment extracts data for an arbitrary period from the transaction data stored in the data blocks connected by the hash chain, and generates a directed bipartite graph. Then, the transaction data generated after the directed bipartite graph is generated is extracted from the data block to generate a new directed bipartite graph, and the directed bipartite graph is organized by adding them to the latest. Can be transformed into. Further, by subtracting the directed bipartite graph of the portion corresponding to the past transaction data, the influence of the past portion over time can be reduced from the directed bipartite graph. That is, by performing addition or subtraction, it is possible to arbitrarily adjust the time axis such as which period of the transaction is to be recommended. Therefore, the transaction data can be preferably analyzed, and further, it is possible to recommend to the target person based on the analysis result.

次に、観光客の行動変化に伴うレコメンド値の遷移について、図15〜図18を用いて説明する。図6(B)に示す10個目のトランザクション(観光客Dが観光スポット2を訪れた)の内容が、観光客Dの種別のハッシュチェーンおよび観光スポット2の種別のハッシュチェーンにそれぞれ登録された後、レコメンド処理が実行されることにより、上述したように図14に示す有向二部グラフが生成され、観光客Dに観光スポット3がレコメンドされる。このような状態で、観光客Dがさらに観光スポット1を訪れた場合を例に、以下説明する。 Next, the transition of the recommendation value due to the change in the behavior of tourists will be described with reference to FIGS. 15 to 18. The contents of the tenth transaction (Tourist D visited Tourist Spot 2) shown in FIG. 6 (B) were registered in the hash chain of the tourist D type and the hash chain of the tourist spot 2 type, respectively. After that, by executing the recommendation process, the directed two-part graph shown in FIG. 14 is generated as described above, and the tourist spot 3 is recommended to the tourist D. A case where the tourist D further visits the tourist spot 1 in such a state will be described below as an example.

観光客Dがさらに観光スポット1を訪れたという新たなトランザクションが発生することで、図4のデータブロック登録処理により、当該トランザクションの内容が観光客Dの種別のハッシュチェーンおよび観光スポット1の種別のハッシュチェーンにそれぞれ登録される(図示省略)。そして、図11に示すレコメンド処理が実行されると、ステップS401の処理において、情報処理装置100は、観光客Dの種別のハッシュチェーンと観光スポット1の種別のハッシュチェーンから当該内容のトランザクションデータを取得する。 When a new transaction occurs in which tourist D further visits tourist spot 1, the data block registration process of FIG. 4 changes the content of the transaction to the hash chain of tourist D type and the tourist spot 1 type. Each is registered in the hash chain (not shown). Then, when the recommendation process shown in FIG. 11 is executed, in the process of step S401, the information processing device 100 obtains transaction data having the contents from the hash chain of the tourist D type and the hash chain of the tourist spot 1 type. get.

続いて、情報処理装置100は、ステップS402の処理により、図14に示す有向二部グラフを編成する(図15参照)。具体的には、図14に示す有向二部グラフに対し、観光客Dの頂点と観光スポット1とを結ぶ辺(矢印)を加算する(図15参照)。なお、この場合、観光客Dの辺が2つになり、いずれも訪問回数が1回であることから、観光客Dから観光スポット1への重みが0.5となり、また、観光スポット2への重みが0.5となる。そのため、ステップS402の処理では、図14における観光客Dから観光スポット2への辺の太さを0.5の重みに対応した太さへと編成するとともに、観光スポット1への辺の太さを0.5の重みに対応した太さで加算する(図15参照)。 Subsequently, the information processing apparatus 100 organizes the directed bipartite graph shown in FIG. 14 by the process of step S402 (see FIG. 15). Specifically, the side (arrow) connecting the apex of tourist D and tourist spot 1 is added to the directed bipartite graph shown in FIG. 14 (see FIG. 15). In this case, the number of sides of tourist D is two, and the number of visits is one in each case. Therefore, the weight from tourist D to tourist spot 1 is 0.5, and to tourist spot 2. The weight of is 0.5. Therefore, in the process of step S402, the thickness of the side from the tourist D to the tourist spot 2 in FIG. 14 is organized into a thickness corresponding to the weight of 0.5, and the thickness of the side to the tourist spot 1 is formed. Is added with a thickness corresponding to a weight of 0.5 (see FIG. 15).

続いて、図11のステップS403の処理、すなわち図12のレコメンド値算出処理において、情報処理装置100は、図15に示すように、レコメンド対象である観光客Dに1.00の値を与える。そして、観光客Dに結ばれている辺は観光スポット1と観光スポット2であることから、それぞれの重みの0.50を乗じて、観光客Dから見た観光スポット1の値を0.50(図15に示す観光スポット1の値1)、観光スポット2の値を0.50(図15に示す観光スポット2の値1)とそれぞれ算出する(図12のステップS501)。 Subsequently, in the process of step S403 of FIG. 11, that is, the recommendation value calculation process of FIG. 12, the information processing device 100 gives a value of 1.00 to the tourist D who is the recommendation target, as shown in FIG. Since the sides connected to tourist D are tourist spot 1 and tourist spot 2, the value of tourist spot 1 seen from tourist D is 0.50 by multiplying each weight by 0.50. (Value 1 of tourist spot 1 shown in FIG. 15) and value of tourist spot 2 are calculated as 0.50 (value 1 of tourist spot 2 shown in FIG. 15) (step S501 in FIG. 12).

また、観光スポット1側からの重みは、観光客Aへの重みが1.00であることから、図12のステップS502の処理において、観光スポット1から見た観光客Aの値を、値1の0.50に重みの1.00乗じて0.50(図15に示す観光客Aの値2)と算出する。また、観光スポット2側からの重みは、観光客Bへの重みが0.20、観光客Cへの重みが0.80であることから、図12のステップS502の処理において、観光スポット2から見た観光客Bの値を、値1の0.50に重みの0.20を乗じて0.10(図15に示す観光客Bの値2)と算出し、観光客Cの値を、値1の0.50に重みの0.80を乗じて0.40と算出する(図15に示す観光客Cの値2)。 Further, since the weight from the tourist spot 1 side is 1.00 to the tourist A, the value of the tourist A seen from the tourist spot 1 is set to a value 1 in the process of step S502 of FIG. Is 0.50 multiplied by 1.00 of the weight to obtain 0.50 (value 2 of tourist A shown in FIG. 15). Further, since the weight from the tourist spot 2 side is 0.20 for the tourist B and 0.80 for the tourist C, in the process of step S502 of FIG. 12, from the tourist spot 2 The value of tourist B seen is calculated as 0.10 (value 2 of tourist B shown in FIG. 15) by multiplying 0.50 of the value 1 by 0.20 of the weight, and the value of tourist C is calculated. It is calculated as 0.40 by multiplying 0.50 of the value 1 by 0.80 of the weight (value 2 of tourist C shown in FIG. 15).

そして、情報処理装置100は、図12のステップS503の処理において、図16に示すように、観光客A、観光客Bおよび観光客Cのそれぞれの値(図16に示す観光客A、観光客Bおよび観光客Cの値2)に、観光客側から観光スポット側方向の重みを乗じて、それぞれの観光スポットのレコメンド値を算出する。 Then, in the process of step S503 of FIG. 12, the information processing apparatus 100 has the respective values of tourist A, tourist B and tourist C (tourist A and tourists shown in FIG. 16) as shown in FIG. The recommendation value of each tourist spot is calculated by multiplying the value 2) of B and tourist C by the weight from the tourist side to the tourist spot side.

具体的に、情報処理装置100は、図12のステップS503の処理において、レコメンド処理部126の機能により、観光客Aの値2の0.50に観光スポット1への重み0.67を乗じて0.34を算出し、観光スポット1のレコメンド値(図16に示す観光スポット1のレコメンド値)とする。また、情報処理装置100は、レコメンド処理部126の機能により、観光客Aの値2の0.50に観光スポット4への重み0.33を乗じて0.17を算出し、観光スポット4のレコメンド値(図16に示す観光スポット4のレコメンド値)とする。また、情報処理装置100は、観光客Bの値2の0.10に観光スポット2への重み1.00を乗じて0.10を算出する。また、観光客Cから観光スポット2への辺も存在することから、観光客Cの値2の0.40に観光スポット2への重み0.80を乗じて0.32を算出する。そして、これらの値を合計して(0.10+0.32)、観光スポット2のレコメンド値0.42(図16に示す観光スポット2のレコメンド値)とする。また、情報処理装置100は、レコメンド処理部126の機能により、観光客Cの値2の0.40に観光スポット3への重み0.20を乗じて0.08を算出し、観光スポット3のレコメンド値(図16に示す観光スポット3のレコメンド値)とする。 Specifically, in the process of step S503 of FIG. 12, the information processing apparatus 100 uses the function of the recommendation processing unit 126 to multiply the value 2 of the tourist A by 0.50 by the weight of the tourist spot 1 by 0.67. 0.34 is calculated and used as the recommended value of tourist spot 1 (recommended value of tourist spot 1 shown in FIG. 16). Further, the information processing device 100 calculates 0.17 by multiplying 0.50 of the value 2 of the tourist A by 0.33 of the weight to the tourist spot 4 by the function of the recommendation processing unit 126, and calculates 0.17 of the tourist spot 4. Let it be a recommendation value (recommendation value of tourist spot 4 shown in FIG. 16). Further, the information processing device 100 calculates 0.10 by multiplying 0.10 of the value 2 of tourist B by 1.00 the weight to the tourist spot 2. Further, since there is also a side from tourist C to tourist spot 2, 0.32 is calculated by multiplying 0.40 of the value 2 of tourist C by 0.80 of the weight to tourist spot 2. Then, these values are totaled (0.10 + 0.32) to obtain a recommendation value of tourist spot 2 of 0.42 (recommendation value of tourist spot 2 shown in FIG. 16). Further, the information processing device 100 calculates 0.08 by multiplying 0.40 of the value 2 of tourist C by 0.20 of the weight to the tourist spot 3 by the function of the recommendation processing unit 126, and calculates 0.08 of the tourist spot 3. Let it be a recommendation value (recommendation value of tourist spot 3 shown in FIG. 16).

その後、図11のステップS404の処理において、情報処理装置100は、レコメンド処理部126の機能により、ステップS403で算出したレコメンド値に基づいて、おすすめの観光スポットを入出力部130に表示することで観光客Dに対してレコメンドする。この例におけるレコメンド値は、図16に示すように、観光スポット2のレコメンド値(0.42)が最も大きく、次いで観光スポット1のレコメンド値(0.33)、その次が観光スポット4のレコメンド値(0.17)となっており、観光スポット3のレコメンド値(0.08)が最も小さくなっている。この場合、観光客Dが直近で訪れているのは観光スポット1であるため、情報処理装置100は、レコメンド値が最も大きい観光スポット2をおすすめの観光スポットとして表示する。なお、観光スポット1〜4の全てを、レコメンド値の高い方から順に表示するようにしてもよい。その際には、レコメンド値順に、おすすめ度が視認可能なように、例えば数値や星の数など、付加的要素とともに表示してもよい。 After that, in the process of step S404 of FIG. 11, the information processing apparatus 100 displays recommended tourist spots on the input / output unit 130 based on the recommendation value calculated in step S403 by the function of the recommendation processing unit 126. Make recommendations to tourist D. As shown in FIG. 16, as for the recommendation value in this example, the recommendation value of tourist spot 2 (0.42) is the largest, followed by the recommendation value of tourist spot 1 (0.33), and then the recommendation value of tourist spot 4. The value is (0.17), and the recommendation value (0.08) of the tourist spot 3 is the smallest. In this case, since the tourist spot 1 is the most recently visited by the tourist D, the information processing device 100 displays the tourist spot 2 having the largest recommended value as the recommended tourist spot. In addition, all of the tourist spots 1 to 4 may be displayed in order from the one with the highest recommendation value. In that case, it may be displayed in the order of recommended values together with additional elements such as a numerical value and the number of stars so that the recommendation level can be visually recognized.

このように、観光客Dが観光スポット1を訪れたという新たなトランザクションが1つ発生するだけで、観光スポット2を訪れた観光客の影響が低下し、レコメンド値が変化する。上述したように、通常は、様々なトランザクションが発生し、それに伴って有向二部グラフはリアルタイムで更新が行われていることから、発生したトランザクションデータの影響をより多く受け、レコメンド値が逐一変更されることとなる。したがって、レコメンド対象者に対し、より精度良くレコメンドすることができる。 In this way, only one new transaction in which tourist D visits tourist spot 1 occurs, the influence of the tourist who visits tourist spot 2 is reduced, and the recommendation value changes. As mentioned above, various transactions usually occur, and the directed bipartite graph is updated in real time accordingly, so it is more affected by the transaction data that has occurred, and the recommendation value is one by one. It will be changed. Therefore, it is possible to make a more accurate recommendation to the person to be recommended.

続いて、観光客の行動変化に伴うレコメンド値の変化を示す例として、図16に示す状態から、観光客Dが観光スポット1をもう1回訪れ、さらに観光スポット4を訪れた場合を例に説明する。換言すると、図6(B)に示す状態から、観光客Dが観光スポット1を訪れたというトランザクションが発生した後、さらに、観光客Dが観光スポット1をもう1回訪れたというトランザクションと、観光スポット4を訪れたというトランザクションが発生した場合について説明する。なお、この状態において観光客Dは、観光スポット1を2回、観光スポット2および4をそれぞれ1回ずつ訪れており、観光客Aと似た行動となっている(観光客Aは、観光スポット1を2回、観光スポット4を1回訪れている)。 Next, as an example showing the change in the recommendation value due to the change in the behavior of the tourist, from the state shown in FIG. 16, the case where the tourist D visits the tourist spot 1 once more and then visits the tourist spot 4 is taken as an example. explain. In other words, from the state shown in FIG. 6B, after the transaction that tourist D visited tourist spot 1 occurred, the transaction that tourist D visited tourist spot 1 once more, and sightseeing. The case where the transaction of visiting the spot 4 occurs will be described. In this state, tourist D visits tourist spot 1 twice and tourist spots 2 and 4 once each, and the behavior is similar to that of tourist A (tourist A is tourist spot). I visited 1 twice and tourist spot 4 once).

この場合、図11のステップS402の処理により、図17に示すように有向二部グラフが編成される。具体的には、図16に示す有向二部グラフに対し、観光客Dの頂点と観光スポット4とを結ぶ辺(矢印)を加算する(図17参照)。また、観光客Dの辺が3つになり、訪問回数は、観光スポット1が2回、観光スポット2および観光スポット4がそれぞれ1回ずつであることから、観光客Dから観光スポット1方向の重みが0.50となり、観光スポット2および観光スポット4方向の重みがそれぞれ0.25となる。そのため、ステップS402の処理では、図16における観光客Dから観光スポット2への辺の太さを0.25の重みに対応した太さへと編成するとともに、観光スポット4への辺の太さを0.25の重みに対応した太さで加算する(図17参照)。 In this case, the process of step S402 in FIG. 11 organizes a directed bipartite graph as shown in FIG. Specifically, the side (arrow) connecting the apex of tourist D and the tourist spot 4 is added to the directed bipartite graph shown in FIG. 16 (see FIG. 17). In addition, since there are three sides of tourist D, and the number of visits is twice for tourist spot 1 and once for each of tourist spot 2 and tourist spot 4, the number of visits is from tourist D to tourist spot 1 direction. The weight is 0.50, and the weights in the tourist spot 2 and tourist spot 4 directions are 0.25, respectively. Therefore, in the process of step S402, the thickness of the side from the tourist D to the tourist spot 2 in FIG. 16 is organized into a thickness corresponding to the weight of 0.25, and the thickness of the side to the tourist spot 4 is formed. Is added with a thickness corresponding to a weight of 0.25 (see FIG. 17).

続いて、図11のステップS403の処理、すなわち図12のレコメンド値算出処理において、情報処理装置100は、図17に示すように、レコメンド対象である観光客Dに1.00の値を与え、それぞれの頂点における値1と値2を算出し、観光スポット1〜観光スポット4のレコメンド値を算出する(演算の詳細については省略する)。このように、観光客Dが観光スポット1をもう1回訪れたというトランザクションと、観光スポット4を訪れたというトランザクションが発生した場合、観光スポット1〜観光スポット4のレコメンド値が、図16に示す値から図17に示す値へと変化する。これにより、図16に示す状態では、観光スポット2のレコメンド値が最も高く、次に観光スポット1のレコメンド値が高かったが、図17に示す状態では、観光スポット1のレコメンド値が最も高く、次に観光スポット4のレコメンド値が高くなり、観光客Dへのレコメンド順位は、観光客Aの行動に近づくようになる。 Subsequently, in the process of step S403 of FIG. 11, that is, the recommendation value calculation process of FIG. 12, the information processing apparatus 100 gives a value of 1.00 to the tourist D who is the recommendation target, as shown in FIG. The value 1 and the value 2 at each vertex are calculated, and the recommended value of the tourist spot 1 to the tourist spot 4 is calculated (details of the calculation are omitted). In this way, when a transaction that tourist D visits tourist spot 1 again and a transaction that visits tourist spot 4 occur, the recommended values of tourist spots 1 to 4 are shown in FIG. The value changes from the value shown in FIG. As a result, in the state shown in FIG. 16, the recommended value of tourist spot 2 was the highest, followed by the recommended value of tourist spot 1, but in the state shown in FIG. 17, the recommended value of tourist spot 1 was the highest. Next, the recommendation value of the tourist spot 4 becomes higher, and the recommendation ranking for the tourist D becomes closer to the action of the tourist A.

このように、観光客Dが何らかの行動をとることで、レコメンドされる観光スポットの対象が追加されたり、順位が入れ替わったりして、レコメンド対象の観光客である観光客Dにとってより精度の高い観光スポットがレコメンドされるようになっていく。なお、レコメンド対象者である観光客Dの行動のみに限られず、他の観光客の行動によっても、観光客Dに対しての各観光スポットのレコメンド値が変化する。例えば、図17に示す状態において、観光客Cが観光スポット1を訪れた場合、観光客Dへの各観光スポットのレコメンド値は、図18に示すように変化する。 In this way, when tourist D takes some action, the target of the recommended tourist spot is added or the ranking is changed, and the tourist D who is the recommended tourist is more accurate sightseeing. Spots are being recommended. It should be noted that the recommendation value of each tourist spot with respect to the tourist D changes not only by the behavior of the tourist D who is the target of the recommendation but also by the behavior of other tourists. For example, in the state shown in FIG. 17, when tourist C visits tourist spot 1, the recommendation value of each tourist spot to tourist D changes as shown in FIG.

図17に示す状態において、観光客Cが観光スポット1を訪れたというトランザクションが発生すると、図11のステップS402の処理により、図18に示すように有向二部グラフが編成される。具体的には、図17に示す有向二部グラフに対し、観光客Cの頂点と観光スポット1とを結ぶ辺(矢印)を加算する(図18参照)。この場合、観光客Cの辺が3つになり、訪問回数はそれぞれ、観光スポット1が1回、観光スポット2が4回、観光スポット3が1回であることから、観光客Cから観光スポット1方向の重みが0.17となり、観光スポット2方向の重みが0.67となり、観光スポット3方向の重みがそれぞれ0.17となる。そのため、ステップS402の処理では、図18における観光客Cから観光スポット1への辺の太さを0.17の重みに対応した太さで加算するとともに、観光スポット2への辺の太さを0.67の重みに対応した太さへと編成し、観光スポット3への辺の太さを0.17の重みに対応した太さへと編成する(図18参照)。 In the state shown in FIG. 17, when a transaction that tourist C visits tourist spot 1 occurs, a directed bipartite graph is organized as shown in FIG. 18 by the process of step S402 in FIG. Specifically, the side (arrow) connecting the apex of tourist C and the tourist spot 1 is added to the directed bipartite graph shown in FIG. 17 (see FIG. 18). In this case, there are three sides of tourist C, and the number of visits is one for tourist spot 1, four for tourist spot 2, and one for tourist spot 3, so that tourist spot C is visited once. The weight in one direction is 0.17, the weight in two directions of tourist spots is 0.67, and the weight in three directions of tourist spots is 0.17. Therefore, in the process of step S402, the thickness of the side from the tourist C to the tourist spot 1 in FIG. 18 is added by the thickness corresponding to the weight of 0.17, and the thickness of the side to the tourist spot 2 is added. The thickness corresponding to the weight of 0.67 is knitted, and the thickness of the side to the tourist spot 3 is knitted to the thickness corresponding to the weight of 0.17 (see FIG. 18).

続いて、図11のステップS403の処理、すなわち図12のレコメンド値算出処理において、情報処理装置100は、図18に示すように、レコメンド対象である観光客Dに1.00の値を与え、それぞれの頂点における値1と値2を算出し、観光スポット1〜観光スポット4のレコメンド値を算出する(演算の詳細については省略する)。ここで、観光客Cが新たに観光スポット1を訪れたことから、観光スポット1から観光客A方向の重みが0.67(観光客Aは2回観光スポット1を訪問)となり、観光スポット1から観光客C方向の重みが0.33(観光客Cは2回観光スポット1を訪問)となる。そのため、観光客Dは、観光客Cの行動にも影響を受けることとなる。したがって、図17に示す状態では、観光スポット4のレコメンド値は観光スポット2のレコメンド値よりも大きかったが、図18に示す状態では、観光スポット2のレコメンド値の方が観光スポット4のレコメンド値よりも大きくなり、レコメンド値の順位として、観光スポット2が観光スポット4と入れ替わることなる。 Subsequently, in the process of step S403 of FIG. 11, that is, the recommendation value calculation process of FIG. 12, the information processing apparatus 100 gives a value of 1.00 to the tourist D who is the recommendation target, as shown in FIG. The value 1 and the value 2 at each vertex are calculated, and the recommended value of the tourist spot 1 to the tourist spot 4 is calculated (details of the calculation are omitted). Here, since tourist C newly visited tourist spot 1, the weight from tourist spot 1 to tourist A is 0.67 (tourist A visits tourist spot 1 twice), and tourist spot 1 The weight in the direction of tourist C is 0.33 (tourist C visits tourist spot 1 twice). Therefore, tourist D is also influenced by the behavior of tourist C. Therefore, in the state shown in FIG. 17, the recommended value of the tourist spot 4 was larger than the recommended value of the tourist spot 2, but in the state shown in FIG. 18, the recommended value of the tourist spot 2 is the recommended value of the tourist spot 4. As the ranking of the recommendation value, the tourist spot 2 will be replaced with the tourist spot 4.

このように、レコメンド対象者である観光客Dの行動のみに限られず、他の観光客の行動によっても、観光客Dに対しての各観光スポットのレコメンド値が変化する。したがって、レコメンド対象者およびその他の者の行動を示すトランザクションデータを取り込むことで、好適なデータ分析が可能となり、より適格なレコメンドを行うことができる。また、新たに発生したトランザクションデータを追加(加算)することでレコメンドに用いる有向二部グラフを最新化することができ、処理負担を軽減することができる。また、例えば「1年前の本日のトランザクションデータ」を当該有向二部グラフから削除(減算)することで過去分を容易に対象外とすることができる。さらに、それぞれの行動履歴を示すトランザクションデータと重み付けとの関係からレコメンド結果が導き出されているため、レコメンド結果に対する論理的な説明が可能となる。 As described above, the recommendation value of each tourist spot with respect to the tourist D changes not only by the behavior of the tourist D who is the recommendation target but also by the behavior of other tourists. Therefore, by incorporating transaction data indicating the behavior of the person to be recommended and other persons, suitable data analysis becomes possible, and more qualified recommendations can be made. In addition, by adding (adding) newly generated transaction data, the directed bipartite graph used for recommendation can be updated, and the processing load can be reduced. Further, for example, by deleting (subtracting) "today's transaction data one year ago" from the directed bipartite graph, the past data can be easily excluded. Furthermore, since the recommendation result is derived from the relationship between the transaction data indicating each action history and the weighting, it is possible to logically explain the recommendation result.

(変形例)
なお、この発明は、上記実施の形態に限定されず、様々な変形及び応用が可能である。例えば、情報処理装置100では、上記実施の形態で示した全ての技術的特徴を備えるものでなくてもよく、従来技術における少なくとも1つの課題を解決できるように、上記実施の形態で説明した一部の構成を備えたものであってもよい。また、下記の変形例それぞれについて、少なくとも一部を組み合わせてもよい。
(Modification example)
The present invention is not limited to the above embodiment, and various modifications and applications are possible. For example, the information processing apparatus 100 does not have to have all the technical features shown in the above-described embodiment, and has been described in the above-described embodiment so as to solve at least one problem in the prior art. It may have a structure of parts. In addition, at least a part of each of the following modifications may be combined.

上記実施の形態では、観光客と観光先(観光スポット)との間で生じた事象をトランザクションデータとしてハッシュチェーンで連結されたデータブロックに格納し、当該トランザクションデータを用いてレコメンドする例を示しているが、これは一例である。トランザクションとして表現可能なものであれば、観光客と観光先(観光スポット)との間で生じた事象に限られない。例えば、顧客と店舗との間で発生した事象(来店回数や購入金額など)をトランザクションデータとしてハッシュチェーンで連結されたデータブロックに格納し、当該トランザクションデータを用いて顧客に対しおすすめの商品や店舗をレコメンドするようにしてもよい。 In the above embodiment, an example is shown in which an event occurring between a tourist and a tourist destination (sightseeing spot) is stored as transaction data in a data block connected by a hash chain, and the transaction data is used for recommendation. However, this is just an example. As long as it can be expressed as a transaction, it is not limited to an event that occurs between a tourist and a tourist destination (sightseeing spot). For example, events that occur between a customer and a store (number of visits, purchase amount, etc.) are stored as transaction data in a data block linked by a hash chain, and the transaction data is used to recommend products and stores to the customer. May be recommended.

また、上記実施の形態では、図8のステップS301の処理において、ユーザの入力操作により対象の期間(開始時間と終了時間)が指定されているか否かを判定し、ユーザの指定した期間内のトランザクションデータに基づいて観光スポットをレコメンドする例を示したが、これは一例である。ステップS301では、対象の期間が指定されているか否かではなく、例えば、「天気が悪い日」や「平均気温が一定以上となった日のみ」、「昼の時間帯」といった条件が指定されているか否かを判定するようにしてもよい。これによれば、指定期間のみならず、一定の条件下におけるレコメンドを好適に行うことができる。また、例えば、「天気が悪く、平均気温が一定以下となった日の昼の時間帯」といった条件を指定してレコメンド結果(その条件によって出力されるおすすめの観光スポット)を得た後、全てのトランザクションデータに基づくレコメンド結果と比較して、当該条件下における傾向を分析してもよい。 Further, in the above embodiment, in the process of step S301 of FIG. 8, it is determined whether or not the target period (start time and end time) is specified by the input operation of the user, and within the period specified by the user. An example of recommending a tourist spot based on transaction data is shown, which is an example. In step S301, conditions such as "bad weather days", "only days when the average temperature exceeds a certain level", and "daytime hours" are specified, not whether or not the target period is specified. It may be determined whether or not it is. According to this, it is possible to preferably make recommendations not only for a designated period but also under certain conditions. Also, for example, after specifying conditions such as "daytime hours on days when the weather is bad and the average temperature falls below a certain level" and obtaining recommendation results (recommended tourist spots output according to those conditions), all The tendency under the conditions may be analyzed by comparing with the recommendation result based on the transaction data of.

また、上記実施の形態では、観光客Dが観光スポット2を訪れたというトランザクションが追加された場合におけるレコメンド処理について説明したが、例えば、図10に示す状態(何ら新たなトランザクションが発生していない場合)においても図11に示すレコメンド処理が実行されてもよい。この場合には、ステップS401およびステップS402の処理を実行せずに、ステップS403の処理において、レコメンド対象者の観光客に値1.00を与え、図12に示すレコメンド値算出処理を実行すればよい。 Further, in the above embodiment, the recommendation process when the transaction that the tourist D visits the tourist spot 2 is added has been described. However, for example, the state shown in FIG. 10 (no new transaction has occurred). In the case), the recommendation process shown in FIG. 11 may be executed. In this case, instead of executing the processes of steps S401 and S402, in the process of step S403, a value of 1.00 is given to the tourists of the recommendation target, and the recommendation value calculation process shown in FIG. 12 is executed. Good.

また、上記実施の形態では、レコメンド対象者である観光客について、図12に示すレコメンド値算出処理のステップS501にて1.00の値を与える例を示したが、この他にも、例えば、図19に示すように、「性別」などの属性について値を与えることで、属性毎に傾向をさらに分析することができる。例えば、「男性が好む観光スポットはどこか」という傾向を調べる場合、図19に示すように、「男性」の属性に1.00を与える。なお、当該属性(属性情報)については、観光客Aおよび観光客Dの種別のハッシュチェーンにおけるインデックス値が「0」のデータブロックに「男性」の属性が登録されているものとする。また、観光スポット2および観光スポット3の種別のハッシュチェーンにおけるインデックス値が「0」のデータブロックに「グルメ」の属性の観光スポットが、観光スポット1および観光スポット4の種別のハッシュチェーンにおけるインデックス値が「0」のデータブロックに「文化施設」の属性の観光スポットが、それぞれ属性情報として登録されているものとする。また、図8に示すグラフ生成処理において、図19に示すように、当該属性を含む有向二部グラフが生成されているものとする。なお、当該属性情報は、インデックス値が「0」のデータブロックに限られず、全てのインデックス値のデータブロックに登録されていてもよい。 Further, in the above embodiment, an example in which a value of 1.00 is given to a tourist who is a recommendation target person in step S501 of the recommendation value calculation process shown in FIG. 12 is shown, but in addition to this, for example, As shown in FIG. 19, by giving a value for an attribute such as "gender", the tendency can be further analyzed for each attribute. For example, when examining the tendency of "where is the tourist spot that men like", 1.00 is given to the attribute of "male" as shown in FIG. Regarding the attribute (attribute information), it is assumed that the attribute of "male" is registered in the data block whose index value is "0" in the hash chain of the tourist A and tourist D types. Further, in the data block where the index value in the hash chain of the tourist spot 2 and tourist spot 3 types is "0", the tourist spot with the attribute of "gourmet" is the index value in the hash chain of the tourist spot 1 and tourist spot 4 types. It is assumed that tourist spots with the attribute of "cultural facility" are registered as attribute information in the data block of "0". Further, in the graph generation process shown in FIG. 8, it is assumed that a directed bipartite graph including the attribute is generated as shown in FIG. The attribute information is not limited to the data block whose index value is "0", and may be registered in the data block of all index values.

そして、上記実施の形態と同様に(図12に示すレコメンド値算出処理と同様に)それぞれの値に重みを乗じて、図19に示す値aと値bとを算出する。具体的には、男性の属性に結ばれた観光客は観光客Aと観光客Dの2人であることから、0.50ずつ分配する。そして、観光客Aと結ばれた観光スポットは観光スポット1と観光スポット4であり、観光スポット1側の重みは0.67である。そのため、観光客Aに分配された0.50に重み0.67を乗じて0.335を得る。一方、観光スポット4側の重みは0.33であることから、当該0.5に重み0.33を乗じて0.165を得る。次に、観光客Dと結ばれた観光スポットは観光スポット1、観光スポット2、および観光スポット4であり、観光スポット1側の重みは0.5である。そのため、観光客Dに分配された0.50に重み0.5を乗じて0.25を得る。また、観光スポット2および観光スポット4の重みはそれぞれ0.25であることから、当該0.5に重み0.25を乗じて0.125をそれぞれ得る。なお、観光スポット2については観光客Aが訪れていないことから、観光スポット2の値aを0.13とする。 Then, in the same manner as in the above embodiment (similar to the recommendation value calculation process shown in FIG. 12), each value is multiplied by a weight to calculate the value a and the value b shown in FIG. Specifically, since there are two tourists, tourist A and tourist D, who are tied to the male attribute, 0.50 each is distributed. The tourist spots connected to the tourist A are the tourist spot 1 and the tourist spot 4, and the weight on the tourist spot 1 side is 0.67. Therefore, 0.50 distributed to tourist A is multiplied by a weight of 0.67 to obtain 0.335. On the other hand, since the weight on the tourist spot 4 side is 0.33, the weight 0.5 is multiplied by the weight 0.33 to obtain 0.165. Next, the tourist spots connected to the tourist D are the tourist spot 1, the tourist spot 2, and the tourist spot 4, and the weight on the tourist spot 1 side is 0.5. Therefore, 0.50 distributed to tourist D is multiplied by a weight of 0.5 to obtain 0.25. Further, since the weights of the tourist spot 2 and the tourist spot 4 are each 0.25, the weight 0.5 is multiplied by the weight 0.25 to obtain 0.125, respectively. Since tourist A has not visited tourist spot 2, the value a of tourist spot 2 is set to 0.13.

そして、観光客Aから観光スポット1への算出値0.335と、観光客Dから観光スポット1への算出値0.25を加算し、観光スポット1の値aとして0.59を得る。また、観光客Aから観光スポット4への算出値0.165と、観光客Dから観光スポット4への算出値0.125を加算し、観光スポット4の値aとして0.29を得る。続いて、観光スポット1と観光スポット4はそれぞれ「文化施設」の属性であることから、それぞれの値aを加算し、「文化施設」の属性の値bとして0.88を得る。また、観光スポット2は「グルメ」の属性であることから、値aをそのまま値bとして(今回観光スポット3には値aは算出されていないため)、0.13を得る。なお、当該値bは上記実施の形態におけるレコメンド値と同様である。したがって、「文化施設」の属性の値bの方が「グルメ」の属性の値bよりも高いため、「男性」は「グルメ」よりも「文化施設」を好む傾向にある、ということがわかる。これによれば、例えば、観光客Dが「男性」である場合には「文化施設」の属性に属する観光スポットを全ておすすめするなど、上記実施の形態におけるレコメンド値に基づく観光スポットに限らず、属性ベースのレコメンド(属性情報に基づくレコメンド)を合わせて行うこともできる(すなわち、上記実施の形態におけるレコメンド値に基づく観光スポットと、属性情報に基づいてレコメンドされる観光スポットとの両方をそれぞれユーザにとって識別可能に表示する)。 Then, the calculated value 0.335 from the tourist A to the tourist spot 1 and the calculated value 0.25 from the tourist D to the tourist spot 1 are added to obtain 0.59 as the value a of the tourist spot 1. Further, the calculated value 0.165 from the tourist A to the tourist spot 4 and the calculated value 0.125 from the tourist D to the tourist spot 4 are added to obtain 0.29 as the value a of the tourist spot 4. Subsequently, since the tourist spot 1 and the tourist spot 4 are each an attribute of the "cultural facility", the respective values a are added to obtain 0.88 as the value b of the attribute of the "cultural facility". Further, since the tourist spot 2 is an attribute of "gourmet", the value a is used as it is as the value b (since the value a is not calculated for the tourist spot 3 this time), 0.13 is obtained. The value b is the same as the recommended value in the above embodiment. Therefore, since the attribute value b of "cultural facility" is higher than the attribute value b of "gourmet", it can be seen that "male" tends to prefer "cultural facility" to "gourmet". .. According to this, for example, when tourist D is a "male", all tourist spots belonging to the attribute of "cultural facility" are recommended, and the tourist spots are not limited to the tourist spots based on the recommendation value in the above embodiment. It is also possible to perform attribute-based recommendations (recommendations based on attribute information) together (that is, both the tourist spots based on the recommendation value in the above embodiment and the tourist spots recommended based on the attribute information are used by the user. Display identifiable for).

このように、各種別のハッシュチェーンについて、属性の情報を持たせ、それを含めた有向二部グラフを生成することで、属性レベルの傾向を分析することができる。なお、この例では、理解を容易にするため「性別」の属性のみを用いたが、例えば、「性別」と「国籍(日本人と外国人)」など、属性は複数用いられてもよい。これによれば、「日本人の男性が好む観光スポットはどこか」や、「外国人の女性が好む観光スポットはどこか」など、より細かい属性毎の傾向を分析することができる。また、この例では、「性別」の属性から観光スポットの属性の方向(上流から下流ともいう)へ値を算出していく例を示したが、逆方向で同様の算出を行うことにより、例えば、「文化施設を好む観光客」を抽出することが可能となる。そして、当該抽出した観光客が訪れた観光スポットを調べ(行動履歴を調べ)、見込み客となる場合(例えばまだ訪問していない観光客である場合)には案内メールを送信するといったことも実現可能となる。 In this way, it is possible to analyze the tendency at the attribute level by having attribute information for each type of hash chain and generating a directed bipartite graph including the information. In this example, only the "gender" attribute is used for ease of understanding, but a plurality of attributes such as "gender" and "nationality (Japanese and foreigners)" may be used. According to this, it is possible to analyze trends for each attribute, such as "where are the tourist spots preferred by Japanese men" and "where are the tourist spots preferred by foreign women". Further, in this example, the value is calculated from the attribute of "gender" in the direction of the attribute of the tourist spot (also referred to as upstream to downstream), but by performing the same calculation in the opposite direction, for example. , "Tourists who like cultural facilities" can be extracted. Then, it is also possible to check the tourist spots visited by the extracted tourists (check the behavior history) and send a guidance email when they become prospective tourists (for example, tourists who have not visited yet). It will be possible.

また、属性情報を持つハッシュチェーンが十分に存在すれば、対象となる観光客とよく似た行動をしている観光客の属性を用いて、当該対象となる観光客の属性を推計することができる。例えば、図20に示すように、観光客Aが男性であり、観光客Bおよび観光客Cが女性である場合(それぞれの種別のハッシュチェーンのインデックス値「0」のデータブロックにそれぞれの属性情報が登録されている場合)、値2を用いることで、観光客Dの属性を推計することができる。なお、図20に示す値2は、図17に示す値2と同様である。 In addition, if there is a sufficient hash chain with attribute information, it is possible to estimate the attributes of the target tourist using the attributes of the tourist who behaves much like the target tourist. it can. For example, as shown in FIG. 20, when tourist A is a male and tourist B and tourist C are female (each attribute information is in the data block of the index value "0" of each type of hash chain. (When is registered), the attribute of tourist D can be estimated by using the value 2. The value 2 shown in FIG. 20 is the same as the value 2 shown in FIG.

具体的には、観光客Dに値1.00を与えた場合に算出される値2は、観光客Aの値2が0.75で最も大きくなる(すなわち、観光客Dに最も似た行動をしている観光客は観光客Aである)。そのため、観光客Aの属性の男性の属性の値Xは0.75となる。一方、観光客Bの値2は0.05、観光客Cの値2は0.20となり、これらは女性の属性に属しているため、女性の属性の値Xは、これらを加算した0.25となる。これにより、観光客Dが男性である確率は75%(女性である確率は25%)と推計することができる。 Specifically, the value 2 calculated when the value 1.00 is given to the tourist D is the largest when the value 2 of the tourist A is 0.75 (that is, the behavior most similar to the tourist D). The tourist who is doing this is Tourist A). Therefore, the value X of the male attribute of the tourist A is 0.75. On the other hand, the value 2 of tourist B is 0.05 and the value 2 of tourist C is 0.20. Since these belong to the female attribute, the value X of the female attribute is 0. It becomes 25. From this, it can be estimated that the probability that tourist D is male (the probability that tourist D is female is 25%).

このように、属性情報を持つハッシュチェーンが十分に存在すれば、対象となる観光客とよく似た行動をしている観光客の属性を用いて、当該対象となる観光客の属性を推計することができる。ただし、属性情報を持つハッシュチェーンが十分に存在しない場合などは、この推計の精度が落ちてしまう。このように推計の精度が低くなる場合には、属性情報に基づくレコメンドの精度も低くなる。そのため、このような場合、属性情報をプログラムで管理しても有効活用することが難しい。そこで、属性情報の有効性を評価し、評価スコアが「0」に近く、予め設定した閾値を下回った場合には、当該属性情報に基づくレコメンドは有効ではないものとして、上記実施の形態におけるレコメンド値に基づく観光スポットのレコメンドのみ表示し、属性情報に基づいてレコメンドされる観光スポットについては表示しないようにしてもよい。以下、評価スコアの算出について説明する。 In this way, if there is a sufficient hash chain with attribute information, the attributes of the target tourist can be estimated using the attributes of the tourist who behaves much like the target tourist. be able to. However, if there are not enough hash chains with attribute information, the accuracy of this estimation will drop. When the accuracy of the estimation is lowered in this way, the accuracy of the recommendation based on the attribute information is also lowered. Therefore, in such a case, it is difficult to effectively utilize the attribute information even if it is managed by a program. Therefore, when the effectiveness of the attribute information is evaluated and the evaluation score is close to "0" and falls below a preset threshold value, it is considered that the recommendation based on the attribute information is not effective, and the recommendation in the above embodiment is performed. It is possible to display only the recommendations of tourist spots based on the value, and not to display the tourist spots recommended based on the attribute information. The calculation of the evaluation score will be described below.

なお、以下の例では、ハッシュチェーンに登録された観光客の性別の比率を男性:女性=1:1(男性2人、女性2人)とする。例えば、調べたい観光客の属性が「男性」で、その観光客に近い他の観光客の性別が「男性の確率=0.75」、「女性の確率=0.25」であった場合、男性であることの期待値は「1/(1+1)=0.50」であるから、0.75−0.50=0.25を評価スコアとする。その一方で、調べたい観光客の属性が「女性」であった場合、0.25−0.50=−0.25の評価スコアとなる。図20に示す状態において、観光客Dが男性の属性である場合、観光客Dの評価スコアは0.25となる。このような評価スコアを観光客Dだけでなく、観光客A〜Cについても算出する。 In the following example, the gender ratio of tourists registered in the hash chain is male: female = 1: 1 (2 males, 2 females). For example, if the attribute of the tourist you want to check is "male" and the genders of other tourists close to that tourist are "male probability = 0.75" and "female probability = 0.25". Since the expected value of being a man is "1 / (1 + 1) = 0.50", 0.75-0.50 = 0.25 is set as the evaluation score. On the other hand, if the attribute of the tourist to be examined is "female", the evaluation score is 0.25-0.50 = -0.25. In the state shown in FIG. 20, when the tourist D has a male attribute, the evaluation score of the tourist D is 0.25. Such an evaluation score is calculated not only for tourist D but also for tourists A to C.

図20に示す状態において、観光客Aに最も近いのは、観光客Dであるため、観光客Aに値1.00を与えた場合、観光客Dの値2は1.00となる。観光客Aも観光客Dも男性の属性であることから、観光客Aの評価スコアは1.00−0.50=0.50となる。また、観光客Bに最も近いのは観光客Cであるため(観光スポット2から観光客Cへの重みは0.8で、観光客Dへの重みは0.2)、観光客Bに値1.00を与えた場合、観光客Cの値2は0.8となる。観光客Bも観光客Cも女性の属性であることから、観光客Bの評価スコアは0.80−0.50=0.30となる。また、観光客Cに最も近いのは観光客Bおよび観光客Dであるため(観光客Cから観光スポット2と観光スポット3につながっているが、観光スポット3がつながっているのは観光客Cのみのため除外する。そして観光スポット2のつながっている先から観光客Cを除外する。この処理を行った後の観光スポット2から観光客Bへの重みは0.5で、観光客Dへの重みは0.5)、観光客Cに値1.00を与えた場合、観光客Bの値2および観光客Dの値2はそれぞれ0.5となる。観光客Cも観光客Bも女性の属性であることから、観光客B側を基準とした観光客Cの評価スコアは0.50−0.50=0.00となる。また、観光客Cは女性の属性であり、観光客Dは男性の属性であることから、観光客D側を基準とした観光客Cの評価スコアは、0.50−0.50=0.00となる。 In the state shown in FIG. 20, since the tourist D is the closest to the tourist A, when the value 1.00 is given to the tourist A, the value 2 of the tourist D becomes 1.00. Since both tourist A and tourist D are male attributes, the evaluation score of tourist A is 1.00-0.50 = 0.50. In addition, since tourist C is the closest to tourist B (the weight from tourist spot 2 to tourist C is 0.8, and the weight to tourist D is 0.2), the value for tourist B is high. When 1.00 is given, the value 2 of tourist C becomes 0.8. Since both tourist B and tourist C are female attributes, the evaluation score of tourist B is 0.80-0.50 = 0.30. Also, since tourist B and tourist D are the closest to tourist C (tourist C connects tourist spot 2 and tourist spot 3, but tourist spot 3 is connected to tourist C). Exclude because it is only. And exclude tourist C from the destination where tourist spot 2 is connected. After performing this process, the weight from tourist spot 2 to tourist B is 0.5, and to tourist D. The weight of is 0.5), and when the value 1.00 is given to the tourist C, the value 2 of the tourist B and the value 2 of the tourist D are 0.5, respectively. Since both tourist C and tourist B are female attributes, the evaluation score of tourist C based on the tourist B side is 0.50-0.50 = 0.00. Further, since tourist C has a female attribute and tourist D has a male attribute, the evaluation score of tourist C based on the tourist D side is 0.50-0.50 = 0. It becomes 00.

そして、観光客A〜観光客Dのそれぞれの評価スコアの合計は、0.50+0.30+0.00+0.25=1.05となり、その平均値は、0.26となり、それを属性の評価スコアとする(なお、評価スコアの最大値は0.50である)。ここで、予め定められている閾値が0.25である場合、0.26>閾値となるため、「性別」の属性に基づくレコメンドは有効であると判断すればよい。 The total evaluation score of each of tourist A to tourist D is 0.50 + 0.30 + 0.00 + 0.25 = 1.05, and the average value is 0.26, which is used as the attribute evaluation score. (Note that the maximum evaluation score is 0.50). Here, when the predetermined threshold value is 0.25, 0.26> the threshold value, so it may be determined that the recommendation based on the “gender” attribute is effective.

その一方で、図21に示す状態では、日本人と外国人の比率は、3:1(日本人3人、外国人1人)である。そのため日本人であることの期待値は0.75、外国人であることの期待値は0.25となる。観光客Dに値1.00を与えた場合、観光客Aの値2は0.75、観光客Cの値2が0.20、いずれも日本人であることから、観光客Dの評価スコアは、0.75+0.20−0.75=0.20となる。同様に、観光客Aに値1.00を与えた場合、観光客Aの評価スコアは1.00−0.75=0.25となる。また、観光客Bに最も近いのは観光客Cであるため、観光客Bに値1.00を与えた場合、観光客Cの値2は0.80となり、観光客Dの値2は0.20となる。観光客Bは「外国人」の属性であり、観光客Cと観光客Dは「日本人」の属性であることから、観光客Bの評価スコアは、0.20+0.80−0.25=0.75となる。また、観光客Cに最も近いのは観光客Bおよび観光客Dであるため、観光客Cに値1.00を与えた場合、観光客Bの値2および観光客Dの値2はそれぞれ0.5となる。観光客Bは「外国人」の属性であり、観光客Cと観光客Dは「日本人」の属性であることから、観光客Cの評価スコアは、0.50−0.75=−0.25となる。 On the other hand, in the state shown in FIG. 21, the ratio of Japanese to foreigners is 3: 1 (3 Japanese and 1 foreigner). Therefore, the expected value of being Japanese is 0.75, and the expected value of being a foreigner is 0.25. When a value of 1.00 is given to tourist D, the value 2 of tourist A is 0.75 and the value 2 of tourist C is 0.20. Since both are Japanese, the evaluation score of tourist D Is 0.75 + 0.20-0.75 = 0.20. Similarly, when the value 1.00 is given to the tourist A, the evaluation score of the tourist A is 1.00-0.75 = 0.25. Further, since tourist C is the closest to tourist B, when the value 1.00 is given to tourist B, the value 2 of tourist C becomes 0.80 and the value 2 of tourist D is 0. It becomes .20. Since tourist B has the attribute of "foreigner" and tourist C and tourist D have the attribute of "Japanese", the evaluation score of tourist B is 0.20 + 0.80-0.25 = It becomes 0.75. Further, since tourist B and tourist D are closest to tourist C, when the value 1.00 is given to tourist C, the value 2 of tourist B and the value 2 of tourist D are 0, respectively. It becomes .5. Since tourist B has the attribute of "foreigner" and tourist C and tourist D have the attribute of "Japanese", the evaluation score of tourist C is 0.50-0.75 = -0. It becomes .25.

観光客A〜観光客Dのそれぞれの評価スコアの合計は、0.20+0.25−0.75−0.25=−0.55となり、その平均値(属性の評価スコア)は、−0.14となる。ここで、予め定められている閾値が0.20である場合、−0.14<閾値となるため、「国籍」の属性に基づくレコメンドは無効であると判断すればよい。このような場合、属性情報に基づいてレコメンドされる観光スポットについては表示しないようにすればよい。なお、閾値については、属性毎に任意に設定可能であればよい。例えば、ユーザの年齢や性別、国籍の他、トランザクションの種類に応じて任意の値を設定可能であればよい(具体的には、観光客と観光スポットとで発生したトランザクションと、顧客と店舗とで発生したトランザクションとでは異なる閾値にするなど)。 The total of the evaluation scores of Tourist A to Tourist D is 0.20 + 0.25-0.75-0.25 = -0.55, and the average value (attribute evaluation score) is -0. It becomes 14. Here, when the predetermined threshold value is 0.20, -0.14 <threshold value, so it may be determined that the recommendation based on the attribute of "nationality" is invalid. In such a case, the tourist spots recommended based on the attribute information may not be displayed. The threshold value may be arbitrarily set for each attribute. For example, it suffices if an arbitrary value can be set according to the age, gender, nationality, and the type of transaction of the user (specifically, transactions that occur between tourists and tourist spots, and customers and stores. Set a different threshold than the transaction that occurred in (for example).

また、上記実施の形態におけるレコメンド処理に加え、例えば、トランザクションデータの順序性に着目することで、さらなる分析が可能となる。具体的に、観光スポット2を訪れた観光客は、次に観光スポット1を訪れる可能性が高いといったことや、観光スポット1から観光スポット2といった順に訪問する観光客は少ないといったこと、さらに、観光スポット1を訪れた後は観光スポットdが多い、などといった分析が可能となる。 Further, in addition to the recommendation processing in the above embodiment, for example, by paying attention to the order of transaction data, further analysis becomes possible. Specifically, tourists who visit tourist spot 2 are more likely to visit tourist spot 1 next, and few tourists visit tourist spot 1 to tourist spot 2 in that order. After visiting Spot 1, it is possible to analyze that there are many tourist spots d.

例えば、図22に示すように、観光スポット2に着目し、観光スポット2と結ばれた観光客のトランザクションデータ(観光客B〜観光客D)を抽出する。これにより、抽出した観光客のハッシュチェーンに連なる一連のトランザクションデータに「観光スポット2」が含まれ、その前後のトランザクションデータが何であるか、およびその時間間隔がいかほどであるか、を分析することが可能となる。なお、図21に示す例では、説明を簡略化するため、観光客Cの種別のハッシュチェーンに登録されたトランザクションデータを、図6に示す順とは異なるものとしており(図7とは異なるものとしており)、観光客Cは、観光スポット2、観光スポット3、観光スポット2、観光スポット1の順で訪問したものとしている。 For example, as shown in FIG. 22, paying attention to the tourist spot 2, transaction data (tourist B to tourist D) of tourists connected to the tourist spot 2 are extracted. In this way, "sightseeing spot 2" is included in the series of transaction data linked to the extracted tourist hash chain, and what is the transaction data before and after that, and how long the time interval is, is analyzed. Is possible. In the example shown in FIG. 21, in order to simplify the explanation, the transaction data registered in the hash chain of the tourist C type is different from the order shown in FIG. 6 (different from FIG. 7). It is assumed that Tourist C visited the tourist spot 2, the tourist spot 3, the tourist spot 2, and the tourist spot 1 in this order.

そして、抽出したトランザクションデータについて、着目した「観光スポット2」を基準として、その前後のトランザクションデータを、図23に示すように配列する。これにより、着目したトランザクションデータの前後のトランザクションが何であるか、すなわち頻度が高いトランザクションデータの種類を特定することができる。図示する例では、観光スポット2の箱の上に観光スポット1が配列された数が多いことから、着目した「観光スポット2」の訪問客は、次に「観光スポット1」を訪れる可能性が高いことがわかる。 Then, with respect to the extracted transaction data, the transaction data before and after the "sightseeing spot 2" of interest is arranged as shown in FIG. 23. This makes it possible to specify what the transactions before and after the transaction data of interest are, that is, the type of transaction data with high frequency. In the illustrated example, since the number of tourist spots 1 arranged on the box of tourist spot 2 is large, the visitor of "sightseeing spot 2" who paid attention may visit "sightseeing spot 1" next. It turns out to be expensive.

なお、例えば、観光スポット2を訪れた後、一定期間(任意に設定可能な期間であればよい)経過した場合には、前後のトランザクションを配列しないようにしてもよい。例えば、図23に示す例において、観光客Cの種別のハッシュチェーンに連結されていた観光スポット1を訪れたことを示すトランザクションデータが、観光スポット2を訪れてから1年以上経過している場合には、当該観光スポット1を訪れたことを示す内容のトランザクションデータ(図示する例では観光スポット1の箱)を配列しないようにしてもよい。この場合、一定期間経過しているか否かを判定し、経過していない場合にのみ配列するようにすればよい。 Note that, for example, when a certain period of time (which may be an arbitrarily set period) elapses after visiting the tourist spot 2, the transactions before and after may not be arranged. For example, in the example shown in FIG. 23, when the transaction data indicating that the tourist spot 1 connected to the hash chain of the tourist C type has been visited has passed one year or more since the visit to the tourist spot 2. The transaction data (the box of the tourist spot 1 in the illustrated example) indicating that the tourist spot 1 has been visited may not be arranged. In this case, it is sufficient to determine whether or not a certain period of time has passed, and to arrange the array only when it has not passed.

また、これを応用し、「観光スポット2」を訪れた観光客の平均滞在時間を求め、観光スポット2に訪問した観光客に対して、平均滞在時間が経過した時点で「観光スポット1に訪問してはいかがですか」とプッシュ通知によりレコメンドするといった活用が可能になる。その際、時間を参照して、例えば、観光スポット1の営業時間外など「訪問データがない時間帯」であった場合には、観光スポット1に代えて観光スポット4をレコメンドするようにしてもよい。なお、平均滞在時間は、例えば、「観光スポット2」を訪れたそれぞれの観光客のハッシュチェーンについて、「観光スポット2」が登録されたデータブロックと、その次に訪れた観光スポットが登録されたデータブロックとのそれぞれのタイムスタンプの差の平均値により算出すればよい。 In addition, by applying this, the average staying time of tourists who visited "Sightseeing Spot 2" is calculated, and for tourists who visited Tourist Spot 2, when the average staying time has elapsed, "Visit to Tourist Spot 1" "Why don't you do it?" It will be possible to make recommendations such as push notifications. At that time, referring to the time, for example, if it is a "time zone when there is no visit data" such as outside the business hours of the tourist spot 1, the tourist spot 4 may be recommended instead of the tourist spot 1. Good. For the average staying time, for example, for each tourist's hash chain that visited "Sightseeing Spot 2", a data block in which "Sightseeing Spot 2" was registered and a tourist spot visited next were registered. It may be calculated by the average value of the difference between each time stamp and the data block.

また、これを応用し、例えば、「観光スポットxの情報を閲覧」、「観光スポットxの旅行商品yの情報を閲覧」、「旅行商品yの申し込み(購入)」といったトランザクションデータの順序性を分析し、かつそれらのトランザクションデータの時間間隔に基づく分析により、例えば、「観光スポットxの旅行商品yの情報を閲覧」といったトランザクションの発生から10分以内に申し込みが行われない場合には申し込みの確率が非常に低くなるといった分析を行い、レコメンドの優先順位を入れ替えるなどといった活用が可能となる(「観光スポットxの旅行商品yの情報を閲覧」のトランザクションが発生した場合には、「旅行商品yの申し込み(購入)」といった特定のレコメンドを優先させるなど)。 Further, by applying this, for example, the order of transaction data such as "view information of tourist spot x", "view information of travel product y of tourist spot x", and "application (purchase) of travel product y" can be obtained. If the application is not made within 10 minutes from the occurrence of the transaction such as "viewing the information of the travel product y of the tourist spot x" by the analysis and the analysis based on the time interval of the transaction data, the application is made. It is possible to analyze that the probability is very low and use it such as changing the priority of recommendations (when the transaction of "view information of travel product y of tourist spot x" occurs, "travel product" Prioritize specific recommendations such as "application (purchase) for y").

なお、上述の機能を、OS(Operating System)とアプリケーションとの分担、またはOSとアプリケーションとの協同により実現する場合等には、OS以外の部分のみを媒体に格納してもよい。 In addition, when the above-mentioned function is realized by sharing the OS (Operating System) and the application, or by cooperating with the OS and the application, only the part other than the OS may be stored in the medium.

また、搬送波にプログラムを重畳し、通信ネットワークを介して配信することも可能である。例えば、通信ネットワーク上の掲示板(BBS、Bulletin Board System)に当該プログラムを掲示し、ネットワークを介して当該プログラムを配信してもよい。そして、これらのプログラムを起動し、オペレーティングシステムの制御下で、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行できるように構成してもよい。 It is also possible to superimpose a program on a carrier wave and distribute it via a communication network. For example, the program may be posted on a bulletin board system (BBS, Bulletin Board System) on a communication network, and the program may be distributed via the network. Then, by starting these programs and executing them in the same manner as other application programs under the control of the operating system, the above-mentioned processing may be executed.

1 情報処理システム、100、100A〜C 情報処理装置、100D 観光客A〜Dの端末、110 記憶部、111 各種別のハッシュチェーン、120 制御部、121 初期登録部、122 同期処理部、123 データブロック登録部、124 データ取得部、125 グラフ生成部、126 レコメンド処理部、130 入出力部、140 通信部、210 ネットワーク 1 Information processing system, 100, 100A to C information processing device, 100D tourist A to D terminals, 110 storage unit, 111 hash chains of each type, 120 control unit, 121 initial registration unit, 122 synchronization processing unit, 123 data Block registration unit, 124 data acquisition unit, 125 graph generation unit, 126 recommendation processing unit, 130 input / output unit, 140 communication unit, 210 network

Claims (6)

トランザクションが発生したことに基づいて、ネットワーク内に構築されるハッシュチェーンで連結されるデータブロックに、前記トランザクションのデータを格納するデータ格納手段と、
前記データ格納手段に格納された前記トランザクションのデータのうち、所定の前記トランザクションのデータを抽出する抽出手段と、
前記抽出手段で抽出した前記トランザクションのデータに基づいて、予め定められた演算を行う演算手段と、
前記演算手段による演算結果に応じて、推薦対象者の好みに対応する対象を推薦する推薦手段と、を備え、
前記トランザクションのデータには、前記トランザクションの取引対象を特定する情報が含まれ、
前記演算手段は、前記抽出手段で抽出した前記トランザクションのデータにより特定される前記取引対象のうちの特定の前記取引対象を前記推薦対象者とし、前記推薦対象者に関連する全ての前記取引対象について、前記トランザクションのデータに基づき前記予め定められた演算を行う、
ことを特徴とする情報処理装置。
A data storage means for storing the data of the transaction in a data block connected by a hash chain constructed in the network based on the occurrence of the transaction.
An extraction means for extracting the data of a predetermined transaction from the data of the transaction stored in the data storage means, and an extraction means.
An arithmetic means that performs a predetermined operation based on the transaction data extracted by the extraction means, and
It is provided with a recommendation means for recommending a target corresponding to the preference of the recommendation target person according to the calculation result by the calculation means.
The transaction data includes information that identifies the transaction target of the transaction.
The calculation means sets a specific transaction target among the transaction targets specified by the transaction data extracted by the extraction means as the recommendation target person, and all the transaction targets related to the recommendation target person. , Performs the predetermined calculation based on the transaction data.
An information processing device characterized by this.
前記抽出手段は、前記データ格納手段に前記トランザクションのデータが新たに格納された場合、該トランザクションのデータを新たに抽出し、
前記演算手段は、前記抽出手段で新たに抽出した前記トランザクションのデータにより特定される前記取引対象を前記推薦対象者とし、前記推薦対象者に関連する全ての前記取引対象について、前記トランザクションのデータに基づき前記予め定められた演算を行うことで、前記演算手段により既に行われた演算結果を更新する、
ことを特徴とする請求項1に記載の情報処理装置。
When the data of the transaction is newly stored in the data storage means, the extraction means newly extracts the data of the transaction.
The calculation means sets the transaction target specified by the transaction data newly extracted by the extraction means as the recommendation target person, and all the transaction targets related to the recommendation target person are converted into the transaction data. By performing the predetermined calculation based on the above, the calculation result already performed by the calculation means is updated.
The information processing apparatus according to claim 1.
前記演算手段は、前記予め定められた演算として、前記推薦対象者に初期値を割り振り、前記推薦対象者に関連する全ての前記取引対象について、前記初期値を基準に、前記トランザクションのデータにより算出される重みを乗じた値を算出する、
ことを特徴とする請求項1または2に記載の情報処理装置。
The calculation means allocates an initial value to the recommendation target person as the predetermined calculation, and calculates all the transaction targets related to the recommendation target person from the transaction data based on the initial value. Calculate the value multiplied by the weight to be
The information processing apparatus according to claim 1 or 2.
前記トランザクションのデータには、前記トランザクションの取引対象の属性を示す属性情報がさらに含まれ、
前記演算手段は、前記推薦対象者の前記属性情報により示される属性に前記初期値をさらに割り振り、前記推薦対象者と同じ属性の前記取引対象に関連する全ての前記取引対象について、前記初期値を基準に、前記トランザクションのデータにより算出される重みを乗じた値をさらに算出し、
前記推薦手段は、前記演算手段による演算結果に応じて、前記推薦対象者の好みに対応する対象に加え、前記推薦対象者の属性の好みに対応する対象を推薦する、
ことを特徴とする請求項3に記載の情報処理装置。
The transaction data further includes attribute information indicating the transaction target attribute of the transaction.
The calculation means further allocates the initial value to the attribute indicated by the attribute information of the recommendation target person, and sets the initial value for all the transaction targets related to the transaction target having the same attributes as the recommendation target person. A value obtained by multiplying the reference by the weight calculated from the transaction data is further calculated.
The recommendation means recommends a target corresponding to the preference of the attribute of the recommendation target person in addition to the target corresponding to the preference of the recommendation target person according to the calculation result by the calculation means.
The information processing apparatus according to claim 3.
情報処理装置における情報処理方法であって、
トランザクションが発生したことに基づいて、ネットワーク内に構築されるハッシュチェーンで連結されるデータブロックに、前記トランザクションのデータを格納するデータ格納ステップと、
前記データ格納ステップで格納された前記トランザクションのデータのうち、所定の前記トランザクションのデータを抽出する抽出ステップと、
前記抽出ステップで抽出した前記トランザクションのデータに基づいて、予め定められた演算を行う演算ステップと、
前記演算ステップによる演算結果に応じて、推薦対象者の好みに対応する対象を推薦する推薦ステップと、を備え、
前記トランザクションのデータには、前記トランザクションの取引対象を特定する情報が含まれ、
前記演算ステップでは、前記抽出ステップで抽出した前記トランザクションのデータにより特定される前記取引対象のうちの特定の前記取引対象を前記推薦対象者とし、前記推薦対象者に関連する全ての前記取引対象について、前記トランザクションのデータに基づき前記予め定められた演算を行う、
ことを特徴とする情報処理方法。
It is an information processing method in an information processing device.
A data storage step for storing the data of the transaction in a data block connected by a hash chain constructed in the network based on the occurrence of the transaction.
An extraction step for extracting the data of a predetermined transaction from the data of the transaction stored in the data storage step, and
A calculation step that performs a predetermined calculation based on the transaction data extracted in the extraction step, and
It is provided with a recommendation step of recommending a target corresponding to the preference of the recommendation target person according to the calculation result of the calculation step.
The transaction data includes information that identifies the transaction target of the transaction.
In the calculation step, a specific transaction target among the transaction targets specified by the transaction data extracted in the extraction step is set as the recommendation target person, and all the transaction targets related to the recommendation target person are used. , Performs the predetermined calculation based on the transaction data.
An information processing method characterized by this.
コンピュータを、
トランザクションが発生したことに基づいて、ネットワーク内に構築されるハッシュチェーンで連結されるデータブロックに、前記トランザクションのデータを格納するデータ格納手段、
前記データ格納手段に格納された前記トランザクションのデータのうち、所定の前記トランザクションのデータを抽出する抽出手段、
前記抽出手段で抽出した前記トランザクションのデータに基づいて、予め定められた演算を行う演算手段、
前記演算手段による演算結果に応じて、推薦対象者の好みに対応する対象を推薦する推薦手段、として機能させ、
前記トランザクションのデータには、前記トランザクションの取引対象を特定する情報が含まれ、
前記演算手段は、前記抽出手段で抽出した前記トランザクションのデータにより特定される前記取引対象のうちの特定の前記取引対象を前記推薦対象者とし、前記推薦対象者に関連する全ての前記取引対象について、前記トランザクションのデータに基づき前記予め定められた演算を行う、
ことを特徴とするプログラム。
Computer,
A data storage means for storing the data of the transaction in a data block connected by a hash chain constructed in the network based on the occurrence of the transaction.
An extraction means for extracting a predetermined transaction data from the transaction data stored in the data storage means.
An arithmetic means that performs a predetermined operation based on the transaction data extracted by the extraction means,
It functions as a recommendation means for recommending a target corresponding to the preference of the person to be recommended according to the calculation result by the calculation means.
The transaction data includes information that identifies the transaction target of the transaction.
The calculation means sets a specific transaction target among the transaction targets specified by the transaction data extracted by the extraction means as the recommendation target person, and all the transaction targets related to the recommendation target person. , Performs the predetermined calculation based on the transaction data.
A program characterized by that.
JP2019043917A 2019-03-11 2019-03-11 Information processing device, information processing method and program Active JP7253410B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019043917A JP7253410B2 (en) 2019-03-11 2019-03-11 Information processing device, information processing method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019043917A JP7253410B2 (en) 2019-03-11 2019-03-11 Information processing device, information processing method and program

Publications (2)

Publication Number Publication Date
JP2020149120A true JP2020149120A (en) 2020-09-17
JP7253410B2 JP7253410B2 (en) 2023-04-06

Family

ID=72430086

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019043917A Active JP7253410B2 (en) 2019-03-11 2019-03-11 Information processing device, information processing method and program

Country Status (1)

Country Link
JP (1) JP7253410B2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010095169A1 (en) * 2009-02-18 2010-08-26 株式会社日立製作所 Method of recommending information, system thereof, and server
JP2012133712A (en) * 2010-12-24 2012-07-12 Yahoo Japan Corp Spot recommendation device and method therefor
JP2016126648A (en) * 2015-01-07 2016-07-11 株式会社日立製作所 Preference analysis system and preference analysis method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010095169A1 (en) * 2009-02-18 2010-08-26 株式会社日立製作所 Method of recommending information, system thereof, and server
JP2012133712A (en) * 2010-12-24 2012-07-12 Yahoo Japan Corp Spot recommendation device and method therefor
JP2016126648A (en) * 2015-01-07 2016-07-11 株式会社日立製作所 Preference analysis system and preference analysis method

Also Published As

Publication number Publication date
JP7253410B2 (en) 2023-04-06

Similar Documents

Publication Publication Date Title
US9589025B2 (en) Correlated information recommendation
TW202008264A (en) Method and apparatus for recommendation marketing via deep reinforcement learning
US20150310388A1 (en) Local couriers network in the context of an on-line trading platform
CN110799980B (en) Pictographic understanding in online experience
JP2010073170A (en) Recommended commodity selection device, recommended commodity selection program and commodity retrieval device
US20150170271A1 (en) System and Method to Request and Collect Information to Determine Personalized Credit
US8793236B2 (en) Method and apparatus using historical influence for success attribution in network site activity
US20170337627A1 (en) Information distribution apparatus for switching structure of data for digital screen display, method, and non-transitory computer readable storage medium
US20160117695A1 (en) Systems and methods for reputation management
Phan et al. Consumer trust in social network sites in Vietnam: PLS-SEM-ANN analysis
JP2016212792A (en) Commodity recommendation device, commodity recommendation method and program
US10096045B2 (en) Tying objective ratings to online items
CN113781084A (en) Questionnaire display method and device
EP3896636A1 (en) Information processing device and program
KR20180107515A (en) A method for providing product sales information based on product evaluation, and apparatus and system thereof
JP7253410B2 (en) Information processing device, information processing method and program
JP2021022279A (en) Information processing apparatus, information processing method, and program
US20230103398A1 (en) Security Deposits Using Tokenized Reputation Scores
CN115758271A (en) Data processing method, data processing device, computer equipment and storage medium
AU2017232032A1 (en) Real-time method and system for assessing and improving a presence and perception of an entity
JP7253344B2 (en) Information processing device, information processing method and program
CN110717829A (en) Personal digital asset display method and device
Bolger et al. Reliability updating in linear opinion pooling for multiple decision makers
US11863809B2 (en) Method, system, and apparatus for programmatically generating a channel incrementality ratio
CN114493821B (en) Data verification and cancellation method and device, computer equipment and storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220131

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230216

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230327

R150 Certificate of patent or registration of utility model

Ref document number: 7253410

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350