(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-03-25
(45)【発行日】2024-04-02
(54)【発明の名称】情報処理装置、情報処理方法及びプログラム
(51)【国際特許分類】
G06N 3/04 20230101AFI20240326BHJP
G06N 3/0464 20230101ALI20240326BHJP
G06N 3/088 20230101ALI20240326BHJP
G06Q 10/083 20240101ALI20240326BHJP
【FI】
G06N3/04 100
G06N3/0464
G06N3/088
G06Q10/083
(21)【出願番号】P 2022207273
(22)【出願日】2022-12-23
【審査請求日】2022-12-23
(73)【特許権者】
【識別番号】399037405
【氏名又は名称】楽天グループ株式会社
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100139066
【氏名又は名称】伊藤 健太郎
(72)【発明者】
【氏名】ゴーシュ サム
(72)【発明者】
【氏名】劉 雲青
【審査官】渡辺 一帆
(56)【参考文献】
【文献】KIPF, T N. et al.,"Semi-Supervised Classification with Graph Convolutional Networks",arXiv.org [online],2017年,pp. 1-14,[retrieved on 2024.02.26], Retrieved from the Internet: <URL: https://arxiv.org/abs/1609.02907v4>,<DOI: 10.48550/arXiv.1609.02907>
【文献】HUDSON, B et al.,"Graph Neural Network Guided Local Search for the Traveling Salesperson Problem",arXiv.org [online],2022年04月,pp. 1-20,[retrieved on 2024.02.26], Retrieved from the Internet: <URL: https://arxiv.org/abs/2110.05291v3>,<DOI: 10.48550/arXiv.2110.05291>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02 - 3/10
G06Q 10/083-10/0837
(57)【特許請求の範囲】
【請求項1】
複数の配送先を複数のグループに分類する情報処理装置であって、
前記複数の配送先の接続関係を示す隣接行列を用いて定められ、前記複数の配送先の特徴を示す特徴行列を入力とするグラフ畳み込みニューラルネットワークを、同一のグループに属する配送先間の距離に関する値が小さいほど、かつ、同一のグループに属する配送先間の特徴の差分が小さいほど損失が少なくなるように定義される第1損失関数を用いて教師なし学習による学習を行う学習部と、
前記学習部により学習された前記グラフ畳み込みニューラルネットワークに前記特徴行列を入力することで得られる、前記複数の配送先の各々が属するグループに関する情報を出力する出力部と、
を有する情報処理装置。
【請求項2】
前記学習部は、前記第1損失関数に加えて、各配送先が所定グループに属する確率の合計値と、1グループあたりの平均配送先数との差分に基づく値を、前記複数のグループの各々について算出した値の合計値が小さいほど損失が少なくなるように定義される第2損失関数を用いて、前記教師なし学習による学習を行う、
請求項1に記載の情報処理装置。
【請求項3】
前記学習部は、前記第1損失関数に加えて、各配送先が前記複数のグループのいずれかに属する確率の最大値が、前記確率として取り得る値の最大値に近いほど損失が小さくなるように定義される第3損失関数を用いて、前記教師なし学習による学習を行う、
請求項1に記載の情報処理装置。
【請求項4】
前記学習部は、前記第1損失関数に加えて、
各配送先が所定グループに属する確率の合計値と、1グループあたりの平均配送先数との差分に基づく値を、前記複数のグループの各々について算出した値の合計値が小さいほど損失が少なくなるように定義される第2損失関数と、
各配送先が前記複数のグループのいずれかに属する確率の最大値が、前記確率として取り得る値の最大値に近いほど損失が小さくなるように定義される第3損失関数と
を用いて、前記教師なし学習による学習を行う、
請求項1に記載の情報処理装置。
【請求項5】
前記特徴行列には、前記複数の配送先の特徴として、配送を希望する時間帯に関する情報が含まれる、
請求項1に記載の情報処理装置。
【請求項6】
前記特徴行列には、前記複数の配送先の特徴として、配送を希望する時間帯と配送車両の稼働時間とが重複する割合に関する情報が含まれる、
請求項5に記載の情報処理装置。
【請求項7】
前記特徴行列には、前記複数の配送先の特徴として、配送拠点から配送先への方向若しくは配送先から前記配送拠点への方向に関する情報と、前記複数の配送先の各々と前記配送拠点との間の距離に関する情報とが含まれる、
請求項1に記載の情報処理装置。
【請求項8】
複数の配送先を複数のグループに分類する情報処理装置が実行する情報処理方法であって、
前記複数の配送先の接続関係を示す隣接行列を用いて定められ、前記複数の配送先の特徴を示す特徴行列を入力とするグラフ畳み込みニューラルネットワークを、同一のグループに属する配送先間の距離に関する値が小さいほど、かつ、同一のグループに属する配送先間の特徴の差分が小さいほど損失が少なくなるように定義される第1損失関数を用いて教師なし学習による学習を行うステップと、
学習された前記グラフ畳み込みニューラルネットワークに前記特徴行列を入力することで得られる、前記複数の配送先の各々が属するグループに関する情報を出力するステップと、
を含む情報処理方法。
【請求項9】
複数の配送先を複数のグループに分類するコンピュータに、
前記複数の配送先の接続関係を示す隣接行列を用いて定められ、前記複数の配送先の特徴を示す特徴行列を入力とするグラフ畳み込みニューラルネットワークを、同一のグループに属する配送先間の距離に関する値が小さいほど、かつ、同一のグループに属する配送先間の特徴の差分が小さいほど損失が少なくなるように定義される第1損失関数を用いて教師なし学習による学習を行うステップと、
学習された前記グラフ畳み込みニューラルネットワークに前記特徴行列を入力することで得られる、前記複数の配送先の各々が属するグループに関する情報を出力するステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【0002】
グラフ分割とは、頂点(vertex)及び頂点間を結ぶエッジ(edge)の集合で構成されるグラフを複数の部分集合に分割することである。グラフ分割を行うアルゴリズムは多数知られており、例えば、Kernighan-Linアルゴリズム、Fiduccia-Mattheysesアルゴリズム、Spectral Bisection methodなどが挙げられる。また、最近では、ニューラルネットワークである、グラフ畳み込みニューラルネットワークを用いたアルゴリズムも提案されている(例えば非特許文献1参照)。
【先行技術文献】
【非特許文献】
【0003】
【文献】Thomas N. Kipf, Max Welling, Semi-Supervised Classification with Graph Convolutional Networks, [online], 2017, [2022年11月24日検索]、インターネット<URL http://arxiv.org/abs/1609.02907>
【発明の概要】
【発明が解決しようとする課題】
【0004】
非特許文献1に記載の技術を用いてグラフ分割を行う場合、グラフ畳み込みニューラルネットワークを、教師データを用いて学習させることが必要である。しかしながら、グラフ畳み込みニューラルネットワークを利用して現実世界の問題を解決しようとしても、そもそも教師データを予め用意することが困難であることが考えられる。
【0005】
そこで、本開示は、教師データを用意することなく、グラフ畳み込みニューラルネットワークを利用したグラフ分割を可能にする情報処理装置、情報処理方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本開示の一態様に係る情報処理装置は、複数の配送先を複数のグループに分類する情報処理装置であって、前記複数の配送先の接続関係を示す隣接行列を用いて定められ、前記複数の配送先の特徴を示す特徴行列を入力とするグラフ畳み込みニューラルネットワークを、同一のグループに属する配送先間の距離に関する値が小さいほど、かつ、同一のグループに属する配送先間の特徴の差分が小さいほど損失が少なくなるように定義される第1損失関数を用いて教師なし学習による学習を行う学習部と、前記学習部により学習された前記グラフ畳み込みニューラルネットワークに前記特徴行列を入力することで得られる、前記複数の配送先の各々が属するグループに関する情報を出力する出力部と、を有する。
【発明の効果】
【0007】
本開示によれば、教師データを用意することなく、グラフ畳み込みニューラルネットワークを利用したグラフ分割を可能にする情報処理装置、情報処理方法及びプログラムを提供することができる。
【図面の簡単な説明】
【0008】
【
図1】本実施形態に係る配送管理システムの一例を示す図である。
【
図2】情報処理装置のハードウェア構成例を示す図である。
【
図3】情報処理装置の機能ブロック構成例を示す図である。
【
図4】情報処理装置が実行する処理手順の一例を示すフローチャートである。
【
図6】複数の配送先を複数のグループに分類した結果を示す図である。
【発明を実施するための形態】
【0009】
添付図面を参照して、本発明の実施形態について説明する。なお、各図において、同一の符号を付したものは、同一又は同様の構成を有する。
【0010】
<システム構成>
図1は、本実施形態に係る配送管理システムの一例を示す図である。配送管理システム1は、情報処理装置10と端末20とを含む。情報処理装置10と端末20とは、無線又は有線の通信ネットワークNを介して接続され、相互に通信を行うことができる。
【0011】
情報処理装置10は、荷物の配送を管理する装置であり、複数の配送先を複数のグループに分類(クラスタリング)する処理を行う。また、情報処理装置10は、各グループに分類された複数の配送先について、例えば巡回セールスマン問題(traveling salesman problem)を解くアルゴリズム等を利用することで、効率的に荷物を配送することが可能な配送ルートを決定するようにしてもよい。情報処理装置10は、1又は複数の物理的なサーバ等から構成されていてもよいし、ハイパーバイザー(hypervisor)上で動作する仮想的なサーバを用いて構成されていてもよいし、クラウドサーバを用いて構成されていてもよい。
【0012】
端末20は、ユーザが操作する端末であり、例えば、スマートフォン、タブレット端末、携帯電話機、パーソナルコンピュータ(PC)、ノートPC等である。端末20の画面には、情報処理装置10から出力される各種のデータが表示される。また、ユーザは、端末20を介して情報処理装置10を操作することができる。
【0013】
情報処理装置10は、複数の配送先を、グラフ分割アルゴリズムを用いて複数のグループに分類する。具体的には、情報処理装置10は、グラフ畳み込みニューラルネットワーク(GCN:Graph Convolutional Neural Network)を利用することで、配送先の分類を行う。なお、以降、グラフ畳み込みニューラルネットワークを、単に、グラフ畳み込みネットワーク、GCNと呼称する。
【0014】
従来、GCNを利用してグラフ分割を行う場合、予め教師データを用意してGCNを学習させる必要があった。しかしながら、荷物の配送先は日々異なることから、予め教師データを用意することは困難である。そこで、本実施形態では、情報処理装置10は、GCNを学習させる際に利用する損失関数(Loss Function)を工夫することで、教師データを用いずにGCNを学習させるようにした。
【0015】
<ハードウェア構成>
図2は、情報処理装置10のハードウェア構成例を示す図である。情報処理装置10は、CPU(Central Processing Unit)、GPU(Graphical Processing Unit)等のプロセッサ11、メモリ(例えばRAM又はROM)、HDD(Hard Disk Drive)及び/又はSSD(Solid State Drive)等の記憶装置12、有線又は無線通信を行うネットワークIF(Network Interface)13、入力操作を受け付ける入力装置14、及び情報の出力を行う出力装置15を有する。入力装置14は、例えば、キーボード、タッチパネル、マウス及び/又はマイク等である。出力装置15は、例えば、ディスプレイ、タッチパネル及び/又はスピーカ等である。
【0016】
<機能ブロック構成>
図3は、情報処理装置10の機能ブロック構成例を示す図である。情報処理装置10は、記憶部100と、受付部101と、学習部102と、出力部103とを含む。記憶部100は、情報処理装置10が備える記憶装置12を用いて実現することができる。また、受付部101と、学習部102と、出力部103とは、情報処理装置10のプロセッサ11が、記憶装置12に記憶されたプログラムを実行することにより実現することができる。また、当該プログラムは、記憶媒体に格納することができる。当該プログラムを格納した記憶媒体は、コンピュータ読み取り可能な非一時的な記憶媒体(Non-transitory computer readable medium)であってもよい。非一時的な記憶媒体は特に限定されないが、例えば、USB(Universal Serial Bus)メモリ又はCD-ROM(Compact Disc Read-Only Memory)等の記憶媒体であってもよい。
【0017】
記憶部100は、配送先に関する各種データ(以下、「配送先データ」と言う。)と、学習モデルとを記憶する。学習モデルには、GCNのモデル構造を決定する情報及び各種のパラメータ値が含まれる。
【0018】
受付部101は、端末20から、各種のデータ入力を受け付ける。例えば、受付部101は、配送先データの入力等を受け付ける。
【0019】
学習部102は、配送先データ及び所定の損失関数を利用して学習モデルを学習させる。具体的には、学習部102は、複数の配送先の接続関係を示す隣接行列を用いて定められ、当該複数の配送先の特徴を示す特徴行列を入力とするGCNを、同一のグループに属する配送先間の距離に関する値が小さいほど、かつ、同一のグループに属する配送先間の特徴の差分が小さいほど損失が少なくなるように定義される損失関数(以下、「第1損失関数」と言う。)を用いて教師なし学習による学習を行う。
【0020】
出力部103は、学習モデルから出力される情報を出力する。具体的には、出力部103は、学習部102により学習されたGCNに特徴行列を入力することで得られる、複数の配送先の各々が属するグループに関する情報を出力する。
【0021】
<処理手順>
図4は、情報処理装置10が実行する処理手順の一例を示すフローチャートである。
図4を用いて、情報処理装置10が、教師データを用いずにGCNを学習させることで、配送先を分類する方法を具体的に説明する。
【0022】
ステップS10で、受付部101は、配送先データの入力を受け付ける。配送先データには、例えば、配送先の位置情報(緯度及び経度等)、配送希望時間帯(例えば14時~16時等)、配送先と配送拠点(Depot)の間の関係に関する情報等が含まれる。受付部101は、受け付けた配送先データを記憶部100に格納する。
【0023】
ステップS11で、学習部102は、配送先データから、GCNに入力する隣接行列及び特徴行列を生成する。
【0024】
ここで、グラフについて説明する。グラフは、複数の頂点及び頂点間を結ぶエッジの集合で構成され、数式1で表現することができる。なお、グラフは、グラフネットワークとも呼ばれる。
【数1】
Vは頂点(vertex)の集合を意味しており、Eはエッジ(edge)の集合を意味する。
【0025】
図5にグラフの一例を示す。
図5に示すグラフは、5つの頂点(v1~v5)と、各頂点を結ぶ7つのエッジ(e12、e14、e23、e24、e34、e35、e45、)とから構成されている。また、各頂点には、特徴量を関連づけることができる。本実施形態では、頂点、エッジ及び頂点の特徴量を、それぞれ配送先、配送先間の距離及び配送先の特徴とみなしてグラフを定義し、GCNを用いてグラフ分割を行うことで、配送先を複数のグループに分割する。
【0026】
次に、隣接行列A(Adjacency Matrix)について説明する。隣接行列Aは、エッジ間の接続関係を示しており、1の場合はエッジ間が接続されており、0の場合はエッジ間が接続されていないことを示す。本実施形態における隣接行列Aの成分A
ijは、数式2で表現することができる。なお、i及びjは配送先を示す。例えば配送先が100箇所である場合、i及びjは、それぞれ1~100の整数で表される。
【数2】
ω
i,jは配送先i及び配送先j間の距離を示し、θは所定の閾値を示す。配送先間の距離は、ユーグリッド距離(Euclidean distance)、球面距離(havesine distance)又は地図上の実際の距離であってもよい。ユーグリッド距離はL2ノルムとも呼ばれる。地図上の実際の距離は、例えば、OSRM(Open Source Routing Machine)と呼ばれる既存のライブラリを利用して取得するようにしてもよい。
【0027】
また、θの値は任意であるが、例えば、配送先間の距離が離れており、同一のグループに分類すべきでないと考えられる距離に設定されてもよい。配送先i及びj間の距離がθの値よりも大きい場合、Aijは0になることから、グラフにおける頂点i及びjの間にはエッジが接続されていないものとして表現されることになる。
【0028】
なお、2つの配送先間の距離がθ以下である場合であっても、当該2つの配送先間に、配送を行う車両(トラック等)が通過できないような障害(例えば河川等)が存在する場合、学習部102は、当該2つの配送先に対応するAijの値を0に設定するようにしてもよい。例えば、受付部101は、ユーザから、2つの配送先間に障害が存在することの指定を受け付け、学習部102は、隣接行列の成分のうち、受付部101で受け付けた2つの配送先の間に対応するAijの値を0に設定するようにしてもよい。
【0029】
次に、次数行列D(Degree matrix)について説明する。次数行列Dは、各頂点にいくつのエッジが接続されているのかを示す対角行列である。本実施形態における次数行列Dの成分D
ijは、数式3で表現することができる。
【数3】
Nは頂点の数を示す。例えば、
図5において、頂点v1には2つのエッジ(e12、e14)が接続されていることから、次数行列Dの成分D
11の値は2になる。
【0030】
次に、特徴行列X(Feature matrix)について説明する。特徴行列Xは、各頂点に関連づけられる特徴量を示している。例えば、頂点の数を1~nとし、iを特徴量の識別子とすると、頂点1~nのそれぞれの特徴量X
iは、以下の数式4で表現される。
【数4】
また、特徴量の数がp個である場合、すなわち、特徴量の識別子iは1~pで表される場合、特徴行列Xは、数式5で表現される。
【数5】
本実施形態では、配送先に関連づけられる特徴量には、荷物の受取人が配送を希望する時間帯を含めてもよい。つまり、特徴行列Xには、複数の配送先の特徴として、配送を希望する時間帯に関する情報が含まれていてもよい。配送を希望する時間帯に関する情報は、例えば、1:8時~12時、2:12時~14時、3:14時~16時、4:16時~18、5:18時~20時のように正の整数で表現されてもよい。
【0031】
また、配送先に関連づけられる特徴量には、配送を希望する時間帯のうち配送車両の稼働時間が含まれる時間の割合に関する情報(「オーバーラップ率」と呼んでもよい)を含めてもよい。つまり、特徴行列Xには、複数の配送先の特徴として、配送を希望する時間帯のうち配送車両の稼働時間が含まれる時間の割合に関する情報が含まれていてもよい。当該情報は、0~1の値で表現される。0の場合は、配送を希望する時間帯のうち配送車両の稼働時間が含まれる時間は無いことを示す。また、1の場合は、配送を希望する全ての時間帯が配送車両の稼働時間に含まれることを示す。例えば、配送希望時間帯が8時から12時であり、配送車両の稼働時間が10時から16時である場合、配送希望時間帯(4時間)のうち配送車両の稼働時間が含まれる時間は2時間(10時~12時)であるから、2時間÷4時間=0.5になる。
【0032】
また、配送先に関連づけられる特徴量には、配送拠点(Depot)から配送先への方向(又はその逆)に関する情報と、複数の配送先の各々と配送拠点との間の距離に関する情報とを含めてもよい。つまり、特徴行列Xには、複数の配送先の特徴として、配送拠点から配送先への方向若しくは配送先から配送拠点への方向に関する情報と、複数の配送先の各々と配送拠点との間の距離に関する情報とが含まれていてもよい。当該距離に関する情報は、ユーグリッド距離(Euclidean distance)、球面距離(havesine distance)又は地図上の実際の距離であってもよい。
【0033】
特徴行列Xに含まれる特徴量は上記に限定されず、配送先に関するものであれば、どのような特徴量が含まれていてもよい。
【0034】
ここで、隣接行列A、次数行列D及び特徴行列Xの具体例を数式6~8に示す。なお、数式6~8に示す行列は、頂点が3つであり各頂点間がエッジで接続されているグラフに対応する。
【数6】
【数7】
【数8】
数式8に示す特徴行列Xは、1つの頂点(配送先)に4つの特徴量が関連づけられていることを示す。例えば、特徴行列Xの1列目には、0.5、0.1及び0.2の3つの値が存在する。これは、頂点1(配送先1)における1つ目の特徴量は0.5であり、頂点2(配送先2)における1つ目の特徴量は0.1であり、頂点3(配送先3)における1つ目の特徴量は0.2であることを示している。同様に、2列目には、0.2、0.6及び0.9の3つの値が存在する。これは、頂点1(配送先1)における2つ目の特徴量は0.2であり、頂点2(配送先2)における2つ目の特徴量は0.6であり、頂点3(配送先3)における2つ目の特徴量は0.9であることを示している。
【0035】
ステップS12で、学習部102は、損失関数(Loss Function)を用いてGCNの学習を行う。例えば、学習部102は、ニューラルネットワークを学習させるためのライブラリ等にGCNのモデルと使用する損失関数とを設定することで、GCNを学習させることができる。数式9に、本実施形態に係るGCNの例を示す。
【数9】
Kは1から始まる正の整数であり、GCNにおける隠れ層の階層を示す。また、h
(K)はK番目の隠れ層を示す。σは活性化関数である。ここで、A´は、数式10で定義される。
【数10】
I
nは単位行列である。
【0036】
本実施形態では、隠れ層が2層であるGCNを用いて学習を行う。数式11は入力層を示し、数式12は1つ目の隠れ層を示し、数式13は、出力層を示す。
【数11】
【数12】
【数13】
数式11におけるnは配送先の数を示し、pは特徴量の数を示す。また、数式12及び数式13におけるWは重みを示す。また、l
0は、1つ目の隠れ層におけるニューロンの数であり、cは、GCNが出力可能なグループの数である。
【0037】
数式11に示すように、GCNの入力層には特徴行列の成分が入力される。また、GCNの出力層からは、配送先ごとに各グループに属する確率が出力される。例えば、配送先の数が100であり、出力可能なグループの数が5である場合、配送先ごとに5つの確率(グループ1に属する確率、グループ2に属する確率、グループ3に属する確率、グループ4に属する確率、グループ5に属する確率)が出力される。なお、出力される確率の最大値は1であってもよいが、本実施形態がこれに限定されるものではない。
【0038】
続いて、学習部102は、損失関数を用いてGCNを学習させる処理を行う。前述した通り、学習部102は、同一のグループに属する配送先間の距離に関する値が小さいほど、かつ、同一のグループに属する配送先間の特徴の差分が小さいほど損失が少なくなるように定義される第1損失関数を用いて、教師なし学習による学習を行う。第1損失関数を用いることで、配送先間の距離が短く、かつ、類似する特徴を有する配送先が同一のグループに属するようにGCNを学習させることができる。
数式14及び数式15は、第1損失関数の一例を示す。
【数14】
【数15】
数式14及び15について、kは、グループの番号を示す。Cはグループの集合を示す。i及びjは配送先を示す。Vは配送先の集合を示す。P
ikは、配送先iがグループkに属する確率を示す。P
jkは、配送先jがグループkに属する確率を示す。pは特徴量の数を示し、mは特徴量の番号を示す。もし特徴量が3種類である場合、p=3であり、mは1~3の整数になる。なお、P
ik及びP
ijには、GCNの出力層から出力される値が入力される。γ
ijは、配送先i及び配送先jの間の距離である。配送先間の距離は、ユーグリッド距離)、球面距離又は地図上の実際の距離であってもよい。地図上の実際の距離は、例えば、OSRMと呼ばれる既存のライブラリを利用して取得するようにしてもよい。X
m(i)は配送先iのm番目の特徴量を示し、X
m(j)は配送先jのm番目の特徴量を示す。λ
1とλ
2は、ユーザにより定義可能なスケーリングファクターであり、配送管理システム1を利用するユーザにより任意に設定することができる。
【0039】
数式15の前半部分「λ1γij」は、配送先i及び配送先jの間の距離が小さいほど小さな値になる。また、数式15の後半部分(λ1γij以外の部分)は、配送先i及び配送先jの間について各特徴量の差分が小さいほど、小さな値になる。また、配送先i及び配送先jが同一グループに属する場合、Pik×Pjkの値は大きくなる。そのため、数式14におけるPik×Pjk×ωijの値は、同一グループに属する配送先i及び配送先の間の距離が小さいほど小さな値になり、同一グループに属する配送先i及び配送先jの間の特徴量の差分が小さいほど小さな値になることがわかる。
【0040】
また、学習部102は、第1損失関数に加えて、各配送先が所定グループに属する確率の合計値と、1グループあたりの平均配送先数との差分に基づく値を、複数のグループの各々について算出した値の合計値が小さいほど損失が少なくなるように定義される第2損失関数を用いて、教師なし学習による学習を行うようにしてもよい。なお、「各配送先が所定グループに属する確率の合計値と、1グループあたりの平均配送先数との差分に基づく値」は、当該差分を二乗した値でもよいし、当該差分の絶対値でもよいし、当該差分の二乗の平方根であってもよい。第2損失関数を用いることで、各グループに属する配送先の数がグループ間で平均化されるようにGCNを学習させることができる。数式16は、第2損失関数の一例を示す。
【数16】
数式16において、kは、グループの番号を示す。Cはグループの集合を示す。例えばGCNの出力可能なグループ数が10である場合、C=10になる。iは配送先を示す。Vは配送先の集合を示す。配送先の数が500である場合、V=500になる。P
ikは、配送先iがグループkに属する確率を示す。ΣP
ikは、各配送先がグループkに属する確率を全ての配送先について合計した値を示す。また、|V|/|C|は、1グループあたりの平均配送先数を示す。
【0041】
また、学習部102は、第1損失関数に加えて、各配送先が複数のグループのいずれかに属する確率の最大値が、確率として取り得る値の最大値(例えば1であるが、これに限定されない)に近いほど損失が小さくなるように定義される第3損失関数を用いて、教師なし学習による学習を行うようにしてもよい。第3損失関数を用いることで、配送先が各グループに属する確率の最大値が、確率として取り得る値の最大値に近づくように、GCNを学習させることができる。例えば、GCNを学習させる前の状態では、ある配送先がグループ1~3に属する確率は(0.3、0.3、0.4)であると出力されたとする。この場合、第3損失関数を用いてGCNを学習させることで、例えば(0.1、0.1、0.8)のように、どのグループに属するのかが明確になるような出力結果を得ることができる。数式17に第3損失関数の一例を示す。
【数17】
数式17について、i及びjは配送先を示す。Vは配送先の集合を示す。P
ijは、配送先iがいずれかのグループに属する確率の最大値と、配送先jがいずれかのグループに属する確率の最大値とを乗算した値を示す。例えば、配送先i=1が各グループに属する確率のうちグループ3に属する確率(P3)が最も大きい値であり、配送先j=2が各グループに属する確率のうちグループ5に属する確率P5が最も大きい値である場合、P
ij(i=1、j=2)は、P3×P5になる。
【0042】
また、学習部102は、第1損失関数に加えて、第2損失関数と、第3損失関数とを用いて、教師なし学習による学習を行うようにしてもよい。数式18に、第1損失関数、第2損失関数及び第3損失関数を用いる場合の損失関数の一例を示す。
【数18】
ステップS13で、出力部103は、学習部102により学習されたGCNに特徴行列を入力することで得られる、複数の配送先の各々が属するグループに関する情報を出力する。例えば、配送先が100箇所であり、GCNが出力可能なグループ数が5である場合、配送先ごとに各グループに属する確率が出力される。配送先に対し出力された複数の確率(ここでは5つの確率)のうち最も確率の大きいグループが、当該配送先が属するグループを意味する。
【0043】
<具体例>
図6は、複数の配送先を複数のグループに分類した結果を示す図である。地点Dは配送拠点(Deport)である。
図6の例では、複数の配送先が、10個のグループに分類されていることがわかる。
【0044】
<まとめ>
以上説明した実施形態によれば、損失関数のみを利用してGCNを学習させることで、教師データを用意することなく、複数の配送先を複数のグループに分類することが可能になる。
【0045】
以上説明した実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。実施形態で説明したフローチャート、シーケンス、実施形態が備える各要素並びにその配置、材料、条件、形状及びサイズ等は、例示したものに限定されるわけではなく適宜変更することができる。また、異なる実施形態で示した構成同士を部分的に置換し又は組み合わせることが可能である。
【0046】
<付記>
本実施形態は、以下の通り表現されてもよい。
【0047】
<付記1>
複数の配送先を複数のグループに分類する情報処理装置であって、
前記複数の配送先の接続関係を示す隣接行列を用いて定められ、前記複数の配送先の特徴を示す特徴行列を入力とするグラフ畳み込みニューラルネットワークを、同一のグループに属する配送先間の距離に関する値が小さいほど、かつ、同一のグループに属する配送先間の特徴の差分が小さいほど損失が少なくなるように定義される第1損失関数を用いて教師なし学習による学習を行う学習部と、
前記学習部により学習された前記グラフ畳み込みニューラルネットワークに前記特徴行列を入力することで得られる、前記複数の配送先の各々が属するグループに関する情報を出力する出力部と、
を有する情報処理装置。
【0048】
<付記2>
前記学習部は、前記第1損失関数に加えて、各配送先が所定グループに属する確率の合計値と、1グループあたりの平均配送先数との差分に基づく値を、前記複数のグループの各々について算出した値の合計値が小さいほど損失が少なくなるように定義される第2損失関数を用いて、前記教師なし学習による学習を行う、
付記1に記載の情報処理装置。
【0049】
<付記3>
前記学習部は、前記第1損失関数に加えて、各配送先が前記複数のグループのいずれかに属する確率の最大値が、前記確率として取り得る値の最大値に近いほど損失が小さくなるように定義される第3損失関数を用いて、前記教師なし学習による学習を行う、
付記1に記載の情報処理装置。
【0050】
<付記4>
前記学習部は、前記第1損失関数に加えて、
各配送先が所定グループに属する確率の合計値と、1グループあたりの平均配送先数との差分に基づく値を、前記複数のグループの各々について算出した値の合計値が小さいほど損失が少なくなるように定義される第2損失関数と、
各配送先が前記複数のグループのいずれかに属する確率の最大値が、前記確率として取り得る値の最大値に近いほど損失が小さくなるように定義される第3損失関数と
を用いて、前記教師なし学習による学習を行う、
付記1に記載の情報処理装置。
【0051】
<付記5>
前記特徴行列には、前記複数の配送先の特徴として、配送を希望する時間帯に関する情報が含まれる、
付記1~4のいずれか一項に記載の情報処理装置。
【0052】
<付記6>
前記特徴行列には、前記複数の配送先の特徴として、配送を希望する時間帯と配送車両の稼働時間とが重複する割合に関する情報が含まれる、
付記1~5のいずれか一項に記載の情報処理装置。
【0053】
<付記7>
前記特徴行列には、前記複数の配送先の特徴として、配送拠点から配送先への方向若しくは配送先から前記配送拠点への方向に関する情報と、前記複数の配送先の各々と前記配送拠点との間の距離に関する情報とが含まれる、
付記1~6のいずれか一項に記載の情報処理装置。
【0054】
<付記8>
複数の配送先を複数のグループに分類する情報処理装置が実行する情報処理方法であって、
前記複数の配送先の接続関係を示す隣接行列を用いて定められ、前記複数の配送先の特徴を示す特徴行列を入力とするグラフ畳み込みニューラルネットワークを、同一のグループに属する配送先間の距離に関する値が小さいほど、かつ、同一のグループに属する配送先間の特徴の差分が小さいほど損失が少なくなるように定義される第1損失関数を用いて教師なし学習による学習を行うステップと、
学習された前記グラフ畳み込みニューラルネットワークに前記特徴行列を入力することで得られる、前記複数の配送先の各々が属するグループに関する情報を出力するステップと、
を含む情報処理方法。
【0055】
<付記9>
複数の配送先を複数のグループに分類するコンピュータに、
前記複数の配送先の接続関係を示す隣接行列を用いて定められ、前記複数の配送先の特徴を示す特徴行列を入力とするグラフ畳み込みニューラルネットワークを、同一のグループに属する配送先間の距離に関する値が小さいほど、かつ、同一のグループに属する配送先間の特徴の差分が小さいほど損失が少なくなるように定義される第1損失関数を用いて教師なし学習による学習を行うステップと、
学習された前記グラフ畳み込みニューラルネットワークに前記特徴行列を入力することで得られる、前記複数の配送先の各々が属するグループに関する情報を出力するステップと、
を実行させるためのプログラム。
【符号の説明】
【0056】
1…配送管理システム、10…情報処理装置、11…プロセッサ、12…記憶装置、13…ネットワークIF、14…入力装置、15…出力装置、20…端末、100…記憶部、101…受付部、102…学習部、103…出力部
【要約】
【課題】教師データを用意することなく、グラフ畳み込みニューラルネットワークを利用したグラフ分割を可能にすること。
【解決手段】複数の配送先を複数のグループに分類する情報処理装置であって、前記複数の配送先の接続関係を示す隣接行列を用いて定められ、前記複数の配送先の特徴を示す特徴行列を入力とするグラフ畳み込みニューラルネットワークを、同一のグループに属する配送先間の距離に関する値が小さいほど、かつ、同一のグループに属する配送先間の特徴の差分が小さいほど損失が少なくなるように定義される第1損失関数を用いて教師なし学習による学習を行う学習部と、前記学習部により学習された前記グラフ畳み込みニューラルネットワークに前記特徴行列を入力することで得られる、前記複数の配送先の各々が属するグループに関する情報を出力する出力部と、を有する情報処理装置を提供する。
【選択図】
図3