JP6967462B2 - Information processing equipment, information processing methods, and information processing programs - Google Patents
Information processing equipment, information processing methods, and information processing programs Download PDFInfo
- Publication number
- JP6967462B2 JP6967462B2 JP2018006642A JP2018006642A JP6967462B2 JP 6967462 B2 JP6967462 B2 JP 6967462B2 JP 2018006642 A JP2018006642 A JP 2018006642A JP 2018006642 A JP2018006642 A JP 2018006642A JP 6967462 B2 JP6967462 B2 JP 6967462B2
- Authority
- JP
- Japan
- Prior art keywords
- information
- product
- information processing
- node
- processing apparatus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
本発明は、情報処理装置、情報処理方法、及び情報処理プログラムに関する。 The present invention relates to an information processing apparatus, an information processing method, and an information processing program.
従来、種々の情報をユーザ等に推奨する技術が提供されている。例えば、ユーザに類似するユーザを特定し、類似するユーザが過去に参照したアイテムの情報を、ユーザに対して推奨するアイテムの情報として出力する技術が提供されている。 Conventionally, techniques for recommending various information to users and the like have been provided. For example, there is provided a technique for identifying a user similar to a user and outputting information on an item that the similar user has referred to in the past as information on an item recommended to the user.
しかしながら、上記の従来技術では、適切な商品の推奨を行うことが難しい場合がある。例えば、類似するユーザが過去に参照した情報を推奨するだけでは、ユーザにとって適切な情報であるとは限らず、適切な商品の推奨を行うことが難しい場合がある。 However, with the above-mentioned prior art, it may be difficult to recommend an appropriate product. For example, simply recommending information that a similar user has referred to in the past may not be appropriate information for the user, and it may be difficult to recommend an appropriate product.
本願は、上記に鑑みてなされたものであって、適切な商品の推奨を行う情報処理装置、情報処理方法、及び情報処理プログラムを提供することを目的とする。 The present application has been made in view of the above, and an object of the present application is to provide an information processing apparatus, an information processing method, and an information processing program that recommend appropriate products.
本願に係る情報処理装置は、複数の商品の各々に対応する複数のノードが、前記複数の商品の類似性に応じて連結されたグラフ情報と、一の商品の購入を要求する注文情報を取得する取得部と、前記取得部により取得された前記グラフ情報の前記複数のノードのうち、所定の基準に基づいて決定された前記グラフ情報の検索の起点となる起点ノードを起点として、前記グラフ情報を検索することにより、前記複数の商品のうち、前記一の商品に類似する商品である類似商品を抽出する抽出部と、前記抽出部により抽出された前記類似商品に基づく推奨情報を、前記一の商品の購入を要求する要求元へ送信する送信部と、を備えたことを特徴とする。 The information processing apparatus according to the present application acquires graph information in which a plurality of nodes corresponding to each of a plurality of products are linked according to the similarity of the plurality of products and order information requesting the purchase of one product. Of the acquisition unit and the plurality of nodes of the graph information acquired by the acquisition unit, the graph information is started from a starting node that is a starting point for searching the graph information determined based on a predetermined criterion. By searching for, an extraction unit that extracts a similar product that is a product similar to the one product among the plurality of products, and recommended information based on the similar product extracted by the extraction unit are obtained. It is characterized by being provided with a transmitter for transmitting to a requester requesting the purchase of the product.
実施形態の一態様によれば、適切な商品の推奨を行うことができるという効果を奏する。 According to one aspect of the embodiment, there is an effect that an appropriate product can be recommended.
以下に、本願に係る情報処理装置、情報処理方法、及び情報処理プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る情報処理装置、情報処理方法、及び情報処理プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。 Hereinafter, the information processing apparatus, the information processing method, and the embodiment for implementing the information processing program (hereinafter referred to as “the embodiment”) according to the present application will be described in detail with reference to the drawings. Note that this embodiment does not limit the information processing apparatus, information processing method, and information processing program according to the present application. Further, in each of the following embodiments, the same parts are designated by the same reference numerals, and duplicate explanations are omitted.
(実施形態)
〔1.情報処理〕
図1を用いて、実施形態に係る情報処理の一例について説明する。図1は、実施形態に係る情報処理の一例を示す図である。図1では、情報処理装置100がIoT(Internet of Things)機器10である冷蔵庫から商品の注文情報を取得する場合を示す。また、図1では、情報処理装置100が商品をグラフ構造化したグラフデータ(グラフ情報)を検索することにより、注文された商品の在庫が無い場合に、注文された商品に類似する商品(以下、「類似商品」ともいう)を抽出する場合を示す。図1では、情報処理装置100は、各商品に対応するベクトルデータ(「ベクトル情報」や、単に「ベクトル」ともいう)を用いて商品をグラフ構造化したグラフ情報を用いる。なお、情報処理装置100が用いる情報は、ベクトルに限らず、各商品の類似性を表現可能な情報であれば、どのような形式の情報であってもよい。例えば、情報処理装置100は、各商品に対応する所定のデータや値を用いて商品をグラフ構造化したグラフ情報を用いてもよい。例えば、情報処理装置100は、各商品から生成された所定の数値(例えば2進数の値や16進数の値)を用いて商品をグラフ構造化したグラフ情報を用いてもよい。また、図1の例では、注文された商品がグラフ情報に含まれない商品である場合を一例として示すが、グラフ情報に含まれる商品など、どのような商品であってもよい。すなわち、対象とする商品(オブジェクト)は、各商品の類似性を表現可能であれば、どのような商品(情報)であってもよい。なお、ベクトルに代えて、データ間の距離(類似度)が定義されていれば任意の形態のデータであっても良い。
(Embodiment)
[1. Information processing]
An example of information processing according to the embodiment will be described with reference to FIG. FIG. 1 is a diagram showing an example of information processing according to an embodiment. FIG. 1 shows a case where the
〔1−1.グラフ情報について〕
また、情報処理装置100は、図1中のグラフ情報GR11に示すように、各ベクトル(ノード)が有向エッジにより連結されたグラフデータを対象に情報処理を行う。なお、図1中のグラフ情報GR11に示すようなグラフ情報は、情報処理装置100が生成してもよいし、情報処理装置100は、図1中のグラフ情報GR11に示すようなグラフ情報をサービス提供装置50(図2参照)等の他の外部装置から取得してもよい。
[1-1. About graph information]
Further, as shown in the graph information GR11 in FIG. 1, the
また、ここでいう、有向エッジとは、一方向にしかデータを辿れないエッジを意味する。以下では、エッジにより辿る元、すなわち始点となるノードを参照元とし、エッジにより辿る先、すなわち終点となるノードを参照先とする。例えば、所定のノード「A」から所定のノード「B」に連結される有向エッジとは、参照元をノード「A」とし、参照先をノード「B」とするエッジであることを示す。なお、各ノードを連結するエッジは、有向エッジに限らず、種々のエッジであってもよい。例えば、各ノードを連結するエッジは、ノードを連結する方向のないエッジであってもよい。例えば、各ノードを連結するエッジは、相互に参照可能なエッジであってもよい。例えば、各ノードを連結するエッジは、全て双方向エッジであってもよい。 Further, the directed edge here means an edge in which data can be traced in only one direction. In the following, the source traced by the edge, that is, the node that is the start point is referred to as the reference source, and the destination that is traced by the edge, that is, the node that is the end point is referred to as the reference destination. For example, the directed edge connected from the predetermined node "A" to the predetermined node "B" indicates that the reference source is the node "A" and the reference destination is the node "B". The edge connecting the nodes is not limited to the directed edge, and may be various edges. For example, the edge connecting the nodes may be an edge having no direction to connect the nodes. For example, the edge connecting the nodes may be an edge that can be referred to each other. For example, the edges connecting the nodes may all be bidirectional edges.
例えば、このようにノード「A」を参照元とするエッジをノード「A」の出力エッジという。また、例えば、このようにノード「B」を参照先とするエッジをノード「B」の入力エッジという。すなわち、ここでいう出力エッジ及び入力エッジとは、一の有向エッジをその有向エッジが連結する2つのノードのうち、いずれのノードを中心として捉えるかの相違であり、一の有向エッジが出力エッジ及び入力エッジになる。すなわち、出力エッジ及び入力エッジは、相対的な概念であって、一の有向エッジについて、参照元となるノードを中心として捉えた場合に出力エッジとなり、参照先となるノードを中心として捉えた場合に入力エッジとなる。なお、本実施形態においては、エッジについては、出力エッジや入力エッジ等の有向エッジを対象とするため、以下では、有向エッジを単に「エッジ」と記載する場合がある。 For example, the edge with the node "A" as the reference source is called the output edge of the node "A". Further, for example, such an edge with the node "B" as a reference destination is referred to as an input edge of the node "B". That is, the output edge and the input edge referred to here are differences in which node of the two nodes to which the directed edge is connected is regarded as the center, and the one directed edge is one directed edge. Becomes the output edge and the input edge. That is, the output edge and the input edge are relative concepts, and when one directed edge is regarded as the center of the reference node, the output edge is regarded as the center of the reference node. In some cases it becomes the input edge. In the present embodiment, since the edge is a directed edge such as an output edge or an input edge, the directed edge may be simply referred to as an "edge" in the following.
例えば、情報処理装置100は、数百万〜数億単位の商品に対応するノードを対象に処理を行うが、図面においてはその一部のみを図示する。図1の例では、説明を簡単にするために、8個のノードを図示して処理の概要を説明する。例えば、情報処理装置100は、図1中のグラフ情報GR11に示すように、ノードN1、N2、N3等に示すような複数のノード(ベクトル)を含むグラフ情報を取得する。また、図1の例では、グラフ情報GR11における各ノードは、そのノードとの間の距離が近い方から所定数のノードへのエッジ(出力エッジ)が連結される。例えば、所定数は、目的や用途等に応じて、2や5や10や100等の種々の値であってもよい。例えば、所定数が2である場合、ノードN1からは、ノードN1からの距離が最も近いノード及び2番目に距離が近い2つのノードに出力エッジが連結される。なお、類似度を示す指標としての距離は、ベクトル(N次元ベクトル)間の距離として適用可能であれば、どのような距離であってもよく、例えば、ユークリッド距離やマハラノビス距離やコサイン距離等の種々の距離が用いられてもよい。
For example, the
また、このように「ノードN*(*は任意の数値)」と記載した場合、そのノードはノードID「N*」により識別されるノードであることを示す。例えば、「ノードN1」と記載した場合、そのノードはノードID「N1」により識別されるノードである。 Further, when described as "node N * (* is an arbitrary numerical value)" in this way, it means that the node is a node identified by the node ID "N *". For example, when described as "node N1", the node is a node identified by the node ID "N1".
また、図1中のグラフ情報GR11では、ノードN10は、ノードN7へ向かう有向エッジであるエッジE7が連結される。すなわち、ノードN10は、ノードN7とエッジE7により連結される。このように「エッジE*(*は任意の数値)」と記載した場合、そのエッジはエッジID「E*」により識別されるエッジであることを示す。例えば、「エッジE11」と記載した場合、そのエッジはエッジID「E11」により識別されるエッジである。例えば、ノードN10を参照元とし、ノードN7を参照先として連結されるエッジE7により、ノードN10からノードN7に辿ることが可能となる。この場合、有向エッジであるエッジE7は、ノードN10を中心として識別される場合、出力エッジとなり、ノードN7を中心として識別される場合、入力エッジとなる。また、図1のグラフ情報GR11中の双方向矢印は、両方のノードから他方のノードへの有向エッジが連結されることを示す。例えば、グラフ情報GR11中のノードN2とノードN451との間の双方向矢印は、ノードN2からノードN451へ向かう有向エッジと、ノードN451からノードN2へ向かう有向エッジとの2つのエッジが連結されることを示す。 Further, in the graph information GR11 in FIG. 1, the node N10 is connected to the edge E7, which is a directed edge toward the node N7. That is, the node N10 is connected to the node N7 by the edge E7. When "edge E * (* is an arbitrary numerical value)" is described in this way, it means that the edge is an edge identified by the edge ID "E *". For example, when described as "edge E11", the edge is an edge identified by the edge ID "E11". For example, the edge E7 connected with the node N10 as the reference source and the node N7 as the reference destination makes it possible to trace from the node N10 to the node N7. In this case, the edge E7, which is a directed edge, becomes an output edge when identified with the node N10 as the center, and becomes an input edge when identified with the node N7 as the center. Also, the bidirectional arrows in the graph information GR11 of FIG. 1 indicate that the directed edges from both nodes to the other node are connected. For example, a bidirectional arrow between node N2 and node N451 in the graph information GR11 connects two edges, a directed edge from node N2 to node N451 and a directed edge from node N451 to node N2. Indicates that it will be done.
また、図1中のグラフ情報GR11は、ユークリッド空間であってもよい。また、図1に示すグラフ情報GR11は、各ベクトル間の距離等の説明のための概念的な図であり、グラフ情報GR11は、多次元空間である。例えば、図1に示すグラフ情報GR11は、平面上に図示するため2次元の態様にて図示されるが、例えば100次元や1000次元等の多次元空間であるものとする。 Further, the graph information GR11 in FIG. 1 may be an Euclidean space. Further, the graph information GR 11 shown in FIG. 1 is a conceptual diagram for explaining the distance between each vector, and the graph information GR 11 is a multidimensional space. For example, the graph information GR11 shown in FIG. 1 is shown in a two-dimensional manner for being shown on a plane, but is assumed to be a multidimensional space such as 100 dimensions or 1000 dimensions.
ここで、ベクトルデータ間の距離は、商品の類似性を示し、距離が近いほど類似している。本実施形態においては、グラフ情報GR11における各ノードの距離を対応する各オブジェクト間の類似度とする。例えば、各ノードに対応する対象(商品)の類似性が、グラフ情報GR11内におけるノード間の距離として写像されているものとする。例えば、各ノードに対応する概念間の類似度が各ノード間の距離に写像されているものとする。ここで、図1に示す例においては、グラフ情報GR11における各ノード間の距離が短いオブジェクト同士の類似度が高く、グラフ情報GR11における各ノード間の距離が長いオブジェクト同士の類似度が低い。例えば、図1中のグラフ情報GR11において、ノードID「N35」により識別されるノードと、ノードID「N693」により識別されるノードとは近接している、すなわち距離が短い。そのため、ノードID「N35」により識別されるノードに対応するオブジェクトと、ノードID「N693」により識別されるノードに対応するオブジェクトとは類似度が高いことを示す。 Here, the distance between the vector data indicates the similarity of the products, and the closer the distance is, the more similar the products are. In the present embodiment, the distance of each node in the graph information GR11 is defined as the degree of similarity between the corresponding objects. For example, it is assumed that the similarity of the target (commodity) corresponding to each node is mapped as the distance between the nodes in the graph information GR11. For example, it is assumed that the similarity between the concepts corresponding to each node is mapped to the distance between each node. Here, in the example shown in FIG. 1, the similarity between the objects having a short distance between the nodes in the graph information GR11 is high, and the similarity between the objects having a long distance between the nodes in the graph information GR11 is low. For example, in the graph information GR11 in FIG. 1, the node identified by the node ID “N35” and the node identified by the node ID “N693” are close to each other, that is, the distance is short. Therefore, it is shown that the object corresponding to the node identified by the node ID “N35” and the object corresponding to the node identified by the node ID “N693” have a high degree of similarity.
また、例えば、図1中のグラフ情報GR11において、ノードID「N7」により識別されるノードと、ノードID「N2」により識別されるノードとは遠隔にある、すなわち距離が長い。そのため、ノードID「N7」により識別されるノードに対応するオブジェクトと、ノードID「N2」により識別されるノードに対応するオブジェクトとは類似度が低いことを示す。 Further, for example, in the graph information GR11 in FIG. 1, the node identified by the node ID “N7” and the node identified by the node ID “N2” are remote, that is, have a long distance. Therefore, it is shown that the object corresponding to the node identified by the node ID “N7” and the object corresponding to the node identified by the node ID “N2” have a low degree of similarity.
〔1−2.ベクトルの生成例〕
また、ここでいう、各ノード(ベクトル)は、各オブジェクト(商品)に対応する。商品データが様々な商品を示す数値データであれば、それをベクトルデータとして、そのまま扱うことも可能である。しかし、商品データが、テキスト(文字情報)、画像等であったりする場合には、ベクトルデータへの変換が必要となる。そこで、図1の例では、各商品の商品データ(商品情報)から抽出された特徴量により生成された多次元(N次元)のベクトルがオブジェクトであってもよい。
[1-2. Vector generation example]
Further, each node (vector) referred to here corresponds to each object (product). If the product data is numerical data indicating various products, it can be treated as it is as vector data. However, if the product data is text (character information), an image, or the like, conversion to vector data is required. Therefore, in the example of FIG. 1, a multidimensional (N-dimensional) vector generated by the feature amount extracted from the product data (product information) of each product may be an object.
例えば、情報処理装置100は、商品データの特徴を抽出するモデルを用いて各商品の商品データからN次元ベクトルを生成してもよい。図1の例では、情報処理装置100は、モデル情報記憶部124(図7参照)に示すように、モデルID「M1」により識別されるモデル(モデルM1)を用いて、各商品の商品データからベクトルを生成する。上記のように、「モデルM*(*は任意の数値)」と記載した場合、そのモデルはモデルID「M*」により識別されるモデルであることを示す。例えば、「モデルM1」と記載した場合、そのモデルはモデルID「M1」により識別されるモデルである。また、モデル情報記憶部124に示すように、モデルM1は用途「特徴抽出(商品)」、すなわち商品のデータからの特徴抽出のために用いられるモデルであり、その具体的なモデルデータが「モデルデータMDT1」であることを示す。
For example, the
例えば、情報処理装置100は、モデルM1に任意の商品の商品データを入力することにより、モデルM1中の各要素(ニューロン)の値を演算し、入力した商品データと同様の情報を出力する。例えば、情報処理装置100は、中間層の各要素(ニューロン)の値を特徴量として抽出し、各商品に対応するN次元のベクトルデータを生成してもよい。
For example, the
ここで、図12を用いて、各商品に対応するベクトルデータの生成の一例を示す。図12は、実施形態に係る特徴量の抽出の一例を示す図である。図12は、モデルM1の概念図である。なお、図12では、各要素(ニューロン)の各接続関係を示す線の図示を省略する。図12に示すように、モデルM1は、入力層ILと、中間層CLと、出力層OLとを含む。例えば、モデルM1の入力層ILは、商品データが入力される層である。また、出力層OLは、入力層ILへの入力に応じて、入力された商品データと同様の情報を出力される層である。 Here, FIG. 12 is used to show an example of generating vector data corresponding to each product. FIG. 12 is a diagram showing an example of extraction of a feature amount according to an embodiment. FIG. 12 is a conceptual diagram of the model M1. In FIG. 12, the line showing each connection relationship of each element (neuron) is omitted. As shown in FIG. 12, the model M1 includes an input layer IL, an intermediate layer CL, and an output layer OL. For example, the input layer IL of the model M1 is a layer into which product data is input. Further, the output layer OL is a layer that outputs the same information as the input product data in response to the input to the input layer IL.
また、例えば、中間層CLの中央部の最も圧縮された圧縮層RPは、入力された商品データの特徴を表現する層である。例えば、モデルM1の中間層CLにおいて、入力層ILから圧縮層RPまでの間は、エンコードの処理を行う部分に対応する。モデルM1の中間層CLにおいて、入力層ILから圧縮層RPまでの間は、入力された商品データの特徴を圧縮する処理を行う部分に対応する。例えば、モデルM1の中間層CLにおいて、圧縮層RPから出力層OLまでの間は、デコードの処理を行う部分に対応する。モデルM1の中間層CLにおいて、圧縮層RPから出力層OLまでの間は、圧縮された商品データを復元する処理を行う部分に対応する。 Further, for example, the most compressed compression layer RP in the central portion of the intermediate layer CL is a layer expressing the characteristics of the input product data. For example, in the intermediate layer CL of the model M1, the portion from the input layer IL to the compression layer RP corresponds to the portion where the encoding process is performed. In the intermediate layer CL of the model M1, between the input layer IL and the compression layer RP corresponds to a portion that performs a process of compressing the characteristics of the input product data. For example, in the intermediate layer CL of the model M1, the portion from the compression layer RP to the output layer OL corresponds to the portion where the decoding process is performed. In the intermediate layer CL of the model M1, the portion from the compression layer RP to the output layer OL corresponds to a portion for performing a process of restoring the compressed product data.
例えば、情報処理装置100は、圧縮層RPに含まれるニューロンNL1やニューロンNL2等の情報をベクトルに用いてもよい。例えば、情報処理装置100は、ある商品の商品データが入力された場合に、算出されるニューロンNL1に対応する値VE1やニューロンNL2に対応する値VE2をベクトルの要素(一の次元の値)として抽出してもよい。例えば、情報処理装置100は、ある商品の商品データが入力された場合に、算出されるニューロンNL1に対応する値VE1をその商品のベクトルの1次元目の要素として抽出してもよい。また、例えば、情報処理装置100は、ある商品の商品データが入力された場合に、算出されるニューロンNL2に対応する値VE2をその商品のベクトルの2次元目の要素として抽出してもよい。このように、情報処理装置100は、各商品の商品データをモデルM1に入力することにより、各商品に対応するベクトルを生成してもよい。なお、情報処理装置100は、各商品に対応するベクトルをサービス提供装置50等の他の外部装置から取得してもよい。なお、情報処理装置100は、ベクトルの各要素として、各ニューロンに対応する値自体を用いてもよいし、各ニューロンに対応する値に所定の係数を乗算した値を用いてもよい。また、図1の例では説明を簡単にするために、ベクトルの各要素(値)が整数である場合を示すが、ベクトルの各要素(値)は、小数点以下の数値を含む実数であってもよい。
For example, the
なお、情報処理装置100は、圧縮層RPの要素(ニューロン)に限らず、中間層CL中の他の要素(ニューロン)の情報をベクトルに用いてもよい。例えば、情報処理装置100は、エンコード部分のニューロンNL3やデコード部分のニューロンNL4等の情報をベクトルに用いてもよい。例えば、情報処理装置100は、ある商品の商品データが入力された場合に、算出されるニューロンNL3に対応する値VE3やニューロンNL4に対応する値VE4をベクトルの要素(一の次元の値)として抽出してもよい。なお、上記は、一例であり、情報処理装置100は、オートエンコーダに限らず、種々のモデルを用いて、商品データからの特徴抽出を行ってもよい。また、情報処理装置100は、モデルを用いずに、特徴抽出を行ってもよい。例えば、各商品を識別するように学習させたモデルを生成して、その中間層をベクトルデータとして抽出しても良い。また、例えば、トリプレットロス(triplet loss)といった類似性を学習する方法によりモデルを生成しても良い。例えば、情報処理装置100は、情報処理装置100の管理者等が設定して特徴(素性)に対応する情報を商品データから抽出し、ベクトルを生成してもよい。例えば、情報処理装置100は、商品カテゴリ、画像情報、製造元、及び内容量等の特徴(素性)に対応する情報を商品データから抽出し、ベクトルを生成してもよい。また、例えば、情報処理装置100は、その商品がメインターゲットとするユーザ属性に関する情報を用いてベクトルを生成してもよい。
The
また、例えば、情報処理装置100は、サービス提供装置50等の他の外部装置からモデルM1を取得してもよい。なお、情報処理装置100は、商品情報記憶部121(図4参照)に記憶された各商品の商品情報GIN1、GIN2、GIN451等を入力として、モデルM1を生成してもよい。例えば、情報処理装置100は、各商品の商品情報GIN1、GIN2、GIN451等を入力として、モデルM1を生成してもよい。例えば、商品情報GIN1、GIN2、GIN451等は、商品カテゴリ、画像情報、製造元、及びサイズ等に関する情報を含んでもよい。例えば、商品情報GIN1、GIN2、GIN451等の商品情報は、対応する商品の商品カテゴリが飲料水や酒類や調味料等のいずれであるかを示す情報(第1カテゴリ情報)を含んでもよい。例えば、商品情報GIN1、GIN2、GIN451等の商品情報は、対応する商品の商品カテゴリがビールやワインやケッチャプやソース等のいずれであるかを示す詳細な商品カテゴリ(第2カテゴリ情報)を示す情報を含んでもよい。また、例えば、商品情報は、対応する商品が撮像された画像情報を含んでもよい。例えば、商品情報は、対応する商品の製造元がどのメーカであるかを示す情報を含んでもよい。例えば、商品情報は、対応する商品の内容量等どのようなサイズであるかを示す情報を含んでもよい。例えば、商品情報は、対応する商品のターゲットとするユーザが20代であることを示す情報や対応する商品のターゲットとするユーザが女性であることを示す情報等の商品のターゲットを示す情報を含んでもよい。なお、上記は一例であり、商品情報には、どのような情報が含まれてもよい。
Further, for example, the
情報処理装置100は、商品の商品情報(商品データ)が入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第1要素と、第1要素と第1要素の重みとに基づいて値が算出される第2要素と、を含み、入力層に入力された商品情報に対し、出力層以外の各層に属する各要素を第1要素として、第1要素と第1要素の重みとに基づく演算を行うことにより、入力層に入力される情報と同様の情報を出力層から出力するモデルM1を生成してもよい。なお、情報処理装置100は、ベクトル生成に用いるモデルをサービス提供装置50等の他の外部装置から取得してもよい。
The
〔1−3.処理例〕
ここから、情報処理装置100は、他の情報処置装置であるIoT機器10から一の商品を注文することを示す情報(注文情報)を取得する場合を一例として説明する。また、図1の例では、情報処理装置100は、一の商品の在庫が無いため、一の商品に類似する商品を推奨する情報をIoT機器10に送信する場合を一例として説明する。
[1-3. Processing example]
From here, the case where the
図1では、ID「TID11」により識別されるIoT機器10(TID11)である冷蔵庫は、住宅HM内に配置される。例えば、IoT機器10(TID11)を単にIoT機器10と記載する場合がある。この場合、冷蔵庫であるIoT機器10は、画像センサ等の種々のセンサにより内部の変化を検知することにより、食品等の各商品が消費を検知してもよい。なお、IoT機器10は、画像センサに限らず、赤外線センサや重量センサ等の種々のセンサにより、各商品の状況を検知してもよい。図1の例では、IoT機器10は、住宅HMに居住するユーザU1により利用される。
In FIG. 1, the refrigerator, which is the IoT device 10 (TID11) identified by the ID “TID11”, is arranged in the residential HM. For example, the IoT device 10 (TID11) may be simply referred to as the
図1の例では、IoT機器10は、内部に収納された商品Xの残量が所定の閾値(例えば、内容量の10%)以下になったため、商品Xの注文を行う場合を示す。なお、IoT機器10は、商品Xが内部に収納された日時を検知し、検知した日時から所定の期間(例えば2週間や1ヶ月等)が経過した場合に、商品Xの注文を行ってもよい。例えば、商品Xは、あるメーカXが製造する調味料(ケチャップ等)であってもよい。
In the example of FIG. 1, the
まず、商品Xの残量が所定の閾値以下になったことを検知したIoT機器10は、商品Xの注文情報を情報処理装置100へ送信する。また、図1の例では、IoT機器10は、商品Xの商品情報GIN11を情報処理装置100へ送信する。例えば、IoT機器10は、サービス提供装置50から商品Xの商品情報GIN11を取得し、情報処理装置100へ送信してもよい。例えば、IoT機器10は、サービス提供装置50から収集した商品Xの商品情報GIN11を情報処理装置100へ送信する。図1の例では、商品情報GIN11等は、商品カテゴリ、画像情報、製造元、及びサイズ等に関する情報を含む。
First, the
なお、情報処理装置100が商品Xの商品情報GIN11を取得済みである場合、IoT機器10は、商品Xの商品情報GIN11を情報処理装置100へ送信しなくてもよい。また、サービス提供装置50が電子商取引サービスを提供する場合、IoT機器10は、商品Xの注文情報をサービス提供装置50へ送信してもよい。
When the
そして、情報処理装置100は、一の商品の注文情報と一の商品に関する商品情報(商品データ)を取得する(ステップS10)。図1の例では、情報処理装置100は、IoT機器10から商品Xの注文情報と商品Xに関する商品情報GIN11を取得する。なお、サービス提供装置50が電子商取引サービスを提供する場合、情報処理装置100は、サービス提供装置50がIoT機器10から取得した商品Xの注文情報や商品Xの商品情報GIN11をサービス提供装置50から取得してもよい。
Then, the
そして、情報処理装置100は、一の商品の在庫を確認する(ステップS11)。図1の例では、情報処理装置100は、在庫情報記憶部125に記憶された商品Xの在庫情報に基づいて、商品Xの在庫の有無を確認(判定)する。図1の例では、在庫情報記憶部125に示すように商品Xの在庫が無しであるため、情報処理装置100は、商品Xの在庫が無いと判定する。なお、例えばサービス提供装置50が電子商取引サービスを提供する場合、情報処理装置100は、サービス提供装置50に商品Xの在庫情報を要求し、サービス提供装置50から商品Xの在庫情報を取得し、取得した商品Xの在庫情報により商品Xの在庫の有無を確認してもよい。なお、商品Xの在庫が有る場合、情報処理装置100は、商品Xの決済や商品XをユーザU1の住所AD1(図9参照)へ配送する処理を行ってもよい。
Then, the
図1の例では、商品Xの在庫が無いため、情報処理装置100は、商品Xの類似商品をIoT機器10に推奨する情報を送信する処理を行う。まず、情報処理装置100は、一の商品に対応する商品データからグラフ情報の探索に用いるベクトルを生成する。図1の例では、情報処理装置100は、処理群PS11に示すような処理により、商品Xに対応するベクトルを生成する。情報処理装置100は、商品Xに関する商品情報GIN11をモデルM1に入力する(ステップS12)。具体的には、情報処理装置100は、商品Xの商品情報GIN11をモデルM1に入力する。そして、情報処理装置100は、商品情報GIN11の入力後のモデルM1中の情報を用いて、ベクトルを生成する(ステップS13)。例えば、情報処理装置100は、商品情報GIN11が入力されたモデルM1中の各要素を用いて、ベクトルデータを生成する。
In the example of FIG. 1, since the product X is out of stock, the
図1の例では、情報処理装置100は、商品情報GIN11が入力されたモデルM1中の各要素の値を用いて、ベクトルデータVD11(単に「ベクトルVD11」ともいう)を生成する。例えば、情報処理装置100は、商品Xの商品情報GIN11が入力された場合における、モデルM1のニューロンNL1に対応する値VE1(図12参照)やニューロンNL2に対応する値VE2(図12参照)を用いて、ベクトルを生成する。例えば、情報処理装置100は、商品Xの商品情報GIN11が入力された場合に、算出されるニューロンNL1に対応する値VE1をベクトルVD11の1次元目の要素として抽出してもよい。また、例えば、情報処理装置100は、ある商品の商品データが入力された場合に、算出されるニューロンNL2に対応する値VE2をベクトルVD11の2次元目の要素として、ベクトルVD11を生成する。図1の例では、情報処理装置100は、1次元目の要素が「35」であり、2次元目の要素が「63」であるようなベクトルVD11を生成する。
In the example of FIG. 1, the
なお、情報処理装置100は、商品XのベクトルVD11を生成済みである場合、処理群PS11の処理を行わなくてもよい。例えば、情報処理装置100は、商品情報記憶部121(図4参照)に商品Xのベクトルが格納済みである場合、商品情報記憶部121から商品XのベクトルVD11を取得してもよい。
When the
そして、情報処理装置100は、商品Xに類似する商品(類似商品)を検索する(ステップS14)。例えば、情報処理装置100は、非特許文献1に開示されるような近傍検索の技術等の種々の従来技術を適宜用いて、商品Xの類似商品を検索してもよい。
Then, the
図1の例では、情報処理装置100は、情報群INF11に示すように、グラフ情報GR11やインデックス情報IND11を用いて商品Xの類似商品を検索する。例えば、情報処理装置100は、グラフ情報記憶部123(図6参照)から商品に関するグラフ情報GR11を取得する。また、例えば、情報処理装置100は、インデックス情報記憶部122(図5参照)から、グラフ情報GR11における検索の起点となるノード(以下、「起点ベクトル」ともいう)の決定に用いるインデックス情報IND11を取得する。なお、インデックス情報IND11は、情報処理装置100が生成してもよいし、情報処理装置100は、インデックス情報IND11をサービス提供装置50等の他の外部装置から取得してもよい。
In the example of FIG. 1, the
そして、情報処理装置100は、一の商品(クエリ)に対応する起点ベクトルを決定(特定)するために、インデックス情報IND11を用いる。図1の例では、情報処理装置100は、商品XのベクトルVD11に対応する起点ベクトルを決定(特定)するために、インデックス情報IND11を用いる。すなわち、情報処理装置100は、ベクトルVD11とインデックス情報IND11とを用いて、グラフ情報GR11における起点ベクトルを決定する。
Then, the
図1中のインデックス情報IND11は、図5中のインデックス情報記憶部122に示す階層構造を有する。例えば、インデックス情報IND11は、ルートRTの直下に位置する第1階層のノード(ベクトル)が、節点VT1、VT2等であることを示す。また、例えば、インデックス情報IND11は、節点VT2の直下の第2階層のノードが、節点VT2−1〜VT2−4(図示せず)であることを示す。また、例えば、インデックス情報IND11は、節点VT2−2の直下の第3階層のノードが、ノードN35、ノードN451、ノードN693、すなわちグラフ情報GR11中のノード(ベクトル)であることを示す。
The index information IND11 in FIG. 1 has a hierarchical structure shown in the index
例えば、情報処理装置100は、図1中のインデックス情報IND11に示すような木構造型のインデックス情報を用いて、グラフ情報GR11における起点ベクトルを決定する(ステップS15)。図1の例では、情報処理装置100は、ベクトルVD11を生成した後、インデックス情報IND11を上から下へ辿ることにより、インデックス情報IND11の近傍候補となる起点ベクトルを特定することにより、効率的に検索クエリ(一の商品)に対応する起点ベクトルを決定することができる。
For example, the
例えば、情報処理装置100は、インデックス情報IND11をルートRTからリーフノード(グラフ情報GR11中のノード(ベクトル))まで辿ることにより、ベクトルVD11に対応する起点ベクトルを決定してもよい。図1の例では、例えば、情報処理装置100は、インデックス情報IND11をルートRTからノードN451まで辿ることにより、ノードN451を起点ベクトルとして決定する。なお、図1の例では、説明を簡単にするために、起点ベクトルを1つ決定する場合を示すが、情報処理装置100は、複数個の起点ベクトルを決定してもよい。例えば、情報処理装置100は、ノードN451、N35、N693、N2等の複数個のベクトル(ノード)を起点ベクトルとして決定してもよい。例えば、情報処理装置100は、木構造に関する種々の従来技術を適宜用いて、インデックス情報IND11をルートRTからリーフノードまで辿ることにより、辿りついたリーフノードを起点ベクトルとして決定してもよい。例えば、情報処理装置100は、ベクトルVD11との類似度に基づいて、インデックス情報IND11を下へ辿ることにより、起点ベクトルを決定してもよい。例えば、情報処理装置100は、ルートRTから節点VT1、VT2等のいずれの節点に辿るかを、ベクトルVD11と節点VT1、VT2との類似度に基づいて決定してもよい。例えば、情報処理装置100は、ルートRTから節点VT1、VT2等のうち、ベクトルVD11との類似度が最も高い節点VT2へ辿ると決定してもよい。また、例えば、情報処理装置100は、節点VT2から節点VT2−1〜VT2−4等のうち、ベクトルVD11との類似度が最も高い節点VT2−2へ辿ると決定してもよい。また、例えば、情報処理装置100は、節点VT2−2からノードN35、N451、N693等のうち、ベクトルVD11との類似度が最も高い節点ノードN451へ辿ると決定してもよい。なお、インデックス情報IND11を用いずに、検索開始時にグラフ情報GR11からランダムに1つ以上のノードを選択し、それを起点ベクトルとしてもよいし、または、予め指定された1つ以上のノードを起点ベクトルとしても良い。
For example, the
そして、情報処理装置100は、グラフ情報GR11を検索することにより、商品Xの類似商品を抽出する(ステップS16)。例えば、情報処理装置100は、ノードN451の近傍に位置するノードを類似商品として抽出する。例えば、情報処理装置100は、ノードN451からの距離が近いノードを類似商品として抽出する。例えば、情報処理装置100は、ノードN451を起点として、エッジを辿ることにより、ノードN451から到達可能なノードを類似商品として抽出する。例えば、情報処理装置100は、所定数(例えば、2個や10個等)のノードを類似商品として抽出する。例えば、情報処理装置100は、図13に示すような検索処理により、商品Xの類似商品を抽出してもよいが、詳細は後述する。図1の例では、情報処理装置100は、ノードN451を起点として、グラフ情報GR11を探索することにより、ノードN451やノードN35を類似商品として抽出する。
Then, the
そして、情報処理装置100は、抽出した類似商品に基づいて推奨商品を決定する(ステップS17)。図1の例では、情報処理装置100は、商品XのベクトルVD11に最も類似するノードN451に対応する商品#451を推奨商品に決定する。例えば、情報処理装置100は、商品XのベクトルVD11と、各類似商品のベクトルとを比較することにより、商品Xに最も類似する商品を決定(特定)してもよい。なお、情報処理装置100は、1つの商品に限らず、複数個の商品を推奨商品に決定してもよい。
Then, the
そして、情報処理装置100は、推奨商品に関する情報(推奨情報)をIoT機器10に送信する(ステップS18)。図1の例では、情報処理装置100は、ノードN451に対応する商品#451を示す情報をIoT機器10に送信する。例えば、商品Xは、あるメーカXが製造する商品X以外の他の調味料や他のメーカYが製造するケチャップであってもよい。
Then, the
そして、情報処理装置100から商品#451を示す推奨情報を受信したIoT機器10は、商品#451を購入(注文)するかを判定する(ステップS19)。例えば、IoT機器10は、所定の出力手段により、ユーザU1に通知し、ユーザU1による操作に基づいて商品#451を購入(注文)するかを判定してもよい。例えば、IoT機器10は、所定の表示手段に商品#451を示す推奨商品であることを表示し、ユーザU1による商品#451の注文可否を示す操作を受け付けることにより、商品#451を購入(注文)するかを判定してもよい。例えば、IoT機器10は、商品#451を示す推奨商品であることを音声出力することによりユーザU1に通知し、ユーザU1による操作に基づいて商品#451を購入(注文)するかを判定してもよい。
Then, the
なお、IoT機器10は、ユーザU1による操作を介することなく、商品#451を購入(注文)するかを判定してもよい。例えば、IoT機器10は、ユーザU1が過去に商品#451を購入(注文)した履歴が有る場合、商品#451を購入すると判定してもよい。例えば、IoT機器10は、ユーザU1が過去に商品#451を購入(注文)した履歴が無い場合、商品#451を購入しないと判定してもよい。
The
図1の例では、IoT機器10は、タッチパネル(画面)等のユーザの操作を受け付ける手段を有し、タッチパネルに商品#451を示す推奨商品であることを表示するものとする。そして、IoT機器10は、タッチパネルによりユーザU1の操作を受け付けるにより、ユーザU1が商品#451を注文することを示す情報を取得する。そして、IoT機器10は、商品#451を注文することを示す情報(回答情報)を情報処理装置100へ送信する。
In the example of FIG. 1, the
そして、情報処理装置100は、ユーザU1が商品#451を注文することを示す回答情報を取得する(ステップS20)。図1の例では、情報処理装置100は、IoT機器10から商品#451を注文することを示す回答情報を取得する。そして、情報処理装置100は、商品#451の注文処理を行う。例えば、情報処理装置100は、ユーザU1の口座情報等を用いて商品#451の決済処理を行ったり、商品#451をユーザU1の住所AD1に配送する手続を行ったりする。
Then, the
図1の例では、情報処理装置100は、物流拠点Aである配送センタDB1に配送を指示する(ステップS21)。例えば、情報処理装置100は、配送センタDB1に商品#451をユーザU1の住所AD1に配送することを指示する。例えば、情報処理装置100は、配送センタDB1の情報処理装置(図示せず)に商品#451をユーザU1の住所AD1に配送することを指示する情報を送信する。例えば、配送センタDB1は、ユーザU1の住所AD1に近い物流拠点であってもよい。
In the example of FIG. 1, the
そして、情報処理装置100から配送指示を受けた配送センタDB1は、商品#451をユーザU1の住所AD1に配送する(ステップS22)。これにより、ユーザU1は、在庫が無かった商品Xの類似商品である商品#451を自宅HMで受け取ることができる。
Then, the distribution center DB1 that receives the delivery instruction from the
上述したように、情報処理装置100は、グラフ情報GR11やインデックス情報IND11を用いて、ユーザU1から取得した商品Xの類似商品を抽出する。例えば、情報処理装置100は、インデックス情報IND11を用いて、商品Xの類似商品を抽出する際のグラフ情報GR11における起点ベクトルを決定する。そして、情報処理装置100は、決定した起点ベクトルを起点としてグラフ情報GR11を探索することにより、商品Xの類似商品を抽出する。そして、情報処理装置100は、抽出した類似商品に基づいて推奨商品を決定し、推奨商品に関する情報(推奨情報)をIoT機器10に送信する。これにより、情報処理装置100は、適切な商品の推奨を行うことができる。例えば、ディープラーニングといった手法で、商品を識別するという方法もあるが、多種多様な商品が存在する場合においては、各商品の事例が少ないので、学習ができずに識別精度を向上させることが難しいという問題がある。例えば、ディープラーニングといった学習手法で生成したモデルを用いて、そのモデルに商品の情報を入力し、出力されたスコアから商品を識別するという方法もあるが、多種多様な商品が存在する場合においては、各商品の事例が少ないため、モデルの精度を向上させることが難しく、商品の識別精度を向上させることが難しい。一方で、情報処理装置100は、各商品から抽出した特徴を基に生成した複数のベクトルのグラフ構造化したグラフ情報を用いて検索を行うことにより、商品に類似する類似商品を適切に抽出することができる。そのため、情報処理装置100は、商品がどのような商品に該当するかを精度よく識別することができる。
As described above, the
〔1−4.状況に応じた推奨〕
図1の例では、情報処理装置100は、商品の類似度に基づいて、IoT機器10やユーザの状況等を加味して推奨商品を決定してもよい。例えば、情報処理装置100は、IoT機器10である冷蔵庫の収納スペースに余裕が無い場合、推奨商品に関する情報を送信しないと決定してもよい。例えば、情報処理装置100は、IoT機器10である冷蔵庫の容量が所定の閾値以上使用されている場合、推奨商品に関する情報を送信しないと決定してもよい。また、例えば、情報処理装置100は、IoT機器10である冷蔵庫の容量の90%以上が使用されている場合、類似商品のうち、容量の小さい商品を推奨商品に決定してもよい。例えば、情報処理装置100は、IoT機器10である冷蔵庫の容量の90%以上が使用されている場合、類似商品のうち、容量が最も小さい商品を推奨商品に決定してもよい。
[1-4. Recommended according to the situation]
In the example of FIG. 1, the
また、例えば、情報処理装置100は、IoT機器10を利用するユーザのスケジュール等の予定情報に基づいて、推奨商品に関する情報を送信するかどうかを決定してもよい。例えば、情報処理装置100は、IoT機器10を利用するユーザが所定の期間(例えば1ヶ月等)不在にする予定情報が取得された場合、IoT機器10に、推奨商品に関する情報を送信しないと決定してもよい。例えば、情報処理装置100は、IoT機器10を利用するユーザが所定の期間経過(例えば2週間等)後に不在にする予定情報が取得された場合、類似商品のうち、ユーザが不在になる前の所定の期間で消費可能な容量の商品を推奨商品に決定してもよい。
Further, for example, the
〔1−5.カテゴリごとのモデル及びグラフ情報〕
なお、図1の例では、モデルM1を用いる場合を示したが、例えば、情報処理装置100は、商品のカテゴリごとに異なるモデルを用いてもよい。
[1-5. Model and graph information for each category]
In the example of FIG. 1, the case where the model M1 is used is shown, but for example, the
例えば、情報処理装置100は、酒類や調味料や野菜や肉類や冷凍食品等の種々の商品カテゴリごとに生成されたモデル(以下、「カテゴリ別モデル」ともいう)を用いて、各カテゴリに対応する商品の類似商品を抽出してもよい。例えば、情報処理装置100は、カテゴリ別モデルを生成してもよい。情報処理装置100は、各カテゴリ別モデルに対応するカテゴリの商品情報を入力し、その商品情報と同様の情報を出力するカテゴリ別モデル(オートエンコーダ)を生成してもよい。例えば、情報処理装置100は、入力する商品情報自体を正解情報として、入力した商品情報と同様の情報を出力するカテゴリ別モデル(オートエンコーダ)を生成する。例えば、カテゴリ別モデルに入力する商品情報は、画像情報、製造元、及びサイズ等に関する情報を含む。この場合、情報処理装置100は、各カテゴリに対応する商品群ごとにグラフ情報を生成してもよい。また、情報処理装置100は、各カテゴリに対応する商品群ごとに生成されたグラフ情報をサービス提供装置50等の外部の情報処理装置から取得してもよい。
For example, the
そして、情報処理装置100は、酒類のカテゴリに属する商品の類似商品を抽出する場合、酒類のカテゴリに対応するグラフ情報を用いて、検索することにより、酒類のカテゴリに属する商品の類似商品を抽出してもよい。また、情報処理装置100は、冷凍食品のカテゴリに属する商品の類似商品を抽出する場合、冷凍食品のカテゴリに対応するグラフ情報を用いて、検索することにより、酒類のカテゴリに属する商品の類似商品を抽出してもよい。
Then, when the
〔1−6.インデックス情報〕
図1の例に示すインデックス情報(インデックスデータ)は一例であり、情報処理装置100は、種々のインデックス情報を用いて、グラフ情報を検索してもよい。また、例えば、情報処理装置100は、検索時に用いるインデックスデータを生成してもよい。例えば、情報処理装置100は、高次元ベクトルを検索する検索インデックスをインデックスデータとして生成する。ここでいう高次元ベクトルとは、例えば、数百次元から数千次元のベクトルであってもよいし、それ以上の次元のベクトルであってもよい。
[1-6. Index information]
The index information (index data) shown in the example of FIG. 1 is an example, and the
例えば、情報処理装置100は、図1に示すようなツリー構造(木構造)に関する検索インデックスをインデックスデータとして生成してもよい。例えば、情報処理装置100は、kd木(k-dimensional tree)に関する検索インデックスをインデックスデータとして生成してもよい。例えば、情報処理装置100は、VP木(Vantage-Point tree)に関する検索インデックスをインデックスデータとして生成してもよい。
For example, the
また、例えば、情報処理装置100は、その他の木構造を有するインデックスデータとして生成してもよい。例えば、情報処理装置100は、木構造のインデックスデータのリーフがグラフデータに接続する種々のインデックスデータを生成してもよい。例えば、情報処理装置100は、木構造のインデックスデータのリーフがグラフデータ中のノードに対応する種々のインデックスデータを生成してもよい。また、情報処理装置100は、このようなインデックスデータを用いて検索を行う場合、インデックスデータを辿って到達したリーフ(ノード)からグラフデータを探索してもよい。
Further, for example, the
なお、上述したようなインデックスデータは一例であり、情報処理装置100は、グラフデータ中のクエリを高速に特定することが可能であれば、どのようなデータ構造のインデックスデータを生成してもよい。例えば、情報処理装置100は、クエリに対応するグラフ情報中のノードを高速に特定することが可能であれば、バイナリ空間分割に関する技術等の種々の従来技術を適宜用いて、インデックスデータを生成してもよい。例えば、情報処理装置100は、高次元ベクトルの検索に対応可能なインデックスであれば、どのようなデータ構造のインデックスデータを生成してもよい。例えば、情報処理装置100は、非特許文献1に記載されるようなグラフ型の検索インデックスに関する情報をインデックス情報として用いてもよい。情報処理装置100は、上述のようなインデックスデータとグラフデータとを用いることにより、所定の対象に関するより効率的な検索を可能にすることができる。
The index data as described above is an example, and the
〔2.情報処理システムの構成〕
図2に示すように、情報処理システム1は、IoT機器10と、サービス提供装置50と、情報処理装置100とが含まれる。IoT機器10と、サービス提供装置50と、情報処理装置100とは所定のネットワークNを介して、有線または無線により通信可能に接続される。図2は、実施形態に係る情報処理システムの構成例を示す図である。なお、図2に示した情報処理システム1には、複数台のIoT機器10や、複数台のサービス提供装置50や、複数台の情報処理装置100が含まれてもよい。
[2. Information processing system configuration]
As shown in FIG. 2, the
IoT機器10は、ユーザによって利用される情報処理装置である。IoT機器10は、ユーザによる種々の操作を受け付ける。なお、以下では、IoT機器10をユーザと表記する場合がある。すなわち、以下では、ユーザをIoT機器10と読み替えることもできる。
The
IoT機器10は、ユーザによって利用される情報処理機能を有する各種装置である。例えば、IoT機器10は、通信機能を有し、サービス提供装置50や情報処理装置100等が提供するサービスを利用可能であればどのような装置であってもよい。例えば、IoT機器10は、洗濯機、冷蔵庫等のいわゆる家電製品であってもよいし、自動車等の車両であってもよい。例えば、IoT機器10は、スマートスピーカやロボット等の音声等を検知する装置であってもよい。例えば、IoT機器10は、内容物の容量等を検知する商品のパッケージ自体であってもよいし、所定の商品を購入するためのボタン等の装置であってもよい。また、IoT機器10は、例えば、スマートフォンや、タブレット型端末や、ノート型PC(Personal Computer)や、デスクトップPCや、携帯電話機や、PDA(Personal Digital Assistant)等の情報処理装置であってもよい。また、例えば、IoT機器10は、ユーザが身に着けるウェアラブル端末(Wearable Device)等であってもよい。例えば、IoT機器10は、腕時計型端末やメガネ型端末等であってもよい。なお、以下では、IoT機器10をユーザと表記する場合がある。すなわち、以下では、ユーザをIoT機器10と読み替えることもできる。例えば、IoT機器10は、商品データ(商品情報)を収集し、商品データを情報処理装置100へ送信する。
The
情報処理装置100は、起点ベクトルを起点としてグラフ情報を検索することにより、複数の商品のうち、一の商品に類似する商品である類似商品を抽出する情報処理装置である。例えば、情報処理装置100は、一の商品に関する商品情報を取得し、商品情報と、グラフ情報の検索の起点となる起点ベクトルに関する情報とに基づいて、起点ベクトルを決定する。
The
情報処理装置100は、IoT機器10(ユーザ)等に種々の情報提供を行うための情報が格納された情報処理装置である。例えば、情報処理装置100は、IoT機器10から一の商品の注文情報を取得すると、一の商品情報(以下、「クエリ情報」や「クエリ」ともいう)に類似する商品(ベクトル情報等)を検索し、検索結果に基づく類似商品を示す情報をIoT機器10に送信する。例えば、情報処理装置100は、IoT機器10から一の商品の商品データを取得すると、クエリに類似する商品を検索し、検索結果に基づく類似商品を示す推奨情報をIoT機器10に提供する。図1の例では、情報処理装置100は、IoT機器10から一の商品の商品データを取得すると、一の商品に類似する商品を検索し、検索結果を類似の商品としてIoT機器10に提供する。また、例えば、情報処理装置100がIoT機器10に提供するデータは、商品の名称や商品の商品データ自体であってもよいし、URL(Uniform Resource Locator)等の対応するデータを参照するための情報であってもよい。
The
情報処理装置100は、また、例えば、情報処理装置100は、電子商取引サービスを提供してもよい。また、情報処理装置100は、電子商取引サービスにおいて販売される商品の決済や配送指示等の注文処理を行ってもよい。
The
サービス提供装置50は、情報処理装置100に種々の情報提供を行うための情報が格納された情報処理装置である。例えば、サービス提供装置50は、電子商取引サービスを提供するウェブサーバ等の種々の外部装置から収集した商品情報等が格納されてもよい。例えば、サービス提供装置50は、グラフ情報やインデックス情報やモデル等の種々の情報を情報処理装置100に提供する情報処理装置である。
The
また、例えば、サービス提供装置50は、電子商取引サービスを提供してもよい。また、サービス提供装置50は、電子商取引サービスにおいて販売される商品の商品情報を情報処理装置100に提供してもよい。
Further, for example, the
〔3.情報処理装置の構成〕
次に、図3を用いて、実施形態に係る情報処理装置100の構成について説明する。図3は、実施形態に係る情報処理装置の構成例を示す図である。図3に示すように、情報処理装置100は、通信部110と、記憶部120と、制御部130とを有する。なお、情報処理装置100は、情報処理装置100の管理者等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を表示するための表示部(例えば、液晶ディスプレイ等)を有してもよい。
[3. Information processing device configuration]
Next, the configuration of the
(通信部110)
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部110は、ネットワーク(例えば図2中のネットワークN)と有線または無線で接続され、IoT機器10やサービス提供装置50との間で情報の送受信を行う。
(Communication unit 110)
The communication unit 110 is realized by, for example, a NIC (Network Interface Card) or the like. Then, the communication unit 110 is connected to the network (for example, the network N in FIG. 2) by wire or wirelessly, and transmits / receives information to / from the
(記憶部120)
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。実施形態に係る記憶部120は、図3に示すように、商品情報記憶部121と、インデックス情報記憶部122と、グラフ情報記憶部123と、モデル情報記憶部124と、在庫情報記憶部125と、ユーザ情報記憶部126とを有する。
(Memory unit 120)
The
(商品情報記憶部121)
実施形態に係る商品情報記憶部121は、商品(オブジェクト)に関する各種情報を記憶する。例えば、商品情報記憶部121は、商品IDやベクトルデータを記憶する。図4は、実施形態に係る商品情報記憶部の一例を示す図である。図4に示す商品情報記憶部121は、「商品ID」、「商品」、「商品情報」、「ベクトル情報」といった項目が含まれる。
(Product information storage unit 121)
The product
「商品ID」は、商品(オブジェクト)を識別するための識別情報を示す。また、「商品」は、商品IDにより識別される商品の具体的な名称や内容等を示す。なお、図4の例では、商品を「商品#1」といった抽象的な符号で示すが、各商品は、どのような商品であるかを示す情報や住所や緯度経度等の位置情報等が含まれてもよい。
The "product ID" indicates identification information for identifying a product (object). Further, the "product" indicates a specific name, content, or the like of the product identified by the product ID. In the example of FIG. 4, the product is indicated by an abstract code such as "
「商品情報」は、商品IDにより識別される商品に関する情報を示す。なお、図4の例では、商品情報を「GIN1」といった抽象的な符号で示すが、各商品情報は、商品IDにより識別される商品カテゴリ、画像情報、製造元、及びサイズ等の種々の商品に関する情報を含む。「ベクトル情報」とは、商品IDにより識別される商品(オブジェクト)に対応するベクトル情報を示す。すなわち、図4の例では、商品(オブジェクト)を識別する商品IDに対して、オブジェクトに対応するベクトルデータ(ベクトル情報)が対応付けられて登録されている。 "Product information" indicates information about a product identified by a product ID. In the example of FIG. 4, the product information is indicated by an abstract code such as "GIN1", but each product information relates to various products such as a product category, image information, manufacturer, and size identified by the product ID. Contains information. The "vector information" indicates the vector information corresponding to the product (object) identified by the product ID. That is, in the example of FIG. 4, the vector data (vector information) corresponding to the object is associated and registered with the product ID that identifies the product (object).
例えば、図4の例では、商品ID「GD1」により識別される商品(オブジェクト)は、「10,24,54,2...」の多次元(N次元)のベクトル情報が対応付けられることを示す。例えば、商品#1については、モデルM1等により、商品#1の特徴を示す「10,24,54,2...」の多次元(N次元)のベクトル情報が商品情報GIN1から抽出されたことを示す。
For example, in the example of FIG. 4, the product (object) identified by the product ID “GD1” is associated with multidimensional (N-dimensional) vector information of “10, 24, 54, 2 ...”. Is shown. For example, for the
なお、商品情報記憶部121は、上記に限らず、目的に応じて種々の情報を記憶してもよい。
The product
(インデックス情報記憶部122)
実施形態に係るインデックス情報記憶部122は、インデックスに関する各種情報を記憶する。図5は、実施形態に係るインデックス情報記憶部の一例を示す図である。具体的には、図5の例では、インデックス情報記憶部122は、ツリー構造のインデックス情報を示す。図5の例では、インデックス情報記憶部122は、「ルート階層」、「第1階層」、「第2階層」、「第3階層」等といった項目が含まれる。なお、「第1階層」〜「第3階層」に限らず、インデックスの階層数に応じて、「第4階層」、「第5階層」、「第6階層」等が含まれてもよい。
(Index information storage unit 122)
The index
「ルート階層」は、インデックスを用いた起点ノードの決定の開始点となるルート(最上位)の階層を示す。「第1階層」は、インデックスの第1階層に属するノード(節点またはグラフ情報中のベクトル)を識別(特定)する情報が格納される。「第1階層」に格納されるノードは、インデックスの根(ルート)に直接結ばれる階層に対応するノードとなる。 The "root hierarchy" indicates a hierarchy of routes (top level) that is a starting point for determining a starting node using an index. The "first layer" stores information for identifying (identifying) a node (node or vector in graph information) belonging to the first layer of the index. The node stored in the "first layer" is a node corresponding to the layer directly connected to the root of the index.
「第2階層」は、インデックスの第2階層に属するノード(節点またはグラフ情報中のベクトル)を識別(特定)する情報が格納される。「第2階層」に格納されるノードは、第1階層のノードに結ばれる直下の階層に対応するノードとなる。「第3階層」は、インデックスの第3階層に属するノード(節点またはグラフ情報中のベクトル)を識別(特定)する情報が格納される。「第3階層」に格納されるノードは、第2階層のノードに結ばれる直下の階層に対応するノードとなる。 The "second layer" stores information for identifying (identifying) a node (node or vector in graph information) belonging to the second layer of the index. The node stored in the "second layer" is a node corresponding to the immediately lower layer connected to the node of the first layer. The "third layer" stores information for identifying (identifying) a node (node or vector in graph information) belonging to the third layer of the index. The node stored in the "third layer" is a node corresponding to the immediately lower layer connected to the node of the second layer.
例えば、図5に示す例においては、インデックス情報記憶部122には、図1中のインデックス情報IND11に対応する情報が記憶される。例えば、インデックス情報記憶部122は、第1階層のノードが、節点VT1〜VT3等であることを示す。また、各節点の下の括弧内の数値は、各節点に対応するベクトルの値を示す。
For example, in the example shown in FIG. 5, the index
また、例えば、インデックス情報記憶部122は、節点VT2の直下の第2階層のノードが、節点VT2−1〜VT2−4であることを示す。また、例えば、インデックス情報記憶部122は、節点VT2−2の直下の第3階層のノードが、ノードN35、ノードN451、ノードN693のグラフ情報GR11中のノード(ベクトル)であることを示す。
Further, for example, the index
なお、インデックス情報記憶部122は、上記に限らず、目的に応じて種々の情報を記憶してもよい。
The index
(グラフ情報記憶部123)
実施形態に係るグラフ情報記憶部123は、グラフ情報に関する各種情報を記憶する。図6は、実施形態に係るグラフ情報記憶部の一例を示す図である。図6の例では、グラフ情報記憶部123は、「ノードID」、「商品ID」、および「エッジ情報」といった項目を有する。また、「エッジ情報」には、「エッジID」や「参照先」といった情報が含まれる。
(Graph information storage unit 123)
The graph
「ノードID」は、グラフデータにおける各ノード(対象)を識別するための識別情報を示す。また、「商品ID」は、商品(オブジェクト)を識別するための識別情報を示す。 The "node ID" indicates identification information for identifying each node (target) in the graph data. Further, the "product ID" indicates identification information for identifying a product (object).
また、「エッジ情報」は、対応するノードに接続されるエッジに関する情報を示す。図6の例では、「エッジ情報」は、エッジが有向エッジである場合を示し、対応するノードから出力される出力エッジに関する情報を示す。また、「エッジID」は、ノード間を連結するエッジを識別するための識別情報を示す。また、「参照先」は、エッジにより連結された参照先(ノード)を示す情報を示す。すなわち、図6の例では、ノードを識別するノードIDに対して、そのノードに対応するオブジェクト(対象)を識別する情報やそのノードからの有向エッジ(出力エッジ)が連結される参照先(ノード)が対応付けられて登録されている。 Further, "edge information" indicates information about the edge connected to the corresponding node. In the example of FIG. 6, “edge information” indicates a case where the edge is a directed edge, and indicates information about an output edge output from the corresponding node. Further, the "edge ID" indicates identification information for identifying an edge connecting the nodes. Further, "reference destination" indicates information indicating a reference destination (node) connected by an edge. That is, in the example of FIG. 6, the reference destination (output edge) to which the information for identifying the object (target) corresponding to the node and the directed edge (output edge) from the node are concatenated with respect to the node ID for identifying the node. Node) is associated and registered.
例えば、図6の例では、ノードID「N1」により識別されるノード(ベクトル)は、商品ID「GD1」により識別される商品(オブジェクト)に対応することを示す。また、ノードID「N1」により識別されるノードからは、エッジID「E11」により識別されるエッジが、ノードID「N25」により識別されるノード(ベクトル)に連結されることを示す。すなわち、図6の例では、ノードID「N1」により識別されるノード(ベクトル)からはノードID「N25」により識別されるノード(ベクトル)に辿ることができることを示す。 For example, in the example of FIG. 6, it is shown that the node (vector) identified by the node ID “N1” corresponds to the product (object) identified by the product ID “GD1”. Further, from the node identified by the node ID "N1", it is shown that the edge identified by the edge ID "E11" is connected to the node (vector) identified by the node ID "N25". That is, in the example of FIG. 6, it is shown that the node (vector) identified by the node ID “N1” can be traced to the node (vector) identified by the node ID “N25”.
なお、グラフ情報記憶部123は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、グラフ情報記憶部123は、各ノード(ベクトル)間を連結するエッジの長さが記憶されてもよい。すなわち、グラフ情報記憶部123は、各ノード(ベクトル)間の距離を示す情報が記憶されてもよい。
The graph
(モデル情報記憶部124)
実施形態に係るモデル情報記憶部124は、モデルに関する情報を記憶する。例えば、モデル情報記憶部124は、生成処理により生成されたモデル情報(モデルデータ)を記憶する。図7は、実施形態に係るモデル情報記憶部の一例を示す図である。図7に示すモデル情報記憶部124は、「モデルID」、「用途」、「モデルデータ」といった項目が含まれる。なお、図7では、モデルM1、M2のみを図示するが、M21、M22等、各用途(予測の対象)に応じて多数のモデル情報が記憶されてもよい。
(Model information storage unit 124)
The model
「モデルID」は、モデルを識別するための識別情報を示す。例えば、モデルID「M1」により識別されるモデルは、図1の例に示したモデルM1に対応する。「用途」は、対応するモデルの用途を示す。また、「モデルデータ」は、対応付けられた対応するモデルのデータを示す。例えば、「モデルデータ」には、各層におけるノードと、各ノードが採用する関数と、ノードの接続関係と、ノード間の接続に対して設定される接続係数とを含む情報が含まれる。 The "model ID" indicates identification information for identifying the model. For example, the model identified by the model ID "M1" corresponds to the model M1 shown in the example of FIG. "Use" indicates the use of the corresponding model. Further, the "model data" indicates the data of the corresponding corresponding model associated with the model data. For example, "model data" includes information including nodes in each layer, functions adopted by each node, connection relationships of the nodes, and connection coefficients set for connections between the nodes.
例えば、図7に示す例において、モデルID「M1」により識別されるモデル(モデルM1)は、用途が「特徴抽出(商品)」であり、入力された商品情報からの特徴の抽出に用いられることを示す。また、モデルM1のモデルデータは、モデルデータMDT1であることを示す。 For example, in the example shown in FIG. 7, the model (model M1) identified by the model ID "M1" has a purpose of "feature extraction (product)" and is used for extracting features from the input product information. Show that. Further, it is shown that the model data of the model M1 is the model data MDT1.
モデルM1(モデルデータMDT1)は、所定の商品の商品情報(商品データ)が入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第1要素と、第1要素と第1要素の重みとに基づいて値が算出される第2要素と、を含み、入力層に入力された商品情報に対し、出力層以外の各層に属する各要素を第1要素として、第1要素と第1要素の重みとに基づく演算を行うことにより、入力層に入力される情報と同様の情報を出力層から出力するよう、コンピュータを機能させるためのモデルである。 The model M1 (model data MDT1) is an input layer into which product information (product data) of a predetermined product is input, an output layer, and any layer from the input layer to the output layer, which is a layer other than the output layer. Including the first element belonging to the above and the second element whose value is calculated based on the weights of the first element and the first element, and for the product information input to the input layer, to each layer other than the output layer. By performing an operation based on the first element and the weight of the first element with each element to which it belongs as the first element, the computer functions to output the same information as the information input to the input layer from the output layer. Is a model for.
また、モデルM1、M2等がDNN(Deep Neural Network)等、1つまたは複数の中間層を有するニューラルネットワークで実現されるとする。この場合、例えば、モデルM1、M2が含む第1要素は、入力層または中間層が有するいずれかのノードに対応する。また、第2要素は、第1要素と対応するノードから値が伝達されるノードである次段のノードに対応する。また、第1要素の重みは、第1要素と対応するノードから第2要素と対応するノードに伝達される値に対して考慮される重みである接続係数に対応する。 Further, it is assumed that the models M1, M2 and the like are realized by a neural network having one or a plurality of intermediate layers such as a DNN (Deep Neural Network). In this case, for example, the first element included in the models M1 and M2 corresponds to any node of the input layer or the intermediate layer. Further, the second element corresponds to the node of the next stage, which is the node to which the value is transmitted from the node corresponding to the first element. Further, the weight of the first element corresponds to a connection coefficient which is a weight considered for the value transmitted from the node corresponding to the first element to the node corresponding to the second element.
ここで、モデルM21、M22等が「y=a1*x1+a2*x2+・・・+ai*xi」で示す回帰モデルで実現されるとする。この場合、例えば、モデルM21、M22が含む第1要素は、x1やx2等といった入力データ(xi)に対応する。また、第1要素の重みは、xiに対応する係数aiに対応する。ここで、回帰モデルは、入力層と出力層とを有する単純パーセプトロンと見做すことができる。各モデルを単純パーセプトロンと見做した場合、第1要素は、入力層が有するいずれかのノードに対応し、第2要素は、出力層が有するノードと見做すことができる。 Here, it is assumed that the models M21, M22 and the like are realized by the regression model represented by "y = a1 * x1 + a2 * x2 + ... + ai * xi". In this case, for example, the first element included in the models M21 and M22 corresponds to input data (xi) such as x1 and x2. Further, the weight of the first element corresponds to the coefficient ai corresponding to xi. Here, the regression model can be regarded as a simple perceptron having an input layer and an output layer. When each model is regarded as a simple perceptron, the first element corresponds to any node of the input layer, and the second element can be regarded as the node of the output layer.
なお、モデル情報記憶部124は、上記に限らず、目的に応じて種々のモデル情報を記憶してもよい。
The model
(在庫情報記憶部125)
実施形態に係る在庫情報記憶部125は、商品の在庫に関する各種情報を記憶する。図8は、実施形態に係る在庫情報記憶部の一例を示す図である。例えば、在庫情報記憶部125は、オンラインショッピング等の電子商取引サービスにおいて販売される商品に関する情報等を記憶する。図8に示す在庫情報記憶部125には、「商品」、「在庫情報」といった項目が含まれる。
(Inventory information storage unit 125)
The inventory
「商品」は、商品IDにより識別される商品の具体的な名称や内容等を示す。また、「商品」には、商品ID等の商品を識別するための識別情報が記憶されてもよい。例えば、「在庫情報」は、対応する商品の在庫状況を示す。図8の例では、「在庫情報」は、対応する商品の在庫の有無のみが記憶された場合を図示するが、「在庫情報」には、在庫数等、商品の数に関する情報が記憶されてもよい。 The "product" indicates a specific name, content, or the like of the product identified by the product ID. In addition, identification information for identifying a product such as a product ID may be stored in the "product". For example, "inventory information" indicates the inventory status of the corresponding product. In the example of FIG. 8, the "inventory information" illustrates the case where only the presence or absence of inventory of the corresponding product is stored, but the "inventory information" stores information related to the number of products such as the number of stocks. May be good.
図8に示す例において、商品Xは、在庫が無いこと示す。例えば、商品Xは、電子商取引サービスにおいて在庫が無いこと示す。また、図8に示す例において、商品#500は、在庫が有ることを示す。例えば、商品#500は、電子商取引サービスにおいて在庫が有ることを示す。 In the example shown in FIG. 8, the product X is shown to be out of stock. For example, the product X indicates that it is out of stock in the electronic commerce service. Further, in the example shown in FIG. 8, the product # 500 indicates that the product is in stock. For example, commodities # 500 indicate that they are in stock in an e-commerce service.
なお、在庫情報記憶部125は、上記に限らず、目的に応じて種々の情報を記憶してもよい。
The inventory
(ユーザ情報記憶部126)
実施形態に係るユーザ情報記憶部126は、ユーザに関する情報を記憶する。図9は、実施形態に係るユーザ情報記憶部の一例を示す図である。図9には、ユーザ情報記憶部126に記憶されるユーザに関する情報の一例を示す。例えば、ユーザ情報記憶部126は、ユーザが利用するIoT機器に関する情報を記憶する。図9に示すように、ユーザ情報記憶部126は、ユーザが利用するIoT機器に関する情報として、「ユーザID」、「住所」、「IoT機器1」といった項目が含まれる。なお、図9の例では、説明を簡単にするために、「IoT機器1」のみを図示するが、ユーザ情報記憶部126は、「IoT機器2」、「IoT機器3」等、ユーザが利用するIoT機器の数に応じて、各IoT機器の情報を記憶してもよい。
(User information storage unit 126)
The user
「ユーザID」は、ユーザを識別するための識別情報を示す。例えば、ユーザID「U1」により識別されるユーザは、図1の例に示すユーザU1に対応する。また、「住所」は、ユーザの自宅等の住所(居住地)に関する情報を示す。なお、図9の例では、「住所」に記憶される情報を「AD1」等の符号で図示するが、「住所」には、「東京都○○区×××アパートA201号室」等の具体的な日時が記憶されるものとする。 The "user ID" indicates identification information for identifying a user. For example, the user identified by the user ID "U1" corresponds to the user U1 shown in the example of FIG. Further, the "address" indicates information regarding the address (residential place) of the user's home or the like. In the example of FIG. 9, the information stored in the "address" is illustrated by a code such as "AD1", but the "address" is specifically such as "Apartment A201, XX-ku, Tokyo". Date and time shall be memorized.
また、「IoT機器1」には、「種別」や「ID」といった項目が含まれる。なお、「IoT機器1」のみを図示するが、例えば、対応するユーザが利用するIoT機器が8つである場合、「IoT機器1」〜「IoT機器8」まで利用するIoT機器に関する情報が記憶される。すなわち、対応するユーザが利用するIoT機器が8つである場合、ユーザが利用する8つのIoT機器に関する情報が記憶される。「IoT機器1」の「種別」は、ユーザが利用するIoT機器の種別を示す。また、「IoT機器1」の「ID」は、対応するIoT機器を識別するための識別情報を示す。例えば、「IoT機器1」の「ID」は、対応するユーザが利用するIoT機器を識別するための識別情報を示す。
Further, the "
例えば、図9に示す例において、ユーザID「U1」により識別されるユーザ(ユーザU1)は、住所が「AD1」であり、性別が「女性」であることを示す。また、図9に示す例において、ユーザU1は、種別「冷蔵庫」のIoT機器を利用しており、ユーザU1が利用するIoT機器(冷蔵庫)のIDが「TID11」であることを示す。また、例えば、図8に示す例において、ユーザID「U2」により識別されるユーザ(ユーザU2)は、住所が「AD2」であることを示す。例えば、ユーザU2は、種別「スマートフォン」のIoT機器を利用しており、ユーザU2が利用するIoT機器(スマートフォン)のIDが「TID21」であることを示す。 For example, in the example shown in FIG. 9, the user (user U1) identified by the user ID "U1" has an address of "AD1" and a gender of "female". Further, in the example shown in FIG. 9, the user U1 uses the IoT device of the type "refrigerator", and the ID of the IoT device (refrigerator) used by the user U1 is "TID11". Further, for example, in the example shown in FIG. 8, the user (user U2) identified by the user ID "U2" indicates that the address is "AD2". For example, the user U2 uses an IoT device of the type "smartphone", and the ID of the IoT device (smartphone) used by the user U2 is "TID21".
なお、ユーザ情報記憶部126は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、ユーザ情報記憶部126は、性別、年齢、勤務地、興味・関心、氏名、家族構成、収入等の情報を記憶してもよい。例えば、ユーザ情報記憶部126は、各IoT機器が利用できるサービスが異なる場合、IoT機器ごとに利用するサービスに関する情報を関連付けて記憶してもよい。
The user
(制御部130)
図3の説明に戻って、制御部130は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、情報処理装置100内部の記憶装置に記憶されている各種プログラム(情報処理プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。また、制御部130は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。制御部130は、モデル情報記憶部124に記憶されているモデルM1、M2等に従った情報処理により、商品の商品情報(商品データ)が入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第1要素と、第1要素と第1要素の重みとに基づいて値が算出される第2要素と、を含み、入力層に入力された商品情報に対し、出力層以外の各層に属する各要素を第1要素として、第1要素と第1要素の重みとに基づく演算を行うことにより、入力層に入力される情報と同様の情報を出力層から出力する。
(Control unit 130)
Returning to the description of FIG. 3, the
図3に示すように、制御部130は、取得部131と、生成部132と、決定部133と、抽出部134と、送信部135とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部130の内部構成は、図3に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
As shown in FIG. 3, the
(取得部131)
取得部131は、各種情報を取得する。例えば、取得部131は、記憶部120から各種情報を取得する。例えば、取得部131は、商品情報記憶部121や、インデックス情報記憶部122や、グラフ情報記憶部123や、モデル情報記憶部124や、在庫情報記憶部125や、ユーザ情報記憶部126等から各種情報を取得する。また、取得部131は、各種情報を外部の情報処理装置から取得する。取得部131は、IoT機器10やサービス提供装置50から各種情報を取得する。
(Acquisition unit 131)
The
取得部131は、複数の商品の各々に対応する複数のノードが、複数の商品の類似性に応じて連結されたグラフ情報と、一の商品の購入を要求する注文情報を取得する。取得部131は、複数の商品の各々の特徴を示す複数のベクトルが類似性に応じて連結されたグラフ情報を取得する。取得部131は、複数の商品の各々に対応する複数のベクトルが類似性に応じて連結されたグラフ情報と、一の商品に関する商品情報を取得する。また、取得部131は、複数の商品の各々の特徴を示す複数のベクトルが類似性に応じて連結されたグラフ情報を取得する。また、取得部131は、所定のモデルを用いて複数の商品の各々から抽出された特徴量を要素とする複数のベクトルが、類似性に応じて連結されたグラフ情報を取得する。
The
また、取得部131は、複数の商品に関する情報を所定のモデルに入力することにより、抽出される複数の商品の各々の特徴量を要素とする複数のベクトルが、類似性に応じて連結されたグラフ情報を取得する。また、取得部131は、所定のIoT機器10である要求元から注文情報を取得する。また、取得部131は、要求元から類似商品を購入するかどうかを示す回答情報を取得する。
Further, by inputting information about a plurality of products into a predetermined model, the
例えば、取得部131は、データ検索の対象となる複数のノード(ベクトル)を取得する。例えば、取得部131は、複数のノードと、複数のノードの各々を連結する複数の有向エッジを含む有向エッジ群を取得する。
For example, the
例えば、取得部131は、外部の情報処理装置からグラフ情報(グラフデータ)を取得する。例えば、取得部131は、グラフ情報記憶部123からグラフ情報を取得する。例えば、取得部131は、グラフ情報を取得する。図1の例では、取得部131は、グラフ情報GR11を取得する。
For example, the
例えば、取得部131は、外部の情報処理装置からインデックス情報(インデックスデータ)を取得する。例えば、取得部131は、インデックス情報記憶部122からインデックス情報を取得する。例えば、取得部131は、木構造型のインデックス情報を取得する。図1の例では、取得部131は、インデックス情報IND11を取得する。
For example, the
また、取得部131は、ユーザが利用するIoT機器10から一の商品に関する商品情報を取得する。例えば、取得部131は、検索クエリとして、一の商品の商品データを取得する。例えば、取得部131は、商品に関する検索クエリを取得する。取得部131は、ユーザU1が利用するIoT機器10から商品Xに関する商品情報GIN11を取得する。
In addition, the
例えば、取得部131は、一の商品に関する商品情報(商品データ)を取得する。例えば、取得部131は、IoT機器10から商品Xに関する商品情報GIN11を取得する。例えば、取得部131は、グラフ情報記憶部123から商品に関するグラフ情報GR11を取得する。また、例えば、取得部131は、インデックス情報記憶部122(図5参照)から、グラフ情報GR11における検索の起点となるノード(起点ベクトル)の決定に用いるインデックス情報IND11を取得する。
For example, the
例えば、取得部131は、一の商品の注文情報と一の商品に関する商品情報(商品データ)を取得する。例えば、取得部131は、IoT機器10から商品Xの注文情報と商品Xに関する商品情報GIN11を取得する。なお、サービス提供装置50が電子商取引サービスを提供する場合、取得部131は、サービス提供装置50がIoT機器10から取得した商品Xの注文情報や商品Xの商品情報GIN11をサービス提供装置50から取得してもよい。
For example, the
図1の例では、取得部131は、ユーザU1が商品#451を注文することを示す回答情報を取得する。取得部131は、IoT機器10から商品#451を注文することを示す回答情報を取得する。
In the example of FIG. 1, the
(生成部132)
生成部132は、各種情報を生成する。例えば、生成部132は、商品情報記憶部121に記憶された学習データ(商品情報)を用いて、モデル情報記憶部124に示すようなモデルを生成する。例えば、生成部132は、取得部131により取得された学習データに基づいて、入力した商品情報と同様の情報を出力するモデル(オートエンコーダ)を生成する。例えば、生成部132は、入力する商品情報自体を正解情報として、入力した商品情報と同様の情報を出力するモデル(オートエンコーダ)を生成する。
(Generation unit 132)
The generation unit 132 generates various information. For example, the generation unit 132 uses the learning data (product information) stored in the product
例えば、生成部132は、モデルM1等を生成し、生成したモデルM1等をモデル情報記憶部124に格納する。なお、生成部132は、いかなる学習アルゴリズムを用いてモデルM1を生成してもよい。例えば、生成部132は、ニューラルネットワーク(neural network)等の学習アルゴリズムを用いてモデルM1を生成する。一例として、生成部132がニューラルネットワークを用いてモデルM1等を生成する場合、モデルM1等は、一以上のニューロンを含む入力層と、一以上のニューロンを含む中間層と、一以上のニューロンを含む出力層とを有する。
For example, the generation unit 132 generates the model M1 and the like, and stores the generated model M1 and the like in the model
生成部132は、商品の商品情報(商品データ)が入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第1要素と、第1要素と第1要素の重みとに基づいて値が算出される第2要素と、を含み、入力層に入力された商品情報に対し、出力層以外の各層に属する各要素を第1要素として、第1要素と第1要素の重みとに基づく演算を行うことにより、入力層に入力される情報と同様の情報を出力層から出力するモデルを生成する。 The generation unit 132 includes an input layer into which product information (product data) of a product is input, an output layer, and a first element which is any layer from the input layer to the output layer and belongs to a layer other than the output layer. , A second element whose value is calculated based on the first element and the weight of the first element, and each element belonging to each layer other than the output layer with respect to the product information input to the input layer is the first. By performing an operation based on the first element and the weight of the first element as elements, a model that outputs the same information as the information input to the input layer from the output layer is generated.
例えば、生成部132は、学習データに基づいてモデルを生成する。例えば、生成部132は、学習データに基づいてモデルを生成する。例えば、生成部132は、商品情報記憶部121中の商品情報GIN1、GIN2等を学習データ(教師データ)として、学習を行なうことにより、モデルを生成する。
For example, the generation unit 132 generates a model based on the training data. For example, the generation unit 132 generates a model based on the training data. For example, the generation unit 132 generates a model by learning using the product information GIN1, GIN2, etc. in the product
例えば、生成部132は、商品情報GIN1が入力された場合に、モデルM1が商品情報GIN1と同様の情報を出力するように、学習処理を行う。例えば、生成部132は、商品情報GIN2が入力された場合に、モデルM1が商品情報GIN2と同様の情報を出力するように、学習処理を行う。生成部132は、モデルを生成し、生成したモデルをモデル情報記憶部124に格納する。
For example, the generation unit 132 performs a learning process so that when the product information GIN1 is input, the model M1 outputs the same information as the product information GIN1. For example, the generation unit 132 performs a learning process so that when the product information GIN2 is input, the model M1 outputs the same information as the product information GIN2. The generation unit 132 generates a model and stores the generated model in the model
なお、生成部132は、オートエンコーダとしてのM1に限らず、種々の学習アルゴリズムを用いて商品に対応するモデルM21等を生成してもよい。例えば、生成部132は、ニューラルネットワーク(neural network)、サポートベクターマシン(SVM)、クラスタリング、強化学習等の学習アルゴリズムを用いてモデルM21等を生成する。一例として、生成部132がニューラルネットワークを用いてモデルM21等を生成する場合、モデルM21等は、一以上のニューロンを含む入力層と、一以上のニューロンを含む中間層と、一以上のニューロンを含む出力層とを有する。 The generation unit 132 is not limited to M1 as an autoencoder, and may generate a model M21 or the like corresponding to a product by using various learning algorithms. For example, the generation unit 132 generates a model M21 or the like by using a learning algorithm such as a neural network, a support vector machine (SVM), clustering, or reinforcement learning. As an example, when the generation unit 132 generates a model M21 or the like using a neural network, the model M21 or the like includes an input layer containing one or more neurons, an intermediate layer containing one or more neurons, and one or more neurons. It has an output layer including.
図1の例では、生成部132は、商品データの特徴を抽出するモデルを用いて各商品の商品データからN次元ベクトルを生成する。生成部132は、モデル情報記憶部124(図7)に示すモデルM1を用いて、各商品の商品データからベクトルを生成する。 In the example of FIG. 1, the generation unit 132 generates an N-dimensional vector from the product data of each product using a model that extracts the features of the product data. The generation unit 132 generates a vector from the product data of each product by using the model M1 shown in the model information storage unit 124 (FIG. 7).
また、生成部132は、一の商品に対応する商品データからグラフ情報の探索に用いるベクトルを生成する。図1の例では、生成部132は、処理群PS11に示すような処理により、商品Xに対応するベクトルを生成する。生成部132は、商品Xに関する商品情報GIN11をモデルM1に入力する。具体的には、生成部132は、商品Xの地盤、地形、海域、土壌、及び天候等の情報を含む商品情報GIN11をモデルM1に入力する。そして、生成部132は、商品情報GIN11の入力後のモデルM1中の情報を用いて、ベクトルを生成する。例えば、生成部132は、商品情報GIN11が入力されたモデルM1中の各要素を用いて、ベクトルデータを生成する。 Further, the generation unit 132 generates a vector used for searching graph information from the product data corresponding to one product. In the example of FIG. 1, the generation unit 132 generates the vector corresponding to the product X by the processing as shown in the processing group PS11. The generation unit 132 inputs the product information GIN11 regarding the product X into the model M1. Specifically, the generation unit 132 inputs the product information GIN 11 including information such as the ground, topography, sea area, soil, and weather of the product X into the model M1. Then, the generation unit 132 generates a vector by using the information in the model M1 after the input of the product information GIN11. For example, the generation unit 132 generates vector data using each element in the model M1 in which the product information GIN 11 is input.
図1の例では、生成部132は、商品情報GIN11が入力されたモデルM1中の各要素の値を用いて、ベクトルVD11を生成する。例えば、生成部132は、商品Xの商品情報GIN11が入力された場合における、モデルM1のニューロンNL1に対応する値VE1(図12参照)やニューロンNL2に対応する値VE2(図12参照)を用いて、ベクトルを生成する。例えば、生成部132は、商品Xの商品情報GIN11が入力された場合に、算出されるニューロンNL1に対応する値VE1をベクトルVD11の1次元目の要素として抽出してもよい。また、例えば、生成部132は、商品の商品データが入力された場合に、算出されるニューロンNL2に対応する値VE2をベクトルVD11の2次元目の要素として、ベクトルVD11を生成する。図1の例では、生成部132は、1次元目の要素が「35」であり、2次元目の要素が「63」であるようなベクトルVD11を生成する。 In the example of FIG. 1, the generation unit 132 generates the vector VD11 by using the value of each element in the model M1 in which the product information GIN11 is input. For example, the generation unit 132 uses the value VE1 (see FIG. 12) corresponding to the neuron NL1 of the model M1 and the value VE2 (see FIG. 12) corresponding to the neuron NL2 when the product information GIN11 of the product X is input. To generate a vector. For example, the generation unit 132 may extract the value VE1 corresponding to the calculated neuron NL1 as the first-dimensional element of the vector VD11 when the product information GIN11 of the product X is input. Further, for example, the generation unit 132 generates the vector VD11 by using the value VE2 corresponding to the calculated neuron NL2 as the second-dimensional element of the vector VD11 when the product data of the product is input. In the example of FIG. 1, the generation unit 132 generates the vector VD11 such that the element of the first dimension is “35” and the element of the second dimension is “63”.
(決定部133)
決定部133は、各種情報を決定する。決定部133は、起点ノードの決定に用いるインデックス情報に基づいて、起点ノードを決定する。決定部133は、木構造型のインデックス情報に基づいて、起点ノードを決定する。例えば、決定部133は、取得部131により取得された商品情報と、グラフ情報の検索の起点となる起点ベクトルに関する情報とに基づいて、起点ベクトルを決定する。例えば、決定部133は、商品情報と、グラフ情報の検索の起点ベクトルの決定の基準となる情報とに基づいて、起点ベクトルを決定する。また、決定部133は、起点ベクトルの決定に用いるインデックス情報に基づいて、起点ベクトルを決定する。また、決定部133は、木構造型のインデックス情報に基づいて、起点ベクトルを決定する。また、決定部133は、クエリに対応する商品(クエリ商品)がグラフ上に存在する場合、そのクエリ商品を起点ノードに決定する。例えば、決定部133は、グラフ情報中に一の商品に対応するノードが含まれる場合、当該ノードを起点ノードとして決定する。
(Decision unit 133)
The determination unit 133 determines various information. The determination unit 133 determines the origin node based on the index information used for determining the origin node. The determination unit 133 determines the starting node based on the index information of the tree structure type. For example, the determination unit 133 determines the starting point vector based on the product information acquired by the
図1の例では、決定部133は、一の商品(クエリ)に対応する起点ベクトルを決定(特定)するために、インデックス情報IND11を用いる。例えば、決定部133は、商品XのベクトルVD11に対応する起点ベクトルを決定(特定)するために、インデックス情報IND11を用いる。決定部133は、ベクトルVD11とインデックス情報IND11とを用いて、グラフ情報GR11における起点ベクトルを決定する。 In the example of FIG. 1, the determination unit 133 uses the index information IND11 to determine (specify) the origin vector corresponding to one product (query). For example, the determination unit 133 uses the index information IND11 to determine (specify) the origin vector corresponding to the vector VD11 of the product X. The determination unit 133 determines the starting point vector in the graph information GR 11 by using the vector VD11 and the index information IND11.
例えば、決定部133は、図1中のインデックス情報IND11に示すような木構造型のインデックス情報を用いて、グラフ情報GR11における起点ベクトルを決定する。図1の例では、決定部133は、ベクトルVD11を生成した後、インデックス情報IND11を上から下へ辿ることにより、インデックス情報IND11の近傍候補となる起点ベクトルを特定することにより、効率的に検索クエリ(一の商品)に対応する起点ベクトルを決定する。 For example, the determination unit 133 determines the starting point vector in the graph information GR 11 by using the tree-structured index information as shown in the index information IND11 in FIG. In the example of FIG. 1, after generating the vector VD11, the determination unit 133 efficiently searches by tracing the index information IND11 from top to bottom to specify a starting point vector that is a candidate near the index information IND11. Determine the origin vector corresponding to the query (one product).
例えば、決定部133は、インデックス情報IND11をルートRTからリーフノード(グラフ情報GR11中のノード(ベクトル))まで辿ることにより、ベクトルVD11に対応する起点ベクトルを決定する。図1の例では、決定部133は、インデックス情報IND11をルートRTからノードN451まで辿ることにより、ノードN451を起点ベクトルとして決定する。 For example, the determination unit 133 determines the starting point vector corresponding to the vector VD11 by tracing the index information IND11 from the root RT to the leaf node (node (vector) in the graph information GR11). In the example of FIG. 1, the determination unit 133 determines the node N451 as a starting point vector by tracing the index information IND11 from the root RT to the node N451.
例えば、決定部133は、抽出した類似商品に基づいて推奨商品を決定する。例えば、決定部133は、商品XのベクトルVD11に最も類似するノードN451に対応する商品#451を推奨商品に決定する。例えば、決定部133は、商品XのベクトルVD11と、各類似商品のベクトルとを比較することにより、商品Xに最も類似する商品を決定(特定)してもよい。なお、決定部133は、1つの商品に限らず、複数個の商品を推奨商品に決定してもよい。 For example, the determination unit 133 determines a recommended product based on the extracted similar products. For example, the determination unit 133 determines the product # 451 corresponding to the node N451 most similar to the vector VD11 of the product X as the recommended product. For example, the determination unit 133 may determine (specify) the product most similar to the product X by comparing the vector VD11 of the product X with the vector of each similar product. The determination unit 133 is not limited to one product, and may determine a plurality of products as recommended products.
(抽出部134)
抽出部134は、各種情報を抽出する。抽出部134は、取得部131により取得されたグラフ情報の複数のノードのうち、所定の基準に基づいて決定されたグラフ情報の検索の起点となる起点ノードを起点として、グラフ情報を検索することにより、複数の商品のうち、一の商品に類似する商品である類似商品を抽出する。抽出部134は、取得部131により取得されたグラフ情報の複数のベクトルのうち、所定の基準に基づいて決定されたグラフ情報の検索の起点となる起点ベクトルを起点としてグラフ情報を検索することにより、複数の商品のうち、一の商品に類似する商品である類似商品を抽出する。例えば、抽出部134は、決定部133により決定された起点ベクトルを起点としてグラフ情報を検索することにより、複数の商品のうち、一の商品に類似する商品である類似商品を抽出する。例えば、抽出部134は、グラフ情報記憶部123に記憶された各ノード(ベクトル)間を連結するエッジの長さ(距離)の情報を用いてもよいし、各ノードのベクトル情報から各ノード(ベクトル)間を連結するエッジの長さ(距離)の情報を算出し、算出した長さ(距離)の情報を用いてもよい。抽出部134は、決定部133により決定された起点ベクトルを起点として、類似商品を抽出する。また、抽出部134は、一の商品の在庫が無い場合、一の商品の類似商品を抽出する。また、抽出部134は、グラフ情報中に一の商品に対応するノードが含まれる場合、当該ノードを起点ノードとして、類似商品を抽出する。また、抽出部134は、一の商品に対応するノードを起点ノードとして類似商品を抽出する場合、一の商品を除く商品を類似商品として抽出する。例えば、抽出部134は、一の商品に対応するノードを起点ノードとして類似商品を抽出する場合、複数の商品を抽出し、複数の商品から一の商品を除いた商品を類似商品として抽出する。
(Extraction unit 134)
The extraction unit 134 extracts various information. The extraction unit 134 searches for graph information from a plurality of nodes of the graph information acquired by the
図1の例では、抽出部134は、商品Xに類似する商品を検索する。例えば、抽出部134は、グラフ情報GR11を検索することにより、商品Xの類似商品を抽出する。抽出部134は、ノードN451の近傍に位置するノードを類似商品として抽出する。例えば、抽出部134は、ノードN451からの距離が近いノードを類似商品として抽出する。例えば、抽出部134は、ノードN451を起点として、エッジを辿ることにより、ノードN451から到達可能なノードを類似商品として抽出する。例えば、抽出部134は、所定数(例えば、2個や10個等)のノードを類似商品として抽出する。例えば、抽出部134は、図13に示すような検索処理により、商品Xの類似商品を抽出する。図1の例では、抽出部134は、ノードN451を起点として、グラフ情報GR11を探索することにより、ノードN451やノードN35を類似商品として抽出する。 In the example of FIG. 1, the extraction unit 134 searches for a product similar to the product X. For example, the extraction unit 134 extracts a similar product of the product X by searching the graph information GR11. The extraction unit 134 extracts a node located in the vicinity of the node N451 as a similar product. For example, the extraction unit 134 extracts a node having a short distance from the node N451 as a similar product. For example, the extraction unit 134 extracts a node reachable from the node N451 as a similar product by tracing the edge starting from the node N451. For example, the extraction unit 134 extracts a predetermined number of nodes (for example, 2 or 10) as similar products. For example, the extraction unit 134 extracts similar products of product X by a search process as shown in FIG. In the example of FIG. 1, the extraction unit 134 extracts the node N451 and the node N35 as similar products by searching the graph information GR11 starting from the node N451.
(送信部135)
送信部135は、各種情報を送信する。例えば、送信部135は、IoT機器10やサービス提供装置50に各種情報を送信する。例えば、送信部135は、IoT機器10やサービス提供装置50に各種情報を配信する。例えば、送信部135は、IoT機器10やサービス提供装置50に各種情報を送信する。送信部135は、抽出部134により抽出された類似商品に基づいて、所定のサービスを提供する。また、送信部135は、類似商品に関する情報提供サービスを提供する。送信部135は、IoT機器10に類似商品に関する情報を送信する。
(Sender 135)
The
送信部135は、抽出部134により抽出された類似商品に基づく推奨情報を、一の商品の購入を要求する要求元へ送信する。また、送信部135は、類似商品の購入を促す推奨情報を要求元へ送信する。例えば、送信部135は、クエリに対応するオブジェクトIDを検索結果として送信する。例えば、送信部135は、抽出部134により選択されたオブジェクトIDをサービス提供装置50へ送信する。送信部135は、抽出部134により選択されたオブジェクトIDをクエリに対応するベクトルを示す情報としてサービス提供装置50に送信する。また、送信部135は、生成部132により生成されたモデルを外部の情報処理装置へ送信してもよい。
The
図1の例では、送信部135は、推奨商品に関する情報(推奨情報)をIoT機器10に送信する。送信部135は、ノードN451に対応する商品#451を示す情報をIoT機器10に送信する。
In the example of FIG. 1, the
また、図1の例では、送信部135は、物流拠点Aである配送センタDB1に配送を指示する。送信部135は、配送センタDB1に商品#451をユーザU1の住所AD1に配送することを指示する。例えば、送信部135は、配送センタDB1の情報処理装置(図示せず)に商品#451をユーザU1の住所AD1に配送することを指示する情報を送信する。
Further, in the example of FIG. 1, the
〔4.情報処理のフロー〕
次に、図10を用いて、実施形態に係る情報処理システム1による情報処理の手順について説明する。図10は、実施形態に係る情報処理の一例を示すフローチャートである。
[4. Information processing flow]
Next, the procedure of information processing by the
図10に示すように、情報処理装置100は、IoT機器10から一の商品の注文情報を取得する(ステップS101)。図1の例では、情報処理装置100は、ユーザU1が利用する冷蔵庫であるIoT機器10(TID11)から商品Xの注文情報と商品Xに関する商品情報GIN11とを取得する。
As shown in FIG. 10, the
そして、情報処理装置100は、一の商品が在庫有りかどうかを判定する(ステップS102)。図1の例では、情報処理装置100は、在庫情報記憶部125に記憶された在庫情報に基づいて、商品Xの在庫が有るかを判定する。例えば、情報処理装置100は、一の商品の在庫が無い場合(ステップS102:No)、ステップS103〜S108の処理を行う。
Then, the
情報処理装置100は、商品に関するグラフ情報を取得する(ステップS103)。例えば、情報処理装置100は、グラフ情報記憶部123から商品に関するグラフ情報GR11を取得する。
The
そして、情報処理装置100は、モデルを用いて一の商品に関する商品データからベクトルを生成する(ステップS104)。図1の例では、情報処理装置100は、モデル情報記憶部124に記憶されたモデルM1を用いて、商品情報GIN11からベクトルVD11を生成する。
Then, the
そして、情報処理装置100は、生成したベクトルとインデックス情報を用いて起点ベクトルを決定する(ステップS105)。図1の例では、情報処理装置100は、ベクトルVD11と、インデックス情報記憶部122に記憶されたインデックス情報IND11とを用いて、起点ベクトルをノードN451に決定する。
Then, the
そして、情報処理装置100は、グラフ情報を検索することにより、一の商品の類似商品を抽出する(ステップS106)。図1の例では、情報処理装置100は、ノードN451を起点として、グラフ情報GR11を探索することにより、ノードN451やノードN35を類似商品として抽出する。
Then, the
そして、情報処理装置100は、類似商品に基づいて推奨商品を決定する(ステップS107)。図1の例では、情報処理装置100は、商品Xのベクトルに最も類似するノードN451に対応する商品#451を推奨商品に決定する。
Then, the
そして、情報処理装置100は、IoT機器へ推奨商品を示す推奨情報を送信する(ステップS108)。図1の例では、情報処理装置100は、ノードN451に対応する商品#451を示す情報を推奨情報としてユーザU1が利用する冷蔵庫であるIoT機器10(TID11)に提供する。
Then, the
一方、情報処理装置100は、一の商品の在庫が有る場合(ステップS102:Yes)、一の商品の注文処理を行う(ステップS109)。例えば、情報処理装置100は、ユーザの口座情報等を用いて一の商品の決済処理を行ったり、一の商品をユーザが指定する住所に配送する手続を行ったりする。
On the other hand, when the
〔5.生成処理のフロー〕
次に、図11を用いて、実施形態に係る情報処理システム1による生成処理の手順について説明する。図11は、実施形態に係る生成処理の一例を示すフローチャートである。
[5. Generation process flow]
Next, the procedure of the generation process by the
図11に示すように、情報処理装置100は、学習データを取得する(ステップS201)。例えば、情報処理装置100は、商品情報記憶部121から学習データを取得する。例えば、情報処理装置100は、商品情報記憶部121から商品情報GIN1、GIN2等を学習データとして取得する。
As shown in FIG. 11, the
その後、情報処理装置100は、学習データに基づきモデルを生成する(ステップS202)。例えば、情報処理装置100は、商品情報記憶部121から学習データを用いてモデルM1を生成する。例えば、情報処理装置100は、入力層に入力される情報(商品データ)と同様の情報(商品データ)を出力層から出力するようにモデルM1を生成する。例えば、情報処理装置100は、商品の商品データを入力とするオートエンコーダとしてのモデルM1を生成する。
After that, the
〔6.検索例〕
ここで、上述したグラフ情報を用いた検索の一例を示す。なお、グラフ情報(グラフデータ)を用いた検索は下記に限らず、種々の手順により行われてもよい。この点について、図13を一例として説明する。図13は、グラフ情報を用いた検索処理の一例を示すフローチャートである。また、以下でいうオブジェクトは、ベクトルやノードと読み替えてもよい。なお、以下では、情報処理装置100が検索処理を行うものとして説明するが、検索処理は他の装置により行われてもよい。例えば、情報処理装置100は、検索クエリとして、一の商品の商品データから生成されたベクトルデータを用いる。例えば、情報処理装置100は、一の商品の商品データから生成されたベクトルデータとインデックス情報とに基づいて決定された起点ベクトルを起点としてグラフデータを検索する。図1の例では、情報処理装置100は、商品XのベクトルVD11とインデックス情報IND11とに基づいて決定された起点ベクトルであるノードN451を起点としてグラフ情報GR11を検索する。
[6. Search example]
Here, an example of a search using the graph information described above is shown. The search using graph information (graph data) is not limited to the following, and may be performed by various procedures. This point will be described with reference to FIG. 13 as an example. FIG. 13 is a flowchart showing an example of a search process using graph information. In addition, the objects referred to below may be read as vectors and nodes. In the following description, it is assumed that the
ここでは、近傍オブジェクト集合N(G,y)は、ノードyに付与されているエッジにより関連付けられている近傍のオブジェクトの集合である。「G」は、所定のグラフデータ(例えば、グラフ情報GR11等)であってもよい。例えば、情報処理装置100は、k近傍検索処理を実行する。
Here, the neighborhood object set N (G, y) is a set of neighborhood objects associated with the edge assigned to the node y. “G” may be predetermined graph data (for example, graph information GR11 or the like). For example, the
例えば、情報処理装置100は、超球の半径rを∞(無限大)に設定し(ステップS300)、既存のオブジェクト集合から部分集合Sを抽出する(ステップS301)。例えば、情報処理装置100は、ルートノード(起点ベクトル)として選択されたオブジェクト(ノード)を部分集合Sとして抽出してもよい。図1の例では、情報処理装置100は、起点ベクトルであるノードN451等を部分集合Sとして抽出してもよい。また、例えば、超球とは、検索範囲を示す仮想的な球である。なお、ステップS301において抽出されたオブジェクト集合Sに含まれるオブジェクトは、同時に検索結果のオブジェクト集合Rの初期集合にも含められる。
For example, the
次に、情報処理装置100は、オブジェクト集合Sに含まれるオブジェクトの中で、検索クエリオブジェクトをyとするとオブジェクトyとの距離が最も短いオブジェクトを抽出し、オブジェクトsとする(ステップS302)。図1の例では、情報処理装置100は、オブジェクト集合Sに含まれるオブジェクトの中で、検索クエリオブジェクトであるベクトルVD11との距離が最も短いオブジェクトを抽出し、オブジェクトsとする。例えば、情報処理装置100は、オブジェクト集合Sに含まれるオブジェクトの中で、ベクトルVD11との距離が最も短いノードN451を抽出し、オブジェクトsとする。例えば、情報処理装置100は、ルートノード(起点ベクトル)として選択されたオブジェクト(ノード)のみがオブジェクト集合Sの要素の場合には、結果的にルートノード(起点ベクトル)がオブジェクトsとして抽出される。次に、情報処理装置100は、オブジェクトsをオブジェクト集合Sから除外する(ステップS303)。
Next, the
次に、情報処理装置100は、オブジェクトsとオブジェクトyとの距離d(s,y)がr(1+ε)を超えるか否かを判定する(ステップS304)。ここで、εは拡張要素であり、r(1+ε)は、探索範囲(この範囲内のノードのみを探索する。検索範囲よりも大きくすることで精度を高めることができる)の半径を示す値である。オブジェクトsとオブジェクトyとの距離d(s,y)がr(1+ε)を超える場合(ステップS304:Yes)、情報処理装置100は、オブジェクト集合Rをオブジェクトyの近傍オブジェクト集合として出力し(ステップS305)、処理を終了する。
Next, the
オブジェクトsと検索クエリオブジェクトyとの距離d(s,y)がr(1+ε)を超えない場合(ステップS304:No)、情報処理装置100は、オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトの中からオブジェクト集合Cに含まれないオブジェクトを一つ選択し、選択したオブジェクトuを、オブジェクト集合Cに格納する(ステップS306)。オブジェクト集合Cは、重複検索を回避するために便宜上設けられるものであり、処理開始時には空集合に設定される。
When the distance d (s, y) between the object s and the search query object y does not exceed r (1 + ε) (step S304: No), the
次に、情報処理装置100は、オブジェクトuとオブジェクトyとの距離d(u,y)がr(1+ε)以下であるか否かを判定する(ステップS307)。オブジェクトuとオブジェクトyとの距離d(u,y)がr(1+ε)以下である場合(ステップS307:Yes)、情報処理装置100は、オブジェクトuをオブジェクト集合Sに追加する(ステップS308)。
Next, the
次に、情報処理装置100は、オブジェクトuとオブジェクトyとの距離d(u,y)がr以下であるか否かを判定する(ステップS309)。オブジェクトuとオブジェクトyとの距離d(u,y)がrを超える場合(ステップS309:No)、情報処理装置100は、ステップS315の判定(処理)を行う。
Next, the
オブジェクトuとオブジェクトyとの距離d(u,y)がr以下である場合(ステップS309:Yes)、情報処理装置100は、オブジェクトuをオブジェクト集合Rに追加する(ステップS310)。そして、情報処理装置100は、オブジェクト集合Rに含まれるオブジェクト数がksを超えるか否かを判定する(ステップS311)。所定数ksは、任意に定められる自然数である。例えば、ks=2やks=10等の種々の設定であってもよい。
When the distance d (u, y) between the object u and the object y is r or less (step S309: Yes), the
オブジェクト集合Rに含まれるオブジェクト数がksを超える場合(ステップS311:Yes)、情報処理装置100は、オブジェクト集合Rに含まれるオブジェクトの中でオブジェクトyとの距離が最も長い(遠い)オブジェクトを、オブジェクト集合Rから除外する(ステップS312)。
When the number of objects included in the object set R exceeds ks (step S311: Yes), the
次に、情報処理装置100は、オブジェクト集合Rに含まれるオブジェクト数がksと一致するか否かを判定する(ステップS313)。オブジェクト集合Rに含まれるオブジェクト数がksと一致する場合(ステップS313:Yes)、情報処理装置100は、オブジェクト集合Rに含まれるオブジェクトの中でオブジェクトyとの距離が最も長い(遠い)オブジェクトと、オブジェクトyとの距離を、新たなrに設定する(ステップS314)。
Next, the
そして、情報処理装置100は、オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Cに格納し終えたか否かを判定する(ステップS315)。オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Cに格納し終えていない場合(ステップS315:No)、情報処理装置100は、ステップS306に戻って処理を繰り返す。
Then, the
オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Cに格納し終えた場合(ステップS315:Yes)、情報処理装置100は、オブジェクト集合Sが空集合であるか否かを判定する(ステップS316)。オブジェクト集合Sが空集合でない場合(ステップS316:No)、情報処理装置100は、ステップS302に戻って処理を繰り返す。また、オブジェクト集合Sが空集合である場合(ステップS316:Yes)、情報処理装置100は、オブジェクト集合Rを出力し、処理を終了する(ステップS317)。例えば、情報処理装置100は、オブジェクト集合Rに含まれるオブジェクト(ノード)を検索クエリ(入力オブジェクトy)に対応する検索結果として、検索を行ったIoT機器10等へ提供してもよい。図1の例では、情報処理装置100は、オブジェクト集合Rに含まれるノードN451やノードN35を検索クエリ(商品XのベクトルVD11)に対応する検索結果として、検索を行ったIoT機器10等へ提供してもよい。例えば、情報処理装置100は、ノードN451に対応する商品#451や、ノードN35に対応する商品#35を示す情報を、商品Xに類似する商品の情報としてユーザU1が利用するIoT機器10に提供する。
When all the objects are selected from the objects that are the elements of the object set N (G, s) in the vicinity of the objects s and stored in the object set C (step S315: Yes), the
〔7.効果〕
上述してきたように、実施形態に係る情報処理装置100は、取得部131と、抽出部134と、送信部135とを有する。取得部131は、複数の商品の各々に対応する複数のノードが、複数の商品の類似性に応じて連結されたグラフ情報と、一の商品の購入を要求する注文情報を取得する。抽出部134は、取得部131により取得されたグラフ情報の複数のノードのうち、所定の基準に基づいて決定されたグラフ情報の検索の起点となる起点ノードを起点として、グラフ情報を検索することにより、複数の商品のうち、一の商品に類似する商品である類似商品を抽出する。送信部135は、抽出部134により抽出された類似商品に基づく推奨情報を、一の商品の購入を要求する要求元へ送信する。
[7. effect〕
As described above, the
このように、実施形態に係る情報処理装置100は、起点ノードを起点としてグラフ情報を検索し、抽出された類似商品に基づく推奨情報を、一の商品の購入を要求する要求元へ送信することにより、適切な商品の推奨を行うことができる。
As described above, the
また、実施形態に係る情報処理装置100は、決定部133を有する。決定部133は、起点ノードの決定に用いるインデックス情報に基づいて、起点ノードを決定する。抽出部134は、決定部133により決定された起点ノードを起点として、類似商品を抽出する。
Further, the
このように、実施形態に係る情報処理装置100は、起点ノードの決定に用いるインデックス情報に基づいて、起点ノードを決定することにより、適切な商品の推奨を行うことができる。
As described above, the
また、実施形態に係る情報処理装置100において、決定部133は、木構造型のインデックス情報に基づいて、起点ノードを決定する。
Further, in the
このように、実施形態に係る情報処理装置100は、木構造型のインデックス情報に基づいて、起点ノードを決定することにより、適切な商品の推奨を行うことができる。
As described above, the
また、実施形態に係る情報処理装置100において、抽出部134は、グラフ情報中に一の商品に対応するノードが含まれる場合、当該ノードを起点ノードとして、類似商品を抽出する。
Further, in the
このように、実施形態に係る情報処理装置100は、グラフ情報中に一の商品に対応するノードが含まれる場合、その一の商品に対応するノードを起点ノードとして、その一の商品の類似商品を抽出することにより、類似の商品を適切に抽出することができる。
As described above, when the
また、実施形態に係る情報処理装置100において、取得部131は、複数の商品の各々の特徴を示す複数のベクトルが類似性に応じて連結されたグラフ情報を取得する。
Further, in the
このように、実施形態に係る情報処理装置100は、複数の商品の各々の特徴を示す複数のベクトルが類似性に応じて連結されたグラフ情報を取得することにより、類似の商品を適切に抽出することができる。
As described above, the
また、実施形態に係る情報処理装置100において、取得部131は、複数の商品の各々の特徴を示す複数のベクトルが類似性に応じて連結されたグラフ情報を取得する。
Further, in the
このように、実施形態に係る情報処理装置100は、複数の商品の各々の特徴を示す複数のベクトルが類似性に応じて連結されたグラフ情報を取得することにより、適切な商品の推奨を行うことができる。
As described above, the
また、実施形態に係る情報処理装置100において、取得部131は、所定のモデルを用いて複数の商品の各々から抽出された特徴量を要素とする複数のベクトルが、類似性に応じて連結されたグラフ情報を取得する。
Further, in the
このように、実施形態に係る情報処理装置100は、所定のモデルを用いて複数の商品の各々から抽出された特徴量を要素とする複数のベクトルが、類似性に応じて連結されたグラフ情報を取得することにより、適切な商品の推奨を行うことができる。
As described above, in the
また、実施形態に係る情報処理装置100において、取得部131は、複数の商品に関する情報を所定のモデルに入力することにより、抽出される複数の商品の各々の特徴量を要素とする複数のベクトルが、類似性に応じて連結されたグラフ情報を取得する。
Further, in the
このように、実施形態に係る情報処理装置100は、複数の商品に関する情報を所定のモデルに入力することにより、抽出される複数の商品の各々の特徴量を要素とする複数のベクトルが、類似性に応じて連結されたグラフ情報を取得することにより、適切な商品の推奨を行うことができる。
As described above, in the
また、実施形態に係る情報処理装置100において、送信部135は、類似商品の購入を促す推奨情報を要求元へ送信する。
Further, in the
このように、実施形態に係る情報処理装置100は、類似商品の購入を促す推奨情報を要求元へ送信することにより、適切な商品の推奨を行うことができる。
As described above, the
また、実施形態に係る情報処理装置100において、取得部131は、所定のIoT機器10である要求元から注文情報を取得する。
Further, in the
このように、実施形態に係る情報処理装置100は、所定のIoT機器10である要求元から注文情報を取得することにより、所定のIoT機器10に対して適切な商品の推奨を行うことができる。
As described above, the
また、実施形態に係る情報処理装置100において、取得部131は、要求元から類似商品を購入するかどうかを示す回答情報を取得する。
Further, in the
このように、実施形態に係る情報処理装置100は、要求元から類似商品を購入するかどうかを示す回答情報を取得することにより、要求元からの推奨した商品に対する回答を取得することができる。
As described above, the
また、実施形態に係る情報処理装置100において、抽出部134は、一の商品の在庫が無い場合、一の商品の類似商品を抽出する。
Further, in the
このように、実施形態に係る情報処理装置100は、一の商品の在庫が無い場合、一の商品の類似商品を抽出することにより、一の商品の在庫が無い場合において、一の商品の代替となりうる適切な商品の推奨を行うことができる。
As described above, the
〔8.ハードウェア構成〕
上述してきた実施形態に係る情報処理装置100は、例えば図14に示すような構成のコンピュータ1000によって実現される。図14は、情報処理装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM(Read Only Memory)1300、HDD(Hard Disk Drive)1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を有する。
[8. Hardware configuration]
The
CPU1100は、ROM1300またはHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
The
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス1500は、ネットワークNを介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータをネットワークNを介して他の機器へ送信する。
The
CPU1100は、入出力インターフェイス1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、生成したデータを入出力インターフェイス1600を介して出力装置へ出力する。
The
メディアインターフェイス1700は、記録媒体1800に格納されたプログラムまたはデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
The
例えば、コンピュータ1000が実施形態に係る情報処理装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムまたはデータ(例えば、モデルM1(モデルデータMDT1))を実行することにより、制御部130の機能を実現する。コンピュータ1000のCPU1100は、これらのプログラムまたはデータ(例えば、モデルM1(モデルデータMDT1))を記録媒体1800から読み取って実行するが、他の例として、他の装置からネットワークNを介してこれらのプログラムを取得してもよい。
For example, when the
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の行に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。 Although some of the embodiments of the present application have been described in detail with reference to the drawings, these are examples, and various modifications are made based on the knowledge of those skilled in the art, including the embodiments described in the disclosure line of the invention. It is possible to carry out the present invention in other modified forms.
〔9.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
[9. others〕
Further, among the processes described in the above-described embodiment, all or a part of the processes described as being automatically performed can be manually performed, or the processes described as being manually performed can be performed. All or part of it can be done automatically by a known method. In addition, information including processing procedures, specific names, various data and parameters shown in the above documents and drawings can be arbitrarily changed unless otherwise specified. For example, the various information shown in each figure is not limited to the information shown in the figure.
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。 Further, each component of each of the illustrated devices is a functional concept, and does not necessarily have to be physically configured as shown in the figure. That is, the specific form of distribution / integration of each device is not limited to the one shown in the figure, and all or part of them may be functionally or physically distributed / physically in arbitrary units according to various loads and usage conditions. Can be integrated and configured.
また、上述してきた各実施形態に記載された各処理は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。 In addition, the processes described in the above-described embodiments can be appropriately combined as long as the processing contents do not contradict each other.
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。 Further, the above-mentioned "section, module, unit" can be read as "means" or "circuit". For example, the acquisition unit can be read as an acquisition means or an acquisition circuit.
1 情報処理システム
100 情報処理装置
121 商品情報記憶部
122 インデックス情報記憶部
123 グラフ情報記憶部
124 モデル情報記憶部
125 在庫情報記憶部
126 ユーザ情報記憶部
130 制御部
131 取得部
132 生成部
133 決定部
134 抽出部
135 送信部
10 IoT機器
50 サービス提供装置
N ネットワーク
1
Claims (12)
前記一の商品の在庫が無い場合、前記取得部により取得された前記グラフ情報の前記複数のノードのうち、所定の基準に基づいて決定された前記グラフ情報の検索の起点となる起点ノードを起点として、前記グラフ情報を検索することにより、前記複数の商品のうち、前記一の商品に類似する商品である類似商品を抽出する抽出部と、
前記抽出部により抽出された前記類似商品に基づく推奨情報を、前記一の商品の購入を要求する要求元へ送信する送信部と、
を備えたことを特徴とする情報処理装置。 A plurality of nodes corresponding to each of a plurality of products are stored in a refrigerator as an IoT (Internet of Things) device having a communication function and graph information connected according to the similarity of the plurality of products. Obtains order information requesting the purchase of a product that has passed a predetermined period from the date and time when it was stored or whose remaining amount is equal to or less than a predetermined threshold value from the requester of the refrigerator. Acquisition department and
When the product is out of stock , the starting point node, which is the starting point for searching the graph information determined based on a predetermined criterion, is the starting point among the plurality of nodes of the graph information acquired by the acquisition unit. As an extraction unit for extracting similar products that are similar to the one product among the plurality of products by searching the graph information.
A transmission unit that transmits recommended information based on the similar product extracted by the extraction unit to a requester requesting the purchase of the one product, and a transmission unit.
An information processing device characterized by being equipped with.
をさらに備え、
前記抽出部は、
前記決定部により決定された前記起点ノードを起点として、前記類似商品を抽出する
ことを特徴とする請求項1に記載の情報処理装置。 A determination unit that determines the origin node based on the index information used to determine the origin node.
Further prepare
The extraction unit
The information processing apparatus according to claim 1, wherein the similar product is extracted from the starting node determined by the determination unit.
木構造型の前記インデックス情報に基づいて、前記起点ノードを決定する
ことを特徴とする請求項2に記載の情報処理装置。 The decision-making part
The information processing apparatus according to claim 2, wherein the origin node is determined based on the index information of the tree structure type.
前記グラフ情報中に前記一の商品に対応するノードが含まれる場合、当該ノードを前記起点ノードとして、前記類似商品を抽出する
ことを特徴とする請求項1に記載の情報処理装置。 The extraction unit
The information processing apparatus according to claim 1, wherein when the graph information includes a node corresponding to the one product, the similar product is extracted with the node as the starting node.
前記複数の商品の各々に対応する複数のベクトルの類似性に応じて、前記複数のノードが連結されたグラフ情報を取得する
ことを特徴とする請求項1〜4のいずれか1項に記載の情報処理装置。 The acquisition unit
The invention according to any one of claims 1 to 4, wherein the graph information in which the plurality of nodes are concatenated is acquired according to the similarity of the plurality of vectors corresponding to each of the plurality of products. Information processing device.
前記複数の商品の各々の特徴を示す前記複数のベクトルが類似性に応じて連結された前記グラフ情報を取得する
ことを特徴とする請求項5に記載の情報処理装置。 The acquisition unit
The information processing apparatus according to claim 5, wherein the plurality of vectors showing the characteristics of each of the plurality of products are connected according to the similarity to obtain the graph information.
所定のモデルを用いて前記複数の商品の各々から抽出された特徴量を要素とする前記複数のベクトルが、類似性に応じて連結された前記グラフ情報を取得する
ことを特徴とする請求項5または請求項6に記載の情報処理装置。 The acquisition unit
5. Claim 5, wherein the plurality of vectors having feature quantities extracted from each of the plurality of products using a predetermined model are concatenated according to the similarity to obtain the graph information. Or the information processing apparatus according to claim 6.
前記複数の商品に関する情報を所定のモデルに入力することにより、抽出される前記複数の商品の各々の特徴量を要素とする前記複数のベクトルが、類似性に応じて連結された前記グラフ情報を取得する
ことを特徴とする請求項5〜7のいずれか1項に記載の情報処理装置。 The acquisition unit
By inputting information about the plurality of products into a predetermined model, the graph information in which the plurality of vectors whose elements are the feature quantities of the plurality of products to be extracted are concatenated according to the similarity is obtained. The information processing apparatus according to any one of claims 5 to 7, wherein the information processing apparatus is to be acquired.
前記類似商品の購入を促す前記推奨情報を前記要求元へ送信する
ことを特徴とする請求項1〜8のいずれか1項に記載の情報処理装置。 The transmitter is
The information processing apparatus according to any one of claims 1 to 8, wherein the recommended information prompting the purchase of the similar product is transmitted to the requester.
前記要求元から前記類似商品を購入するかどうかを示す回答情報を取得する
ことを特徴とする請求項1〜9のいずれか1項に記載の情報処理装置。 The acquisition unit
The information processing apparatus according to any one of claims 1 to 9 , wherein response information indicating whether or not to purchase the similar product is acquired from the requester.
複数の商品の各々に対応する複数のノードが、前記複数の商品の類似性に応じて連結されたグラフ情報と、通信機能を有するIoT(Internet of Things)機器としての冷蔵庫に収納される一の商品であって、収納された日時から所定の期間が経過するか、または残量が所定の閾値以下になった一の商品の購入を要求する注文情報を、前記冷蔵庫である要求元から取得する取得工程と、
前記一の商品の在庫が無い場合、前記取得工程により取得された前記グラフ情報の前記複数のノードのうち、所定の基準に基づいて決定された前記グラフ情報の検索の起点となる起点ノードを起点として、前記グラフ情報を検索することにより、前記複数の商品のうち、前記一の商品に類似する商品である類似商品を抽出する抽出工程と、
前記抽出工程により抽出された前記類似商品に基づく推奨情報を、前記一の商品の購入を要求する要求元へ送信する送信工程と、
を含んだことを特徴とする情報処理方法。 It is an information processing method executed by a computer.
A plurality of nodes corresponding to each of a plurality of products are stored in a refrigerator as an IoT (Internet of Things) device having a communication function and graph information connected according to the similarity of the plurality of products. Obtains order information requesting the purchase of a product that has passed a predetermined period from the date and time when it was stored or whose remaining amount is equal to or less than a predetermined threshold from the requester of the refrigerator. Acquisition process and
When the product is out of stock , the starting point node, which is the starting point for searching the graph information determined based on a predetermined criterion, is the starting point among the plurality of nodes of the graph information acquired by the acquisition process. As an extraction step, by searching the graph information, a similar product, which is a product similar to the one product, is extracted from the plurality of products.
A transmission step of transmitting recommended information based on the similar product extracted by the extraction step to a requester requesting the purchase of the one product, and a transmission step.
An information processing method characterized by including.
前記一の商品の在庫が無い場合、前記取得手順により取得された前記グラフ情報の前記複数のノードのうち、所定の基準に基づいて決定された前記グラフ情報の検索の起点となる起点ノードを起点として、前記グラフ情報を検索することにより、前記複数の商品のうち、前記一の商品に類似する商品である類似商品を抽出する抽出手順と、
前記抽出手順により抽出された前記類似商品に基づく推奨情報を、前記一の商品の購入を要求する要求元へ送信する送信手順と、
をコンピュータに実行させることを特徴とする情報処理プログラム。 A plurality of nodes corresponding to each of a plurality of products are stored in a refrigerator as an IoT (Internet of Things) device having a communication function and graph information connected according to the similarity of the plurality of products. Obtains order information requesting the purchase of a product that has passed a predetermined period from the date and time when it was stored or whose remaining amount is equal to or less than a predetermined threshold value from the requester of the refrigerator. Acquisition procedure and
When the product is out of stock, the starting node that is the starting point for searching the graph information determined based on a predetermined criterion among the plurality of nodes of the graph information acquired by the acquisition procedure is the starting point. As an extraction procedure for extracting a similar product that is a product similar to the one product from the plurality of products by searching the graph information.
A transmission procedure for transmitting recommended information based on the similar product extracted by the extraction procedure to a requester requesting the purchase of the one product, and a transmission procedure.
An information processing program characterized by having a computer execute.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2018006642A JP6967462B2 (en) | 2018-01-18 | 2018-01-18 | Information processing equipment, information processing methods, and information processing programs |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2018006642A JP6967462B2 (en) | 2018-01-18 | 2018-01-18 | Information processing equipment, information processing methods, and information processing programs |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2019125257A JP2019125257A (en) | 2019-07-25 |
| JP6967462B2 true JP6967462B2 (en) | 2021-11-17 |
Family
ID=67399167
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2018006642A Active JP6967462B2 (en) | 2018-01-18 | 2018-01-18 | Information processing equipment, information processing methods, and information processing programs |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP6967462B2 (en) |
Families Citing this family (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP7122293B2 (en) * | 2019-08-06 | 2022-08-19 | ヤフー株式会社 | Information processing device, information processing method, and information processing program |
| JP7121706B2 (en) * | 2019-08-06 | 2022-08-18 | ヤフー株式会社 | Information processing device, information processing method, and information processing program |
| US11704717B2 (en) * | 2020-09-24 | 2023-07-18 | Ncr Corporation | Item affinity processing |
| JP7349967B2 (en) * | 2020-09-25 | 2023-09-25 | デジタル・アドバタイジング・コンソーシアム株式会社 | Information processing equipment, programs and systems |
| US11887139B2 (en) | 2020-10-30 | 2024-01-30 | Ncr Voyix Corporation | Real-time alerts for abnormal item pricing |
| KR102265946B1 (en) * | 2020-11-23 | 2021-06-17 | 주식회사 엠로 | Method and apparatus for providing information about similar items based on machine learning |
| CN112765477B (en) * | 2021-03-05 | 2022-03-25 | 北京百度网讯科技有限公司 | Information processing method and device, information recommendation method and device, electronic equipment and storage medium |
| JP7637293B1 (en) * | 2024-04-23 | 2025-02-27 | 株式会社Nttドコモ | Information processing device and method |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008217459A (en) * | 2007-03-05 | 2008-09-18 | Nec Corp | Merchandise purchase support system, method therefor, and device therefor |
| JP2008282132A (en) * | 2007-05-09 | 2008-11-20 | Promise Co Ltd | Electric commerce site management device and computer program |
| JP6352958B2 (en) * | 2016-01-27 | 2018-07-04 | ヤフー株式会社 | Graph index search device and operation method of graph index search device |
| US20170372398A1 (en) * | 2016-06-24 | 2017-12-28 | Ebay Inc. | Vector representation of descriptions and queries |
-
2018
- 2018-01-18 JP JP2018006642A patent/JP6967462B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| JP2019125257A (en) | 2019-07-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6967462B2 (en) | Information processing equipment, information processing methods, and information processing programs | |
| JP6867479B2 (en) | Visual search based on image analysis and prediction | |
| JP6134444B2 (en) | Method and system for recommending information | |
| US20180342004A1 (en) | Cumulative success-based recommendations for repeat users | |
| US20190205962A1 (en) | Computer Vision and Image Characteristic Search | |
| US8370319B1 (en) | Determining search query specificity | |
| US11144811B2 (en) | Aspect pre-selection using machine learning | |
| US20130268317A1 (en) | Arrangement for facilitating shopping and related method | |
| CN109840796B (en) | Decision factor analysis device and decision factor analysis method | |
| CN107644036B (en) | A method, device and system for pushing data objects | |
| CN111967924A (en) | Commodity recommendation method, commodity recommendation device, computer device, and medium | |
| US20180012284A1 (en) | Information analysis apparatus, information analysis method, and non-transitory computer readable storage medium | |
| US20230252550A1 (en) | Multi-modal product embedding generator | |
| CN110084658A (en) | The matched method and apparatus of article | |
| CN117391824B (en) | Method and device for recommending items based on large language model and search engine | |
| JP6865706B2 (en) | Information processing equipment, information processing methods, and information processing programs | |
| JP2019215717A (en) | Matching system, matching method, and computer program | |
| JP7565926B2 (en) | Encoding Text Data for Personalized Inventory Management | |
| Nandan et al. | Designing an efficient restaurant recommendation system based on customer review comments by augmenting hybrid filtering techniques | |
| US12518308B2 (en) | Systems and methods for determining similarity of online items | |
| CN112819588A (en) | E-commerce platform-oriented personalized recommendation method based on cloud computing technology | |
| CN119762172A (en) | Commodity information display and commodity recommendation method, medium, equipment and program product | |
| JP6960361B2 (en) | Information processing equipment, information processing methods, and information processing programs | |
| JP7158870B2 (en) | Information processing device, information processing method, and information processing program | |
| US12613907B1 (en) | Bitmask encoding-based personalized style generation |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20191101 |
|
| RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20191108 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200309 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210209 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210302 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210426 |
|
| 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: 20210928 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20211025 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6967462 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |