(57)【要約】【課題】商品またはサービスを、より適切なカテゴリに分類して検索精度を向上させることができる情報処理装置、情報処理方法、およびプログラムを提供することである。【解決手段】情報処理装置は、ネットワークを介して販売される商品またはサービスに関する商品データを取得する取得部と、階層的なカテゴリに分類された商品またはサービスの商品データを学習データとして、入力された商品データが示す商品またはサービスに対して階層的なカテゴリの分類結果を出力するように学習された分類器の出力結果に基づいて、前記取得部により取得された前記商品データが示す商品またはサービスのカテゴリを決定する決定部と、を備える。【選択図】図４
2019164402.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して販売される商品またはサービスに関する商品データを取得する取得部と、
階層的なカテゴリに分類された商品またはサービスの商品データを学習データとして、入力された商品データが示す商品またはサービスに対して階層的なカテゴリの分類結果を出力するように学習された分類器の出力結果に基づいて、前記取得部により取得された前記商品データが示す商品またはサービスのカテゴリを決定する決定部と、
を備える情報処理装置。
【請求項２】
前記分類器は、入力された前記商品データに互いに種類の異なる複数のコンテンツが含まれる場合、前記複数のコンテンツの其々の特徴に基づいて、入力された前記商品データの商品またはサービスの分類先とするカテゴリの確からしさを表すスコアを出力し、
前記決定部は、前記分類器により出力されたスコアに基づいて、前記取得部により取得された前記商品データが示す商品またはサービスのカテゴリを決定する、
請求項１に記載の情報処理装置。
【請求項３】
前記商品データには、商品またはサービスのタイトル、概要、および画像のうち少なくとも２つ以上のコンテンツが含まれる、
請求項２に記載の情報処理装置。
【請求項４】
前記分類器は、入力された前記商品データと、過去に前記商品データが入力されたときに導出した前記特徴および前記スコアに基づいて、入力された前記商品データの商品またはサービスのカテゴリのスコアを出力する再帰処理を繰り返す再帰型ニューラルネットワークを含む、
請求項２または３に記載の情報処理装置。
【請求項５】
前記再帰型ニューラルネットワークは、前記再帰処理を繰り返すごとに、より階層が深いカテゴリのスコアを出力する、
請求項４に記載の情報処理装置。
【請求項６】
前記再帰型ニューラルネットワークは、前記再帰処理の処理周期ごとに、複数のカテゴリの其々についてスコアを導出し、複数のカテゴリの其々について導出したスコアのうち最も大きいスコアに基づいて、次回の処理周期におけるスコアを導出する、
請求項４または５に記載の情報処理装置。
【請求項７】
前記決定部は、
ある処理周期に、前記再帰型ニューラルネットワークによって複数のカテゴリの其々のスコアが出力された場合、前記複数のカテゴリの其々のスコアのうち一部または全部が閾値未満であるか否かを判定し、
前記複数のカテゴリの其々のスコアのうち一部または全部が閾値未満であると判定した場合、前記処理周期よりも前の処理周期において、前記再帰型ニューラルネットワークによって出力された前記複数のカテゴリの其々のスコアのうち、２番目以降に大きいスコアに基づくスコアを、前記処理周期におけるスコアとして前記再帰型ニューラルネットワークに導出させる、
請求項６に記載の情報処理装置。
【請求項８】
前記再帰型ニューラルネットワークは、前記再帰処理を、学習時に前記学習データとして与えられた前記商品データが示す商品またはサービスのカテゴリの階層数と同じ回数分繰り返す、
請求項５から７のうちいずれか１項に記載の情報処理装置。
【請求項９】
前記ネットワークを介して販売される商品またはサービスの中から、前記決定部によって決定されたカテゴリと、予め販売者によって設定されたカテゴリとが異なる商品またはサービスを抽出する抽出部と、
前記抽出部により抽出された商品またはサービスを販売する前記販売者の端末装置に、カテゴリを変更するように促す情報を提供する情報提供部と、を更に備える、
請求項１から８のうちいずれか１項に記載の情報処理装置。
【請求項１０】
前記ネットワークを介して販売される商品またはサービスの中から、前記決定部によって決定されたカテゴリと、予め販売者によって設定されたカテゴリとが異なる商品またはサービスを抽出する抽出部と、
前記抽出部によって抽出された商品またはサービスの検索ランキングを低下させる検索処理部と、を更に備える、
請求項１から９のうちいずれか１項に記載の情報処理装置。
【請求項１１】
商品またはサービスの販売時に販売者がカテゴリを設定した際に、前記販売者によって設定されたカテゴリと前記決定部によって決定されたカテゴリとが異なる場合、前記販売者が設定したカテゴリを、前記決定部によって決定されたカテゴリに変更するように促す情報を、前記販売者の端末装置に提供する情報提供部を更に備える、
請求項１から１０のうちいずれか１項に記載の情報処理装置。
【請求項１２】
商品またはサービスの販売時に、前記決定部によって決定されたカテゴリを、販売対象の商品またはサービスのカテゴリとして提示する情報提供部を更に備える、
請求項１から１１のうちいずれか１項に記載の情報処理装置。
【請求項１３】
階層的なカテゴリに分類された商品またはサービスの商品データを学習データとして、入力された商品データが示す商品またはサービスに対して階層的なカテゴリの分類結果を出力するように、前記分類器を学習させる学習処理部を更に備える、
請求項１から１２のうちいずれか１項に記載の情報処理装置。
【請求項１４】
前記学習処理部は、前記学習データの候補となる複数の商品データのうち、ユーザが所定の行動に至った商品またはサービスに関する商品データを、前記学習データとして前記分類器を学習させる、
請求項１３に記載の情報処理装置。
【請求項１５】
前記所定の行動は、商品またはサービスを購入することを含み、
前記学習処理部は、前記ユーザによって購入された回数が所定回数以上の商品またはサービスに関する商品データを、前記学習データとして前記分類器を学習する、
請求項１４に記載の情報処理装置。
【請求項１６】
前記所定の行動は、商品またはサービスを閲覧することを含み、
前記学習処理部は、前記ユーザによって閲覧された回数が所定回数以上の商品またはサービスに関する商品データを、前記学習データとして前記分類器を学習する、
請求項１４または１５に記載の情報処理装置。
【請求項１７】
前記所定の行動は、商品またはサービスを閲覧した時間が所定時間以上であることを含み、
前記学習処理部は、前記ユーザによって閲覧された時間が所定時間以上の商品またはサービスに関する商品データを、前記学習データとして前記分類器を学習する、
請求項１４から１６のうちいずれか１項に記載の情報処理装置。
【請求項１８】
前記学習データの候補となる複数の商品データのうち、販売者が所定のカテゴリに分類した商品またはサービスの商品データを除いた前記複数の商品データを、前記学習データとして前記分類器を学習する学習処理部を更に備える、
請求項１から１７のうちいずれか１項に記載の情報処理装置。
【請求項１９】
コンピュータが、
ネットワークを介して販売される商品またはサービスに関する商品データを取得し、
階層的なカテゴリに分類された商品またはサービスの商品データを学習データとして、入力された商品データが示す商品またはサービスに対して階層的なカテゴリの分類結果を出力するように学習された分類器の出力結果に基づいて、前記取得した前記商品データが示す商品またはサービスのカテゴリを決定する、
情報処理方法。
【請求項２０】
コンピュータに、
ネットワークを介して販売される商品またはサービスに関する商品データを取得する処理と、
階層的なカテゴリに分類された商品またはサービスの商品データを学習データとして、入力された商品データが示す商品またはサービスに対して階層的なカテゴリの分類結果を出力するように学習された分類器の出力結果に基づいて、前記取得した前記商品データが示す商品またはサービスのカテゴリを決定する処理と、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【０００２】
一般的に、ショッピングサイトなどで商品やサービスを販売する場合、それらの商品またサービスに対して階層的なカテゴリを付与することが行われている。これに関連し、テキストに含まれる特徴語と、カテゴリに関連する関連単語とに重み値が付されている場合、特徴語の重み値と、関連単語の重み値とのマッチスコアに基づいて、商品カテゴリを決定する技術が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−４４５８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、商品またはサービスが適切でないカテゴリに分類され、その結果、商品またはサービスの検索精度が低下する場合があった。
【０００５】
本発明は、上記の課題に鑑みてなされたものであり、商品またはサービスを、より適切なカテゴリに分類して検索精度を向上させることができる情報処理装置、情報処理方法、およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
本発明の一態様は、ネットワークを介して販売される商品またはサービスに関する商品データを取得する取得部と、階層的なカテゴリに分類された商品またはサービスの商品データを学習データとして、入力された商品データが示す商品またはサービスに対して階層的なカテゴリの分類結果を出力するように学習された分類器の出力結果に基づいて、前記取得部により取得された前記商品データが示す商品またはサービスのカテゴリを決定する決定部と、を備える情報処理装置である。
である。
【発明の効果】
【０００７】
本発明の一態様によれば、商品またはサービスを、より適切なカテゴリに分類して検索精度を向上させることができる。
【図面の簡単な説明】
【０００８】
【図１】第１実施形態における情報処理装置１００を含む情報処理システム１の一例を示す図である。
【図２】サービス提供装置２０により提供されるウェブページの一例を示す図である。
【図３】階層的なカテゴリの一例を示す図である。
【図４】第１実施形態における情報処理装置１００の構成の一例を示す図である。
【図５】第１実施形態における情報処理装置１００による運用時の一連の処理の流れを示すフローチャートである。
【図６】販売サイト取扱商品データ１３４の一例を示す図である。
【図７】第１実施形態における分類器２００の一例を示す図である。
【図８】時間経過に応じたＲＮＮ２５０の処理内容を並列に展開した図である。
【図９】カテゴリの分類結果の一例を示す図である。
【図１０】カテゴリ間違い候補リスト１３６の一例を示す図である。
【図１１】商品がランキング順に掲載された販売サイトのウェブページの一例を示す図である。
【図１２】商品がランキング順に掲載された販売サイトのウェブページの一例を示す図である。
【図１３】販売サイトに商品を登録する際の商品登録画面の一例を示す図である。
【図１４】販売サイトに商品を登録する際の商品登録画面の他の例を示す図である。
【図１５】第１実施形態における情報処理装置１００による学習時の一連の処理の流れを示すフローチャートである。
【図１６】ラベルスムージング処理を説明するための図である。
【図１７】ラベルスムージング処理を説明するための図である。
【図１８】第２実施形態における分類器２００の一例を示す図である。
【図１９】第３実施形態における分類器２００の一例を示す図である。
【図２０】実施形態の情報処理装置１００のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明を適用した情報処理装置、情報処理方法、およびプログラムを、図面を参照して説明する。
【００１０】
［概要］
情報処理装置は、一以上のプロセッサにより実現される。情報処理装置は、ネットワークを介して販売される商品またはサービスに関する商品データを取得する。情報処理装置は、予め学習された分類器に基づいて、取得した商品データが示す商品またはサービスの分類先とするカテゴリを決定する。決定するカテゴリは、階層的な構造で規定されている。分類器は、階層的なカテゴリに分類された商品またはサービスの商品データを学習データとして、入力された商品データが示す商品またはサービスに対して階層的なカテゴリの分類結果を出力するように学習される。これのような分類器を利用することで、情報処理装置は、商品またはサービスを、より適切なカテゴリに分類することができ、その結果、商品またはサービスの検索精度を向上させることができる。以下、商品またはサービスをまとめて単に「商品」と称して説明する。
【００１１】
＜第１実施形態＞
［全体構成］
図１は、第１実施形態における情報処理装置１００を含む情報処理システム１の一例を示す図である。第１実施形態における情報処理システム１は、例えば、一以上の端末装置１０と、サービス提供装置２０と、情報処理装置１００とを備える。これらの装置は、ネットワークＮＷを介して接続される。また、これらの装置のうち一部は、他の装置に仮想的な装置として包含されてもよく、例えば、サービス提供装置２０の機能の一部または全部が、情報処理装置１００の機能によって実現される仮想マシンであってもよい。
【００１２】
図１に示す各装置は、ネットワークＮＷを介して種々の情報を送受信する。ネットワークＮＷは、例えば、インターネット、ＷＡＮ（Wide Area Network）、ＬＡＮ（Local Area Network）、プロバイダ端末、無線通信網、無線基地局、専用回線などを含む。なお、図１に示す各装置の全ての組み合わせが相互に通信可能である必要はなく、ネットワークＮＷは、一部にローカルなネットワークを含んでもよい。
【００１３】
端末装置１０は、例えば、スマートフォンなどの携帯電話、タブレット端末、各種パーソナルコンピュータなどの、入力装置、表示装置、通信装置、記憶装置、および演算装置を備える端末装置である。通信装置は、ＮＩＣ（Network Interface Card）などのネットワークカード、無線通信モジュールなどを含む。端末装置１０では、ウェブブラウザやアプリケーションプログラムなどのＵＡ（User Agent）が起動し、ユーザの入力する内容に応じたリクエストをサービス提供装置２０に送信する。また、ＵＡが起動された端末装置１０は、サービス提供装置２０から取得した情報に基づいて、表示装置に各種画像を表示させる。
【００１４】
サービス提供装置２０は、例えば、ＵＡとして起動されたウェブブラウザからのリクエストに応じてウェブページを端末装置１０に提供するウェブサーバである。ウェブページは、例えば、インターネット上において商品を販売するショッピングサイトやオークションサイト、フリーマーケットサイト等のウェブサイト（以下、総称して「販売サイト」と称する）を構成するウェブページであってよい。また、サービス提供装置２０は、検索サイトやＳＮＳ（Social Networking Service）、メールサービスなどの各種サービスを提供するウェブページを端末装置１０に提供してもよい。また、サービス提供装置２０は、ＵＡとして起動されたアプリケーションからのリクエストに応じてコンテンツを端末装置１０に提供することで、販売サイトなどの各種ウェブサイトと同様のサービスを提供するアプリケーションサーバであってもよい。
【００１５】
図２は、サービス提供装置２０により提供されるウェブページの一例を示す図である。図示の例では、販売サイトのウェブページを模式的に示している。例えば、販売サイトのウェブページには、商品の画像（図中Ｒ１）、商品のタイトルを表す文章（図中Ｒ２）、商品のカテゴリを表す文章（Ｒ３）、商品の概要を表す文章（図中Ｒ４）といったコンテンツが含まれる。例えば、販売サイトに店舗を出店して商品を販売する販売者は、商品の画像や、商品のタイトルを表す文章、商品の概要を表す文章などを、出店する店舗のウェブページに商品を登録する時に入力する。また、販売者は、ウェブページに商品を登録する時に併せて、登録する商品に対して階層的なカテゴリを設定する。
【００１６】
図３は、階層的なカテゴリの一例を示す図である。例えば、販売サイトでは、一般的に、最も上位の階層には、「ファッション」のような最も抽象的なカテゴリが設定され、２番目に上位の階層には、「ファッション」よりも具体的な「レディースファッション」のようなカテゴリが設定され、３番目に上位の階層には、「レディースファッション」よりも具体的な「レディースシューズ」のようなカテゴリが設定され、４番目に上位の階層には、「レディースシューズ」よりも具体的な「モカシンシューズ」のようなカテゴリが設定され、５番目に上位の階層には、「モカシンシューズ」よりも具体的なブランド名などがカテゴリとして設定される。
【００１７】
これらの階層的なカテゴリは、各店舗が独自に設定することができる。そのため、図２に例示するように、本来であれば、「モカシンシューズ」の上位のカテゴリを「レディースシューズ」のようなカテゴリとすべきところが、販売者が誤って、或いは意図して「アイスクリーム、ソフトクリーム」のようなファッションに関係のないカテゴリを付与する場合が発生し得る。
【００１８】
このようなカテゴリの設定間違いが生じた場合、販売サイトに出店する全店舗の商品を横断的に検索する際に、本来であれば検索されるべき商品が検索されなかったり、検索されるべきでない商品が検索されてしまったりする場合がある。例えば、「レディースシューズ」に関連した商品に対して、「アイスクリーム、ソフトクリーム」というカテゴリが設定された場合、販売サイトを利用してレディースシューズを探しているユーザに、その商品が掲載されたウェブページを提供することができなくなる。
【００１９】
また、「レディースシューズ」に関連した商品に対して、「アイスクリーム、ソフトクリーム」というカテゴリが設定された場合、販売サイトを利用してアイスクリームを探しているユーザに、「レディースシューズ」に関連した商品が掲載されたウェブページを誤って提供することになる。このように、カテゴリの設定間違いが生じた場合、販売サイトの利便性が低下しやすい。
【００２０】
情報処理装置１００は、販売サイトに登録された商品に関する商品データを取得し、取得した商品データを機械学習することで、販売者が商品に対して設定したカテゴリの設定間違いを検出する。商品データには、例えば、上述した商品の画像、商品のタイトル、商品のカテゴリ、商品の概要といった互いに種類が異なる複数のコンテンツが含まれる。すなわち、商品データは、互いに種類が異なる複数のデータの集合体（データセット）である。
【００２１】
［情報処理装置の構成］
図４は、第１実施形態における情報処理装置１００の構成の一例を示す図である。図示のように、情報処理装置１００は、例えば、通信部１０２と、制御部１１０と、記憶部１３０とを備える。
【００２２】
通信部１０２は、例えば、ＮＩＣ等の通信インターフェースを含む。通信部１０２は、ネットワークＮＷを介して、端末装置１０やサービス提供装置２０などと通信する。
【００２３】
制御部１１０は、例えば、取得部１１２と、形態素解析部１１４と、カテゴリ決定部１１６と、リスト生成部１１８と、情報提供部１２０と、学習処理部１２２とを備える。リスト生成部１１８は、「抽出部」の一例である。
【００２４】
制御部１１０の構成要素は、例えば、ＣＰＵ（Central Processing Unit）などのプロセッサが記憶部１３０に格納されたプログラムを実行することにより実現される。また、制御部１１０の構成要素の一部または全部は、ＬＳＩ（Large Scale Integration）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field-Programmable Gate Array）、またはＧＰＵ（Graphics Processing Unit）などのハードウェア（回路部；circuitry）により実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。
【００２５】
記憶部１３０は、例えば、ＨＤＤ（Hard Disc Drive）、フラッシュメモリ、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）などの記憶装置により実現される。記憶部１３０には、ファームウェアやアプリケーションプログラムなどの各種プログラムの他に、分類器情報１３２、販売サイト取扱商品データ１３４、カテゴリ間違い候補リスト１３６が格納される。これらの詳細については後述する。
【００２６】
［運用時の処理フロー］
以下、第１実施形態における情報処理装置１００による運用時の一連の処理の流れをフローチャートに即して説明する。運用時とは、既に学習された分類器２００を利用する状態である。図５は、第１実施形態における情報処理装置１００による運用時の一連の処理の流れを示すフローチャートである。本フローチャートの処理は、例えば、所定の周期で繰り返し行われてもよい。
【００２７】
まず、取得部１１２は、通信部１０２にサービス提供装置２０と通信させ、サービス提供装置２０から販売サイトで販売される各商品の商品データを取得する（Ｓ１００）。そして、取得部１１２は、取得した複数の商品データを統合し、これを販売サイト取扱商品データ１３４として記憶部１３０に記憶させる。
【００２８】
図６は、販売サイト取扱商品データ１３４の一例を示す図である。図示のように、販売サイト取扱商品データ１３４は、販売サイトで販売される各商品の識別情報を示す商品ＩＤに対して、各店舗の販売者が設定したカテゴリＣｉｊと、商品のタイトルと、商品の概要と、商品の画像とが対応付けられたデータである。販売サイト取扱商品データ１３４のレコードが各商品データを表している。カテゴリＣｉｊの「ｉ」は、階層の深さ（最上位の階層から数えて何番目の階層であるのか）を表し、「ｊ」は、各階層のカテゴリの種類を表している。例えば、「Ｃ１１」は、最上位の階層のカテゴリが、「１」というカテゴリに設定されたことを表しており、「Ｃ２５」は、２番目の階層（最上位の階層から１段深い階層）のカテゴリが、「５」というカテゴリに設定されたことを表している。
【００２９】
次に、形態素解析部１１４は、販売サイト取扱商品データ１３４に含まれる各商品データに含まれる文章（タイトルおよび概要）に対して形態素解析を行う（Ｓ１０２）。例えば、形態素解析部１１４は、各商品データのタイトルおよび概要に対して形態素解析を行い、タイトルおよび概要の其々を複数の形態素に分割する。形態素解析部１１４は、形態素として分割した複数の単語（ワード）または語句（フレーズ）の其々をベクトル化する。
【００３０】
例えば、形態素解析部１１４は、ワンホット表現と呼ばれる手法を用いて、単語や語句をベクトル化してもよいし、ｗｏｒｄ２ｖｅｃやＧｌｏＶｅのような分散表現または単語埋め込み表現（Word Embedding(s)）と呼ばれる手法を用いて、単語や語句をベクトル化してもよい。
【００３１】
ワンホット表現とは、予め用意された単語または語句のリスト（辞書）と、形態素解析で得られた単語または語句とを比較して、形態素解析で得られた単語または語句のうち、リストに出現した単語または語句の要素値が１、他の単語または語句の要素値が０となるような多次元のベクトルを生成する手法である。
【００３２】
また、分散表現は、形態素解析で得られた単語または語句と、その単語または語句の前後で出現する単語または語句との共起性に基づいて、単語や語句をベクトル化する手法であり、例えば、予め用意された複数の単語や語句を含むコーパスに基づいて、形態素解析で得られた単語または語句の前後に出現する単語または語句の出現確率を求め、その出現確率を要素値とする多次元のベクトルを生成する手法である。
【００３３】
例えば、形態素解析部１１４は、Countinuous Bag-of-WordsおよびSkip-gramの双方の学習モデルを適用したニューラルネットワークに形態素解析で得られた単語または語句を入力することで、その単語や語句が分散表現されたベクトルを生成してよい。
【００３４】
形態素解析部１１４は、ベクトル化した単語または語句（以下、単語ベクトルと称する）を行ベクトルとした２階テンソルの行列（以下、単語行列と称する）を生成する。例えば、形態素解析部１１４は、形態素解析によってタイトルを１０個の単語に分割した場合、１０個の単語ベクトルの其々を行ベクトルとした単語行列（１０行×ｎ列の行列：ｎは単語ベクトルの次元数）を生成する。
【００３５】
次に、カテゴリ決定部１１６は、分類器情報１３２を参照して、分類器２００を構築（生成）し、形態素解析部１１４によって生成された単語行列を、構築した分類器２００に入力する（Ｓ１０４）。
【００３６】
分類器情報１３２は、分類器を定義した情報（プログラムまたはデータ構造）である。分類器２００は、例えば、コンボリューショナルニューラルネットワーク（Convolutional Neural Network：ＣＮＮ）や、リカレントネットワーク（Reccurent Neural Network：ＲＮＮ）などの種々のニューラルネットワークによって実現される。
【００３７】
分類器情報１３２には、例えば、各ニューラルネットワークを構成する入力層、一以上の隠れ層（中間層）、出力層の其々に含まれるニューロン（ユニット）が互いにどのように結合されるのかという結合情報や、結合されたニューロン間で入出力されるデータに付与される結合係数などの各種情報が含まれる。結合情報とは、例えば、各層に含まれるニューロン数や、各ニューロンの結合先のニューロンの種類を指定する情報、各ニューロンを実現する活性化関数、隠れ層のニューロン間に設けられたゲートなどの情報を含む。ニューロンを実現する活性化関数は、例えば、正規化線形関数（ＲｅＬＵ関数）であってもよいし、シグモイド関数や、ステップ関数、その他の関数などであってもよい。ゲートは、例えば、活性化関数によって返される値（例えば１または０）に応じて、ニューロン間で伝達されるデータを選択的に通過させたり、重み付けたりする。結合係数は、活性化関数のパラメータであり、例えば、ニューラルネットワークの隠れ層において、ある層のニューロンから、より深い層のニューロンにデータが出力される際に、出力データに対して付与される重みを含む。また、結合係数は、各層の固有のバイアス成分などを含んでもよい。
【００３８】
図７は、第１実施形態における分類器２００の一例を示す図である。第１実施形態における分類器２００は、例えば、第１ＣＮＮ２１０と、第２ＣＮＮ２２０と、第３ＣＮＮ２３０と、ＦＣＮＮ（Fully-Connected Neural Network）２４０と、ＲＮＮ２５０とによって実現される。
【００３９】
第１ＣＮＮ２１０および第２ＣＮＮ２２０は、単語行列が入力されると、次元数が所定数のベクトルを出力するように学習されたコンボリューショナルニューラルネットワークである。
【００４０】
例えば、単語行列を、各要素値が画素値に置き換わった画像とした場合、第１ＣＮＮ２１０および第２ＣＮＮ２２０は、入力された単語行列に相当する画像と所定のフィルタとを畳み込み（内積を求め）、所定のフィルタと重なる複数の画素を含む画像領域を、一つの単位領域に圧縮する。この単位領域には、畳み込みにより得られた単変量値が特徴量として対応付けられている。第１ＣＮＮ２１０および第２ＣＮＮ２２０は、画像上で所定のフィルタをシフト移動させながら畳み込み処理を繰り返し、複数の単位領域により形成されたコンボリューショナルレイヤと呼ばれる畳み込みの特徴量を画素値とした特徴画像を生成する。第１ＣＮＮ２１０および第２ＣＮＮ２２０は、各特徴画像のサイズ（次元数）をプーリング（例えばGlobal Average Pooling）などによって圧縮し、この結果を出力する。圧縮した特徴画像の其々には、単変量の特徴量が対応付けられているため、畳み込み処理の回数分だけ、畳み込みの特徴量を要素としてもつ多次元ベクトル（１階テンソル）が出力される。
【００４１】
第３ＣＮＮ２３０は、画像が入力されると、次元数が所定数のベクトルを出力するように学習されたコンボリューショナルニューラルネットワークである。第３ＣＮＮ２３０は、第１ＣＮＮ２１０および第２ＣＮＮ２２０と同様に、畳み込み処理の回数分の要素をもち、それらの要素が畳み込みの特徴量である多次元ベクトル（１階テンソル）を出力する。
【００４２】
例えば、カテゴリ決定部１１６は、商品タイトルから得られた単語行列を第１ＣＮＮ２１０に入力し、商品概要から得られた単語行列を第２ＣＮＮ２２０に入力し、商品画像を第３ＣＮＮ２３０に入力する。これによって、各ＣＮＮは、入力されたデータを所定の次元数のベクトルに変換してＦＣＮＮ２４０に出力する。
【００４３】
ＦＣＮＮ２４０は、各層のユニットの其々が、より階層の深い次の層のユニットの其々と接続されたニューラルネットワークである。なお、ＦＣＮＮ２４０は、中間層がない入力層のユニットの其々と出力層のユニットの其々とが互いに接続された２つの層であってもよい。例えば、ＦＣＮＮ２４０は、第１ＣＮＮ２１０から出力されたベクトルの次元数が５００、第２ＣＮＮ２２０から出力されたベクトルの次元数が５００、第３ＣＮＮ２３０から出力されたベクトルの次元数が２００である場合、それらの全てのベクトルの次元数の総和である１２００次元の一つのベクトルを出力する。
【００４４】
ＲＮＮ２５０は、例えば、ネットワークの中間層がＬＳＴＭ（Long short-term memory）であるＲＮＮであり、１階テンソルであるベクトルが入力されると、そのベクトルの元になったタイトルや概要、画像に対応する商品の分類先とするカテゴリの確からしさ（尤もらしさ）を表すスコアを階層ごとに出力するように学習されたニューラルネットワークである。例えば、ＬＳＴＭは、重みと状態変数との内積を計算する。数式（１）は、ＬＳＴＭのゲートおよびニューロンの計算式を表している。状態変数とは、各ゲートによって求められるベクトルである。
【００４５】
【数１】
2019164402.tif 000003
【００４６】
ｔは、ＲＮＮ２５０によって繰り返し行われる再帰処理の処理周期（処理時刻）を表しており、ｘｔは、処理周期ｔにおいてＦＣＮＮ２４０から入力されるベクトル（以下、入力ベクトル）を表し、ｈｔは、処理周期ｔにおいてＲＮＮ２５０により出力されるベクトル（以下、出力ベクトル）を表している。再帰処理とは、過去の処理周期で求めた出力ベクトルを、今回の処理周期での出力ベクトルの導出に利用することである。
【００４７】
ｉｔは、ＬＳＴＭに含まれるインプットゲートによって出力されるベクトル（以下、インプットゲートベクトル）を表しており、σは、ゲートの活性化関数がシグモイド関数であることを表しており、Ｗｉは、入力ベクトルｘｔを線形変換するための重みを表しており、Ｒｉは、前回の処理周期ｔ−１の出力ベクトルｈｔ−１を線形変換するための重みを表しており、Ｑｉは、メモリーセルに記憶された前回の処理周期ｔ−１の内部演算ベクトルｃｔ−１を線形変換するための重みを表しており、ｂｉは、インプットゲートのバイアス成分を表している。メモリーセルとは、一時的に内部演算ベクトルｃを記憶させておくための記憶領域（ＬＳＴＭブロック）である。
【００４８】
例えば、ＲＮＮ２５０は、重みＷｉと入力ベクトルｘｔとの内積値と、重みＲｉと前回の出力ベクトルｈｔ−１との内積値と、重みＱｉと前回の内部演算ベクトルｃｔ−１とのアダマール積（要素ごとの積）と、バイアス成分ｂｉとの和を変数としたシグモイド関数σを解くことで、処理周期ｔのインプットゲートベクトルｉｔを導出する。
【００４９】
ｆｔは、ＬＳＴＭに含まれるフォーゲットゲートによって出力されるベクトル（以下、フォーゲットゲートベクトル）を表しており、Ｗｆは、重みＷｉと同様に、入力ベクトルｘｔを線形変換するための重みを表しており、Ｒｆは、重みＲｉと同様に、前回の処理周期ｔ−１の出力ベクトルｈｔ−１を線形変換するための重みを表しており、Ｑｆは、重みＱｉと同様に、メモリーセルに記憶された前回の処理周期ｔ−１の内部演算ベクトルｃｔ−１を線形変換するための重みを表しており、ｂｆは、フォーゲットゲートのバイアス成分を表している。
【００５０】
例えば、ＲＮＮ２５０は、重みＷｆと入力ベクトルｘｔとの内積値と、重みＲｆと前回の出力ベクトルｈｔ−１との内積値と、重みＱｆと前回の内部演算ベクトルｃｔ−１とのアダマール積と、バイアス成分ｂｆとの和を変数としたシグモイド関数σを解くことで、処理周期ｔのフォーゲットゲートベクトルｆｔを導出する。
【００５１】
ｃｔは、ＬＳＴＭに含まれるメモリーセルに記憶させる内部演算ベクトルを表している。
【００５２】
例えば、ＲＮＮ２５０は、処理周期ｔのフォーゲットゲートベクトルｆｔおよび後述するベクトルｚｔのアダマール積と、処理周期ｔ−１の内部演算ベクトルｃｔ‐１および処理周期ｔのフォーゲットゲートベクトルｆｔのアダマール積との和を、処理周期ｔの内部演算ベクトルｃｔとして導出する。
【００５３】
ｚｔは、重みＷｚと入力ベクトルｘｔとの内積値と、重みＲｚと前回の出力ベクトルｈｔ−１との内積値と、バイアス成分ｂｚとの和を変数としたハイパポリックタンジェント関数ｔａｎｈを解くことで導出される。Ｗｚは、重みＷｉやＷｆと同様に、入力ベクトルｘｔを線形変換するための重みを表しており、Ｒｆは、重みＲｉやＲｆと同様に、前回の処理周期ｔ−１の出力ベクトルｈｔ−１を線形変換するための重みを表しており、ｂｚは、メモリーセルのバイアス成分を表している。
【００５４】
ｏｔは、ＬＳＴＭに含まれるアウトプットゲートによって出力されるベクトル（以下、アウトプットゲートベクトル）を表しており、Ｗｏは、重みＷｉなどと同様に、入力ベクトルｘｔを線形変換するための重みを表しており、Ｒｏは、重みＲｉなどと同様に、前回の処理周期ｔ−１の出力ベクトルｈｔ−１を線形変換するための重みを表しており、Ｑｏは、メモリーセルに記憶された今回の処理周期ｔの内部演算ベクトルｃｔを線形変換するための重みを表しており、ｂｏは、アウトプットゲートのバイアス成分を表している。
【００５５】
例えば、ＲＮＮ２５０は、重みＷｏと入力ベクトルｘｔとの内積値と、重みＲｏと前回の出力ベクトルｈｔ−１との内積値と、重みＱｏと今回の内部演算ベクトルｃｔとのアダマール積と、バイアス成分ｂｏとの和を変数としたシグモイド関数σを解くことで、処理周期ｔのアウトプットゲートベクトルｏｔを導出する。
【００５６】
ＲＮＮ２５０は、アウトプットゲートベクトルｏｔを導出すると、アウトプットゲートベクトルｏｔと、内部演算ベクトルｃｔを変数としたハイパポリックタンジェント関数ｔａｎｈの解とのアダマール積を、処理周期ｔの出力ベクトルｈｔとして導出する。
【００５７】
出力ベクトルｈｔの各要素値は、階層ごとのカテゴリのスコアを表している。例えば、ｈｔ＝｛ｅ１，ｅ２，ｅ３，…ｅ９，ｅ１０｝であった場合、要素ｅ１は、商品がカテゴリ１であることの確からしさを示すスコア（確率）を表し、要素ｅ２は、商品がカテゴリ２であることの確からしさを示すスコアを表し、要素ｅ３は、商品がカテゴリ３であることの確からしさを示すスコアを表し、以下、同様に、ｅ４〜ｅ１０の各要素が、対応するカテゴリのスコアを表している。ＲＮＮ２５０は、上述した数式に基づく計算を繰り返すことで、出力ベクトルを繰り返し導出する。
【００５８】
図８は、時間経過に応じたＲＮＮ２５０の処理内容を並列に展開した図である。例えば、ＦＣＮＮ２４０から入力ベクトルｘｔ１が入力された初回の処理周期ｔ１では、ＲＮＮ２５０は、出力ベクトルｈｔ１を出力する。初回処理時ｔ１の出力ベクトルｈｔ１は、最も上位階層のカテゴリのスコアを要素として含んでおり、各要素は、例えば、ファッションや食品、家電、インテリア、スポーツ、ヘルスケア、自動車といったような各カテゴリのスコアである。
【００５９】
次の処理周期ｔ２では、ＲＮＮ２５０は、初回の処理周期ｔ１に入力された入力ベクトルｘｔ１と、前回の処理周期ｔ１の出力ベクトルｈｔ１とに基づいて、出力ベクトルｈｔ２を出力する。処理周期ｔ２の出力ベクトルｈｔ２は、２番目の階層のカテゴリのスコアを要素として含んでいる。例えば、最上位階層のカテゴリのスコアのうち、「ファッション」のスコアが最も大きい場合、「ファッション」のスコアが出力ベクトルｈｔ２に最も反映されるため、出力ベクトルｈｔ２の各要素は、コートやジャケット、トップス、ボトムス、レディースシューズ、レディースバッグといったように、「ファッション」というカテゴリの下位階層のカテゴリのスコアとなる。
【００６０】
次の処理周期ｔ３では、ＲＮＮ２５０は、初回の処理周期ｔ１に入力された入力ベクトルｘｔ１と、前回の処理周期ｔ２の出力ベクトルｈｔ２とに基づいて、出力ベクトルｈｔ３を出力する。処理周期ｔ３の出力ベクトルｈｔ３は、３番目の階層のカテゴリのスコアを要素として含んでいる。例えば、２番目の階層のカテゴリのスコアのうち、「レディースシューズ」のスコアが最も大きい場合、「レディースシューズ」のスコアが出力ベクトルｈｔ３に最も反映されるため、出力ベクトルｈｔ３の各要素は、スリッポンやパンプス、スニーカー、モカシン、サンダルといったように、「レディースシューズ」というカテゴリの下位階層のカテゴリのスコアとなる。
【００６１】
このように、ＲＮＮ２５０は、再帰処理を繰り返すことで、より階層が深いカテゴリのスコアを要素とする出力ベクトルを導出する。なお、ＲＮＮ２５０は、最下層のカテゴリのスコアを要素とする出力ベクトルを導出するまで、再帰的に出力ベクトルを導出することを繰り返すものとする。例えば、ＲＮＮ２５０の学習時に、最下層のカテゴリに対して所定の付加的情報（以下、エンドラベルと称する）が付与された商品データが利用された場合、ＲＮＮ２５０は、エンドラベルが付与されたカテゴリのスコアを要素とする出力ベクトルを導出するまで再帰処理を繰り返す。これによって、例えば、「ファッション」のカテゴリの下位のカテゴリに「レディースシューズ」と「レディースバッグ」というカテゴリが存在し、それらのカテゴリから最下層のカテゴリまでに存在する階層数が互いに異なる場合でも、エンドラベルが付与されたカテゴリの階層までの階層数と同じ回数だけ再帰処理を繰り返すため、ＲＮＮ２５０の再帰処理の回数（図８中のｋ）というハイパーパラメータを調整せずとも、各カテゴリの種類に応じて再帰処理の回数を動的に変更しながらスコアを求めることができる。
【００６２】
図５に戻り、次に、カテゴリ決定部１１６は、分類器２００からカテゴリの分類結果を取得し、その分類結果に基づいて商品のカテゴリを決定する（Ｓ１０６）。カテゴリの分類結果には、ＲＮＮ２５０が再帰処理ごとに出力した出力ベクトルが含まれており、その出力ベクトルには、最上層から最下層までの各階層のカテゴリのスコアの結果が要素として含まれている。
【００６３】
図９は、カテゴリの分類結果の一例を示す図である。図示のように、商品ＩＤごとに、各階層のカテゴリが対応付けられた情報が分類結果として取得される。図中Ｃｉｊは、上述したように、第ｉ層目の種類ｊのカテゴリを表しており、種類ｊのカテゴリは、出力ベクトルの各要素のうち最も値が大きい要素に対応したカテゴリを表している。すなわち、種類ｊのカテゴリは、最もスコアが大きく、商品の分類先として最も確からしいカテゴリを表している。
【００６４】
例えば、商品ＩＤが「ｉｔｅｍ＿Ａ」の商品に関する商品データを分類器２００に入力したときに得られた出力ベクトルｈｔが｛ｅ１，ｅ２，ｅ３，…ｅ９，ｅ１０｝であり、要素ｅ１〜ｅ１０の其々が「１」〜「１０」の其々のカテゴリのスコアに対応しているとする。このような場合に、要素ｅ１が最も大きい場合、カテゴリ決定部１１６は、最上位の階層のカテゴリとして「１」というカテゴリが最も確からしいため、その商品の最上位の階層のカテゴリを「１」に決定する。また、２回目の再帰処理の出力ベクトルｈｔ＋１が｛ｅ１，ｅ２，ｅ３，…ｅ９，ｅ１０｝であり、その中で要素ｅ５が最も大きい場合、カテゴリ決定部１１６は、２番目の階層のカテゴリとして「５」というカテゴリが最も確からしいため、その商品の２番目の階層のカテゴリを「５」に決定する。
【００６５】
図５に戻り、次に、リスト生成部１１８は、販売サイト取扱商品データ１３４に含まれる各商品データと、分類器２００によるカテゴリの分類結果とを比較して、販売サイトで販売される複数の商品の中から、販売者によって設定されたカテゴリが分類器２００により分類されたカテゴリと異なる商品（以下、カテゴリ間違い商品候補と称する）を抽出する（Ｓ１０８）。
【００６６】
次に、リスト生成部１１８は、抽出したカテゴリ間違い商品候補の集めたリストを、カテゴリ間違い候補リスト１３６として生成し、記憶部１３０に記憶させる（Ｓ１１０）。
【００６７】
図１０は、カテゴリ間違い候補リスト１３６の一例を示す図である。例えば、図６に例示した販売サイト取扱商品データ１３４と、図９に例示した分類器２００によるカテゴリの分類結果とを比較した場合、商品ＩＤが「ｉｔｅｍ＿Ｂ」の商品については第２階層のカテゴリが異なり（Ｃ２１≠Ｃ２７）、商品ＩＤが「ｉｔｅｍ＿Ｃ」の商品については第１階層のカテゴリが異なると共に（Ｃ１３≠Ｃ１６）、第２階層のカテゴリも異なっている（Ｃ２２≠Ｃ２９）。このような場合、リスト生成部１１８は、販売サイトで販売される複数の商品の中から、商品ＩＤが「ｉｔｅｍ＿Ｂ」の商品と商品ＩＤが「ｉｔｅｍ＿Ｃ」の商品とを抽出し、図１０に例示するようなカテゴリ間違い候補リスト１３６を生成する。
【００６８】
図５に戻り、次に、情報提供部１２０は、通信部１０２を制御して、リスト生成部１１８により生成されたカテゴリ間違い候補リスト１３６を所定の端末装置１０に送信し、所定の端末装置１０を利用可能なユーザに、カテゴリ間違い商品候補として抽出された商品が真にカテゴリ間違いであるのか否かの正誤判定を依頼する（Ｓ１１２）。この際、情報提供部１２０は、カテゴリ間違い候補リスト１３６と共に、カテゴリ間違い商品候補の商品データを併せて送信してよい。
【００６９】
所定の端末装置１０は、例えば、クラウドソーシングの参加者のコンピュータなどであってよい。カテゴリ間違いの正誤判定を依頼されたユーザは、例えば、カテゴリ間違い候補リスト１３６と共に送られてきたカテゴリ間違い商品候補の商品データ（商品画像や商品概要など）を参照し、販売者が商品に対して設定したカテゴリが間違っているのか、分類器２００によって分類されたカテゴリが間違っているのかを判定し、その判定結果を、端末装置１０を用いて情報処理装置１００に送信する。
【００７０】
次に、情報提供部１２０は、通信部１０２が、所定の端末装置１０からカテゴリ間違い候補リスト１３６の正誤の判定結果を取得するまで待機し（Ｓ１１４）、通信部１０２がカテゴリ間違い候補リスト１３６の正誤の判定結果を取得すると、カテゴリ間違い候補リスト１３６に含まれる一つまたは複数のカテゴリ間違い商品候補のうち、分類器２００の分類結果であるカテゴリが正しく、販売者が設定したカテゴリが誤りであると判定された商品（以下、カテゴリ間違い商品）に基づいて、所定の情報をサービス提供装置２０に提供（送信）する（Ｓ１１６）。
【００７１】
例えば、情報提供部１２０は、所定の情報として、分類器２００の分類結果であるカテゴリが正しく、販売者が設定したカテゴリが誤りであると判定されたカテゴリ間違い商品のみを含むカテゴリ間違い候補リスト１３６をサービス提供装置２０に送信してよい。これを受けたサービス提供装置２０は、例えば、販売サイトにおけるカテゴリ間違い商品の検索ランキングを低下させてよい。サービス提供装置２０は、「検索処理部」の一例である。
【００７２】
図１１および図１２は、商品がランキング順に掲載された販売サイトのウェブページの一例を示す図である。図１１の例では、Ａ〜Ｚまでの商品がページ上部から下部にランキング順に掲載されている。これらの商品のうち、例えば、商品Ａが、カテゴリ間違い商品としてカテゴリ間違い候補リスト１３６に含まれている場合、サービス提供装置２０は、商品Ａの検索ランキングを低下させて、図１２に例示するように、商品Ａの掲載位置をページ最上位からページ最下位に変更してよい。
【００７３】
また、例えば、情報提供部１２０は、所定の情報として、販売サイトにおいてカテゴリ間違い商品を販売する販売者に、現在商品に設定されたカテゴリを分類器２００によって分類されたカテゴリに変更するように促す情報を、サービス提供装置２０或いはカテゴリ間違い商品を販売する販売者の端末装置１０に送信してもよい。サービス提供装置２０は、情報処理装置１００から所定の情報としてカテゴリ変更を促す情報を受信した場合、その情報を販売者の端末装置１０に送信する。これによって、販売者は、商品のカテゴリを、より適切なものに変更することができる。
【００７４】
なお、上述した説明では、販売サイトにおいて販売者が商品にカテゴリを設定した後に、その商品のカテゴリの設定間違いを検出するものとして説明したがこれに限られない。例えば、販売サイトにおいて販売者が商品にカテゴリを設定するタイミングで、その商品のカテゴリの設定間違いを検出してもよい。
【００７５】
図１３は、販売サイトに商品を登録する際の商品登録画面の一例を示す図である。図示のような商品登録画面は、端末装置１０の表示装置に表示されてよい。例えば、販売者が、商品登録画面に対して販売対象の商品のカテゴリを入力した場合、サービス提供装置２０は、入力されたカテゴリを表す文章（テキスト）を情報処理装置１００に送信する。この際、サービス提供装置２０は、商品登録画面を介して、商品の画像や、商品の概要を表す文章、商品のタイトルを表す文章のうち一部または全部がカテゴリの入力以前に既に登録（アップロード）されている場合、カテゴリを表す文章と共に、これ（これら）の情報を商品データとして情報処理装置１００に送信する。
【００７６】
情報処理装置１００は、サービス提供装置２０から商品データを受信すると、分類器２００に商品のカテゴリを分類させ、その分類結果をサービス提供装置２０に返す。サービス提供装置２０は、分類器２００によるカテゴリの分類結果を受信すると、入力されたカテゴリと、分類器２００により分類されたカテゴリとが異なるか否かを判定し、カテゴリが異なる場合、販売者にカテゴリを変更するように促すため、図中Ｒ１に示すように、販売者が入力したカテゴリが間違っていることを示す文字や画像と共に、正しいと推定されるカテゴリの候補を商品登録画面に表示させる。例えば、サービス提供装置２０は、カテゴリの分類結果に含まれるカテゴリのスコアに基づいて、スコアの高い順にカテゴリの候補を商品登録画面に表示させる。図示の例では、商品登録画面に、「アイスクリーム」というカテゴリが入力されており、これに対して、「レディースシューズ」、「メンズシューズ」、「レディースバッグ」、「レディースアクセサリー」、「財布、ファッション小物」という同じ階層に属するカテゴリの候補と共に、それらのカテゴリの候補の其々のスコアが正解確率として提示されている。このように、商品登録画面において分類器２００によって分類されたカテゴリをスコア（正解確率）と共に表示することで、カテゴリの入力時点で販売者にカテゴリを変更させるように促すことができる。
【００７７】
また、販売サイトにおいて販売者が商品にカテゴリを設定するタイミングで、その商品のカテゴリの設定間違いを検出することに加えて、或いは代えて、販売者が商品にカテゴリを設定するよりも前に、その商品のカテゴリを提示（サジェスト）してもよい。
【００７８】
図１４は、販売サイトに商品を登録する際の商品登録画面の他の例を示す図である。例えば、商品登録画面において、販売者が商品のカテゴリを入力するよりも前に、商品の画像や、商品の概要を表す文章、商品のタイトルを表す文章のうち一部または全部を既に入力している場合、サービス提供装置２０は、商品の画像や、商品の概要、商品のタイトルを含む商品データを情報処理装置１００に送信する。
【００７９】
情報処理装置１００は、サービス提供装置２０から商品データを受信すると、分類器２００に商品のカテゴリを分類させ、その分類結果をサービス提供装置２０に返す。サービス提供装置２０は、分類器２００によるカテゴリの分類結果を受信すると、その分類結果に含まれる商品のカテゴリを、商品登録画面の商品カテゴリの入力欄に表示させる。この際、情報処理装置１００は、図中Ｒ２に示すように、分類器２００を用いて商品のタイトルを自動的に決定したことを表す文字や画像を商品登録画面に表示させてよい。このように、販売者がカテゴリを入力するよりも前に、その商品の商品データからカテゴリを予測し、その予測結果であるカテゴリをサジェストすることで、販売サイトに商品を登録する際の利便性を向上させることができる。
【００８０】
また、上述した説明では、カテゴリ決定部１１６が、分類器２００の分類結果を参照し、各階層において最もスコアが大きいカテゴリが、その階層におけるカテゴリであると決定したがこれに限られない。例えば、カテゴリ決定部１１６は、各階層のカテゴリのスコアの全部が、或いは所定数以上のスコアが閾値未満である場合、ＲＮＮ２５０に、一つ前の再帰処理を再び行わせ、カテゴリのスコアが閾値未満の階層の出力ベクトルをあらためて導出させてよい。例えば、ＲＮＮ２５０が、処理周期ｔ１において導出した出力ベクトルｈｔ１の複数の要素ｅのうち、最も値が大きい要素だけを残した出力ベクトルｈｔ１を基に処理周期ｔ２において出力ベクトルｈｔ２を導出したとする。このような場合に、処理周期ｔ２における出力ベクトルｈｔ２の要素ｅがいずれも閾値未満であった場合、すなわち、２番目の階層のカテゴリのスコアがいずれも閾値未満であった場合、カテゴリ決定部１１６は、ＲＮＮ２５０に、処理周期ｔ１の再帰処理を再び行わせる。この際、カテゴリ決定部１１６は、処理周期ｔ１において導出した出力ベクトルｈｔ１の複数の要素ｅのうち、最も値が大きい要素を残すのではなく、例えば、２番目に値が大きい要素、或いは３番目や４番目に値が大きい要素を残した出力ベクトルｈｔ１を基にして、ＲＮＮ２５０に出力ベクトルｈｔ２を導出させる。このように、最上位よりも深い階層のカテゴリの分類結果が曖昧である場合、最上位のカテゴリの分類が間違っている蓋然性が高いと判断して、最上位のカテゴリのスコアのうち、二番目以降に確からしいカテゴリのスコアを基に、次の階層のカテゴリのスコアを再計算させる。これによって、最上位のカテゴリの分類を間違ったことにより、それ以降の全ての階層のカテゴリ分類を間違ってしまうという再帰処理特有の事象が発生するのを抑制することができる。
【００８１】
［学習時の処理フロー］
以下、第１実施形態における情報処理装置１００の学習時の一連の処理の流れをフローチャートに即して説明する。学習時とは、運用時に利用される分類器２００を学習させる状態である。図１５は、第１実施形態における情報処理装置１００による学習時の一連の処理の流れを示すフローチャートである。
【００８２】
まず、学習処理部１２２は、分類器２００を学習させるために予め用意された複数の学習データの候補の中から、分類器２００の性能を向上させ得る高品質な学習データを抽出するサンプリング処理を実施する（Ｓ２００）。学習データの候補とは、正解とする商品のカテゴリが教師ラベル（教師データ）として対応付けられた商品データであり、例えば、販売サイト取扱商品データ１３４に含まれる商品データであってもよいし、これとは別に用意された商品データであってもよい。また、正解とする最下層のカテゴリには、上述したエンドラベルが教師ラベルとして付与されていてもよい。
【００８３】
例えば、学習処理部１２２は、学習データの候補として扱われる複数の商品データのうち、ユーザがコンバージョンに至った商品データを高品質な学習データとして抽出する。コンバージョンとは、例えば、販売サイトに一覧形式で掲載された商品がクリック操作やタッチ操作によって選択され、その商品の購入ページに画面遷移することや、商品の購入ページで商品が購入されること、商品の購入ページに所定時間以上滞在することなど、販売者が期待する所定の行動をユーザが行ったことを意味する。
【００８４】
より具体的には、学習処理部１２２は、ユーザによって購入された回数が所定回数以上の商品に関する商品データを、高品質な学習データとして抽出する。また、学習処理部１２２は、ユーザがクリック操作やタッチ操作によって選択し、その商品の購入ページにアクセスして閲覧した回数が所定回数以上の商品に関する商品データを、高品質な学習データとして抽出してもよい。また、学習処理部１２２は、ユーザが商品の購入ページにアクセスしてから経過したページ滞在時間が所定時間以上の商品に関する商品データを、高品質な学習データとして抽出してもよい。
【００８５】
また、学習処理部１２２は、サンプリング処理として、学習データの候補として扱われる複数の商品データの中から、所定のカテゴリが教師ラベルとして付与された商品データを除外してもよい。所定のカテゴリとは、例えば「その他」のカテゴリである。
【００８６】
次に、学習処理部１２２は、高品質な学習データとして抽出した複数の商品データに対してラベルスムージング処理を実施する（Ｓ２０２）。
【００８７】
図１６および図１７は、ラベルスムージング処理を説明するための図である。例えば、商品データに対して、正解とするカテゴリの種類を表す識別情報（図示の例では１〜１０のいずれかの数値）が教師ラベルとして付与されている場合、正解のカテゴリのスコアは、１００［％］として扱われ、正解でない他のカテゴリのスコアは、０［％］として扱われる。図１６の例では、「４」のカテゴリが正解のカテゴリとして付与されており、「４」のカテゴリが１００［％］、それ以外のスコアが０［％］となる。このような場合、学習処理部１２２は、ラベルスムージング処理として、図１７に例示するように、正解のカテゴリのスコアを１００［％］よりも小さくし、正解でない他のカテゴリのスコアを０［％］よりも大きくする。例えば、学習処理部１２２は、正解でない他のカテゴリの其々のスコアを、それらのスコアの上昇量の合計が正解のカテゴリのスコアの低下量と同じになるように一様に大きくする。このような処理によって、学習精度を向上させることができる。
【００８８】
次に、学習処理部１２２は、高品質な学習データとして抽出した複数の商品データの中から、着目する一つの商品データ（以下、着目学習データと称する）を選択する（Ｓ２０４）。
【００８９】
次に、学習処理部１２２は、選択した着目学習データを分類器２００に入力し、分類器２００に、着目学習データが示す商品のカテゴリのスコアを導出させ、その導出させたスコアと、ラベルスムージング処理によって調整されたスコア（すなわち教師ラベル）との誤差が最小となるように分類器２００のパラメータを学習する（Ｓ２０６）。分類器２００のパラメータは、例えば、第１ＣＮＮ２１０、第２ＣＮＮ２２０、第３ＣＮＮ２３０、ＦＣＮＮ２４０、およびＲＮＮ２５０（ＬＳＴＭ）の重みやバイアス成分である。また、教師ラベルとして最下層のカテゴリにエンドラベルが付与されている場合、分類器２００のパラメータとして、ＲＮＮ２５０の再帰処理の回数がカテゴリの階層数となるように学習される。
【００９０】
次に、学習処理部１２２は、学習回数をインクリメントし（Ｓ２０８）、その学習回数が所定回数に達したか否かを判定する（Ｓ２１０）。
【００９１】
学習処理部１２２は、学習回数が所定回数に達した場合、ブートストラッピング処理を実施し（Ｓ２１２）、学習回数が所定回数に達していない場合、ブートストラッピング処理を省略する。ブートストラッピング処理とは、分類器２００によって出力されたカテゴリのスコアに、学習データの教師ラベルとして決められたスコアを更新（アップデート）する処理である。このような処理によって、学習回数が所定回数以上行って分類器２００を十分に学習した場合、学習データの教師ラベルが更新されるため、学習データの中に、本来であれば間違っているカテゴリが教師ラベルとして付与された商品データが含まれている場合でも学習精度を向上させることができる。
【００９２】
次に、学習処理部１２２は、高品質な学習データとして抽出した複数の商品データの全てを着目学習データとして選択したか否かを判定し（Ｓ２１４）、未だ全ての商品データを着目学習データとして選択していない場合、Ｓ２０４の処理に戻り、新たな着目学習データを選択し、分類器２００のパラメータを学習することを繰り返す。
【００９３】
一方、学習処理部１２２は、全ての商品データを着目学習データとして選択した場合、本フローチャートの処理を終了する。
【００９４】
以上説明した第１実施形態によれば、ネットワークを介して販売される商品に関する商品データを取得し、階層的なカテゴリに分類された商品の商品データを学習データとして、入力された商品データが示す商品に対して階層的なカテゴリの分類結果を出力するように予め学習された分類器２００の出力結果に基づいて、取得した商品データが示す商品のカテゴリを決定するため、商品（サービスも含む）を、より適切なカテゴリに分類して検索精度を向上させることができる。
【００９５】
また、上述した第１実施形態によれば、教師ラベルとして正解となるカテゴリと共に、そのカテゴリが最下層であることを示す情報（エンドラベル）が付与された商品データを学習データとして分類器２００を学習させるため、商品ごとに最下層のカテゴリまでの階層数が異なる場合でも、エンドラベルが付与されたカテゴリの階層まで再帰処理を繰り返すため、ＲＮＮ２５０の再帰処理の回数というハイパーパラメータを調整せずとも、各カテゴリの種類に応じて再帰処理の回数を動的に変更しながらスコアを求めることができ、更に、事前にカテゴリの階層の深さがわからなくとも、最下層までの各階層のカテゴリを分類することができる。
【００９６】
また、上述した第１実施形態によれば、所定のサンプリング処理によって、高品質な学習データを抽出するため、ランダムに学習データをサンプリングする場合に比して、より精度良く分類器２００を学習することができる。
【００９７】
一般的に、販売者が「その他」に分類した商品は、本来であれば他のカテゴリの方がふさわしいのにもかかわらず間違って分類された商品であるのか、本当に「その他」のカテゴリとして正しい商品であるのかが判別しにくい。そのため、仮に、「その他」に分類された商品に関する商品データを学習データとしても、教師ラベルの信頼性が乏しくなり、分類器２００の学習精度が向上し難い。これに対して、本実施形態では、高品質な学習データを抽出するときに、「その他」に分類された商品に関する商品データを学習データから除外するため、現在「その他」に分類されているが、本来であれば他のカテゴリに分類されるべき商品を、正しいカテゴリに分類することができる。一般的に、本当に「その他」にしか分類し得ない商品の数は、全体の数［％］にも満たないため、仮に、「その他」にしか分類し得ない商品を正しく分類できなくとも、大多数の他の商品を正しいカテゴリに分類することができるため、分類器としてのトータルの精度を向上させることができる。
【００９８】
＜第２実施形態＞
以下、第２実施形態について説明する。上述した第１実施形態では、分類器２００に再帰処理を行うＲＮＮ２５０が含まれているものとして説明した。これに対して、第２実施形態では、分類器２００にＲＮＮ２５０が含まれていない点で上述した第１実施形態と相違する。以下、第１実施形態との相違点を中心に説明し、第１実施形態と共通する点については説明を省略する。なお、第２実施形態の説明において、第１実施形態と同じ部分については同一符号を付して説明する。
【００９９】
図１８は、第２実施形態における分類器２００の一例を示す図である。第２実施形態における分類器２００は、例えば、第１ＣＮＮ２１０と、第２ＣＮＮ２２０と、ＦＣＮＮ２４０と、単語埋め込みモデル２６０とによって実現される。
【０１００】
第２実施形態における商品データには、例えば、商品の画像や、商品のタイトル、商品の概要といったコンテンツに加えて、更に、販売サイトで商品を販売する各店舗の識別情報を表す店舗ＩＤが含まれる。
【０１０１】
第２実施形態における形態素解析部１１４は、商品データに含まれる店舗ＩＤを、単語埋め込みモデル２６０に入力する。単語埋め込みモデル２６０は、例えば、店舗ＩＤが入力されると、店舗ＩＤを単語埋め込み表現によってベクトルに変換し、その店舗ＩＤのベクトルを行ベクトルとした行列を出力するように学習されたニューラルネットワークである。
【０１０２】
第２実施形態におけるＦＣＮＮ２４０は、例えば、第１ＣＮＮ２１０、第２ＣＮＮ２２０、および単語埋め込みモデル２６０の其々から出力された行列を結合し、出力する。
【０１０３】
第２実施形態におけるカテゴリ決定部１１６は、例えば、ＦＣＮＮ２４０の出力ベクトルの各要素をカテゴリのスコアと見做して、最もスコアが大きいカテゴリを、商品のカテゴリに決定する。
【０１０４】
以上説明した第２実施形態によれば、商品のタイトルから生成した単語行列を第１ＣＮＮ２１０に入力し、商品の概要から生成した単語行列を第２ＣＮＮ２２０に入力し、店舗ＩＤから生成した行列を単語埋め込みモデル２６０に入力し、これらの各モデルにより出力されたベクトルを統合し、その出力ベクトルの各要素に基づいて、商品のタイトル、商品の概要、および店舗ＩＤを含む商品データの商品のカテゴリを決定するため、第１実施形態と同様に、商品（サービスも含む）をより適切なカテゴリに分類して、商品の検索精度を向上させることができる。
【０１０５】
また、上述した第２実施形態によれば、カテゴリの分類に店舗ＩＤを利用するため、店舗ごとの出品しやすい商品の種類の傾向を基に、商品のカテゴリを決定することができる。
【０１０６】
＜第３実施形態＞
以下、第３実施形態について説明する。第３実施形態では、分類器２００に、ＲＮＮ２５０に加えて、最上位の階層のカテゴリを分類する専用の分類器が含まれる点で上述した第１および第２実施形態と相違する。以下、第１および第２実施形態との相違点を中心に説明し、第１および第２実施形態と共通する点については説明を省略する。なお、第３実施形態の説明において、第１および第２実施形態と同じ部分については同一符号を付して説明する。
【０１０７】
図１９は、第３実施形態における分類器２００の一例を示す図である。第３実施形態における分類器２００は、例えば、第１ＣＮＮ２１０と、第２ＣＮＮ２２０と、第３ＣＮＮ２３０と、ＦＣＮＮ２４０と、複数のＲＮＮ２５０と、最上位カテゴリ分類器２７０とによって実現される。
【０１０８】
最上位カテゴリ分類器２７０は、例えば、ＦＣＮＮ２４０からベクトルが入力されると、最上位の階層のカテゴリのスコアを要素とするベクトルを出力するように予め学習されたニューラルネットワークである。最上位カテゴリ分類器２７０により出力されるベクトルは、例えば、ワンホット表現のように、ある要素だけが１であり、その他の要素が０となるベクトルであってよい。
【０１０９】
複数のＲＮＮ２４０の其々は、最上位の階層のカテゴリ数と同じ数（最上位カテゴリ分類器２７０の出力ベクトルの次元数と同じ数）だけ用意され、各ＲＮＮ２５０は、２番目以降の階層のカテゴリの正解が教師ラベルとして与えられた商品データに基づいて予め学習される。これによって、各ＲＮＮ２５０が、最上位の階層を除いた２番目以降の階層のカテゴリを分類するため、一つのＲＮＮ２５０に、最上位から最下位までの各階層のカテゴリを分類させるものに比べて、各階層のカテゴリをより精度良く分類することができる。
【０１１０】
以上説明した第３実施形態によれば、最上位の階層のカテゴリを分類する専用の最上位カテゴリ分類器２７０によって、最上位の階層のカテゴリを分類した後に、最上位の階層の各カテゴリに特化して学習したＲＮＮ２５０によって、最上位の階層を除いた２番目以降の階層のカテゴリを分類するため、商品をより適切なカテゴリに分類することができ、その結果、商品の検索精度を向上させることができる。
【０１１１】
＜第４実施形態＞
以下、第４実施形態について説明する。上述した第１から第３実施形態では、ＲＮＮ２５０が、ネットワークの中間層がＬＳＴＭであるものについて説明した。これに対して、第４実施形態では、ＲＮＮ２５０が、コンボリューショナルニューラルネットワークと、ネットワークの中間層がＬＳＴＭのＲＮＮとを組み合わせたニューラルネットワーク（以下、ＣＯＮＶＬＳＴＭと称する）である点で上述した第１から第３実施形態と相違する。以下、第１から第３実施形態との相違点を中心に説明し、第１から第３実施形態と共通する点については説明を省略する。なお、第４実施形態の説明において、第１から第３実施形態と同じ部分については同一符号を付して説明する。
【０１１２】
第４実施形態では、例えば、第１ＣＮＮ２１０、第２ＣＮＮ２２０、および第３ＣＮＮ２３０の其々についてプーリング処理が省略されたり、ＦＣＮＮ２４０が省略されたりすることで、分類器２００の上段に設けられた各種ニューラルネットワークなどから、ＲＮＮ２５０に３階テンソルが入力される。
【０１１３】
第４実施形態におけるＲＮＮ２５０は、例えば、コンボリューショナルニューラルネットワークと、ネットワークの中間層がＬＳＴＭであるＲＮＮとの組み合わせたニューラルネットワーク（以下、ＣＯＮＶＬＳＴＭと称する）であり、３階テンソルが入力されると、そのテンソルの元になったタイトルや概要、画像に対応する商品の分類先とするカテゴリの確からしさ（尤もらしさ）を表すスコアを階層ごとに出力するように学習されたニューラルネットワークである。ＣＯＮＶＬＳＴＭは、上述したＬＳＴＭの各ゲートの計算式において、重みと状態変数との内積計算が畳み込み計算に変更されたものである。数式（２）は、ＣＯＮＶＬＳＴＭのゲートおよびニューロンの計算式を表している。
【０１１４】
【数２】
2019164402.tif 000004
【０１１５】
第４実施形態におけるｘｔは、処理周期ｔにおいて入力される３階テンソル（以下、入力テンソル）を表し、ｈｔは、処理周期ｔにおいてＲＮＮ２５０により出力される３階テンソル（以下、出力テンソル）を表している。
【０１１６】
例えば、第４実施形態におけるＲＮＮ２５０は、重みＷｉと入力テンソルｘｔとの畳み込み値と、重みＲｉと前回の出力テンソルｈｔ−１との畳み込み値と、重みＱｉと前回の内部演算テンソル（３階テンソル）ｃｔ−１とのアダマール積（要素ごとの積）と、バイアス成分ｂｉとの和を変数としたシグモイド関数σを解くことで、処理周期ｔのインプットゲートテンソル（３階テンソル）ｉｔを導出する。
【０１１７】
また、ＲＮＮ２５０は、重みＷｆと入力テンソルｘｔとの畳み込み値と、重みＲｆと前回の出力ベクトルｈｔ−１との畳み込み値と、重みＱｆと前回の内部演算テンソルｃｔ−１とのアダマール積と、バイアス成分ｂｆとの和を変数としたシグモイド関数σを解くことで、処理周期ｔのフォーゲットゲートテンソルｆｔを導出する。
【０１１８】
また、ＲＮＮ２５０は、処理周期ｔのフォーゲットゲートテンソルｆｔおよびテンソルｚｔのアダマール積と、処理周期ｔ−１の内部演算テンソルｃｔ‐１および処理周期ｔのフォーゲットゲートテンソルｆｔのアダマール積との和を、処理周期ｔの内部演算テンソルｃｔとして導出する。
【０１１９】
ｚｔは、重みＷｚと入力テンソルｘｔとの畳み込み値と、重みＲｚと前回の出力テンソルｈｔ−１との畳み込み値と、バイアス成分ｂｚとの和を変数としたハイパポリックタンジェント関数ｔａｎｈを解くことで導出される。
【０１２０】
また、ＲＮＮ２５０は、重みＷｏと入力テンソルｘｔとの畳み込み値と、重みＲｏと前回の出力テンソルｈｔ−１との畳み込み値と、重みＱｏと今回の内部演算テンソルｃｔとのアダマール積と、バイアス成分ｂｏとの和を変数としたシグモイド関数σを解くことで、処理周期ｔのアウトプットゲートテンソル（３階テンソル）ｏｔを導出する。
【０１２１】
ＲＮＮ２５０は、アウトプットゲートテンソルｏｔを導出すると、アウトプットゲートテンソルｏｔと、内部演算テンソルｃｔを変数としたハイパポリックタンジェント関数ｔａｎｈの解とのアダマール積を、処理周期ｔの出力テンソルｈｔとして導出する。
【０１２２】
出力テンソルｈｔの各要素値は、上述した実施形態の出力ベクトルと同様に、階層ごとカテゴリのスコアを表している。ＲＮＮ２５０は、上述した数式に基づく計算を繰り返すことで、出力テンソルを繰り返し導出する。
【０１２３】
以上説明した第４実施形態によれば、分類器２００のＲＮＮ２５０を、中間層がＣＯＮＶＬＳＴＭであるＲＮＮとするため、上述した第１から第３実施形態と比べて、商品（サービスも含む）を、更に適切なカテゴリに分類することができ、その結果、検索精度をより向上させることができる。
【０１２４】
＜ハードウェア構成＞
上述した実施形態の情報処理装置１００は、例えば、図２０に示すようなハードウェア構成により実現される。図２０は、実施形態の情報処理装置１００のハードウェア構成の一例を示す図である。
【０１２５】
情報処理装置１００は、ＮＩＣ１００−１、ＣＰＵ１００−２、ＲＡＭ１００−３、ＲＯＭ１００−４、フラッシュメモリやＨＤＤなどの二次記憶装置１００−５、およびドライブ装置１００−６が、内部バスあるいは専用通信線によって相互に接続された構成となっている。ドライブ装置１００−６には、光ディスクなどの可搬型記憶媒体が装着される。二次記憶装置１００−５、またはドライブ装置１００−６に装着された可搬型記憶媒体に格納されたプログラムがＤＭＡコントローラ（不図示）などによってＲＡＭ１００−３に展開され、ＣＰＵ１００−２によって実行されることで、制御部１１０が実現される。制御部１１０が参照するプログラムは、ネットワークＮＷを介して他の装置からダウンロードされてもよい。
【０１２６】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何ら限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【０１２７】
１…情報処理システム、１０…端末装置、２０…サービス提供装置、１００…情報処理装置、１０２…通信部、１１０…制御部、１１２…取得部、１１４…形態素解析部、１１６…カテゴリ決定部、１１８…リスト生成部、１２０…情報提供部、１２２…学習処理部、１３０…記憶部、２００…分類器
【図１】
2019164402.tif 000005
【図２】
2019164402.tif 000006
【図３】
2019164402.tif 000007
【図４】
2019164402.tif 000008
【図５】
2019164402.tif 000009
【図６】
2019164402.tif 000010
【図７】
2019164402.tif 000011
【図８】
2019164402.tif 000012
【図９】
2019164402.tif 000013
【図１０】
2019164402.tif 000014
【図１１】
2019164402.tif 000015
【図１２】
2019164402.tif 000016
【図１３】
2019164402.tif 000017
【図１４】
2019164402.tif 000018
【図１５】
2019164402.tif 000019
【図１６】
2019164402.tif 000020
【図１７】
2019164402.tif 000021
【図１８】
2019164402.tif 000022
【図１９】
2019164402.tif 000023
【図２０】
2019164402.tif 000024