(57)【要約】【課題】ユーザの所定の行動を推定することができる情報処理装置、情報処理方法、およびプログラムを提供することである。【解決手段】ネットワークを介したウェブページへのアクセスログを取得する取得部と、前記アクセスログにおける所定の行動の有無を教師データとして、入力されたアクセスログにおいて前記所定の行動が行われるかを出力するように学習された分類器の出力結果に基づいて、前記取得部により取得された前記アクセスログに示されるウェブページを閲覧した閲覧者に提供すべき情報を決定する決定部とを備える情報処理装置。【選択図】図３
2020181316.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介したウェブページへのアクセスログを取得する取得部と、
前記アクセスログにおける所定の行動の有無を教師データとして、入力されたアクセスログにおいて前記所定の行動が行われるかを出力するように学習された分類器の出力結果に基づいて、前記取得部により取得された前記アクセスログに示されるウェブページを閲覧した閲覧者に提供すべき情報を決定する決定部と、
を備える情報処理装置。
【請求項２】
前記所定の行動には、商品またはサービスを購入することが含まれ、
前記決定部は、前記分類器の出力結果に基づいて、前記閲覧者に対して商品またはサービスの購入に係る特典を前記提供するべき情報として決定する、
請求項１に記載の情報処理装置。
【請求項３】
前記所定の行動には、サービスに入会することが含まれ、
前記決定部は、前記分類器の出力結果に基づいて、前記閲覧者に対してサービスへの入会を促す案内情報を前記提供すべき情報として決定する、
請求項１又は請求項２に記載の情報処理装置。
【請求項４】
ネットワークを介したウェブページへのアクセスログを取得する取得部と、
前記アクセスログにおける所定の行動の有無を学習データとして、入力されたアクセスログにおいて前記所定の行動が行われたかを出力するように学習された分類器の出力結果に基づいて、前記取得部によって取得された前記アクセスログに示されるウェブページを閲覧した閲覧者によって前記所定の行動が行われたか否かを推定し、前記所定の行動が行われたと推定した場合、購入に係る処理を実行する外部装置に対して、処理の中止を指示することを決定する決定部と、
を備える情報処理装置。
【請求項５】
前記アクセスログには、前記閲覧者が閲覧したウェブページの識別情報と、ウェブページの滞在時間とが、互いに対応付けられたレコードが少なくとも含まれる
請求項１から請求項４のうちいずれか一項に記載の情報処理装置。
【請求項６】
前記分類器は、入力された前記アクセスログに互いに種類の異なる複数のウェブページが含まれる場合、前記複数のウェブページのそれぞれの特徴に基づいて、入力された前記アクセスログの前記閲覧者が、所定の行動をすることの確からしさ、又は所定の行動をしないことの確からしさを表すスコアを出力し、
前記決定部は、前記分類器により出力されたスコアに基づいて、前記提供すべき情報を決定する、
請求項１から請求項５のうちいずれか一項に記載の情報処理装置。
【請求項７】
コンピュータが、
ネットワークを介したウェブページへのアクセスログを取得し、
前記アクセスログにおける所定の行動の有無を教師データとして、入力されたアクセスログにおいて前記所定の行動が行われるかを出力するように学習された分類器の出力結果に基づいて、取得された前記アクセスログに示されるウェブページを閲覧した閲覧者に提供すべき情報を決定する、
情報処理方法。
【請求項８】
コンピュータが、
ネットワークを介したウェブページへのアクセスログを取得し、
前記アクセスログにおける所定の行動の有無を学習データとして、入力されたアクセスログにおいて前記所定の行動が行われたかを出力するように学習された分類器の出力結果に基づいて、取得された前記アクセスログに示されるウェブページを閲覧した閲覧者によって前記所定の行動が行われたか否かを推定し、前記所定の行動が行われたと推定した場合、購入に係る処理を実行する外部装置に対して、処理の中止を指示することを決定する、
情報処理方法。
【請求項９】
コンピュータに、
ネットワークを介したウェブページへのアクセスログを取得させ、
前記アクセスログにおける所定の行動の有無を教師データとして、入力されたアクセスログにおいて前記所定の行動が行われるかを出力するように学習された分類器の出力結果に基づいて、取得された前記アクセスログに示されるウェブページを閲覧した閲覧者に提供すべき情報を決定させる、
プログラム。
【請求項１０】
コンピュータが、
ネットワークを介したウェブページへのアクセスログを取得させ、
前記アクセスログにおける所定の行動の有無を学習データとして、入力されたアクセスログにおいて前記所定の行動が行われたかを出力するように学習された分類器の出力結果に基づいて、取得された前記アクセスログに示されるウェブページを閲覧した閲覧者によって前記所定の行動が行われたか否かを推定し、前記所定の行動が行われたと推定した場合、購入に係る処理を実行する外部装置に対して、処理の中止を指示することを決定させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【０００２】
従来、ウェブページを閲覧した閲覧結果に基づいて、ユーザの行動を推定する技術が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１６４３２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、ユーザの状況に応じた検索結果を出力することができても、その後、ユーザが、商品、またはサービスの購入、サービスへの入会、或いは、不正決済等の所定の行動を行うことを推定することができず、その結果、適切なアクションを行うことができなかった。
【０００５】
本発明は、上記の課題に鑑みてなされたものであり、ユーザの行動をより正確に推定し、適切なアクションを行うことができる情報処理装置、情報処理方法、およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
本発明の一態様は、ネットワークを介したウェブページへのアクセスログを取得する取得部と、前記アクセスログにおける所定の行動の有無を教師データとして、入力されたアクセスログにおいて前記所定の行動が行われるかを出力するように学習された分類器の出力結果に基づいて、前記取得部により取得された前記アクセスログに示されるウェブページを閲覧した閲覧者に提供すべき情報を決定する決定部とを備える情報処理装置である。
【０００７】
また、本発明の一態様は、ネットワークを介したウェブページへのアクセスログを取得する取得部と、前記アクセスログにおける所定の行動の有無を学習データとして、入力されたアクセスログにおいて前記所定の行動が行われたかを出力するように学習された分類器の出力結果に基づいて、前記取得部によって取得された前記アクセスログに示されるウェブページを閲覧した閲覧者によって前記所定の行動が行われたか否かを推定し、前記所定の行動が行われたと推定した場合、購入に係る処理を実行する外部装置に対して、処理の中止を指示することを決定する決定部とを備える情報処理装置である。
【発明の効果】
【０００８】
本発明の一態様によれば、ユーザの行動をより正確に推定し、適切なアクションを行うことができる。
【図面の簡単な説明】
【０００９】
【図１】情報処理装置１００を含む情報処理システム１の一例を示す図である。
【図２】アクセスログの一例を示す図である。
【図３】情報処理装置１００の構成の一例を示す図である。
【図４】第１実施形態における情報処理装置１００による運用時の一連の処理の流れを示すフローチャートである。
【図５】分類器２００の一例を示す図である。
【図６】時間経過に応じたＲＮＮ２４０の処理内容を並列に展開した図である。
【図７】第１実施形態における情報処理装置１００による学習時の一連の処理の流れを示すフローチャートである。
【図８】実施形態の情報処理装置１００のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明を適用した情報処理装置、情報処理方法、およびプログラムを、図面を参照して説明する。
【００１１】
［概要］
情報処理装置は、一以上のプロセッサにより実現される。情報処理装置は、ウェブページへのアクセスログを取得する。情報処理装置は、予め学習された分類器に基づいて、取得したアクセスログに示されるウェブページを閲覧する者（以下、閲覧者）によって所定の行動が行われるかを出力する。分類器は、ネットワークを介して所定の行動が行われたアクセスログを学習データ、及び教師データとして、入力されたアクセスログの閲覧者によって所定の行動が行われるか否かを示す分類結果を出力するように学習される。このような分類器を利用することで、情報処理装置は、閲覧者が所定の行動を行うと推定される場合に、適切なアクションを、閲覧者、又は所定の装置に対して行うことができる。以下、商品またはサービスをまとめて単に「商品」と称して説明する。
【００１２】
＜第１実施形態＞
［全体構成］
図１は、情報処理装置１００を含む情報処理システム１の一例を示す図である。第１実施形態における情報処理システム１は、例えば、一以上の端末装置１０と、サービス提供装置２０と、決済処理装置３０と、情報処理装置１００とを備える。これらの装置は、ネットワークＮＷを介して接続される。また、これらの装置のうち一部は、他の装置に仮想的な装置として包含されてもよく、例えば、サービス提供装置２０の機能の一部または全部、決済処理装置３０の機能の一部または全部等が、情報処理装置１００の機能によって実現される仮想マシンであってもよい。決済処理装置３０は、「外部装置」の一例である。
【００１３】
図１に示す各装置は、ネットワークＮＷを介して種々の情報を送受信する。ネットワークＮＷは、例えば、インターネット、ＷＡＮ（Wide Area Network）、ＬＡＮ（Local Area Network）、プロバイダ端末、無線通信網、無線基地局、専用回線等を含む。なお、図１に示す各装置の全ての組み合わせが相互に通信可能である必要はなく、ネットワークＮＷは、一部にローカルなネットワークを含んでもよい。
【００１４】
端末装置１０は、例えば、スマートフォン等の携帯電話、タブレット端末、各種パーソナルコンピュータ等の、入力装置、表示装置、通信装置、記憶装置、および演算装置を備える端末装置である。通信装置は、ＮＩＣ（Network Interface Card）等のネットワークカード、無線通信モジュール等を含む。端末装置１０では、ウェブブラウザやアプリケーションプログラム等のＵＡ（User Agent）が起動し、ユーザの入力する内容に応じたリクエストをサービス提供装置２０に送信する。また、ＵＡが起動された端末装置１０は、サービス提供装置２０から取得した情報に基づいて、表示装置に各種画像を表示させる。端末装置１０のユーザは、「ウェブページを閲覧した閲覧者」の一例である。
【００１５】
サービス提供装置２０は、例えば、ＵＡとして起動されたウェブブラウザからのリクエストに応じてウェブページを端末装置１０に提供するウェブサーバである。ウェブページは、例えば、インターネット上において商品を販売するショッピングサイトやオークションサイト、フリーマーケットサイト等のウェブページを構成するウェブページであってよい。また、サービス提供装置２０は、検索サイトやＳＮＳ（Social Networking Service）、メールサービス等の各種サービスを提供するウェブページを端末装置１０に提供してもよい。また、サービス提供装置２０は、ＵＡとして起動されたアプリケーションからのリクエストに応じてコンテンツを端末装置１０に提供することで、販売サイト等の各種ウェブページと同様のサービスを提供するアプリケーションサーバであってもよい。
【００１６】
決済処理装置３０は、例えば、サービス提供装置２０において販売された商品の決済処理を行う。決済処理装置３０は、端末装置１０を利用するユーザにより指定された決済手段に基づく決済処理を行う。決済処理は、クレジットカードのシステムやインターネットバンキングを利用して行われてもよいし、端末装置１０が携帯電話である場合には、端末装置１０の利用料に加算することで行われてもよい。また、決済処理は、コンビニエンスストア等の店舗における支払いにより行われてもよい。
【００１７】
ユーザが端末装置１０を用いてインターネット上において商品を購入する場合、ユーザは、例えば、サービス提供装置２０が提供する検索サイトにアクセスする。ユーザは、商品を販売するショッピングサイトの名称や、購入したい商品の名称等をクエリとして検索し、検索結果として表示されたショッピングサイトの一覧のうち、いずれかのショッピングサイトにアクセス（閲覧）する。ユーザは、ショッピングサイトにおいて購入したい商品を販売している販売サイトにアクセスする。そして、ユーザは、販売サイトのうち、販売される商品（以下、商品ページ）にアクセスし、購入したい商品の商品ページから商品を購入する処理を行う。
【００１８】
サービス提供装置２０は、このようなアクセスの履歴（以下、アクセスログ）をセッション毎に取得する。セッションは、例えば、あるユーザが、サービス提供装置２０が提供するいずれかのウェブページにアクセスを開始してから、サービス提供装置２０が提供するいずれかのウェブページから離れる、ウェブブラウザを閉じる、又はウェブページへのアクセスを開始してから所定の時間（例えば、３０分以上）が経過するまでの期間である。したがって、アクセスログには、１セッションの間にユーザがウェブページ上で行った行動に応じて、ユーザが閲覧したウェブページに係る情報が、１以上含まれる。
【００１９】
図２は、アクセスログの一例を示す図である。アクセスログには、例えば、１セッションの間に、ユーザがアクセスしたウェブページを識別可能な識別情報（以下、ウェブＩＤ）と、ユーザが当該ウェブページを閲覧した時間（以下、閲覧時間）とが互いに対応付けられたレコードが、時系列順に含まれる情報である。ウェブＩＤは、例えば、ＵＲＬ（Uniform Resource Locator）であってもよく、予めウェブページに付されるＩＤであってもよく、サブドメインであってもよい。
【００２０】
図３のアクセスログには、まず、検索サイトにアクセスし、次にショッピングサイトにアクセスし、次に販売サイトにアクセスし、次に商品ページにアクセスしたことが示される。また、アクセスログには、検索サイトのウェブＩＤと閲覧時間のレコードと、ショッピングサイトのウェブＩＤと閲覧時間のレコードと、販売サイトのウェブＩＤと閲覧時間のレコードと、商品ページのウェブＩＤと閲覧時間のレコードとが含まれる。なお、アクセスログの内容は、一例であってこれに限られない。
【００２１】
ここで、アクセスログには、ユーザが所定の行動に至るまでの、ユーザの振る舞いの特徴が表れている場合がある。例えば、類似する複数の商品の商品ページを、それぞれ長い時間閲覧していることがアクセスログに示されている場合、ユーザは、商品を購入する可能性が高いことが推定される。また、類似する複数のサービスのウェブページを、それぞれ長い時間閲覧していることがアクセスログに示されている場合、ユーザは、サービスに入会する可能性が高いことが推定される。また、各ウェブページの閲覧時間が極端に短く、商品ページまで最少の数のウェブページを介して到達し、商品を購入したことがアクセスログに示される場合、ユーザは、不正な手段による決済（以下、不正な決済）によって商品を購入した可能性が高いことが推定される。
【００２２】
情報処理装置１００は、アクセスログを取得し、取得したアクセスログを機械学習することで、ユーザが所定の行動（例えば、商品の購入、サービスの入会、或いは不正決済）を行うか否かを推定する。
【００２３】
［情報処理装置の構成］
図３は、情報処理装置１００の構成の一例を示す図である。図示のように、情報処理装置１００は、例えば、通信部１０２と、制御部１１０と、記憶部１３０とを備える。
【００２４】
通信部１０２は、例えば、ＮＩＣ等の通信インターフェースを含む。通信部１０２は、ネットワークＮＷを介して、端末装置１０、サービス提供装置２０、或いは決済処理装置３０等と通信する。
【００２５】
制御部１１０は、例えば、取得部１１２と、形態素解析部１１４と、行動推定部１１６と、決定部１１８と、学習処理部１２０とを備える。
【００２６】
制御部１１０の構成要素は、例えば、ＣＰＵ（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）であるＲＮＮであり、１階テンソルであるベクトルが入力されると、そのベクトルの元になったウェブＩＤ、及び閲覧時間によって示されるユーザが商品を購入することの確からしさ（尤もらしさ）を表すスコアをレコード毎に出力するように学習されたニューラルネットワークである。例えば、ＬＳＴＭは、重みと状態変数との内積を計算する。数式（１）は、ＬＳＴＭのゲートおよびニューロンの計算式を表している。状態変数とは、各ゲートによって求められるベクトルである。
【００４５】
【数１】
2020181316.tif 000003
【００４６】
ｔは、ＲＮＮ２４０によって繰り返し行われる再帰処理の処理周期（処理時刻）を表しており、ｘｔは、処理周期ｔにおいてＦＣＮＮ２３０から入力されるベクトル（以下、入力ベクトル）を表し、ｈｔは、処理周期ｔにおいてＲＮＮ２４０により出力されるベクトル（以下、出力ベクトル）を表している。再帰処理とは、過去の処理周期で求めた出力ベクトルを、今回の処理周期での出力ベクトルの導出に利用することである。
【００４７】
ｉｔは、ＬＳＴＭに含まれるインプットゲートによって出力されるベクトル（以下、インプットゲートベクトル）を表しており、σは、ゲートの活性化関数がシグモイド関数であることを表しており、Ｗｉは、入力ベクトルｘｔを線形変換するための重みを表しており、Ｒｉは、前回の処理周期ｔ−１の出力ベクトルｈｔ−１を線形変換するための重みを表しており、Ｑｉは、メモリーセルに記憶された前回の処理周期ｔ−１の内部演算ベクトルｃｔ−１を線形変換するための重みを表しており、ｂｉは、インプットゲートのバイアス成分を表している。メモリーセルとは、一時的に内部演算ベクトルｃを記憶させておくための記憶領域（ＬＳＴＭブロック）である。
【００４８】
例えば、ＲＮＮ２４０は、重みＷｉと入力ベクトルｘｔとの内積値と、重みＲｉと前回の出力ベクトルｈｔ−１との内積値と、重みＱｉと前回の内部演算ベクトルｃｔ−１とのアダマール積（要素毎の積）と、バイアス成分ｂｉとの和を変数としたシグモイド関数σを解くことで、処理周期ｔのインプットゲートベクトルｉｔを導出する。
【００４９】
ｆｔは、ＬＳＴＭに含まれるフォーゲットゲートによって出力されるベクトル（以下、フォーゲットゲートベクトル）を表しており、Ｗｆは、重みＷｉと同様に、入力ベクトルｘｔを線形変換するための重みを表しており、Ｒｆは、重みＲｉと同様に、前回の処理周期ｔ−１の出力ベクトルｈｔ−１を線形変換するための重みを表しており、Ｑｆは、重みＱｉと同様に、メモリーセルに記憶された前回の処理周期ｔ−１の内部演算ベクトルｃｔ−１を線形変換するための重みを表しており、ｂｆは、フォーゲットゲートのバイアス成分を表している。
【００５０】
例えば、ＲＮＮ２４０は、重みＷｆと入力ベクトルｘｔとの内積値と、重みＲｆと前回の出力ベクトルｈｔ−１との内積値と、重みＱｆと前回の内部演算ベクトルｃｔ−１とのアダマール積と、バイアス成分ｂｆとの和を変数としたシグモイド関数σを解くことで、処理周期ｔのフォーゲットゲートベクトルｆｔを導出する。
【００５１】
ｃｔは、ＬＳＴＭに含まれるメモリーセルに記憶させる内部演算ベクトルを表している。
【００５２】
例えば、ＲＮＮ２４０は、処理周期ｔのフォーゲットゲートベクトルｆｔおよび後述するベクトルｚｔのアダマール積と、処理周期ｔ−１の内部演算ベクトルｃｔ‐１および処理周期ｔのフォーゲットゲートベクトルｆｔのアダマール積との和を、処理周期ｔの内部演算ベクトルｃｔとして導出する。
【００５３】
ｚｔは、重みＷｚと入力ベクトルｘｔとの内積値と、重みＲｚと前回の出力ベクトルｈｔ−１との内積値と、バイアス成分ｂｚとの和を変数としたハイパポリックタンジェント関数ｔａｎｈを解くことで導出される。Ｗｚは、重みＷｉやＷｆと同様に、入力ベクトルｘｔを線形変換するための重みを表しており、Ｒｆは、重みＲｉやＲｆと同様に、前回の処理周期ｔ−１の出力ベクトルｈｔ−１を線形変換するための重みを表しており、ｂｚは、メモリーセルのバイアス成分を表している。
【００５４】
ｏｔは、ＬＳＴＭに含まれるアウトプットゲートによって出力されるベクトル（以下、アウトプットゲートベクトル）を表しており、Ｗｏは、重みＷｉ等と同様に、入力ベクトルｘｔを線形変換するための重みを表しており、Ｒｏは、重みＲｉ等と同様に、前回の処理周期ｔ−１の出力ベクトルｈｔ−１を線形変換するための重みを表しており、Ｑｏは、メモリーセルに記憶された今回の処理周期ｔの内部演算ベクトルｃｔを線形変換するための重みを表しており、ｂｏは、アウトプットゲートのバイアス成分を表している。
【００５５】
例えば、ＲＮＮ２４０は、重みＷｏと入力ベクトルｘｔとの内積値と、重みＲｏと前回の出力ベクトルｈｔ−１との内積値と、重みＱｏと今回の内部演算ベクトルｃｔとのアダマール積と、バイアス成分ｂｏとの和を変数としたシグモイド関数σを解くことで、処理周期ｔのアウトプットゲートベクトルｏｔを導出する。
【００５６】
ＲＮＮ２４０は、アウトプットゲートベクトルｏｔを導出すると、アウトプットゲートベクトルｏｔと、内部演算ベクトルｃｔを変数としたハイパポリックタンジェント関数ｔａｎｈの解とのアダマール積を、処理周期ｔの出力ベクトルｈｔとして導出する。
【００５７】
出力ベクトルｈｔの各要素値は、レコード毎の行動（この一例では、ユーザが商品を購入すること）の確からしさのスコアを表している。例えば、ｈｔ＝｛ｅ１，ｅ２｝であった場合、要素ｅ１は、ユーザが商品を購入することの確からしさを示すスコア（確率）を表し、要素ｅ２は、ユーザが商品を購入しないことの確からしさを示すスコアを表している。ＲＮＮ２４０は、上述した数式に基づく計算を繰り返すことで、出力ベクトルを繰り返し導出する。
【００５８】
図６は、時間経過に応じたＲＮＮ２４０の処理内容を並列に展開した図である。例えば、ＦＣＮＮ２３０から入力ベクトルｘｔ１が入力された初回の処理周期ｔ１では、ＲＮＮ２４０は、出力ベクトルｈｔ１を出力する。初回処理時ｔ１の出力ベクトルｈｔ１は、アクセスログのうち最初のレコードに係る、ユーザが商品を購入することの確からしさを示すスコアを要素として含んでおり、各要素は、例えば、各要素におけるユーザが商品を購入することの確からしさを示すスコアである。
【００５９】
次の処理周期ｔ２では、ＲＮＮ２４０は、初回の処理周期ｔ１に入力された入力ベクトルｘｔ１と、前回の処理周期ｔ１の出力ベクトルｈｔ１とに基づいて、出力ベクトルｈｔ２を出力する。処理周期ｔ２の出力ベクトルｈｔ２は、２番目のレコードに係るユーザが商品を購入することの確からしさを示すスコアを要素として含んでいる。
【００６０】
次の処理周期ｔ３では、ＲＮＮ２４０は、初回の処理周期ｔ１に入力された入力ベクトルｘｔ１と、前回の処理周期ｔ２の出力ベクトルｈｔ２とに基づいて、出力ベクトルｈｔ３を出力する。処理周期ｔ３の出力ベクトルｈｔ３は、３番目のレコードに係るユーザが商品を購入することの確からしさを示すスコアを要素として含んでいる。
【００６１】
このように、ＲＮＮ２４０は、再帰処理を繰り返すことで、より多くのレコードのスコアを要素とする出力ベクトルを導出する。なお、ＲＮＮ２４０は、セッションの最後のレコードのスコアを要素とする出力ベクトルを導出するまで、再帰的に出力ベクトルを導出することを繰り返すものとする。例えば、ＲＮＮ２４０の学習時に、セッションの最後のレコードに対して所定の付加的情報（以下、エンドラベルと称する）が付与された商品データが利用された場合、ＲＮＮ２４０は、エンドラベルが付与されたレコードのスコアを要素とする出力ベクトルを導出するまで再帰処理を繰り返す。これによって、例えば、ある２つのアクセスログが、いずれもユーザが商品を購入するアクセスログであって、それらのアクセスログには、互いに数が異なるレコードが含まれる場合であっても、最後のレコードまで、アクセスログに含まれるレコードの数と同じ回数だけ再帰処理を繰り返すため、ＲＮＮ２４０の再帰処理の回数（図６中のｋ）というハイパーパラメータを調整せずとも、各レコードの種類に応じて再帰処理の回数を動的に変更しながらスコアを求めることができる。
【００６２】
ＬＵ２５０は、ＲＮＮ２４０から出力されたベクトルに対して、線形変換行列を乗算することで、２次元のベクトルに変換（次元を圧縮）し、それを出力層に出力する。
【００６３】
図５に戻り、次に、行動推定部１１６は、分類器２００から分類結果を取得し、その分類結果に基づいてユーザが所定の行動を行うか否かを推定する（Ｓ１０６）。カテゴリの分類結果には、ＲＮＮ２４０が再帰処理毎に出力した出力ベクトルが含まれており、その出力ベクトルには、行動の確からしさのスコアの結果が要素として含まれている。行動推定部１１６は、例えば、ユーザが商品を購入することの確からしさを示すスコアと、ユーザが商品を購入しないことの確からしさを示すスコアとのうち、スコアが大きいほうの行動をユーザが行う、或いは行わないと推定する。
【００６４】
決定部１１８は、行動推定部１１６の推定結果に基づいて、ユーザに提供する情報を提供すると決定する（Ｓ１０８）。決定部１１８は、例えば、行動推定部１１６の推定結果が、ユーザが商品を購入しないと推定した場合、ユーザの商品の購入を促すように、商品の割引や値引き等の商品の購入に係るクーポン（特典）情報をユーザに提供すると決定する。この場合、決定部１１８は、推定の元になったアクセスログに係るユーザ（の端末装置１０）にクーポン情報を送信するようにサービス提供装置２０に指示する。これにより、情報処理装置１００は、ユーザが商品を購入しないことが推定される場合であっても、ユーザに商品の購入を促すことができる。
【００６５】
なお、決定部１１８は、例えば、行動推定部１１６の推定結果に基づいて、ユーザが商品を購入すると推定した場合、ユーザが購入する商品の割引や値引き等に係るクーポンを示す情報をユーザに出力するものであってもよい。これにより、情報処理装置１００は、商品を購入してくれるユーザに対して特典を付与することにより、今後もサービス提供装置２０が提供するサービスを介して商品を購入するように促すことができる。
【００６６】
［不正な決済が行われた場合の決定部１１８の処理］
また、分類器２００が、ユーザが行う所定の行動のうち、「サービスに入会するか」について出力するものであり、行動推定部１１６が、分類器２００から分類結果を取得し、その分類結果に基づいてユーザがサービスに入会すると推定する場合、決定部１１８は、サービスへの入会を促す案内情報をユーザに対して出力する。具体的には、決定部１１８は、推定の元になったアクセスログに係るユーザ（の端末装置１０）に案内情報を提供すると決定し、案内情報を送信するようにサービス提供装置２０に指示する。これにより、情報処理装置１００は、ユーザがサービスに入会することが推定される場合に、ユーザに適切にサービスの案内をすることができる。
【００６７】
［サービスに入会する場合の決定部１１８の処理］
また、分類器２００が、ユーザが行う所定の行動のうち、「不正な決済が行われたか」について出力するものであり、行動推定部１１６が、分類器２００から分類結果を取得し、その分類結果に基づいてユーザによって不正な決済が行われたと推定する場合、決定部１１８は、不正な決済によってユーザに購入された商品に係る決済処理を中止すると決定する。この場合、決定部１１８は、決済処理装置３０に対して当該決済処理の中止を指示する情報を送信する。決済処理装置３０は、決定部１１８から受信した情報に基づいて、不正な決済によってユーザに購入された商品に係る決済処理を中止する。これにより、情報処理装置１００は、不正な決済によってユーザが商品を購入したことが推定される場合に、当該購入に係る決済処理を中止することができる。
【００６８】
［アクセスログの取得タイミング］
また、上述では、取得部１１２が、セッション毎のアクセスログを取得する場合について説明したが、これに限られない。取得部１１２は、例えば、現在、サービス提供装置２０が提供するウェブページを閲覧しているアクセスログを、セッションが完結するよりも前に、リアルタイムに取得するものであってもよい。これにより、情報処理装置１００は、商品の購入を検討しながらウェブページを閲覧するユーザに対して、即座にクーポンを提供することができ、サービスへの入会を検討しながらウェブページを閲覧するユーザに対して、即座に案内情報を提供することができ、不正な決済で商品を購入しようとしているユーザの決済を抑制したりすることができる。
【００６９】
［行動推定部１１６の処理の他の例］
また、上述した説明では、行動推定部１１６が、分類器２００の分類結果を参照し、ユーザが商品を購入することの確からしさを示すスコアと、ユーザが商品を購入しないことの確からしさを示すスコアとのうち、スコアが大きいほうの行動をユーザが行う、或いは行わないと推定したがこれに限られない。例えば、行動推定部１１６は、分類器２００の分類結果として示されるスコアの全部が、或いは所定数以上のスコアが閾値未満である場合、ＲＮＮ２４０に、一つ前の再帰処理を再び行わせ、レコードのスコアが閾値未満のレコードの出力ベクトルをあらためて導出させてよい。例えば、ＲＮＮ２４０が、処理周期ｔ１において導出した出力ベクトルｈｔ１の複数の要素ｅのうち、最も値が大きい要素だけを残した出力ベクトルｈｔ１を基に処理周期ｔ２において出力ベクトルｈｔ２を導出したとする。このような場合に、処理周期ｔ２における出力ベクトルｈｔ２の要素ｅがいずれも閾値未満であった場合、すなわち、２番目のレコードのスコアがいずれも閾値未満であった場合、行動推定部１１６は、ＲＮＮ２４０に、処理周期ｔ１の再帰処理を再び行わせる。この際、行動推定部１１６は、処理周期ｔ１において導出した出力ベクトルｈｔ１の複数の要素ｅのうち、最も値が大きい要素を残すのではなく、例えば、２番目に値が大きい要素、或いは３番目や４番目に値が大きい要素を残した出力ベクトルｈｔ１を基にして、ＲＮＮ２４０に出力ベクトルｈｔ２を導出させる。
【００７０】
このように、最初のレコードよりも後に閲覧されたウェブページに係るレコードの分類結果が曖昧である場合、最初のレコードの分類が間違っている蓋然性が高いと判断して、最初のレコードのスコアのうち、二番目以降に確からしいレコードのスコアを基に、以降のレコードのスコアを再計算させる。これによって、最初のレコードの分類を間違ったことにより、それ以降の全てのレコードの分類を間違ってしまうという再帰処理特有の事象が発生するのを抑制することができる。
【００７１】
［学習時の処理フロー］
以下、第１実施形態における情報処理装置１００の学習時の一連の流れをフローチャートに即して説明する。図７は、第１実施形態における情報処理装置１００による学習時の一連の処理の流れを示すフローチャートである。
【００７２】
まず、学習処理部１２０は、記憶部１３０に格納された教師データ１３４から、あるアクセスログを選択する（Ｓ２００）。教師データ１３４は、予め、「ユーザが商品を購入したこと」、「ユーザが商品を購入しなかったこと」、「ユーザがサービスに入会したこと」、「ユーザがサービスに入会しなかったこと」、「ユーザによって不正決済が行われたこと」、「ユーザによって不正決済が行われなかったこと」等の各種タグが教師ラベルとして対応付けられたアクセスログである。
【００７３】
次に、学習処理部１２０は、教師データ１３４からアクセスログを選択すると、そのアクセスログを分類器２００に入力する（Ｓ２０２）。
【００７４】
次に、学習処理部１２０は、アクセスログを入力した分類器２００から出力結果、すなわち最尤タグベクトルを取得する（Ｓ２０４）。
【００７５】
次に、学習処理部１２０は、最尤タグベクトルによって示されるタグと、分類器２００に入力したアクセスログに教師ラベルとした対応付けられたタグとを比較し、双方のタグの組み合わせが一致するか否かを判定する（Ｓ２０６）。
【００７６】
学習処理部１２０は、タグの組み合わせが一致しないと判定した場合、誤差逆伝番等の勾配法に基づいて、分類器２００のパラメータを学習する（Ｓ２０８）。例えば、学習処理部１２０は、教師ラベルとした対応付けられたタグの組み合わせの尤度を最大値とし、その最大値から、最尤タグベクトルによって示されるタグの組み合わせの尤度を減算した差分が小さくなるように、分類器２００のパラメータを学習する。これによって、本フローチャートの処理が終了する。
【００７７】
以上説明した第１実施形態の情報処理装置１００によれば、アクセスログからユーザの所定の行動を推定し、推定した行動に応じた情報を出力することにより、ユーザに期待する行動（商品の購入やサービスの入会）を促したり、不正な決済による商品の購入を抑制したりすることができる。
【００７８】
また、上述した第１実施形態によれば、教師ラベルとして正解となるカテゴリと共に、含まれるレコードの数が異なるアクセスログを学習データとして分類器２００を学習させるため、全てのレコードについて再帰処理を繰り返すため、ＲＮＮ２４０の再帰処理の回数というハイパーパラメータを調整せずとも、各アクセスログのレコードの数に応じて再帰処理の回数を動的に変更しながらスコアを求めることができ、更に、事前にアクセスログのレコードの数がわからなくとも、各レコードを分類することができる。
【００７９】
＜第２実施形態＞
以下、第２実施形態について説明する。上述した第１実施形態では、ＲＮＮ２４０が、ネットワークの中間層がＬＳＴＭであるものについて説明した。これに対して、第２実施形態では、ＲＮＮ２４０が、コンボリューショナルニューラルネットワークと、ネットワークの中間層がＬＳＴＭのＲＮＮとを組み合わせたニューラルネットワーク（以下、ＣＯＮＶＬＳＴＭと称する）である点で上述した第１から第３実施形態と相違する。以下、第１から第３実施形態との相違点を中心に説明し、第１から第３実施形態と共通する点については説明を省略する。なお、第２実施形態の説明において、第１から第３実施形態と同じ部分については同一符号を付して説明する。
【００８０】
第２実施形態では、例えば、第１ＣＮＮ２１０、及び第２ＣＮＮ２２０のそれぞれについてプーリング処理が省略されたり、ＦＣＮＮ２３０が省略されたりすることで、分類器２００の上段に設けられた各種ニューラルネットワーク等から、ＲＮＮ２４０に３階テンソルが入力される。
【００８１】
第２実施形態におけるＲＮＮ２４０は、例えば、コンボリューショナルニューラルネットワークと、ネットワークの中間層がＬＳＴＭであるＲＮＮとの組み合わせたニューラルネットワーク（以下、ＣＯＮＶＬＳＴＭと称する）であり、３階テンソルが入力されると、そのテンソルの元になったタイトルや概要、画像に対応する商品の分類先とするカテゴリの確からしさ（尤もらしさ）を表すスコアをレコード毎に出力するように学習されたニューラルネットワークである。ＣＯＮＶＬＳＴＭは、上述したＬＳＴＭの各ゲートの計算式において、重みと状態変数との内積計算が畳み込み計算に変更されたものである。数式（２）は、ＣＯＮＶＬＳＴＭのゲートおよびニューロンの計算式を表している。
【００８２】
【数２】
2020181316.tif 000004
【００８３】
第２実施形態におけるｘｔは、処理周期ｔにおいて入力される３階テンソル（以下、入力テンソル）を表し、ｈｔは、処理周期ｔにおいてＲＮＮ２４０により出力される３階テンソル（以下、出力テンソル）を表している。
【００８４】
例えば、第２実施形態におけるＲＮＮ２４０は、重みＷｉと入力テンソルｘｔとの畳み込み値と、重みＲｉと前回の出力テンソルｈｔ−１との畳み込み値と、重みＱｉと前回の内部演算テンソル（３階テンソル）ｃｔ−１とのアダマール積（要素毎の積）と、バイアス成分ｂｉとの和を変数としたシグモイド関数σを解くことで、処理周期ｔのインプットゲートテンソル（３階テンソル）ｉｔを導出する。
【００８５】
また、ＲＮＮ２４０は、重みＷｆと入力テンソルｘｔとの畳み込み値と、重みＲｆと前回の出力ベクトルｈｔ−１との畳み込み値と、重みＱｆと前回の内部演算テンソルｃｔ−１とのアダマール積と、バイアス成分ｂｆとの和を変数としたシグモイド関数σを解くことで、処理周期ｔのフォーゲットゲートテンソルｆｔを導出する。
【００８６】
また、ＲＮＮ２４０は、処理周期ｔのフォーゲットゲートテンソルｆｔおよびテンソルｚｔのアダマール積と、処理周期ｔ−１の内部演算テンソルｃｔ‐１および処理周期ｔのフォーゲットゲートテンソルｆｔのアダマール積との和を、処理周期ｔの内部演算テンソルｃｔとして導出する。
【００８７】
ｚｔは、重みＷｚと入力テンソルｘｔとの畳み込み値と、重みＲｚと前回の出力テンソルｈｔ−１との畳み込み値と、バイアス成分ｂｚとの和を変数としたハイパポリックタンジェント関数ｔａｎｈを解くことで導出される。
【００８８】
また、ＲＮＮ２４０は、重みＷｏと入力テンソルｘｔとの畳み込み値と、重みＲｏと前回の出力テンソルｈｔ−１との畳み込み値と、重みＱｏと今回の内部演算テンソルｃｔとのアダマール積と、バイアス成分ｂｏとの和を変数としたシグモイド関数σを解くことで、処理周期ｔのアウトプットゲートテンソル（３階テンソル）ｏｔを導出する。
【００８９】
ＲＮＮ２４０は、アウトプットゲートテンソルｏｔを導出すると、アウトプットゲートテンソルｏｔと、内部演算テンソルｃｔを変数としたハイパポリックタンジェント関数ｔａｎｈの解とのアダマール積を、処理周期ｔの出力テンソルｈｔとして導出する。
【００９０】
出力テンソルｈｔの各要素値は、上述した実施形態の出力ベクトルと同様に、各レコードのスコアを表している。ＲＮＮ２４０は、上述した数式に基づく計算を繰り返すことで、出力テンソルを繰り返し導出する。
【００９１】
以上説明した第２実施形態によれば、分類器２００のＲＮＮ２４０を、中間層がＣＯＮＶＬＳＴＭであるＲＮＮとするため、上述した第１実施形態と比べて、更に適切なユーザの所定の行動に分類することができ、その結果、決定部１１８は、より適切な情報を提供すると決定することができる。
【００９２】
＜ハードウェア構成＞
上述した実施形態の情報処理装置１００は、例えば、図８に示すようなハードウェア構成により実現される。図８は、実施形態の情報処理装置１００のハードウェア構成の一例を示す図である。
【００９３】
情報処理装置１００は、ＮＩＣ１００−１、ＣＰＵ１００−２、ＲＡＭ１００−３、ＲＯＭ１００−４、フラッシュメモリやＨＤＤ等の二次記憶装置１００−５、およびドライブ装置１００−６が、内部バスあるいは専用通信線によって相互に接続された構成となっている。ドライブ装置１００−６には、光ディスク等の可搬型記憶媒体が装着される。二次記憶装置１００−５、またはドライブ装置１００−６に装着された可搬型記憶媒体に格納されたプログラムがＤＭＡコントローラ（不図示）等によってＲＡＭ１００−３に展開され、ＣＰＵ１００−２によって実行されることで、制御部１１０が実現される。制御部１１０が参照するプログラムは、ネットワークＮＷを介して他の装置からダウンロードされてもよい。
【００９４】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何ら限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【００９５】
１…情報処理システム、１０…端末装置、２０…サービス提供装置、３０…決済処理装置、１００…情報処理装置、１００−５…二次記憶装置、１００−６…ドライブ装置、１０２…通信部、１１０…制御部、１１２…取得部、１１４…形態素解析部、１１６…行動推定部、１１８…決定部、１２０…学習処理部、１３０…記憶部、１３２…分類器情報、１３４…教師データ、２００…分類器
【図１】
2020181316.tif 000005
【図２】
2020181316.tif 000006
【図３】
2020181316.tif 000007
【図４】
2020181316.tif 000008
【図５】
2020181316.tif 000009
【図６】
2020181316.tif 000010
【図７】
2020181316.tif 000011
【図８】
2020181316.tif 000012