(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】2021005241
(43)【公開日】20210114
(54)【発明の名称】システムおよび方法
(51)【国際特許分類】
   G06F 3/0481 20130101AFI20201211BHJP
   B41J 29/38 20060101ALI20201211BHJP
   H04N 1/00 20060101ALI20201211BHJP
   G06N 20/00 20190101ALI20201211BHJP
【FI】
   !G06F3/0481
   !B41J29/38 Z
   !H04N1/00 127Z
   !G06N20/00 130
【審査請求】未請求
【請求項の数】8
【出願形態】OL
【全頁数】19
(21)【出願番号】2019118940
(22)【出願日】20190626
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ZIGBEE
(71)【出願人】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
【住所又は居所】東京都大田区下丸子3丁目30番2号
(74)【代理人】
【識別番号】100126240
【弁理士】
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100124442
【弁理士】
【氏名又は名称】黒岩 創吾
(72)【発明者】
【氏名】斉藤 良平
【住所又は居所】東京都大田区下丸子3丁目30番2号キヤノン株式会社内
【テーマコード(参考)】
2C061
5C062
5E555
【Fターム(参考)】
2C061AP01
2C061AP07
2C061CG02
2C061CG15
2C061CQ04
2C061CQ24
2C061CQ34
2C061HJ07
2C061HK23
2C061HP00
5C062AA05
5C062AA13
5C062AA37
5C062AB22
5C062AB23
5C062AB38
5C062AC04
5C062AC05
5C062AC22
5C062AC34
5C062AC51
5C062AF12
5C062AF14
5E555AA05
5E555AA59
5E555AA71
5E555BA02
5E555BA09
5E555BB06
5E555BC11
5E555DB41
5E555DD08
5E555EA03
5E555EA19
5E555FA00
(57)【要約】
【課題】 近年、装置が多くの機能を備えるようになり、おすすめ情報の提示方法をさらに改善することによりユーザの利便性向上が求められていた。
【解決手段】 おすすめ情報を出力するための学習済モデルを備えるシステムは、履歴データにおけるおすすめ情報に対応する使用履歴データが教師データとして特定され、かつ、前記履歴データにおいて前記使用履歴データとは異なる少なくとも1つの情報が入力データとして特定され、前記教師データと前記入力データが前記学習済モデルに入力されることで出力される出力データからおすすめ情報を決定する決定手段と、前記決定されたおすすめ情報に基づく画面を表示する表示手段を備える。
【選択図】 図7
【特許請求の範囲】
【請求項1】
おすすめ情報を出力するための学習済モデルを備えるシステムにおいて、
履歴データにおけるおすすめ情報に対応する使用履歴データが教師データとして特定され、かつ、前記履歴データにおいて前記使用履歴データとは異なる少なくとも1つの情報が入力データとして特定され、前記教師データと前記入力データが前記学習済モデルに入力されることで出力される出力データからおすすめ情報を決定する決定手段と、
前記決定されたおすすめ情報に基づく画面を表示する表示手段を備えることを特徴とするシステム。
【請求項2】
前記画面において前記おすすめ情報を使用しないことを示すユーザ操作が行われた場合、前記学習済モデルの更新が要求され、
前記学習済モデルの更新が要求される場合、前記履歴データと前記おすすめ情報を使用しないことを示すユーザ操作が行われたことを示す情報に基づいて前記学習済モデルの更新が実行されることを特徴とする請求項1に記載のシステム。
【請求項3】
前記出力データから複数のおすすめ情報が決定された場合、前記複数のおすすめ情報のうち1つのおすすめ情報の選択を受け付ける受け付け手段と、
前記受け付け手段により前記複数のおすすめ情報のうち1つのおすすめ情報の選択された場合、前記学習済モデルの更新が要求され、
前記学習済モデルの更新が要求される場合、前記受け付けられたおすすめ情報と前記履歴データに基づいて前記学習済モデルの更新が実行されることを特徴とする請求項1または2に記載のシステム。
【請求項4】
前記履歴データにおけるおすすめ情報に対応する使用履歴データは、携帯端末から印刷を指示したことを示す情報またはソーシャルネットワーキングサービス(SNS)で管理されている画像データの印刷を指示したことを示す情報であることを特徴とする請求項1乃至3のいずれか1項に記載のシステム。
【請求項5】
前記履歴データにおけるおすすめ情報に対応する使用履歴データは、車両の行き先を示す情報であることを特徴とする請求項1乃至3のいずれか1項に記載のシステム。
【請求項6】
おすすめ情報を出力するための学習済モデルを備えるシステムにおいて、
履歴データにおけるおすすめ情報に対応する使用履歴データを教師データとして特定し、前記履歴データにおいて前記使用履歴データとは異なる少なくとも1つの情報を入力データとして特定する特定手段と、
前記特定された入力データが前記学習済モデルに入力されることで得られる出力データと、前記教師データに基づいて機械学習を行うことにより前記学習済モデルを更新する更新手段と、
前記更新された学習済モデルと前記履歴データに基づいておすすめ情報を決定する決定手段を備えるシステム。
【請求項7】
おすすめ情報を出力するための学習済モデルを備えるシステムにおいて実行される方法であって、
履歴データにおけるおすすめ情報に対応する使用履歴データが教師データとして特定され、かつ、前記履歴データにおいて前記使用履歴データとは異なる少なくとも1つの情報が入力データとして特定され、前記教師データと前記入力データが前記学習済モデルに入力されることで出力される出力データからおすすめ情報を決定する決定工程と、
前記決定されたおすすめ情報に基づく画面を表示する表示工程を備えることを特徴とする方法。
【請求項8】
おすすめ情報を出力するための学習済モデルを備えるシステムにおいて実行される方法であって、
履歴データにおけるおすすめ情報に対応する使用履歴データを教師データとして特定し、前記履歴データにおいて前記使用履歴データとは異なる少なくとも1つの情報を入力データとして特定する特定工程と、
前記特定された入力データが前記学習済モデルに入力されることで得られる出力データと、前記教師データに基づいて機械学習を行うことにより前記学習済モデルを更新する更新工程と、
前記更新された学習済モデルと前記履歴データに基づいておすすめ情報を決定する決定工程を備える方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、システムおよび方法に関するものである。
【背景技術】
【0002】
従来、特許文献1のように使用履歴データを使っておすすめ機能を提示する技術があった。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2018−75809号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
近年、装置が多くの機能を備えるようになり、おすすめ情報の提示方法をさらに改善することによりユーザの利便性を向上することが求められていた。
【課題を解決するための手段】
【0005】
本発明は、おすすめ情報を出力するための学習済モデルを備えるシステムにおいて、履歴データにおけるおすすめ情報に対応する使用履歴データが教師データとして特定され、かつ、前記履歴データにおいて前記使用履歴データとは異なる少なくとも1つの情報が入力データとして特定され、前記教師データと前記入力データが前記学習済モデルに入力されることで出力される出力データからおすすめ情報を決定する決定手段と、前記決定されたおすすめ情報に基づく画面を表示する表示手段を備えることを特徴とする。
【発明の効果】
【0006】
本発明によれば、ユーザの利便性を向上することが可能となる。
【図面の簡単な説明】
【0007】
【図1】処理システム100の構成を示す図である。
【図2】クラウドサーバー200、エッジサーバー300の構成を示すブロック図である。
【図3】スマートフォン500の外観図である。
【図4】プリンタ600の外観図である。
【図5】スマートフォン500の構成を示すブロック図である。
【図6】プリンタ600の構成を示すブロック図である。
【図7】処理システム100のソフトウェア構成を示す図である。
【図8】学習モデル252、学習済モデル352を利用する際の入出力の構造を示す概念図である。
【図9】プリンタ600において実行されるフローチャートである。
【図10】履歴データの一例を示す図である。
【図11】本実施形態の処理を説明するシーケンス図である。
【図12】エッジサーバー300において実行されるフローチャートである。
【図13】クラウドサーバー200において実行されるフローチャートである。
【図14】おすすめ機能の画面の一例を示す図である。
【発明を実施するための形態】
【0008】
以下、本発明の実施の形態について詳細に説明する。なお、この実施の形態に記載されている構成要素は、本発明の例としての形態を示すものであり、この発明の範囲をそれらのみに限定するものではない。
【0009】
<第1の実施形態>
(処理システムの構成)
図1は、本発明の一実施形態である処理システム100の構成を示す図である。本システム100は、ローカルエリアネットワーク102およびインターネット104で接続された、クラウドサーバー200、エッジサーバー300およびデバイス400から構成される。デバイス400にはネットワーク接続が可能な各種装置が含まれる。例えばスマートフォン500、プリンタ600、パーソナルコンピュータやワークステーションなどのクライアント端末401、デジタルカメラ402などが挙げられる。ただし、デバイス400はこれらの種類に限られるものではなく、例えば冷蔵庫やテレビ、エアコンなどの家電製品を含むものであってもよいし、車両に搭載された車載装置(例えばカーナビゲーションシステム)を含むものであっても良い。これらデバイス400はローカルエリアネットワーク102で相互に接続され、ローカルエリアネットワーク102に設置されているルータ103を介してインターネット104と接続することが可能である。または、デバイス400は、公衆回線(例えば、4Gまたは5G)を介してエッジサーバー300等の他の装置と通信しても良い。
【0010】
ここで、ルータ103はローカルエリアネットワーク102とインターネット104を接続する機器として図示されているが、ローカルエリアネットワーク102を構成する無線LANアクセスポイント機能を持たせることも可能である。この場合、各デバイス400は有線LANでルータ103と接続する以外に、無線LANでアクセスポイントと接続してローカルエリアネットワーク102に参加するように構成することができる。例えばプリンタ600やクライアント端末401は有線LANで接続し、スマートフォン400やデジタルカメラ402は無線LANで接続するように構成することも可能である。各デバイス400およびエッジサーバー300は、ルータ103を介して接続されたインターネット104を経由してクラウドサーバー200と相互に通信することが可能である。
【0011】
エッジサーバー300と各デバイス400はローカルエリアネットワーク102を経由して相互に通信することが可能である。また、各デバイス400どうしもローカルエリアネットワーク102を経由して相互に通信することが可能である。また、スマートフォン500とプリンタ600は近距離無線通信101によって通信可能である。近距離無線通信101としては、Bluetooth(登録商標)規格やNFC規格に則った無線通信を利用するものが考えられる。またスマートフォン500は携帯電話回線網105とも接続されており、この回線網105を介してクラウドサーバー200と通信することもできる。
【0012】
なおこのシステム構成は本発明の一例を示すものであって、異なる構成を取るものであってもよい。たとえばルータ103がアクセスポイント機能を備えている例を示したが、アクセスポイントはルータ103と異なる装置で構成してもよい。また、エッジサーバー300と各デバイス400の間の接続はローカルエリアネットワーク102以外の接続手段を用いるものであってもよい。例えば無線LAN以外のLPWA、ZigBee、Bluetooth、近距離無線通信などの無線通信や、USBなどの有線接続や赤外線通信などを用いるものであってもよい。
【0013】
(サーバーの構成)
図2は、クラウドサーバー200、エッジサーバー300の構成を示すブロック図である。ここではクラウドサーバー200、エッジサーバー300のハードウェア構成としては共通のものを利用するものとして説明する。サーバー200、300は、装置全体の制御を行うメインボード210と、ネットワーク接続ユニット201、ハードディスクユニット202からなる。
【0014】
メインボード210に配置されるマイクロプロセッサ形態のCPU211は、内部バス212を介して接続されているプログラムメモリ213に格納されている制御プログラムと、データメモリ214の内容とに従って動作する。CPU211はネットワーク制御回路215を介してネットワーク接続ユニット201を制御することで、インターネット104やローカルエリアネットワーク102などのネットワークと接続し、他の装置との通信を行う。CPU211はハードディスク制御回路216を経由して接続されたハードディスクユニット202にデータを読み書きすることができる。
【0015】
ハードディスクユニット202には、プログラムメモリ213にロードして使用されるオペレーティングシステムやサーバー200、300の制御ソフトウェアが格納されるほか、各種のデータも格納される。
【0016】
メインボード210にはGPU217が接続されており、各種演算処理をCPU211の代わりに実行させることが可能である。GPU217はデータをより多く並列処理することで効率的な演算を行うことができるので、ディープラーニングのような学習モデルを用いて複数回に渡り学習を行う場合にはGPU217で処理を行うことが有効である。そこで本実施形態では、後述の学習部251による処理にはCPU211に加えてGPU217を用いるものとする。具体的には、学習モデルを含む学習プログラムを実行する場合に、CPU211とGPU217が協同して演算を行うことで学習を行う。なお、学習部251の処理はCPU211またはGPU217のみにより演算が行われても良い。また、推論部351も学習部251と同様にGPU217を用いても良い。
【0017】
また、本実施形態ではクラウドサーバー200をエッジサーバー300で共通の構成を使用するものとして説明したが、本発明の実施に当たっては必ずしもこの構成に限られるものではない。例えばクラウドサーバー200にはGPU217を搭載するがエッジサーバー300では搭載しない構成を取ってもよいし、異なる性能のGPU217を用いるものとして構成してもよい。
【0018】
(スマートフォンの外観)
図3は、スマートフォン500の外観図である。スマートフォンとは、携帯電話の機能の他に、カメラや、ネットブラウザ、メール機能などを搭載した多機能型の携帯電話のことである。近距離無線通信ユニット501は近距離無線通信を行うユニットであり、所定距離内にいる通信相手の近距離無線通信ユニットと通信を行うことができる。無線LANユニット502は無線LANを利用してローカルエリアネットワーク102と接続して通信を行うためのユニットで、装置内に配置されている。回線接続ユニット503は、携帯電話回線に接続して通信を行うためのユニットで、装置内に配置されている。タッチパネルディスプレイ504はLCD方式の表示機構とタッチパネル方式の操作機構を兼ね備えており、スマートフォン500の前面に備えられている。代表的な操作方法はタッチパネルディスプレイ504上にボタン状の操作パーツの表示を行い、ユーザがタッチパネルディスプレイ504へのタッチ操作を行うことによってボタンが押下されたイベントを発行することである。電源ボタン505はスマートフォンの電源のオン、およびオフをする際に用いる。
【0019】
(プリンタの外観)
図4は、プリンタ600の外観図である。本実施形態ではプリンタにスキャナその他の機能を兼ね備えたマルチファンクションプリンタ(MFP)を例にしている。図4(a)はプリンタ600の全体外観図を表している。原稿台601はガラス状の透明な台であり、原稿をのせてスキャナで読み取る時に使用する。原稿台圧板602はスキャナで読み取りを行う際に原稿が浮かないように原稿台に押しつけるとともに、外光がスキャナユニットにはいらないようにするためのカバーである。印刷用紙挿入口603は様々なサイズの用紙をセットする挿入口である。ここにセットされた用紙は一枚ずつ印刷部に搬送され、所望の印刷を行って印刷用紙排出口604から排出される。
【0020】
図4(b)はプリンタ600上面の外観図を表している。原稿台圧板602の上部には操作パネル605および近距離無線通信ユニット606が配置されている。近距離無線通信ユニット606は近距離無線通信を行うためのユニットで、所定距離内にいる通信相手の近距離無線通信ユニットと通信を行うことができる。無線LANアンテナ607は無線LANを用いてローカルエリアネットワーク102と接続して通信を行うためのアンテナが埋め込まれている。
【0021】
(スマートフォンの構成)
図5は、スマートフォン500の構成を示すブロック図である。スマートフォン500は装置全体の制御を行うメインボード510と、無線LANユニット502、近距離無線通信ユニット501、回線接続ユニット503からなる。
【0022】
メインボード510に配置されるマイクロプロセッサ形態のCPU511は、内部バス512を介して接続されているROM形態のプログラムメモリ513に格納されている制御プログラムと、RAM形態のデータメモリ514の内容とに従って動作する。
【0023】
CPU511は無線LAN制御回路515を介して無線LANユニット502を制御することで、他の通信端末装置と無線LAN通信を行う。CPU511は近距離無線通信制御回路516を介して近距離無線通信ユニット501を制御することによって、他の近距離無線通信端末との接続を検知したり、他の近距離無線通信端末との間でデータの送受信を行ったりすることができる。またCPU511は回線制御回路517を介して回線接続ユニット503を制御することで、携帯電話回線網105に接続し、通話やデータ送受信を行うことができる。CPU511は操作部制御回路518を制御することによってタッチパネルディスプレイ504に所望の表示を行ったり、ユーザからの操作を受け付けたりすることが可能である。
【0024】
CPU511はカメラ部519を制御して画像を撮影することができ、撮影した画像をデータメモリ514中の画像メモリ520に格納する。また、撮影した画像以外にも、携帯電話回線やローカルエリアネットワーク102や近距離無線通信101を通じて外部から取得した画像を画像メモリ520に格納したり、逆に外部に送信したりすることも可能である。
【0025】
不揮発性メモリ521はフラッシュメモリ等で構成され、電源をオフされた後でも保存しておきたいデータを格納する。例えば電話帳データや、各種通信接続情報や過去に接続したデバイス情報などの他、保存しておきたい画像データ、あるいはスマートフォン500に各種機能を実現するアプリケーションソフトウェアなどが格納される。
【0026】
(プリンタの構成)
図6は、プリンタ600の構成を示すブロック図である。プリンタ600は装置全体の制御を行うメインボード610と、無線LANユニット608、近距離無線通信ユニット606からなる。メインボード610に配置されるマイクロプロセッサ形態のCPU611は、内部バス612を介して接続されているROM形態のプログラムメモリ613に格納されている制御プログラムと、RAM形態のデータメモリ614の内容とに従って動作する。
【0027】
CPU611はスキャナ部615を制御して原稿を読み取り、データメモリ614中の画像メモリ616に格納する。また、CPU611は印刷部317を制御してデータメモリ614中の画像メモリ616の画像を記録媒体に印刷することができる。CPU611は無線LAN通信制御部618を通じて無線LANユニット608を制御することで、他の通信端末装置と無線LAN通信を行う。
【0028】
またCPU611は近距離無線通信制御回路620を介して近距離無線通信ユニット606を制御することによって、他の近距離無線通信端末との接続を検知したり、他の近距離無線通信端末との間でデータの送受信を行ったりすることができる。
【0029】
CPU611は操作部制御回路621を制御することによって操作パネル605にプリンタ600の状態の表示や機能選択メニューの表示を行ったり、ユーザからの操作を受け付けたりすることが可能である。操作パネル605にはバックライトが備えられており、CPU611は操作部制御回路621を介してバックライトの点灯、消灯を制御することが出来る。バックライトを消灯すると、操作パネル605の表示が見えにくくなるが、プリンタ600の消費電力を抑えることが出来る。
【0030】
(ソフトウェア構成)
図7は、処理システム100のソフトウェア構成を示す図である。本図では、ソフトウェア構成のうち、本実施形態における学習および推論の処理に関わるものについてのみ記載しており、その他のソフトウェアモジュールについては不図示としている。例えば各デバイスやサーバー上で動作するオペレーティングシステムや各種ミドルウェア、メンテナンスのためのアプリケーション等については図示を省略している。
【0031】
クラウドサーバー200は、学習用データ生成部250、学習部251、学習モデル252を備える。学習用データ生成部250は、外部から受信したデータから、学習部251が処理可能な学習用データを生成するモジュールである。学習用データは、学習部251の入力データXと、学習の結果の正解を示す教師データTの組である。学習部251は、学習用データ生成部250から受け取った学習用データを使って学習を実行するプログラムモジュールである。学習モデル252は、学習部251で行った学習の結果を蓄積する。ここでは学習モデル252をニューラルネットワークとして実現する例を説明する。ニューラルネットワークの各ノード間の重み付けパラメータを最適化することにより、入力データを分類したり、評価値を決定したりすることが出来る。蓄積した学習モデル252は、エッジサーバー300に学習済モデルとして配信され、エッジサーバー300における推論処理に用いられる。
【0032】
エッジサーバー300は、データ収集・提供部350、推論部351、学習済モデル352を備える。データ収集・提供部350は、デバイス400から受信したデータや、エッジサーバー300が自ら収集したデータを、データ群としてクラウドサーバー200に送信するモジュールである。なお、データ収集・提供部350によりクラウドサーバー200に提供されたデータ群が、クラウドサーバー200における学習に使用される。推論部351は、デバイス400から送られるデータを基に、学習済モデル352を用いて推論を実行し、その結果をデバイス400に返送するプログラムモジュールである。デバイス400から送られるデータは、推論部351の入力データXとなるデータである。学習済モデル352は、エッジサーバー300で行う推論に用いられる。学習済モデル352も学習モデル252と同様にニューラルネットワークとして実現されるものとする。ただし、後述のように、学習済モデル352は学習モデル252と同一のものであってもよいし、学習モデル252の一部を抽出して利用するものであってもよい。学習済モデル352はクラウドサーバー200で蓄積して配信された学習モデル252を格納する。学習済モデル352は、学習モデル252の全部が配信されたものであってもよいし、学習モデル252のうち、エッジサーバー300での推論に必要な一部分だけを抜き出して配信されたものであってもよい。
【0033】
デバイス400は、アプリケーション部450、データ送受信部451を備える。アプリケーション部450は、デバイス400で実行する各種の機能を実現するモジュールであり、機械学習による学習・推論の仕組みを利用するモジュールである。データ送受信部451は、エッジサーバー300に学習または推論を依頼するモジュールである。学習時には、アプリケーション部450からの依頼により学習に用いるデータをエッジサーバー300のデータ収集・提供部350に送信する。また、推論時には、アプリケーション部450からの依頼により推論に用いるデータをエッジサーバー300に送信し、その結果を受信してアプリケーション部450に返す。
【0034】
なお、本実施形態ではクラウドサーバー200で学習した学習モデル252をエッジサーバー300に学習済モデル352として配信し、推論に利用する形態を示したが、この形態に限定されるものではない。学習、推論をそれぞれ、クラウドサーバー200、エッジサーバー300、デバイス400のどこで実行するかは、ハードウェア資源の配分や計算量、データ通信量の大小に応じて構成を決定すればよい。あるいはこれら資源の配分や計算量、データ通信量の増減に応じて動的に変えるように構成してもよい。学習と推論を行う主体が異なる場合、推論側は推論のみで使用するロジックや学習済モデル352の容量を削減したり、より高速で実行できるように構成したりすることが可能である。例えば、学習および推論をデバイス400で実施しても構わない。
【0035】
(学習モデル)
図8は、学習モデル252、学習済モデル352を利用する際の入出力の構造を示す概念図である。
【0036】
図8(a)は、学習時における、学習モデル252とその入出力データの関係を示す。入力データX(801)は、学習モデル252の入力層のデータである。本実施形態における入力データXの詳細は後述する。入力データXを機械学習モデルである学習モデル252を用いて認識した結果として出力データY(803)が出力される。学習時には、入力データXの認識結果の正解データとして教師データT(802)が与えられるので、出力データYと教師データTを損失関数804に与えることにより、認識結果の正解からのずれ量L(805)が得られる。学習部251は、多数の学習用データに対してずれ量Lが小さくなるように、学習モデル252中のニューラルネットワークのノード間の結合重み付け係数等を更新する。誤差逆伝播法は、上記の誤差が小さくなるように、各ニューラルネットワークのノード間の結合重み付け係数等を調整する手法である。
【0037】
機械学習の具体的なアルゴリズムとしては、最近傍法、ナイーブベイズ法、決定木、サポートベクターマシンなどが挙げられる。また、ニューラルネットワークを利用して、学習するための特徴量、結合重み付け係数を自ら生成する深層学習(ディープラーニング)も挙げられる。適宜、上記アルゴリズムのうち利用できるものを用いて本実施形態に適用することができる。
【0038】
図8(b)は、推論時における、学習済モデル352とその入出力データの関係を示す。入力データX(801)は、学習済モデル352の入力層のデータである。本実施形態における入力データXの詳細は後述する。入力データXを機械学習モデルである学習モデル252を用いて認識した結果として出力データY(803)が出力される。推論時には、この出力データYを推論結果として利用する。なお、推論時の学習済モデル352は、学習時の学習モデル252と同等のニューラルネットワークを備えるものとして説明したが、推論で必要な部分のみを抽出したものを学習済モデル352として用意することもできる。これによって学習済モデル352のデータ量を削減したり、推論時のニューラルネットワーク処理時間を短縮したりすることが可能である。
【0039】
本実施形態は、デバイス400をプリンタ600として説明する。プリンタ600は、クライアント端末401であるパーソナルコンピュータ(PC)からローカルエリアネットワーク102を介して受信して印刷処理を実行する機能を備える。しかし、プリンタ600は、他の機能も備えており、例えばスマートフォンまたはタブレットなどの携帯端末から印刷データを受信する機能などを備える。また、プリンタ600は、ソーシャルネットワーキングサービス(SNS)で管理されている画像データを印刷する機能も備える。これらの機能が使用されることでユーザの利便性が向上する。そのため、本実施形態では適切なタイミングでプリンタの機能を紹介することでユーザの利便性を更に向上することを目的とする。なお、本実施形態では、スマートフォンに対する操作で、スマートフォンに保存されているデータを印刷する処理をスマフォプリントと呼び、SNSで管理されているデータを印刷する処理をSNSプリントと呼ぶ。なお、SNSプリントは、SNSへのログイン操作などがあるため、スマフォプリントと比較するとユーザの操作が煩雑であるものとする。また、PCからの指示でPCに保存されているデータを印刷する処理をPCプリントと呼ぶ。さらに、エッジサーバー300は、プリンタ600だけでなく他のプリンタとも通信可能である。
【0040】
プリンタ600により実行される処理を図9のフローチャートを用いて説明する。この処理はプリンタ600のCPU611により実行される。なおこのフローチャートは本発明の実施例の説明に関わる処理について記載しており、その他の処理については図示を省略している。また、図9は、プリンタ600において印刷ジョブを受信した場合に開始される。
【0041】
プリンタ600は、印刷ジョブを受信すると(S901)、履歴データを更新する(S902)。例えば、プリンタ600は、印刷ジョブを解析することでPCプリント、スマフォプリントまたはSNSプリントのいずれであるかを特定する。さらに、プリンタ600は、印刷ジョブを解析することで印刷に使用される用紙サイズを特定する。プリンタ600は、特定された項目について、履歴データの回数を増加する。
【0042】
プリンタ600は、S902においてSNSプリントまたはスマフォプリントの印刷回数が0回から1回に更新されたか否かを判定する(S903)。例えば、図9の処理が開始される前に保持されていた履歴データが図10(A)だとする。そして、S901でスマートフォンからL版サイズを指定した印刷ジョブを受信した場合、図10(A)が図10(B)に更新される。その場合、プリンタ600は、S903においてYesと判定する。なお、S903においてNoと判定された場合、図9の処理はS905へと進む。
【0043】
S903においてYesと判定された場合、プリンタ600は、学習依頼とS902で更新された履歴データをエッジサーバー300に送信する(S904)。例えば、本実施形態では、履歴データとして図10(B)が送信される。さらに、0回から1回に変更された機能(SNSプリントまたはスマフォプリント)も送信される。なお、0回から1回に変更された機能が教師データTとして使用される。
【0044】
プリンタ600は、S902で更新された履歴データを参照してSNSプリントが0回であるか、または、スマフォプリントが0回であるかを判定する(S905)。S905においてNoと判定された場合(SNSプリントとスマフォプリントの両者が1回以上使用されている場合)、プリンタ600のユーザは、スマフォプリントまたはSNSプリントの機能を知っていることになる。つまり、推論依頼は不要となるためS906からS908は実行されない。
【0045】
一方、S905においてYesと判定された場合、プリンタ600は、S902で更新された履歴データと推論依頼をエッジサーバー300に送信し(S906)、推論結果を受信するまで処理を待機する(S907)。
【0046】
推論結果が受信された場合、プリンタ600は、推論結果に対応する処理を実行する(S908)。例えば、プリンタ600は、エッジサーバー300から出力データYを受信する。そして、プリンタ600は、出力データY(例えば、SNSプリント0.23、スマフォプリント0.78および提示不要0.02)から一番値が大きい機能(スマフォプリント)を特定して図14(A)のような画面を表示する。また、プリンタ600は、エッジサーバー300において出力データYから特定された機能(スマフォプリント)を受信して、図14(A)のような画面を表示しても良い。ここでユーザが図14(A)の画面を使って「使いたい」を選択した場合、図9の処理は終了する。一方、ユーザが図14(A)の画面を使って「キャンセル」を選択した場合、プリンタ600は、S908の処理として学習依頼とS906で送信した履歴データをエッジサーバー300に送信する。例えば、S906で送信した履歴データを用いてエッジサーバー300が後述する推論処理を実行した結果、図14(A)のようにスマフォプリントがおすすめ機能として提示された。しかし、ユーザはスマフォプリントの使用を希望しなかったため、現在の学習モデルを更新する必要がある。そのため、プリンタ600は、S908の処理として学習依頼と、S906で送信した履歴データと、キャンセルボタンが押下されたことを示す情報と、おすすめ機能としてスマフォプリントが選択されたことを示す情報をエッジサーバー300に送信する。なお、この処理により実行されるクラウドサーバー200の処理は図13にて後述する。また、推論結果として提示不要を受信した場合、プリンタ600は、おすすめ機能の提示処理を実行せず、図9の処理を終了する。なお、本実施例では、PCプリントでL版サイズの印刷回数が閾値を超えたユーザに、スマートフォンの写真やSNSで管理されている写真の印刷を促すことを目的としている。そのため、履歴データにおいてPCプリントのL版サイズの印刷回数が閾値を超えていない場合、出力データにおける提示不要の値が大きくなる傾向にある。
【0047】
続いてクラウドサーバー200において実行される学習処理について説明する。クラウドサーバー200は、履歴データと学習依頼をエッジサーバー300経由で受信し、学習処理を行う。この処理について図8(A)と図10(B)を用いて説明する。学習用データ生成部250は、履歴データにおけるSNSプリントとスマフォプリントの中で0回から1回に更新された使用履歴データを教師データとして特定する。なお、本実施形態では、SNSプリントまたはスマフォプリントがおすすめ情報として提示される。そのため、履歴データにおけるSNSプリントとスマフォプリントの中で0回から1回に更新されたデータは、履歴データにおけるおすすめ情報に対応する使用履歴データと呼ぶこともある。そして、学習用データ生成部250は、履歴データにおいてスマフォプリントの使用回数とSNSプリントの使用回数以外の少なくとも1つのデータを入力データXとして特定する。例えば、PCプリント10回、A4サイズ3回、A3サイズ2回およびL版サイズ6回が入力データXとして特定されたり、PCプリント10回およびL版サイズ6回が入力データXとして特定されたりする。この処理により、教師データTと入力データXにより構成される学習用データが生成される。
【0048】
そして、学習用データ生成部250は、入力データXを学習モデル252に入力することで、学習部251は学習モデル252を使って出力データYを出力する。なお、本実施形態の学習モデル252は分類型である。そのため、本実施形態では、出力データYとして、例えば、SNSプリント0.02、スマフォプリント0.89および提示不要0.10が出力される。そして、学習部251は、入力データXの認識結果の正解データとして教師データT(802)が与えられるので、出力データYと教師データTを損失関数804に与えることにより、認識結果の正解からのずれ量L(805)が得られる。例えば、今回の例では、教師データTがスマフォプリントであるためスマフォプリント1が教師データTとして入力される。そして、出力データYはスマフォプリント0.89である。そのため、ずれ量Lは、0.11である。この0.11が学習モデル252にフィードバックされ、さらにずれ量Lが小さくなるように、学習部251は、学習モデル252中のニューラルネットワークのノード間の結合重み付け係数等を更新する。以上の処理を繰り返すことで生成された学習モデル252がエッジサーバー300に送信される。
【0049】
続いてエッジサーバー300において実行される推論処理について説明する。エッジサーバー300は、履歴データと推論依頼を受信して推論処理を行う。この推論処理について図8(B)と図10(C)を用いて説明する。なお、上述した通り学習済モデル352がエッジサーバー300に保持されている状態とする。推論部351は、推論依頼と履歴データをプリンタ600から受信すると、履歴データからスマフォプリントの使用回数とSNSプリントの使用回数以外の少なくとも1つのデータを入力データXとして特定し、学習済モデル352に入力する。例えば、PCプリント12回、A4サイズ2回、A3サイズ2回およびL版サイズ8回が入力データXとして特定されたり、PCプリント12回およびL版サイズ8回が入力データXとして特定されたりする。その結果、出力データYが得られる。例えば、SNSプリント0.23、スマフォプリント0.78および提示不要0.02が出力データYとして出力される。推論部351は、この出力データYから最大値である機能を提示機能としてプリンタ600に送信する。また、出力データYがプリンタ600に送信されても良い。なお、この処理に続いて図9のS908が実行される。
【0050】
続いて上述した学習処理と推論処理について図11のシーケンス図を用いて説明する。まず図11(A)が学習時のシーケンス図である。例えば、スマートフォン500が印刷ジョブを送信することで(S1101)、プリンタ600は履歴データを更新し(S1102)、学習依頼と履歴データをエッジサーバー300へ送信する(S1103)。エッジサーバー300は、プリンタ600から受信した履歴データと学習依頼をクラウドサーバー200に送信する(S1105)。そして、クラウドサーバー200は、図8および図10(B)を用いて上述したように学習用データを生成して学習処理を実行し、学習結果を蓄積する(S1106−S1108)。そして、クラウドサーバー200は、学習結果の蓄積により生成された学習モデル252をエッジサーバー300に配信し、エッジサーバー300が学習済モデル352を保持する(S1109−S1110)。
【0051】
続いて図11(B)を用いて推論時の処理を説明する。スマートフォン500またはPCが印刷ジョブを送信することで(S1121)、プリンタ600は履歴データを更新し(S1122)、学習依頼と履歴データをエッジサーバー300へ送信する(S1123)。エッジサーバー300は、プリンタ600から受信した履歴データとS1110で保持した学習済モデルを使って推論を実行する(S1124)。S1124により、エッジサーバー300は、S1123で受信した履歴データに基づいてSNSプリント、スマフォプリントまたは提示不要を決定し、その結果を推論結果としてプリンタ600に送信する(S1125)。なお、上述したように出力データYが推論結果としてプリンタ600に送信されても良い。この推論結果を受けてプリンタ600は、おすすめ機能を表示し(S1126)、印刷ジョブに基づく処理を実行する(S1127)。なお、図11(B)では、おすすめ機能が提示された後に印刷ジョブに基づく処理が実行されているが、処理順序はこの限りではない。例えば、印刷ジョブに基づく処理が終了した後にS1126が実行されても良いし、印刷ジョブの処理中にS1126が実行されても良い。
【0052】
図12を用いてエッジサーバー300の処理を説明する。図12の処理は、エッジサーバー300のCPU211により実行される。なおこのフローチャートは本発明の実施例の説明に関わる処理について記載しており、その他の処理については図示を省略している。エッジサーバー300は、初期化処理を実行(S1201)した後は、続くステップS1202からS1204で外部から各種命令の受信をチェックし、受信した命令に応じた処理を実行する。
【0053】
エッジサーバー300は、学習依頼を受信したと判定した場合(S1202−Yes)、受信した学習依頼と履歴データをクラウドサーバー200に送信する。また、エッジサーバー300は、推論依頼を受信したと判定した場合(S1203−Yes)、受信した推論依頼を実行する(S1206)。具体的には、推論依頼と共に送信された履歴データが推論部351に送信され、学習済モデル352を用いて推論が実行される。S1206の推論実行が完了すると、エッジサーバー300は、推論の結果を依頼元のプリンタ600に送信する(S1207)。なお、推論の結果は、例えば、上述した出力データY(例えば、SNSプリント0.23、スマフォプリント0.78および提示不要0.02)そのものでも良いし、出力データYから特定された機能(例えば、スマフォプリント)でも良い。推論部351は、図8(B)と図10(C)を用いて上述した通り、出力データYとして出力されたSNSプリント、スマフォプリントおよび提示不要の各値の中で最大値である機能を推論結果の提示機能としてプリンタ600に送信する。なお、推論部351は、出力データYの値において上位2つの機能が、SNSプリントとスマフォプリントであり、両者の値の差異が閾値以下である場合、2つの機能を推論結果としてプリンタ600に送信しても良い。例えば、図10(D)の履歴データから生成される入力データXが学習済モデル352に入力された場合、出力データYとしてSNSプリント0.5、スマフォプリント0.48および提示不要0.02が出力されたとする。この場合、プリンタ600には、例えば、図14(B)のように2つの機能が提示され、ユーザから次に使用したい機能の選択を受け付ける。つまり、S906で送信した履歴データを用いてエッジサーバー300が推論処理を実行した結果、おすすめ機能としてスマフォプリントとSNSプリントの両者が特定された。そして、図14(B)の画面においてユーザが、例えば、スマフォプリントを選択した場合、現在の学習モデル252を更新する必要がある。そのため、プリンタ600は、S908の処理として学習依頼と、S906で送信した履歴データと、選択された機能(ユーザ選択機能)をエッジサーバー300に送信する。なお、この処理により実行されるクラウドサーバー200の処理は図13にて後述する。なお、図10(C)は、図10(D)と比較すると、PCプリントの回数が少なく、ユーザの印刷に慣れている可能性が低い。そのため、図10(C)の履歴データが入力データとして使用される場合、おすすめ機能としてユーザ操作の煩雑度が比較的低いスマフォプリントの出力値が最大値となる傾向にある。一方、図10(D)は、図10(C)と比較すると、PCプリントの回数が多く、ユーザの印刷に慣れている可能性が高い。そのため、図10(D)の履歴データが入力データとして使用される場合、おすすめ機能としてユーザ操作の煩雑度が比較的低いスマフォプリントだけでなく、ユーザ操作の煩雑度が比較的高いSNSプリントの出力値も高くなる傾向にある。
【0054】
エッジサーバー300は、クラウドサーバー200から学習済モデルを受信したと判定した場合(S1204−Yes)、受信した学習済モデルの情報をエッジサーバー300の学習済モデル352に反映し記憶する(S1208)。これにより、以降の推論依頼に対しては更新された学習済モデル352が用いられる。
【0055】
図13は、クラウドサーバー200の処理内容を示すフローチャートである。この処理はクラウドサーバー200のCPU211により実行される。なお、このフローチャートは本発明の実施例の説明に関わる処理について記載しており、その他の処理については図示を省略している。また、上述した通り、学習モデルを含む学習プログラムを実行する場合に、CPU211とGPU217が協同して演算を行うことで学習を行う。
【0056】
クラウドサーバー200は、初期化処理を実行した(S1301)後、学習依頼を受信したか否かを判定する(S1302)。学習依頼を受信したと判定された場合、クラウドサーバー200は、学習用データ生成部250を用いて学習用データを生成する(S1303)。例えば、図8(A)と図10(B)を用いて上述したように、学習用データ生成部250は、履歴データにおけるSNSプリントとスマフォプリントの中で0回から1回に使用回数が更新された機能を教師データとして特定する。さらに学習用データ生成部250は、履歴データにおいてスマフォプリントの使用回数とSNSプリントの使用回数以外の少なくとも1つのデータを入力データXとして特定する。この処理により、教師データTと入力データXにより構成される学習用データが生成される。
【0057】
クラウドサーバー200は、学習用データを基に学習を実行する(S1304)。具体的には、学習用データを学習部251に送り、学習モデル252に対する学習を実行する。学習結果は続くステップS1305で学習モデル252に反映され蓄積される(S1305)。なお、この処理は図8(A)と図10(B)を用いて上述したが、ずれ量Lが小さくなるように、学習部251が、学習モデル252中のニューラルネットワークのノード間の結合重み付け係数等を更新する処理に相当する。
【0058】
学習結果の蓄積が終わると、クラウドサーバー200は、学習モデル252からエッジサーバー300へ配信する学習済モデル352を生成してエッジサーバー300へ送信する(S1306)。なお、ここではクラウドサーバー200が学習依頼を受信するごとに学習を実行するように説明したが、学習の実行には処理時間を要するため、受信した学習依頼を蓄積しておいて、学習依頼の受信とは非同期に学習実行するように構成してもよい。また、学習が行われる毎にエッジサーバー300への学習済モデル配信が行われるように説明したが、大量の学習がクラウドサーバー200で行われる場合には都度配信しなくてもよい。定期的に配信する、またはエッジサーバー300から必要に応じて配信要求を出して配信させるように構成してもよい。
【0059】
続いて、図14(A)においてキャンセルボタンが押下されたことで実行される学習処理について説明する。このケースでは、クラウドサーバー200は、S1302において学習依頼と共に、S906で送信した履歴データ(例えば図10(C))と、キャンセルボタンが押下されたことを示す情報と、おすすめ機能としてスマフォプリントを受信する。クラウドサーバー200は、履歴データにおいてスマフォプリントの使用回数とSNSプリントの使用回数以外の少なくとも1つのデータを入力データXとして特定する。また、教師データTとして、スマフォプリントとキャンセル指示を特定する。例えば、学習モデル252が、図10(C)の履歴データから生成される入力データXが入力された場合、出力データYとしてSNSプリント0.23、スマフォプリント0.78および提示不要0.02が出力されるとする。しかし、このケースの学習では、スマフォプリントがおすすめされないように学習モデル252を更新する必要がある。そのためクラウドサーバー200は、スマフォプリントの値が小さくなるようにニューラルネットワークの各ノード間の重み付けパラメータを最適化し、学習結果を蓄積して学習モデル252を更新する。例えば、更新された学習済モデル352を保持するエッジサーバー300が、別のプリンタから図10(C)と同じ履歴データと推論依頼を受信した場合、出力データY(SNSプリント0.64、スマフォプリント0.32および提示不要0.02)が出力される。この処理により、例えば、別のプリンタから図10(C)と同じ履歴データが受信された場合にスマフォプリントがおすすめされる可能性を軽減できる。なお、別のプリンタを別のユーザと置き換えても良い。
【0060】
続いて、S1302において受信した学習依頼においてユーザ選択機能を受信した場合に行われる学習処理について説明する。つまり、このケースで行われる学習処理は、図14(B)の画面に対する操作が行われたことに基づいて実行される。図9の処理で説明した通り、プリンタ600は、S908において、S906で送信した履歴データと、ユーザ選択機能(例えば、スマフォプリント)をエッジサーバー300に送信する。そのため、クラウドサーバー200は、学習依頼と共に、S906で送信した履歴データ(例えば図10(D))と、ユーザ選択機能を受信する。そしてクラウドサーバー200は、履歴データにおいてスマフォプリントの使用回数とSNSプリントの使用回数以外の少なくとも1つのデータを入力データXとして特定する。また、教師データTとして、ユーザ選択機能(例えば、スマフォプリント)を特定する。例えば、図10(D)の履歴データから生成される入力データXが学習済モデル352に入力された場合、出力データYとしてSNSプリント0.5、スマフォプリント0.48および提示不要0.02が出力されていた。しかし、このケースの学習では、スマフォプリントがおすすめされるように学習モデル252を更新する必要がある。そのためクラウドサーバー200は、スマフォプリントの値が大きくなり、SNSプリントの値が小さくなるようにニューラルネットワークの各ノード間の重み付けパラメータを最適化し、学習結果を蓄積して学習モデル252を更新する。この処理により、例えば、別のプリンタから図10(D)と同じ履歴データが受信された場合にスマフォプリントがおすすめされる可能性を増大できる。例えば、更新された学習済モデル352を保持するエッジサーバー300が、別のプリンタから図10(D)と同じ履歴データと推論依頼を受信した場合、出力データY(SNSプリント0.32、スマフォプリント0.64および提示不要0.02)が出力される。なお、別のプリンタを別のユーザと置き換えても良い。
【0061】
以上の構成を基に、本実施形態では、ユーザにおすすめする機能を適切なタイミングで提示することができる。さらに、本実施例では、図14(A)または(B)の画面に対するユーザ操作に基づいてさらに学習モデル252を更新することも可能である。
【0062】
<その他の実施形態>
なお、上述した実施形態では、SNSプリントとスマフォプリントを例に説明したが、他の機能でも構わない。例えば、用紙の面に複数ページを配置するNin1機能や、スキャン機能がおすすめ機能として提示されるような学習モデル252が生成されても良い。
【0063】
また、上述した実施形態では、デバイス400をプリンタ600として説明したが他の種類のデバイスでも良い。例えば、デバイス400が車載装置で、これまでの行き先履歴からおすすめの行き先を提示する際に、上述した実施形態の処理が実施されても良い。例えば、上述した実施形態では、履歴データにおいてスマフォプリントの使用回数とSNSプリントの使用回数以外の少なくとも1つのデータを入力データXとして特定していた。一方、車載装置において上述した実施形態を実行する場合、履歴データにおいて行き先情報(目的地情報)以外の少なくとも1つのデータ(例えば、気象情報、走行距離、日時、乗車人数などの少なくとも1つ)が入力データXとして使用される。また、上述した実施形態では、履歴データから教師データTとして、0回から1回に更新されたスマフォプリントまたはSNSプリントが特定されていた。一方、車載装置において上述した実施形態を実行する場合、履歴データにおいて行き先回数が0回から1回に更新された行き先情報(目的地情報)が教師データTとして特定される。
【0064】
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワークまたは記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータがプログラムを読出し実行する処理でも実現可能である。コンピュータは、1または複数のプロセッサーまたは回路を有し、コンピュータ実行可能命令を読み出し実行するために、分離した複数のコンピュータまたは分離した複数のプロセッサーまたは回路のネットワークを含みうる。
【0065】
プロセッサーまたは回路は、中央演算処理装置(CPU)、マイクロプロセッシングユニット(MPU)、グラフィクスプロセッシングユニット(GPU)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートウェイ(FPGA)を含みうる。また、プロセッサーまたは回路は、デジタルシグナルプロセッサ(DSP)、データフロープロセッサ(DFP)、またはニューラルプロセッシングユニット(NPU)を含みうる。
【符号の説明】
【0066】
100 処理システム
101 近距離無線通信
102 ローカルエリアネットワーク
103 ルータ
104 インターネット
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】