本発明の実施形態に係る情報処理システムの具体例を、以下に図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
<システム概要>
図1は、本実施の形態に係る情報処理システムの概要を説明するための模式図である。本実施の形態に係る情報処理システムは、例えば企業の販売担当者等のユーザに対して、商品又はサービス等の売り上げに関連し得る複数の要因について因果関係を推定すると共に、売り上げを最適化(最大化)し得る介入を推定するサービスを提供する。
なお本実施の形態においては商品又はサービス等の販売を例に説明を行うが、本技術の適用はこのような販売の分野に限定されるものではない。具体的には、健康状態に合わせたセルフケアの効果の最適化、個人に合わせた学習方法による学習効果の最大化、商品の配置等による売上の最大化、人のシフトや配属などによるパフォーマンスの最大化、衛星データなどを用いた環境対策の最適化、IoT(Internet of Things)データなどを用いた農林水産業の生産性の向上などのユースケースも考えられる。また、多目的最適化において、パレート最適解の中から選好解を選ぶ際にも活用できる。
本技術は、例えば何らかの目的のために実施可能な介入が複数存在する状況において適用することができ、複数の介入の因果関係の推定及び目的対象を最適化する介入の提案等を行うことが期待できる。また本技術は、業務管理等に用いられるPDCAサイクルの手法におけるP(計画)サイクルで活用されることが想定される。
本実施の形態に係る情報処理システムは、因果関係の推定及び目的対象を最適化する介入の推定等のサービスに係る処理を行うサーバ装置1と、このサービスを利用するユーザが使用する一又は複数の端末装置3とを備えて構成されている。サーバ装置1は、本サービスの提供会社等が管理運営する装置であり、インターネット等のネットワークを介して一又は複数の端末装置3との通信を行い、端末装置3に対して上記のサービスを提供するための種々の情報処理を行う。端末装置3は、例えば企業の施策立案者等が使用するパーソナルコンピュータ等の情報処理装置であり、スマートフォン又はタブレット型端末装置等の可搬型の情報処理装置であってよい。
ユーザは、介入の対象である物又は事象等に関して蓄積された様々な情報、例えば販売する商品等についてSNS(Social Networking Service)での広告を行ったか否か、マスメディアを利用した広告を行ったか否か、割引セールなどを行ったか否か、及び、商品等の売上高等の情報を収集し、収集したこれらの情報を対応付けたテーブルデータ等を端末装置3にて作成する。ユーザは、端末装置3にて作成したこれらのデータをサーバ装置1へ入力データとして与えることにより、サーバ装置1に因果関係の推定及び目的対象を最適化する介入の推定等の処理の実施を依頼することができる。
端末装置3から送信された入力データを受信したサーバ装置1は、取得した入力データに含まれる複数の項目(変数)と各変数の値とに基づいて、複数の変数の因果関係を推定する処理を行う。サーバ装置1は、推定した因果関係に基づいて、例えば複数の変数の名称等を2次元平面上に適宜に配置し且つ変数間の因果関係の有無を結線で示したグラフを作成する。サーバ装置1は、作成したグラフを因果関係の推定結果として依頼元の端末装置3へ送信する。
因果関係の推定結果をサーバ装置1から受信した端末装置3は、推定結果として受信するグラフを表示してユーザに提示する。これによりユーザは、複数の変数がどのような因果関係を持つものであるかを容易に把握することが期待できる。
なおユーザは、端末装置3が因果関係の推定結果として表示するグラフに明らかな誤りが含まれる場合等に、因果関係を修正することができる。端末装置3は、因果関係の推定結果として表示したグラフに対して、例えば変数名を結ぶ線の追加、削除又は変更等の操作をユーザから受け付けることで、因果関係を修正する操作を受け付ける。端末装置3は、ユーザによる因果関係の修正内容をサーバ装置1へ送信する。サーバ装置1は、端末装置3から因果関係の修正内容を受信し、自身が推測した因果関係を修正する。
端末装置3は、表示した推定結果に基づいて、ユーザから最適化の目的とする変数(目的変数)の選択を受け付ける。端末装置3は、ユーザが選択した一又は複数の目的変数に関する情報をサーバ装置1へ通知し、この目的変数を最適化する他の変数の値の推定を依頼する。なおユーザからの目的変数の受け付けは、因果関係に関するグラフの表示を行う前の段階、例えば入力データをサーバ装置1へ送信する際などに行われてもよい。
端末装置3から目的変数に関する情報を受信したサーバ装置1は、以前に端末装置3から取得した入力データと、これに基づいて推定した因果関係とに基づいて、目的変数を最適化する他の変数(説明変数)の値を推定する処理を行う。最適化は、例えば売り上げの最大化又は損失の最小化等が採用され得る。ユーザは、目的変数を選択した際に、この目的変数の最適化に関する条件(最大化又は最小化のいずれを行うかなど)と、最適化に対する制約条件(各変数の値の範囲、種類等)とを指定することができ、端末装置3はこれらの条件を目的変数に関する情報に含めてサーバ装置1へ与える。サーバ装置1は、これらの条件を満たし、且つ、目的変数を最適化する説明変数の値を、適宜の最適化手法により算出し、算出した各説明変数の値及びこのときの目的変数の値を最適化結果に関する情報として端末装置3へ送信する。
サーバ装置1から最適化結果に関する情報を受信した端末装置3は、既に受信済みの因果関係の推定結果のグラフと共に、最適化結果に関する情報を表示してユーザに提供する。これによりユーザは、複数の変数の因果関係を把握すると共に、目的変数を最適化する説明変数の値を把握することが期待できる。なお端末装置3は、因果関係の推定結果のグラフを表示せずに、最適化に関する情報を表示してユーザに提供してもよい。
<装置構成>
図2は、本実施の形態に係るサーバ装置1の一構成例を示すブロック図である。本実施の形態に係るサーバ装置1は、処理部11、記憶部(ストレージ)12及び通信部(トランシーバ)13等を備えて構成されている。なお本実施の形態においては、1つのサーバ装置にて処理が行われるものとして説明を行うが、複数のサーバ装置が分散して処理を行ってもよい。
処理部11は、CPU(Central Processing Unit)、MPU(Micro-Processing Unit)、GPU(Graphics Processing Unit)又は量子プロセッサ等の演算処理装置、ROM(Read Only Memory)及びRAM(Random Access Memory)等の記憶装置を用いて構成されている。処理部11は、記憶部12に記憶されたサーバプログラム12aを読み出して実行することにより、複数の変数の因果関係を推定する処理、及び、目的変数を最適化する説明変数の値を推定する処理等の種々の処理を行う。
記憶部12は、例えばハードディスク等の大容量の記憶装置を用いて構成されている。記憶部12は、処理部11が実行する各種のプログラム、及び、処理部11の処理に必要な各種のデータを記憶する。本実施の形態において記憶部12は、処理部11が実行するサーバプログラム12aを記憶する。また記憶部12は、因果関係の推定結果及び最適化結果等の情報を記憶する履歴記憶部12bが設けられている。
本実施の形態においてサーバプログラム(コンピュータプログラム、プログラム製品)12aは、メモリカード又は光ディスク等の記録媒体99に記録された態様で提供され、サーバ装置1は記録媒体99からサーバプログラム12aを読み出して記憶部12に記憶する。ただし、サーバプログラム12aは、例えばサーバ装置1の製造段階において記憶部12に書き込まれてもよい。また例えばサーバプログラム12aは、遠隔の他のサーバ装置等が配信するものをサーバ装置1が通信にて取得してもよい。例えばサーバプログラム12aは、記録媒体99に記録されたものを書込装置が読み出してサーバ装置1の記憶部12に書き込んでもよい。サーバプログラム12aは、ネットワークを介した配信の態様で提供されてもよく、記録媒体99に記録された態様で提供されてもよい。
履歴記憶部12bは、サーバ装置1の処理による因果関係の推定結果及び最適化結果等の情報を、例えばこれらの処理を依頼したユーザ又は端末装置3のID(識別情報)、及び、これらの処理を行った日時等の情報と共に記憶して蓄積する。また履歴記憶部12bには、これらの処理結果と共に、処理に用いられた端末装置3からの入力データを記憶してもよい。サーバ装置1は、例えば端末装置3からの要求に応じて、履歴記憶部12bから適宜に因果関係の推定結果及び最適化結果等の情報を読み出して要求元の端末装置3へ送信し、過去の処理結果を端末装置3に表示させることができる。
通信部13は、携帯電話通信網、無線LAN(Local Area Network)及びインターネット等を含むネットワークNを介して、種々の装置との間で通信を行う。本実施の形態において通信部13は、ネットワークNを介して、一又は複数の端末装置3との間で通信を行う。通信部13は、処理部11から与えられたデータを他の装置へ送信すると共に、他の装置から受信したデータを処理部11へ与える。
なお記憶部12は、サーバ装置1に接続された外部記憶装置であってよい。またサーバ装置1は、複数のコンピュータを含んで構成されるマルチコンピュータであってよく、ソフトウェアによって仮想的に構築された仮想マシンであってもよい。またサーバ装置1は、上記の構成に限定されず、例えば可搬型の記憶媒体に記憶された情報を読み取る読取部、操作入力を受け付ける入力部、又は、画像を表示する表示部等を含んでもよい。
また本実施の形態に係るサーバ装置1には、記憶部12に記憶されたサーバプログラム12aを処理部11が読み出して実行することにより、データ取得部11a、因果関係推定部11b、目的変数選択部11c、及び、最適化部11d等が、ソフトウェア的な機能部として処理部11に実現される。なお本図においては、処理部11の機能部として、因果関係の推定処理及び変数の最適化処理に関連する機能部を図示し、これ以外の処理に関する機能部は図示を省略している。
データ取得部11aは、通信部13にてユーザが使用する端末装置3との通信を行うことにより、予め作成された入力データを端末装置3から取得する処理を行う。本実施の形態において入力データは、例えば複数の項目(変数)についてそれぞれ対応する値が複数格納されたデータ、いわゆるテーブルデータが採用され得るが、これに限るものではない。また本実施の形態において入力データに格納される各項目の値は、数値又は数値に置き換えることが可能なラベル等の情報であるものとするが、これに限るものではない。データ取得部11aは、端末装置3から取得した入力データを、記憶部12に一時的に記憶する。
またデータ取得部11aは、入力データと共に、この入力データに含まれる複数の変数に関する制約条件の情報を端末装置3から取得してもよい。制約条件には、例えば各変数がとり得る値の範囲、最大値又は最小値等の条件が含まれ得る。また制約条件には、複数の変数の関係に対する条件、例えば2つの変数の和又は差等に対する範囲、最大値又は最小値等の条件が含まれ得る。また制約条件には、各変数の種類、例えば整数又は小数等の条件が含まれ得る。
因果関係推定部11bは、データ取得部11aが端末装置3から取得した入力データについて、この入力データに含まれる複数の項目(変数)の因果関係を推定する処理を行う。本実施の形態において因果関係推定部11bは、例えばPC(Peter and Clark)アルゴリズム、GES(Greedy Equivalence Search)アルゴリズム、LiNGAM(Linear Non-Gaussian Acyclic Model)又はSAM(Structural Agnostic Modelling)等の既存の因果探索手法を用いて、複数の変数の因果関係を推定する。これらの因果探索手法を用いることによって因果関係推定部11bは、変数を矢印で結ぶことでこれらの変数間の因果関係を示したグラフ、いわゆる因果グラフを生成することができる。因果関係推定部11bは、因果関係の推定結果としてこの因果グラフを端末装置3へ送信すると共に、日時及びユーザID等の情報に対応付けて履歴記憶部12bに記憶する。
本実施の形態に係る情報処理システムでは、サーバ装置1から因果関係の推定結果を受信した端末装置3が因果グラフを表示する。端末装置3に表示された因果グラフに誤り等があるとユーザが判断した場合、ユーザは因果グラフを修正することができる。端末装置3はユーザによる因果グラフを修正する操作を受け付け、修正内容をサーバ装置1へ送信する。サーバ装置1の因果関係推定部11bは、端末装置3から受信した修正内容に基づいて因果グラフを修正し、修正した因果グラフを履歴記憶部12bに記憶する。
目的変数選択部11cは、入力データに含まれる複数の変数の中から最適化の目的変数の選択を受け付ける処理を行う。本実施の形態に係る情報処理システムでは、因果グラフを表示した端末装置3は、因果グラフに含まれる変数の中から、一又は複数の変数を選択する操作をユーザから受け付け、選択された変数を目的変数としてサーバ装置1へ通知する。サーバ装置1の目的変数選択部11cは、通信部13にて端末装置3との通信を行い、端末装置3からの目的変数の通知を受信することで、ユーザによる目的変数の選択を受け付ける。
最適化部11dは、データ取得部11aが取得した入力データ、因果関係推定部11bが推定した変数の因果関係、及び、目的変数選択部11cが受け付けた目的変数等の情報に基づいて、目的変数を最適化(最大化又は最小化等)する他の変数(説明変数)の値を算出する処理を行う。またこのときに最適化部11dは、各変数の分類(最適化の対象とする変数、最適化が不要な変数及び最適化の対象外とする変数等)の情報を用いて処理を行ってよい。各変数の分類は、例えば入力データと共にユーザから与えられてもよく、また例えば目的変数の選択の際に他の変数の分類をユーザから受け付けてもよく、これら以外の方法により取得されてもよい。
最適化部11dは、データ取得部11aが入力データと共に取得した制約条件を満たすよう、値の算出を行う。本実施の形態において最適化部11dは、例えばベイズ最適化等のブラックボックス最適化手法、又は、決定木のモデル等を用いたホワイトボックス最適化手法等の既存の最適化手法を用いて目的変数の最適化を行い、目的変数を最適化した際の説明変数の値を算出する。最適化部11dは、算出した説明変数の値及び目的変数の値(最適値)を含む情報を最適化結果として端末装置3へ送信すると共に、日時、ユーザID及び因果関係等の情報に対応付けて履歴記憶部12bに記憶する。
図3は、本実施の形態に係る端末装置3の構成を示すブロック図である。本実施の形態に係る端末装置3は、処理部31、記憶部(ストレージ)32、通信部(トランシーバ)33、表示部(ディスプレイ)34及び操作部35等を備えて構成されている。端末装置3は、企業の施策立案者等のユーザが使用する装置であり、例えばパーソナルコンピュータ、スマートフォン又はタブレット型端末装置等の情報処理装置を用いて構成され得る。
処理部31は、CPU又はMPU等の演算処理装置、ROM及び等を用いて構成されている。処理部31は、記憶部32に記憶されたプログラム32aを読み出して実行することにより、サーバ装置1へ送信する入力データを生成する処理、複数の変数の中から目的変数の選択を受け付ける処理、及び、サーバ装置1による推定結果を表示する処理等の種々の処理を行う。
記憶部32は、例えばフラッシュメモリ等の不揮発性のメモリ素子又はハードディスク等の記憶装置等を用いて構成されている。記憶部32は、処理部31が実行する各種のプログラム、及び、処理部31の処理に必要な各種のデータを記憶する。本実施の形態において記憶部32は、処理部31が実行するプログラム32aを記憶している。本実施の形態においてプログラム32aは遠隔のサーバ装置等により配信され、これを端末装置3が通信にて取得し、記憶部32に記憶する。ただしプログラム32aは、例えば端末装置3の製造段階において記憶部32に書き込まれてもよい。例えばプログラム32aは、メモリカード又は光ディスク等の記録媒体98に記録されたプログラム32aを端末装置3が読み出して記憶部32に記憶してもよい。例えばプログラム32aは、記録媒体98に記録されたものを書込装置が読み出して端末装置3の記憶部32に書き込んでもよい。プログラム32aは、ネットワークを介した配信の態様で提供されてもよく、記録媒体98に記録された態様で提供されてもよい。
通信部33は、携帯電話通信網、無線LAN及びインターネット等を含むネットワークNを介して、種々の装置との間で通信を行う。本実施の形態において通信部33は、ネットワークNを介して、サーバ装置1との間で通信を行う。通信部33は、処理部31から与えられたデータを他の装置へ送信すると共に、他の装置から受信したデータを処理部31へ与える。
表示部34は、液晶ディスプレイ等を用いて構成されており、処理部31の処理に基づいて種々の画像及び文字等を表示する。操作部35は、ユーザの操作を受け付け、受け付けた操作を処理部31へ通知する。例えば操作部35は、機械式のボタン又は表示部34の表面に設けられたタッチパネル等の入力デバイスによりユーザの操作を受け付ける。また例えば操作部35は、マウス及びキーボード等の入力デバイスであってよく、これらの入力デバイスは端末装置3に対して取り外すことが可能な構成であってもよい。
また本実施の形態に係る端末装置3は、記憶部32に記憶されたプログラム32aを処理部31が読み出して実行することにより、データ生成部31a、表示処理部31b及び目的変数選択部31c等がソフトウェア的な機能部として処理部31に実現される。なおプログラム32aは、本実施の形態に係る情報処理システムに専用のプログラムであってもよく、インターネットブラウザ又はウェブブラウザ等の汎用のプログラムであってもよい。
データ生成部31aは、サーバ装置1へ送信する入力データを生成する処理を行う。本実施の形態において入力データは、例えばCSV(Comma Separated Values)又はTSV(Tab Separated Values)等のテーブルデータである。また入力データには、例えば因果関係に関するブラックリスト又はホワイトリストが含まれてもよい。ブラックリストは、例えば因果関係が存在しないことが明白な2つの変数のリストである。ホワイトリストは、例えば因果関係の探索範囲を定める2変数のリストである。データ生成部31aは、例えば所定の装置又はソフトウェア等が自動的に収集したデータに対して所定の演算処理又はデータ成型処理等を施すことによって、入力データを生成する。またデータ生成部31aは、例えば表計算用のアプリケーションソフトウェアを利用してユーザが作成したデータを入力データとして取得してもよい。この場合にプログラム32aには、表計算用のアプリケーションソフトウェアは含まれていなくてよい。またデータ生成部31aは、例えば入力データに含まれる各変数の制約条件等の入力をユーザから受け付けて、入力データと共に制約条件に関する情報をサーバ装置1へ送信してよい。
表示処理部31bは、種々の文字及び画像等を表示部34に表示する処理を行う。本実施の形態において表示処理部31bは、サーバ装置1から受信した因果関係の推定結果及び変数の最適化結果等の情報を表示部34に表示する。
目的変数選択部31cは、複数の変数の中から一又は複数の目的変数の選択を受け付ける処理を行う。目的変数選択部31cは、例えば表示処理部31bが因果関係の推定結果として因果グラフを表示部34に表示した状態で、因果グラフに含まれる複数の変数の中から一又は複数の変数の選択操作を、操作部35にて受け付ける。目的変数選択部31cは、ユーザにより選択された変数を目的変数とし、選択された目的変数に関する情報をサーバ装置1へ送信する。
<因果関係推定処理>
本実施の形態に係る情報処理システムを利用するユーザは、例えば端末装置3を利用してサーバ装置1へ送信する入力データを生成する。図4は、入力データの一例を示す模式図である。図示の入力データは、例えば「No.」、「年代」、「SNS広告」、「メディア広告」、「割引セール」及び「売上」の6つの項目(変数)について、各変数の値を対応付けて記憶したデータである。入力データの「No.」は、この入力データに含まれる複数のデータに対して付された通し番号であり、先頭から順に「1」~「N(入力データに含まれるデータ数)」の正の整数値が割り当てられる。なお入力データには、「No.」の項目は必ずしも含まれていなくてよい。また図4に示す入力データの各項目及び設定された数値等は、一例であって、これに限るものではない。
本例の入力データは、ある商品又はサービス等に対して行った広告又はセール等の販売戦略とこれによる売上との対応を示したデータである。入力データの「年代」は、広告又はセール等の対象とした顧客の年代であり、「10代」、「20代」、「30代」、「40代」、「50代」…等の値が設定され得る。「年代」として設定される値は、数値であってもよく、年代をクラスとして分類したラベルであってもよい。入力データの「SNS広告」は、SNSを利用した広告を行ったか否かを示す情報であり、「0(広告を行っていない)」又は「1(広告を行った)」のいずれかの値が設定され得る。同様に、「メディア広告」は、テレビジョン又は新聞等のマスメディアを利用した広告を行ったか否かを示す情報であり、「0(広告を行っていない)」又は「1(広告を行った)」のいずれかの値が設定され得る。「割引セール」は、割引セールを行ったか否かを示す情報、及び、割引セールを行った場合にその割引率を示す情報である。「割引セール」に「0%」が設定されている場合、割引セールを行っていないことを示す。「割引セール」に1%以上の数値が設定されている場合、その割引率で割引セールを行ったことを示す。入力データの「売上」は、これらの広告又はセール等を行った場合の対象の商品又はサービス等の売上を示す数値であり、単位は例えば円又はドル等である。
ユーザは、例えば端末装置3にて表計算用のアプリケーションソフトウェアを用いて図示のテーブルデータを作成し、記憶部32に記憶(保存)する。またユーザは、テーブルデータに含まれる各項目に関する制約条件を設定し、制約条件に関する情報をテーブルデータと共に記憶することができる。その後にユーザは、端末装置3にてプログラム32aを起動し、記憶部32に記憶したデータを入力データとして端末装置3に取得させる。端末装置3は、取得した入力データを、必要に応じて制約条件に関する情報と共に、サーバ装置1へ送信(アップロード)する。サーバ装置1は、端末装置3から取得した入力データ及び制約条件を基に、この入力データに含まれる複数の変数について因果関係を推定する処理を行い、処理結果を端末装置3へ送信する。サーバ装置1から因果関係の推定結果を受信した端末装置3は、この推定結果を表示部34に表示する。
図5は、因果関係の推定結果の一表示例を示す模式図である。本実施の形態に係る端末装置3は、表示部34の上側領域に入力データを表として表示すると共に、下側領域にサーバ装置1による因果関係の推定結果を表示している。図示の例において端末装置3は、図4に示した入力データを表として表示し、この入力データに関する因果関係の推定結果を因果グラフとして表示している。なお矢印の根(始点)側が因果関係における原因側であり、矢印の先(終点)側が因果関係における結果側である。
因果グラフは、例えば入力データに含まれる各変数の項目名が記された長方形状のラベルを2次元平面上に適宜に配置し、因果関係を有する変数間を矢印で結んだグラフである。本例の因果グラフでは、「SNS広告」及び「売上」に因果関係があり、「メディア広告」及び「売上」に因果関係があり、「割引セール」及び「売上」に因果関係があることが示されている。また本例の因果グラフでは、「No.」及び「年代」の2つの変数が、他のいずれの変数とも因果関係を有していないことが示されている。
図6及び図7は、因果グラフの作成方法を説明するための模式図である。図6に示す例は入力データに「A」~「C」の3つの変数が含まれている場合の因果グラフの作成例であり、図7に示す例は「A」~「F」の6つの変数が含まれている場合の因果グラフの作成例である。本例においてサーバ装置1は、制約ベースの因果探索アルゴリズムの1つであるPCアルゴリズムを用いて、複数の変数の因果関係を示す因果グラフを作成している。なおPCアルゴリズムは既存の技術であるため、本実施の形態においては因果グラフの作成方法の概略を説明し、詳細な説明は省略する。またサーバ装置1は、PCアルゴリズムとは異なる既存の種々のアルゴリズム、例えばGES(Greedy Equivalence Search)アルゴリズム又はLiNGAM(Linear Non-Gaussian Acyclic Model)等により因果グラフを生成してよい。
まず本実施の形態に係るサーバ装置1は、図6及び図7の上段にそれぞれ示すように、入力データに含まれる複数の変数「A」、「B」…の全組み合わせについて因果関係があると仮定した場合の完全無向グラフを生成する。なお以下の説明では、変数に相当するグラフ中の「A」、「B」…等のラベルが付された円形を「ノード」と呼び、因果関係がある2つのノード間を結ぶ線を「エッジ」と呼ぶ。完全無向グラフは、複数のノードの中から2つのノードを選び出す場合の全通りの組み合わせについてエッジを付与したグラフであり、各エッジについての向きが定められていないグラフである。
完全無向グラフを作成したサーバ装置1は、入力データに含まれる各変数の値に基づいて、完全無向グラフの各エッジについて条件付きの独立性が成立するか否かを判定し、図6及び図7の中段に示すように、独立性が成立するエッジ(即ち因果関係がないエッジ)を削除する。このときにサーバ装置1は、例えばノード「A」及び「B」を結ぶエッジについて、他のx個のノードを条件として与えた場合の条件付き独立性が成立するか否かを、x=0からx=N-2(Nは全変数の数)まで順に判定し、条件付き独立性が成立すると判定した時点でエッジの削除を行う。
条件付き独立性に基づくエッジの削除を行った後、サーバ装置1は、図6及び図7の下段にそれぞれ示すように、削除されずに残された各エッジの方向を決定する。このときにサーバ装置1は、例えば図6中段に示すように、ノード「A」及び「B」とノード「B」及び「C」とがエッジで結ばれ、且つ、ノード「A」及び「C」がエッジで結ばれない構造、いわゆるV-Structureに相当する箇所をグラフから抽出する。サーバ装置1は、この構造においてノード「B」がノード「A」及び「C」について条件付き独立性を有していない場合、例えば図6下段に示すように、ノード「A」から「B」へエッジを方向付けると共に、ノード「C」から「B」へエッジを方向付ける。
またサーバ装置1は、上記のV-Structureに相当しない箇所については、DAG(Directed Acyclic Graph、有向非巡回グラフ)の構造に関するルール、いわゆるオリエンテーションルールに基づいて、エッジの方向を決定する。なお本実施の形態においては、オリエンテーションルールの詳細な説明を省略する。
本実施の形態に係る情報処理システムでは、サーバ装置1が入力データに基づいて複数の変数の因果関係を推定した因果グラフを端末装置3へ送信し、端末装置3が因果グラフを表示部34に表示する。サーバ装置1が作成する因果グラフは、因果関係を推定したものであり、因果関係について誤りが含まれ得る。そこで本実施の形態に係る情報処理システムでは、表示した因果グラフに対する修正の操作を端末装置3がユーザから受け付ける。端末装置3は、例えば因果グラフに対するエッジの追加、削除及び向きの変更等の修正操作を受け付ける。端末装置3は、ユーザの修正操作に応じて因果グラフを修正し、修正した因果グラフをサーバ装置1へ送信する。サーバ装置1は、修正された因果グラフを端末装置3から受信した場合、自身が作成した因果グラフを破棄して修正された因果グラフを履歴記憶部12bに記憶し、以後は修正された因果グラフを用いて処理を行う。
<最適化処理>
因果関係の推定処理を行った後、本実施の形態に係る情報処理システムでは、入力データに含まれる各変数の最適化処理が行われる。図8は、本実施の形態に係る端末装置3が表示する最適化処理画面の一表示例を示す模式図である。因果関係の推定結果をサーバ装置1から取得して表示した端末装置3は、例えばメニューからの項目選択等のユーザによる所定の操作に応じて、最適化処理画面を表示部34に表示する。図8に示す最適化処理画面には、サーバ装置1による因果関係の推定結果を表示する因果関係表示領域111、変数に関する情報を表示する変数情報表示領域112、最適化の処理を開始する指示を受け付ける最適化ボタン113、及び、最適化の結果に関する情報を表示する最適化情報表示領域114が、画面の上から下へこの順で設けられている。
最適化処理画面の因果関係表示領域111は、サーバ装置1による因果関係の推定結果である因果グラフを表示する領域である。図示の例において端末装置3は、入力データに含まれる10個の変数1~10についてサーバ装置1が因果関係を推定した因果グラフを、因果関係表示領域111に表示している。本実施の形態において端末装置3は、因果関係表示領域111に表示した因果グラフに含まれる複数の変数のうちの1つを選択する操作をユーザから受け付けることにより、最適化の目的とする変数の選択を受け付ける。目的変数の選択を受け付けた端末装置3は、因果関係表示領域111に表示した因果グラフに含まれる複数の変数を分類し、分類した変数の種類に応じて因果グラフの各変数を色分けして表示する。なお図8に示す例は、各変数に対応するノードに付したハッチングの種類により、変数の色分け表示を表現してある。また本実施の形態においては、変数の種類に応じた色分け表示が行われているが、これに限るものではなく、変数の種類をユーザが区別して認識し得るものであればどのような態様で表示が行われてもよい。
本実施の形態において端末装置3は、複数の変数を目的変数、対象変数(説明変数)、不要変数、又は、対象外変数のいずれかに分類する。目的変数は、ユーザの操作により選択された変数であり、本例では変数9が目的変数である。対象変数は、目的変数の値を変動させる要因となり得る介入可能な変数であり、例えば因果グラフにおいて目的変数の原因側に連なる一又は複数の変数である。本例では変数1,2,4,5,8が対象変数である。不要変数は、目的変数の値を変動させる要因とならない変数、介入できない変数又は介入すべきでない変数等であり、例えば因果グラフにおいて目的変数の結果側に連なる一又は複数の変数である。本例では変数3,6,7が不要変数である。対象外変数は、目的変数に全く因果関係がない変数、即ち因果グラフにおいて目的変数に対して直接及び間接にエッジが接続されない変数である。本例では変数10が対象外変数である。
本実施の形態において端末装置3は、ユーザによる目的変数の選択と共に、対象変数、不要変数及び対象外変数の選択を受け付けて、複数の変数の分類に応じた色分け表示を行う。ただし、対象変数、不要変数及び対象外変数の分類をユーザから受け付けるのではなく、端末装置3が自動的に行ってもよい。
最適化処理画面の変数情報表示領域112は、上述の変数の分類結果を表示するための領域である。端末装置3は、例えば目的変数、対象変数、不要変数及び対象外変数の各リストを、変数情報表示領域112の左側から順に並べて表示する。また端末装置3は、目的変数のリストの下方に、最適化の条件として最大化又は最小化のいずれか一つを選択可能なラジオボタンを表示し、ユーザから最適化の条件の選択を受け付ける。また端末装置3は、変数のドラッグ&ドロップ等の操作により、複数のリスト間で変数を移動させる操作をユーザから受け付けることにより、変数の種類の変更を受け付ける。
なお最適化処理画面の変数情報表示領域112は、図8に示した構成に限らず、様々な構成が採用され得る。図9は、最適化処理画面の変数情報表示領域112の他の構成例を説明するための模式図である。図9に示す最適化処理画面の変数情報表示領域112は、「変数名」と「分類」とを対応付けたテーブル形式で変数に関する情報を表示する。テーブル形式の変数情報表示領域112では、例えば左側の列に変数名が適宜の順序で一覧表示され、右側の列に各変数の分類が対応付けて表示される。また各変数の分類は、例えばプルダウンによりユーザからの選択を受け付けることが可能である。本例の場合には、プルダウンにより「目的変数(最大化)」、「目的変数(最小化)」、「対象変数」、「不要変数」、「対象外変数」の項目が表示され、ユーザはこれらの項目の中から変数の分類を1つ選択することができる。
端末装置3は、最適化処理画面の最適化ボタン113に対するクリック又はタップ等の操作を受け付けることにより、最適化処理を開始する。端末装置3は、最適化処理画面の変数情報表示領域112にて設定された各変数の分類、及び、目的変数に対する最適化の条件等の情報をサーバ装置1へ送信する。これらの情報を受信したサーバ装置1は、既に取得済みの入力データ及び制約条件と、この入力データを基に自身が推定した変数の因果関係と、端末装置3から受信した各変数の分類と、目的変数に対する最適化の条件とを基に、目的変数を最適化(最大化又は最小化)する対象変数の値を推定する処理を行う。
本実施の形態に係るサーバ装置1は、例えばブラックボックス最適化の手法を用いて、目的変数を最適化する対象変数の値の推定を行う。ブラックボックス最適化は、最適化の対象となる関数又はモデル等の構成が不明であるが、この関数又はモデル等に対する入力値及び出力値の対応が得られている場合に、この入力値及び出力値のデータを基に出力値を最大化(最大化又は最小化)する入力値を探索する手法である。サーバ装置1は、ブラックボックス最適化の一手法として、例えばベイズ最適化を行って対象変数の値を推定する。なおサーバ装置1は、ベイズ最適化以外のブラックボックス最適化の手法を用いて最適化を行ってもよい。ブラックボックス最適化及びベイズ最適化等は、既存の技術であるため、本実施の形態において詳細な説明は省略する。
またサーバ装置1は、最適化の対象となる関数又はモデル等の構成が判明している場合などには、ホワイトボックス最適化の手法を用いて最適化を行ってもよい。ホワイトボックス最適化は、前提となる関数又はモデル等に含まれる係数又はパラメータ等を、入力値及び出力値に基づいて決定することにより最適化する手法である。サーバ装置1は、決定した係数又はパラメータ等を設定した関数又はモデル等に基づき、目的変数を最適化(最大化又は最小化)する対象変数の値を算出することができる。サーバ装置1は、関数又はモデル等の構成に応じた適宜の最適化手法を採用することができる。これらの最適化手法は、既存の技術であるため、本実施の形態において詳細な説明は省略する。
適宜の最適化手法により目的変数を最適化する対象変数の値を推定したサーバ装置1は、この推定結果に関する情報を端末装置3へ送信する。サーバ装置1からの情報を受信した端末装置3は、最適化処理画面の最適化情報表示領域114に、サーバ装置1による推定結果を表示する。なおサーバ装置1は最適化結果として複数の候補を挙げてよく、この場合に端末装置3は、複数の最適化結果を、例えば目的変数の最適化結果が優れているものから順に上下方向に並べて最適化情報表示領域114に表示する。
図8に示す最適化処理画面の最適化情報表示領域114では、「介入」、「効果」及び「相対評価」の3つの項目名が左右方向に並べて表示され、その下方に各項目の値が上下方向に並べて表示されている。「介入」の項目は、目的変数を最適化する説明変数の値であり、本例ではサーバ装置1が最適化の処理により算出した変数1,2,4,5,8の値が示されている。「効果」の項目は、最適化された目的変数の値であり、本例では変数9の値が示されている。「相対評価」の項目は、サーバ装置1が複数の最適化結果を算出した場合に、目的変数の最適化結果が最も優れているものを100%として、2番以降の最適化結果の評価を算出したものである。相対評価の算出はどのような方法で行われてもよい。
本実施の形態において端末装置3が図8に示す構成の最適化処理画面を表示することによって、ユーザは複数の変数の因果関係を因果関係表示領域111に表示された因果グラフを基に確認し、因果グラフ及び変数情報表示領域112を基に目的変数及び説明変数等を適宜に設定して、最適化処理を実行することができる。またユーザは、因果関係表示領域111に表示された因果グラフと、最適化情報表示領域114に表示された最適化の結果とを見比べながら、最適な効果等を得るための介入を検討することができる。
<フローチャート>
図10及び図11は、本実施の形態に係る端末装置3が行う処理の手順を示すフローチャートである。本実施の形態に係る端末装置3の処理部31は、例えばユーザが予め表計算用のアプリケーションソフトウェアを用いて作成したファイル等を記憶部12から読み出すことにより、入力データを取得する(ステップS1)。また処理部31は、例えばユーザが予め作成したファイルを読み出すことにより、又は、ユーザから入力を受け付けることにより、入力データに含まれる複数の変数に関する制約条件を取得する(ステップS2)。処理部31は、通信部33にてネットワークNを介してサーバ装置1との通信を行うことにより、ステップS1にて取得した入力データ、及び、ステップS2にて取得した制約条件を、サーバ装置1へ送信する(ステップS3)。
なお本フローチャートではステップS2において制約条件を取得しているが、これに限るものではない。端末装置3は、例えば変数の分類を行った後にユーザからの入力を受け付けて制約条件を取得してもよく、これら以外のタイミングで制約条件の取得を行ってもよい。また端末装置3は、例えばステップS2にて一部の変数についての制約条件を取得し、これ以降の適宜のタイミングで残りの変数についての制約条件を取得してもよい。
端末装置3から送信される入力データ及び制約条件を受信したサーバ装置1は、この入力データに含まれる複数の変数について因果関係を推定する処理を行い、推定結果を端末装置3へ送信する。端末装置3の処理部31は、サーバ装置1から送信される因果関係の推定結果を受信したか否かを判定する(ステップS4)。因果関係の推定結果を受信していない場合(S4:NO)、処理部31は、推定結果を受信するまで待機する。因果関係の推定結果を受信した場合(S4:YES)、処理部31の表示処理部31bは、受信した情報に基づいて、図5に例示した画面を表示部34に表示することにより、複数の変数の因果グラフを表示する(ステップS5)。
なおフローチャートの図示は省略するが、処理部31は、因果グラフを表示した後に、因果グラフに対するエッジの追加、削除又は方向変更等の操作をユーザから受け付けることにより、因果グラフの修正を受け付けてよい。因果グラフの修正がなされた場合、処理部31は、修正内容をサーバ装置1へ通知する。
本実施の形態において端末装置3は、図5に例示した画面を表示部34に表示している状態で、例えばメニューからの項目選択又はショートカットキーの操作等の所定操作を受け付けた場合に、図8に例示した最適化処理画面に表示を遷移させる。端末装置3の処理部31は、操作部35に対するユーザの操作に基づいて、この所定操作がなされたか否かを判定する(ステップS6)。所定操作がなされていない場合(S6:NO)、処理部31は、所定操作がなされるまで待機する。所定操作がなされた場合(S6:YES)、表示処理部31bは、図8に例示した最適化処理画面を表示部34に表示する(ステップS7)。
処理部31の目的変数選択部31cは、最適化処理画面の因果関係表示領域111に表示された因果グラフに対する変数の選択操作を受け付けることにより、ユーザから最適化の目的変数の選択を受け付ける(ステップS8)。次いで処理部31は、目的変数以外の変数について、対象変数(説明変数)、不要変数及び対象外変数のいずれであるかの分類を、ユーザの適宜の操作に基づいて受け付ける(ステップS9)。なお本例では、各変数の分類をユーザが行うものとするが、これに限るものではない。対象となる複数の変数のうちの一部又は全部について、サーバ装置1又は端末装置3が分類を自動的に行ってもよい。
また処理部31は、これらの変数に対する制約条件を、ユーザの適宜の操作に基づいて受け付ける(ステップS10)。なおステップS2にて既に全ての変数の制約条件を受け付けている場合、処理部31は、ステップS10における制約条件の取得を行わなくてよい。
処理部31は、最適化処理画面の最適化ボタン113に対する操作がなされたか否かを判定する(ステップS11)。最適化ボタン113に対する操作がなされていない場合(S11:NO)、処理部31は、最適化ボタン113に対する操作がなされるまで待機する。最適化ボタン113に対する操作がなされた場合(S11:YES)、処理部31は、変数の分類、制約条件及び目的変数の最適化の条件(最大化又は最小化)等に関する情報をサーバ装置1へ送信する(ステップS12)。
端末装置3から目的変数等に関する情報を受信したサーバ装置1は、目的変数を最適化する説明変数の値を推定する処理を行い、推定した値を最適化結果として端末装置3へ送信する。端末装置3の処理部31は、サーバ装置1から最適化結果を受信したか否かを判定する(ステップS13)。最適化結果を受信していない場合(S13:NO)、処理部31は、最適化結果を受信するまで待機する。最適化結果を受信した場合(S13:YES)、表示処理部31bは、受信した最適化結果を最適化処理画面の最適化情報表示領域114に表示して(ステップS14)、処理を終了する。
図12は、本実施の形態に係るサーバ装置1が行う処理の手順を示すフローチャートである。本実施の形態に係るサーバ装置1の処理部11のデータ取得部11aは、通信部13にてネットワークNを介した端末装置3との通信を行うことにより、端末装置3が上述のステップS3にて送信する入力データ等を受信したか否かを判定する(ステップS31)。入力データ等を受信していない場合(S31:NO)、データ取得部11aは、入力データ等を受信するまで待機する。端末装置3から入力データ等を受信した場合(S31:YES)、処理部11の因果関係推定部11bは、例えばPCアルゴリズム等の因果探索手法を用いて、入力データの含まれる複数の変数の因果関係を推定する処理を行う(ステップS32)。因果関係推定部11bは、ステップS32にて行った因果関係の推定結果を端末装置3へ送信する(ステップS33)。
処理部11の目的変数選択部11cは、端末装置3が上述のステップS12にて送信する目的変数等の最適化に関する情報を受信したか否かを判定する(ステップS34)。最適化に関する情報を受信していない場合(S34:NO)、目的変数選択部11cは、情報を受信するまで待機する。最適化に関する情報を受信した場合(S34:YES)、処理部11の最適化部11dは、選択された目的変数を最適化する説明変数の値を推定する最適化処理を行う(ステップS35)。このときに最適化部11dは、例えばブラックボックス最適化の手法を用いて値を推定する。最適化部11dは、ステップS35にて推定した値を含む最適化結果を、端末装置3へ送信し(ステップS36)、処理を終了する。
<その他>
本実施の形態に係る情報処理システムでは、サーバ装置1が因果関係の推定結果及び最適化結果等を履歴記憶部12bに記憶する。このときにサーバ装置1は、例えば入力データをサーバ装置1に対して送信した端末装置3又はこれを使用するユーザのID等の情報と、推定又は最適化等の処理を行った日時等の情報とを、推定結果及び最適化結果等の情報に対応付けて記憶する。サーバ装置1は、例えば端末装置3からの要求に応じて、履歴記憶部12bに記憶された推定結果及び最適化結果等の情報を読み出して要求元の端末装置3へ送信する。
サーバ装置1から送信される過去の推定結果及び最適化結果等の情報を基に、端末装置3は、例えば同じ商品について推定した過去の因果グラフと現在の因果グラフとを並べて表示することができる。この表示に基づいてユーザは、例えば過去と現在とで同じ商品の売り上げに対する複数の項目の因果関係がどのように変化したかを判断することができる。なお、サーバ装置1が履歴記憶部12bに記憶した履歴の情報に基づいて、端末装置3は、どのような態様でユーザに対する情報提供を行ってもよい。
<まとめ>
以上の構成の本実施の形態に係る情報処理システムでは、例えばユーザが予め作成したテーブルデータ等のように複数の変数に関する情報が含まれる入力データを端末装置3が取得してサーバ装置1へ送信する。サーバ装置1は、端末装置3から取得した入力データに基づいて、入力データに含まれる複数の変数の因果関係を推定する処理を行い、因果関係の推定結果として例えば因果グラフ等の情報を端末装置3へ送信(出力)する。端末装置3は、サーバ装置1による因果関係の推定結果を取得して、取得した推定結果を表示部34に表示(出力)する。
端末装置3は、例えば表示した因果グラフからの変数の選択を受け付けることにより、入力データに含まれる複数の変数の中から一又は複数の目的変数の選択を受け付けて、選択された目的変数に関する情報をサーバ装置1へ送信する。サーバ装置1は、端末装置3から送信される目的変数に関する情報を受信することにより、ユーザによる目的変数の選択を受け付け、この目的変数を最適化(最大化又は最小化)する複数の変数の値を推定し、推定結果を端末装置3へ送信(出力)する。端末装置3は、サーバ装置1による推定結果を取得して、取得した推定結果を表示部34に表示(出力)する。
これにより本実施の形態に係る情報処理システムでは、入力データに含まれる複数の項目(変数)についての因果関係をユーザが容易に把握することが期待できる。またユーザは、目的となる項目(目的変数)を最適化(最大化又は最小化)するための各項目の値の推定結果を知ることができるため、各項目を推定された値に近づけるような介入を行うことで、目的となる項目を最適化することが期待できる。よって本実施の形態に係る情報処理システムは、ユーザによる適切な介入の実施を支援することが期待できる。
また本実施の形態に係る情報処理システムでは、サーバ装置1が因果関係の推定結果として因果グラフを作成して端末装置3へ送信し、端末装置3が因果グラフを表示する。端末装置3は、例えば表示した因果グラフに含まれる複数の変数のうちのいずれか1つの変数に対するクリック又はタップ等の操作を受け付けることにより、ユーザから目的変数の選択を受け付けることができる。これによりユーザは、入力データに含まれる複数の変数の因果関係を把握しながら目的変数を選択することができるため、因果関係が示されずに目的変数を選択する場合と比較して、目的変数の選択を容易に行うことが期待できる。
また本実施の形態に係る情報処理システムでは、端末装置3は因果グラフを表示する際に、複数の変数の分類結果、例えば目的変数、対象変数(説明変数)、不要変数及び対象外変数の4種類への分類結果に応じて、因果グラフに含まれる各変数を色分けすることにより、複数の変数を区別して表示する。これによりユーザは、複数の変数が目的変数に対してどのような関係の変数であるかを容易に把握することが期待できる。
なお複数の変数の分類は、ユーザからの入力を受け付けることにより行われてよい。例えば端末装置3は、目的変数の選択を受け付けた後、目的変数以外の一又は複数の変数が対象変数(説明変数)、不要変数及び対象外変数等のいずれであるかの選択を受け付けることができる。ただし、変数の分類はユーザからの入力に基づいて行われるのではなく、端末装置3又はサーバ装置1等の装置により自動的に行われてもよい。例えば端末装置3は、選択された目的変数に基づいて、入力データに含まれる複数の変数のうち目的変数以外の変数について、目的変数に対する説明変数と、目的変数及び説明変数以外の変数とに分類し、目的変数及び説明変数等の各変数の分類結果をサーバ装置1へ送信することができる。また例えば、端末装置3は選択された目的変数をサーバ装置1へ通知し、サーバ装置1が目的変数以外の変数を分類して分類結果を端末装置3へ送信し、端末装置3が分類結果を取得して色分け等の表示を行うことができる。
また本実施の形態に係る情報処理システムでは、サーバ装置1が推定した因果関係において、目的変数の原因側に連なる一又は複数の変数を、この目的変数に対する説明変数とする。これによりサーバ装置1又は端末装置3は、因果関係の推定結果から目的変数に対応する説明変数を容易に決定することが期待できる。
また本実施の形態に係る情報処理システムでは、端末装置3が表示部34に表示した因果グラフに対する修正の操作をユーザから受け付け、受け付けた操作に応じて修正された因果グラフを表示する。これによりユーザは、サーバ装置1による因果関係の推定結果に誤り等が含まれる可能性が高い場合に、これを修正して後続の処理を適切に行うことが期待できる。なお因果グラフの修正は、端末装置3又はサーバ装置1のいずれにて行われてもよい。例えば端末装置3がユーザの操作に応じて因果グラフを修正し、修正した因果グラフをサーバ装置1へ送信してもよい。また例えば端末装置3がユーザから受け付けた操作をサーバ装置1へ通知し、サーバ装置1がユーザの操作に応じて因果グラフを修正し、修正した因果グラフを端末装置3へ送信してもよい。
また本実施の形態に係る情報処理システムでは、例えばユーザが入力データと共に作成した最適化に関する制約条件を端末装置3が取得してサーバ装置1へ送信する。サーバ装置1は、制約条件を満たすように、目的変数を最適化する説明変数の値を推定し、推定結果を端末装置3へ送信する。端末装置3は、制約条件を満たすように目的変数を最適化する説明変数の値の推定結果をサーバ装置1から取得して、推定結果を表示する。これによりユーザは、端末装置3にて制約条件を設定することができ、設定した制約条件を満たす推定結果を得ることが期待できる。
なお本実施の形態においては、情報処理システムのサーバ装置1及び端末装置3の2つの装置が協働して処理を行う構成を示したが、これに限るものではなく、1つの装置がこれらの処理を全て自身で行う構成であってもよく、3つ以上の装置が協働して処理を行ってもよい。2つ以上の装置が協働して処理を行う場合、各装置が行う処理についての役割分担は、本実施の形態において示した2つの装置の役割分担に限らず、適宜に定められ得る。また本実施の形態においては、商品又はサービス等の販売について売上を最適化する場合を例に説明を行ったが、本技術の適用はこれに限るものではなく、例えば企業における人事配置又は工場における製品の製造等の種々の分野に本技術を適用することができる。また本実施の形態において図4に示した入力データ、図5及び図8に示した画面、図6及び図7に示した因果グラフ等は、いずれも一例であって、これに限るものではない。
今回開示された実施形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
各実施形態に記載した事項は相互に組み合わせることが可能である。また、特許請求の範囲に記載した独立請求項及び従属請求項は、引用形式に関わらず全てのあらゆる組み合わせにおいて、相互に組み合わせることが可能である。さらに、特許請求の範囲には他の2以上のクレームを引用するクレームを記載する形式(マルチクレーム形式)を用いているが、これに限るものではない。マルチクレームを少なくとも1つ引用するマルチクレーム(マルチマルチクレーム)を記載する形式を用いて記載してもよい。