(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-07
(45)【発行日】2023-03-15
(54)【発明の名称】情報処理装置、情報処理方法、およびプログラム
(51)【国際特許分類】
G06Q 30/0207 20230101AFI20230308BHJP
【FI】
G06Q30/0207 350
(21)【出願番号】P 2019083031
(22)【出願日】2019-04-24
【審査請求日】2021-03-16
【前置審査】
(73)【特許権者】
【識別番号】319013263
【氏名又は名称】ヤフー株式会社
(74)【代理人】
【識別番号】100149548
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100154852
【氏名又は名称】酒井 太一
(74)【代理人】
【識別番号】100181124
【氏名又は名称】沖田 壮男
(74)【代理人】
【識別番号】100194087
【氏名又は名称】渡辺 伸一
(72)【発明者】
【氏名】川端 聡基
【審査官】阿部 潤
(56)【参考文献】
【文献】特開2015-230717(JP,A)
【文献】特開2019-036173(JP,A)
【文献】特開2019-053668(JP,A)
【文献】特開2009-175984(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00 - 99/00
G16H 10/00 - 80/00
(57)【特許請求の範囲】
【請求項1】
ネットワークを介したウェブページへのアクセスログを取得する取得部と、
アクセスログにおける所定の行動の有無を教師データとして、入力されたアクセスログにおいて前記所定の行動が行われるかを出力するように学習された分類器に、前記取得されたアクセスログを入力することで得られる出力結果に基づいて、前記取得部により取得された前記アクセスログに示されるウェブページを閲覧した閲覧者に提供すべき情報を決定する決定部と、
を備え、
前記アクセスログには、前記閲覧者が閲覧したウェブページの識別情報と、前記ウェブページをユーザが閲覧した時間の長さである閲覧時間とが、互いに対応付けられたレコードが少なくとも含まれる
ものであり、
前記分類器は、RNN(Recurrent Neural Network:回帰型ニューラルネットワーク)により、前記ウェブページにアクセスするセッションの最後のレコードに対して所定のエンドラベルが付与されたデータを用いて学習されたものであり、1以上のアクセスログの入力に対してそれぞれ前記エンドラベルが付与されたレコードのスコアを出力するまで再帰処理を繰り返す、
情報処理装置。
【請求項2】
前記所定の行動には、商品またはサービスを購入することが含まれ、
前記決定部は、前記分類器の出力結果に基づいて、前記閲覧者に対して商品またはサービスの購入に係る特典を前記提供するべき情報として決定する、
請求項1に記載の情報処理装置。
【請求項3】
前記所定の行動には、サービスに入会することが含まれ、
前記決定部は、前記分類器の出力結果に基づいて、前記閲覧者に対してサービスへの入会を促す案内情報を前記提供すべき情報として決定する、
請求項1又は請求項2に記載の情報処理装置。
【請求項4】
ネットワークを介したウェブページへのアクセスログを取得する取得部と、
アクセスログにおける商取引での不正決済の有無を教師データとして、入力されたアクセスログにおいて前記不正決済が行われたかを出力するように学習された分類器に、前記取得されたアクセスログを入力することで得られる出力結果に基づいて、前記取得部によって取得された前記アクセスログに示されるウェブページを閲覧した閲覧者によって前記不正決済が行われたか否かを推定し、前記不正決済が行われたと推定した場合、前記閲覧者による購入に係る処理を実行する外部装置に対して、処理の中止を指示することを決定する決定部と、
を備え、
前記アクセスログには、前記閲覧者が閲覧したウェブページの識別情報と、前記ウェブページをユーザが閲覧した時間の長さである閲覧時間とが、互いに対応付けられたレコードが少なくとも含まれる
ものであり、
前記分類器は、RNN(Recurrent Neural Network:回帰型ニューラルネットワーク)により、前記ウェブページにアクセスするセッションの最後のレコードに対して所定のエンドラベルが付与されたデータを用いて学習されたものであり、1以上のアクセスログの入力に対してそれぞれ前記エンドラベルが付与されたレコードのスコアを出力するまで再帰処理を繰り返す、
情報処理装置。
【請求項5】
コンピュータが、
ネットワークを介したウェブページへのアクセスログを取得し、
アクセスログにおける所定の行動の有無を教師データとして、入力されたアクセスログにおいて前記所定の行動が行われるかを出力するように学習された分類器に、前記取得されたアクセスログを入力することで得られる出力結果に基づいて、取得された前記アクセスログに示されるウェブページを閲覧した閲覧者に提供すべき情報を決定し、
前記アクセスログには、前記閲覧者が閲覧したウェブページの識別情報と、前記ウェブページをユーザが閲覧した時間の長さである閲覧時間とが、互いに対応付けられたレコードが少なくとも含まれる
ものであり、
前記分類器は、RNN(Recurrent Neural Network:回帰型ニューラルネットワーク)により、前記ウェブページにアクセスするセッションの最後のレコードに対して所定のエンドラベルが付与されたデータを用いて学習されたものであり、1以上のアクセスログの入力に対してそれぞれ前記エンドラベルが付与されたレコードのスコアを出力するまで再帰処理を繰り返す、
情報処理方法。
【請求項6】
コンピュータが、
ネットワークを介したウェブページへのアクセスログを取得し、
アクセスログにおける商取引での不正決済の有無を教師データとして、入力されたアクセスログにおいて前記不正決済が行われたかを出力するように学習された分類器に、前記取得されたアクセスログを入力することで得られる出力結果に基づいて、取得された前記アクセスログに示されるウェブページを閲覧した閲覧者によって前記不正決済が行われたか否かを推定し、
前記不正決済が行われたと推定した場合、前記閲覧者による購入に係る処理を実行する外部装置に対して、処理の中止を指示することを決定し、
前記アクセスログには、前記閲覧者が閲覧したウェブページの識別情報と、前記ウェブページをユーザが閲覧した時間の長さである閲覧時間とが、互いに対応付けられたレコードが少なくとも含まれる
ものであり、
前記分類器は、RNN(Recurrent Neural Network:回帰型ニューラルネットワーク)により、前記ウェブページにアクセスするセッションの最後のレコードに対して所定のエンドラベルが付与されたデータを用いて学習されたものであり、1以上のアクセスログの入力に対してそれぞれ前記エンドラベルが付与されたレコードのスコアを出力するまで再帰処理を繰り返す、
情報処理方法。
【請求項7】
コンピュータに、
ネットワークを介したウェブページへのアクセスログを取得させ、
アクセスログにおける所定の行動の有無を教師データとして、入力されたアクセスログにおいて前記所定の行動が行われるかを出力するように学習された分類器に、前記取得されたアクセスログを入力することで得られる出力結果に基づいて、取得された前記アクセスログに示されるウェブページを閲覧した閲覧者に提供すべき情報を決定させ、
前記アクセスログには、前記閲覧者が閲覧したウェブページの識別情報と、前記ウェブページをユーザが閲覧した時間の長さである閲覧時間とが、互いに対応付けられたレコードが少なくとも含まれる
ものであり、
前記分類器は、RNN(Recurrent Neural Network:回帰型ニューラルネットワーク)により、前記ウェブページにアクセスするセッションの最後のレコードに対して所定のエンドラベルが付与されたデータを用いて学習されたものであり、1以上のアクセスログの入力に対してそれぞれ前記エンドラベルが付与されたレコードのスコアを出力するまで再帰処理を繰り返す、
プログラム。
【請求項8】
コンピュータに、
ネットワークを介したウェブページへのアクセスログを取得させ、
アクセスログにおける商取引での不正決済の有無を教師データとして、入力されたアクセスログにおいて前記不正決済が行われたかを出力するように学習された分類器に、前記取得されたアクセスログを入力することで得られる出力結果に基づいて、取得された前記アクセスログに示されるウェブページを閲覧した閲覧者によって前記不正決済が行われたか否かを推定させ、
前記不正決済が行われたと推定した場合、前記閲覧者による購入に係る処理を実行する外部装置に対して、処理の中止を指示することを決定させ、
前記アクセスログには、前記閲覧者が閲覧したウェブページの識別情報と、前記ウェブページをユーザが閲覧した時間の長さである閲覧時間とが、互いに対応付けられたレコードが少なくとも含まれる
ものであり、
前記分類器は、RNN(Recurrent Neural Network:回帰型ニューラルネットワーク)により、前記ウェブページにアクセスするセッションの最後のレコードに対して所定のエンドラベルが付与されたデータを用いて学習されたものであり、1以上のアクセスログの入力に対してそれぞれ前記エンドラベルが付与されたレコードのスコアを出力するまで再帰処理を繰り返す、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【0002】
従来、ウェブページを閲覧した閲覧結果に基づいて、ユーザの行動を推定する技術が知られている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の技術では、ユーザの状況に応じた検索結果を出力することができても、その後、ユーザが、商品、またはサービスの購入、サービスへの入会、或いは、不正決済等の所定の行動を行うことを推定することができず、その結果、適切なアクションを行うことができなかった。
【0005】
本発明は、上記の課題に鑑みてなされたものであり、ユーザの行動をより正確に推定し、適切なアクションを行うことができる情報処理装置、情報処理方法、およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【0006】
本発明の一態様は、ネットワークを介したウェブページへのアクセスログを取得する取得部と、前記アクセスログにおける所定の行動の有無を教師データとして、入力されたアクセスログにおいて前記所定の行動が行われるかを出力するように学習された分類器の出力結果に基づいて、前記取得部により取得された前記アクセスログに示されるウェブページを閲覧した閲覧者に提供すべき情報を決定する決定部とを備える情報処理装置である。
【0007】
また、本発明の一態様は、ネットワークを介したウェブページへのアクセスログを取得する取得部と、前記アクセスログにおける所定の行動の有無を学習データとして、入力されたアクセスログにおいて前記所定の行動が行われたかを出力するように学習された分類器の出力結果に基づいて、前記取得部によって取得された前記アクセスログに示されるウェブページを閲覧した閲覧者によって前記所定の行動が行われたか否かを推定し、前記所定の行動が行われたと推定した場合、購入に係る処理を実行する外部装置に対して、処理の中止を指示することを決定する決定部とを備える情報処理装置である。
【発明の効果】
【0008】
本発明の一態様によれば、ユーザの行動をより正確に推定し、適切なアクションを行うことができる。
【図面の簡単な説明】
【0009】
【
図1】情報処理装置100を含む情報処理システム1の一例を示す図である。
【
図3】情報処理装置100の構成の一例を示す図である。
【
図4】第1実施形態における情報処理装置100による運用時の一連の処理の流れを示すフローチャートである。
【
図6】時間経過に応じたRNN240の処理内容を並列に展開した図である。
【
図7】第1実施形態における情報処理装置100による学習時の一連の処理の流れを示すフローチャートである。
【
図8】実施形態の情報処理装置100のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0010】
以下、本発明を適用した情報処理装置、情報処理方法、およびプログラムを、図面を参照して説明する。
【0011】
[概要]
情報処理装置は、一以上のプロセッサにより実現される。情報処理装置は、ウェブページへのアクセスログを取得する。情報処理装置は、予め学習された分類器に基づいて、取得したアクセスログに示されるウェブページを閲覧する者(以下、閲覧者)によって所定の行動が行われるかを出力する。分類器は、ネットワークを介して所定の行動が行われたアクセスログを学習データ、及び教師データとして、入力されたアクセスログの閲覧者によって所定の行動が行われるか否かを示す分類結果を出力するように学習される。このような分類器を利用することで、情報処理装置は、閲覧者が所定の行動を行うと推定される場合に、適切なアクションを、閲覧者、又は所定の装置に対して行うことができる。以下、商品またはサービスをまとめて単に「商品」と称して説明する。
【0012】
<第1実施形態>
[全体構成]
図1は、情報処理装置100を含む情報処理システム1の一例を示す図である。第1実施形態における情報処理システム1は、例えば、一以上の端末装置10と、サービス提供装置20と、決済処理装置30と、情報処理装置100とを備える。これらの装置は、ネットワークNWを介して接続される。また、これらの装置のうち一部は、他の装置に仮想的な装置として包含されてもよく、例えば、サービス提供装置20の機能の一部または全部、決済処理装置30の機能の一部または全部等が、情報処理装置100の機能によって実現される仮想マシンであってもよい。決済処理装置30は、「外部装置」の一例である。
【0013】
図1に示す各装置は、ネットワークNWを介して種々の情報を送受信する。ネットワークNWは、例えば、インターネット、WAN(Wide Area Network)、LAN(Local Area Network)、プロバイダ端末、無線通信網、無線基地局、専用回線等を含む。なお、
図1に示す各装置の全ての組み合わせが相互に通信可能である必要はなく、ネットワークNWは、一部にローカルなネットワークを含んでもよい。
【0014】
端末装置10は、例えば、スマートフォン等の携帯電話、タブレット端末、各種パーソナルコンピュータ等の、入力装置、表示装置、通信装置、記憶装置、および演算装置を備える端末装置である。通信装置は、NIC(Network Interface Card)等のネットワークカード、無線通信モジュール等を含む。端末装置10では、ウェブブラウザやアプリケーションプログラム等のUA(User Agent)が起動し、ユーザの入力する内容に応じたリクエストをサービス提供装置20に送信する。また、UAが起動された端末装置10は、サービス提供装置20から取得した情報に基づいて、表示装置に各種画像を表示させる。端末装置10のユーザは、「ウェブページを閲覧した閲覧者」の一例である。
【0015】
サービス提供装置20は、例えば、UAとして起動されたウェブブラウザからのリクエストに応じてウェブページを端末装置10に提供するウェブサーバである。ウェブページは、例えば、インターネット上において商品を販売するショッピングサイトやオークションサイト、フリーマーケットサイト等のウェブページを構成するウェブページであってよい。また、サービス提供装置20は、検索サイトやSNS(Social Networking Service)、メールサービス等の各種サービスを提供するウェブページを端末装置10に提供してもよい。また、サービス提供装置20は、UAとして起動されたアプリケーションからのリクエストに応じてコンテンツを端末装置10に提供することで、販売サイト等の各種ウェブページと同様のサービスを提供するアプリケーションサーバであってもよい。
【0016】
決済処理装置30は、例えば、サービス提供装置20において販売された商品の決済処理を行う。決済処理装置30は、端末装置10を利用するユーザにより指定された決済手段に基づく決済処理を行う。決済処理は、クレジットカードのシステムやインターネットバンキングを利用して行われてもよいし、端末装置10が携帯電話である場合には、端末装置10の利用料に加算することで行われてもよい。また、決済処理は、コンビニエンスストア等の店舗における支払いにより行われてもよい。
【0017】
ユーザが端末装置10を用いてインターネット上において商品を購入する場合、ユーザは、例えば、サービス提供装置20が提供する検索サイトにアクセスする。ユーザは、商品を販売するショッピングサイトの名称や、購入したい商品の名称等をクエリとして検索し、検索結果として表示されたショッピングサイトの一覧のうち、いずれかのショッピングサイトにアクセス(閲覧)する。ユーザは、ショッピングサイトにおいて購入したい商品を販売している販売サイトにアクセスする。そして、ユーザは、販売サイトのうち、販売される商品(以下、商品ページ)にアクセスし、購入したい商品の商品ページから商品を購入する処理を行う。
【0018】
サービス提供装置20は、このようなアクセスの履歴(以下、アクセスログ)をセッション毎に取得する。セッションは、例えば、あるユーザが、サービス提供装置20が提供するいずれかのウェブページにアクセスを開始してから、サービス提供装置20が提供するいずれかのウェブページから離れる、ウェブブラウザを閉じる、又はウェブページへのアクセスを開始してから所定の時間(例えば、30分以上)が経過するまでの期間である。したがって、アクセスログには、1セッションの間にユーザがウェブページ上で行った行動に応じて、ユーザが閲覧したウェブページに係る情報が、1以上含まれる。
【0019】
図2は、アクセスログの一例を示す図である。アクセスログには、例えば、1セッションの間に、ユーザがアクセスしたウェブページを識別可能な識別情報(以下、ウェブID)と、ユーザが当該ウェブページを閲覧した時間(以下、閲覧時間)とが互いに対応付けられたレコードが、時系列順に含まれる情報である。ウェブIDは、例えば、URL(Uniform Resource Locator)であってもよく、予めウェブページに付されるIDであってもよく、サブドメインであってもよい。
【0020】
図3のアクセスログには、まず、検索サイトにアクセスし、次にショッピングサイトにアクセスし、次に販売サイトにアクセスし、次に商品ページにアクセスしたことが示される。また、アクセスログには、検索サイトのウェブIDと閲覧時間のレコードと、ショッピングサイトのウェブIDと閲覧時間のレコードと、販売サイトのウェブIDと閲覧時間のレコードと、商品ページのウェブIDと閲覧時間のレコードとが含まれる。なお、アクセスログの内容は、一例であってこれに限られない。
【0021】
ここで、アクセスログには、ユーザが所定の行動に至るまでの、ユーザの振る舞いの特徴が表れている場合がある。例えば、類似する複数の商品の商品ページを、それぞれ長い時間閲覧していることがアクセスログに示されている場合、ユーザは、商品を購入する可能性が高いことが推定される。また、類似する複数のサービスのウェブページを、それぞれ長い時間閲覧していることがアクセスログに示されている場合、ユーザは、サービスに入会する可能性が高いことが推定される。また、各ウェブページの閲覧時間が極端に短く、商品ページまで最少の数のウェブページを介して到達し、商品を購入したことがアクセスログに示される場合、ユーザは、不正な手段による決済(以下、不正な決済)によって商品を購入した可能性が高いことが推定される。
【0022】
情報処理装置100は、アクセスログを取得し、取得したアクセスログを機械学習することで、ユーザが所定の行動(例えば、商品の購入、サービスの入会、或いは不正決済)を行うか否かを推定する。
【0023】
[情報処理装置の構成]
図3は、情報処理装置100の構成の一例を示す図である。図示のように、情報処理装置100は、例えば、通信部102と、制御部110と、記憶部130とを備える。
【0024】
通信部102は、例えば、NIC等の通信インターフェースを含む。通信部102は、ネットワークNWを介して、端末装置10、サービス提供装置20、或いは決済処理装置30等と通信する。
【0025】
制御部110は、例えば、取得部112と、形態素解析部114と、行動推定部116と、決定部118と、学習処理部120とを備える。
【0026】
制御部110の構成要素は、例えば、CPU(Central Processing Unit)などのプロセッサが記憶部130に格納されたプログラムを実行することにより実現される。また、制御部110の構成要素の一部または全部は、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、またはGPU(Graphics Processing Unit)などのハードウェア(回路部;circuitry)により実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。
【0027】
記憶部130は、例えば、HDD(Hard Disc Drive)、フラッシュメモリ、EEPROM(Electrically Erasable Programmable Read Only Memory)、ROM(Read Only Memory)、RAM(Random Access Memory)などの記憶装置により実現される。記憶部130には、ファームウェアやアプリケーションプログラムなどの各種プログラムの他に、分類器情報132、及び教師データ134が格納される。これらの詳細については後述する。
【0028】
[運用時の処理フロー]
以下、第1実施形態における情報処理装置100による運用時の一連の処理の流れをフローチャートに即して説明する。運用時とは、既に学習された分類器200を利用する状態である。
図4は、第1実施形態における情報処理装置100による運用時の一連の処理の流れを示すフローチャートである。本フローチャートの処理は、例えば、所定の周期で繰り返し行われてもよい。
【0029】
まず、取得部112は、通信部102にサービス提供装置20と通信させ、サービス提供装置20からユーザのアクセスログを取得する(S100)。
【0030】
次に、形態素解析部114は、取得部112によって取得されたアクセスログに含まれる文書(ウェブIDや、閲覧時間)に対して形態素解析を行う(S102)。例えば、形態素解析部114は、ワンホット表現と呼ばれる手法を用いて、単語や語句をベクトル化してもよいし、word2vecやGloVeのような分散表現または単語埋め込み表現(Word Embedding(s))と呼ばれる手法を用いて、単語や語句をベクトル化する。
【0031】
ワンホット表現とは、予め用意された単語または語句のリスト(辞書)と、アクセスログに含まれる単語または語句とを比較して、単語または語句のうち、リストに出現した単語または語句の要素値が1、他の単語または語句の要素値が0となるような多次元のベクトルを生成する手法である。形態素解析部114は、例えば、ワンホット表現によって閲覧時間を示す11次元のベクトルを生成する。
【0032】
また、分散表現は、形態素解析で得られた単語または語句と、その単語または語句の前後で出現する単語または語句との共起性に基づいて、単語や語句をベクトル化する手法であり、例えば、予め用意された複数の単語や語句を含むコーパスに基づいて、形態素解析で得られた単語または語句の前後に出現する単語または語句の出現確率を求め、その出現確率を要素値とする多次元のベクトルを生成する手法である。
【0033】
例えば、形態素解析部114は、Countinuous Bag-of-WordsおよびSkip-gramの双方の学習モデルを適用したニューラルネットワークに形態素解析で得られた単語または語句を入力することで、その単語や語句が分散表現されたベクトルを生成してよい。
【0034】
形態素解析部114は、ベクトル化した単語または語句(以下、単語ベクトルと称する)を行ベクトルとした2階テンソルの行列(以下、単語行列と称する)を生成する。例えば、形態素解析部114は、形態素解析によってタイトルを10個の単語に分割した場合、10個の単語ベクトルのそれぞれを行ベクトルとした単語行列(10行×n列の行列:nは単語ベクトルの次元数)を生成する。形態素解析部114は、例えば、分散表現によってウェブIDを示す100次元のベクトルを生成する。
【0035】
次に、行動推定部116は、分類器情報132を参照して、分類器200を構築(生成)し、形態素解析部114によって生成された単語行列を、構築した分類器200に入力する(S104)。以下、分類器200が、ユーザが行う所定の行動のうち、「商品を購入するか」について出力するものである場合について説明する。
【0036】
なお、分類器200が、ユーザが行う所定の行動のうち、「サービスに入会するか」について出力するものである場合、以下の説明のうち、「商品を購入(する/しない)」を「サービスに入会(する/しない)」に読み替えればよく、分類器200が、ユーザが行う所定の行動のうち、「不正な決済が行われたか」について出力するものである場合、以下の説明のうち、「商品を購入(する/しない)」を「不正な決済が(行われた/行われていない)」に読み替えればよい。
【0037】
分類器情報132は、分類器を定義した情報(プログラムまたはデータ構造)である。分類器200は、例えば、コンボリューショナルニューラルネットワーク(Convolutional Neural Network:CNN)や、リカレントネットワーク(Reccurent Neural Network:RNN)等の種々のニューラルネットワークによって実現される。
【0038】
分類器情報132には、例えば、各ニューラルネットワークを構成する入力層、一以上の隠れ層(中間層)、出力層のそれぞれに含まれるニューロン(ユニット)が互いにどのように結合されるのかという結合情報や、結合されたニューロン間で入出力されるデータに付与される結合係数等の各種情報が含まれる。結合情報とは、例えば、各層に含まれるニューロン数や、各ニューロンの結合先のニューロンの種類を指定する情報、各ニューロンを実現する活性化関数、隠れ層のニューロン間に設けられたゲート等の情報を含む。ニューロンを実現する活性化関数は、例えば、正規化線形関数(ReLU関数)であってもよいし、シグモイド関数や、ステップ関数、その他の関数等であってもよい。ゲートは、例えば、活性化関数によって返される値(例えば1または0)に応じて、ニューロン間で伝達されるデータを選択的に通過させたり、重み付けたりする。結合係数は、活性化関数のパラメータであり、例えば、ニューラルネットワークの隠れ層において、ある層のニューロンから、より深い層のニューロンにデータが出力される際に、出力データに対して付与される重みを含む。また、結合係数は、各層の固有のバイアス成分等を含んでもよい。
【0039】
図5は、分類器200の一例を示す図である。第1実施形態における分類器200は、例えば、第1CNN210と、第2CNN220と、FCNN(Fully-Connected Neural Network)230と、RNN240と、LU250によって実現される。
【0040】
第1CNN210および第2CNN220は、単語行列が入力されると、次元数が所定数のベクトルを出力するように学習されたコンボリューショナルニューラルネットワークである。
【0041】
例えば、単語行列を、各要素値が画素値に置き換わった画像とした場合、第1CNN210および第2CNN220は、入力された単語行列に相当する画像と所定のフィルタとを畳み込み(内積を求め)、所定のフィルタと重なる複数の画素を含む画像領域を、一つの単位領域に圧縮する。この単位領域には、畳み込みにより得られた単変量値が特徴量として対応付けられている。第1CNN210および第2CNN220は、画像上で所定のフィルタをシフト移動させながら畳み込み処理を繰り返し、複数の単位領域により形成されたコンボリューショナルレイヤと呼ばれる畳み込みの特徴量を画素値とした特徴画像を生成する。第1CNN210および第2CNN220は、各特徴画像のサイズ(次元数)をプーリング(例えばGlobal Average Pooling)等によって圧縮し、この結果を出力する。圧縮した特徴画像のそれぞれには、単変量の特徴量が対応付けられているため、畳み込み処理の回数分だけ、畳み込みの特徴量を要素としてもつ多次元ベクトル(1階テンソル)が出力される。
【0042】
例えば、行動推定部116は、閲覧時間から得られた単語行列を第1CNN210に入力し、ウェブIDから得られた単語行列を第2CNN220に入力する。これによって、各CNNは、入力されたデータを所定の次元数のベクトルに変換してFCNN230に出力する。
【0043】
FCNN230は、各層のユニットのそれぞれが、より階層の深い次の層のユニットのそれぞれと接続されたニューラルネットワークである。なお、FCNN230は、中間層がない入力層のユニットのそれぞれと出力層のユニットのそれぞれとが互いに接続された2つの層であってもよい。例えば、FCNN230は、第1CNN210から出力されたベクトルの次元数が11、第2CNN220から出力されたベクトルの次元数が100である場合、それらの全てのベクトルの次元数の総和である111次元の一つのベクトルを出力する。
【0044】
RNN240は、例えば、ネットワークの中間層がLSTM(Long short-term memory)であるRNNであり、1階テンソルであるベクトルが入力されると、そのベクトルの元になったウェブID、及び閲覧時間によって示されるユーザが商品を購入することの確からしさ(尤もらしさ)を表すスコアをレコード毎に出力するように学習されたニューラルネットワークである。例えば、LSTMは、重みと状態変数との内積を計算する。数式(1)は、LSTMのゲートおよびニューロンの計算式を表している。状態変数とは、各ゲートによって求められるベクトルである。
【0045】
【0046】
tは、RNN240によって繰り返し行われる再帰処理の処理周期(処理時刻)を表しており、xtは、処理周期tにおいてFCNN230から入力されるベクトル(以下、入力ベクトル)を表し、htは、処理周期tにおいてRNN240により出力されるベクトル(以下、出力ベクトル)を表している。再帰処理とは、過去の処理周期で求めた出力ベクトルを、今回の処理周期での出力ベクトルの導出に利用することである。
【0047】
itは、LSTMに含まれるインプットゲートによって出力されるベクトル(以下、インプットゲートベクトル)を表しており、σは、ゲートの活性化関数がシグモイド関数であることを表しており、Wiは、入力ベクトルxtを線形変換するための重みを表しており、Riは、前回の処理周期t-1の出力ベクトルht-1を線形変換するための重みを表しており、Qiは、メモリーセルに記憶された前回の処理周期t-1の内部演算ベクトルct-1を線形変換するための重みを表しており、biは、インプットゲートのバイアス成分を表している。メモリーセルとは、一時的に内部演算ベクトルcを記憶させておくための記憶領域(LSTMブロック)である。
【0048】
例えば、RNN240は、重みWiと入力ベクトルxtとの内積値と、重みRiと前回の出力ベクトルht-1との内積値と、重みQiと前回の内部演算ベクトルct-1とのアダマール積(要素毎の積)と、バイアス成分biとの和を変数としたシグモイド関数σを解くことで、処理周期tのインプットゲートベクトルitを導出する。
【0049】
ftは、LSTMに含まれるフォーゲットゲートによって出力されるベクトル(以下、フォーゲットゲートベクトル)を表しており、Wfは、重みWiと同様に、入力ベクトルxtを線形変換するための重みを表しており、Rfは、重みRiと同様に、前回の処理周期t-1の出力ベクトルht-1を線形変換するための重みを表しており、Qfは、重みQiと同様に、メモリーセルに記憶された前回の処理周期t-1の内部演算ベクトルct-1を線形変換するための重みを表しており、bfは、フォーゲットゲートのバイアス成分を表している。
【0050】
例えば、RNN240は、重みWfと入力ベクトルxtとの内積値と、重みRfと前回の出力ベクトルht-1との内積値と、重みQfと前回の内部演算ベクトルct-1とのアダマール積と、バイアス成分bfとの和を変数としたシグモイド関数σを解くことで、処理周期tのフォーゲットゲートベクトルftを導出する。
【0051】
ctは、LSTMに含まれるメモリーセルに記憶させる内部演算ベクトルを表している。
【0052】
例えば、RNN240は、処理周期tのフォーゲットゲートベクトルftおよび後述するベクトルztのアダマール積と、処理周期t-1の内部演算ベクトルct‐1および処理周期tのフォーゲットゲートベクトルftのアダマール積との和を、処理周期tの内部演算ベクトルctとして導出する。
【0053】
ztは、重みWzと入力ベクトルxtとの内積値と、重みRzと前回の出力ベクトルht-1との内積値と、バイアス成分bzとの和を変数としたハイパポリックタンジェント関数tanhを解くことで導出される。Wzは、重みWiやWfと同様に、入力ベクトルxtを線形変換するための重みを表しており、Rfは、重みRiやRfと同様に、前回の処理周期t-1の出力ベクトルht-1を線形変換するための重みを表しており、bzは、メモリーセルのバイアス成分を表している。
【0054】
otは、LSTMに含まれるアウトプットゲートによって出力されるベクトル(以下、アウトプットゲートベクトル)を表しており、Woは、重みWi等と同様に、入力ベクトルxtを線形変換するための重みを表しており、Roは、重みRi等と同様に、前回の処理周期t-1の出力ベクトルht-1を線形変換するための重みを表しており、Qoは、メモリーセルに記憶された今回の処理周期tの内部演算ベクトルctを線形変換するための重みを表しており、boは、アウトプットゲートのバイアス成分を表している。
【0055】
例えば、RNN240は、重みWoと入力ベクトルxtとの内積値と、重みRoと前回の出力ベクトルht-1との内積値と、重みQoと今回の内部演算ベクトルctとのアダマール積と、バイアス成分boとの和を変数としたシグモイド関数σを解くことで、処理周期tのアウトプットゲートベクトルotを導出する。
【0056】
RNN240は、アウトプットゲートベクトルotを導出すると、アウトプットゲートベクトルotと、内部演算ベクトルctを変数としたハイパポリックタンジェント関数tanhの解とのアダマール積を、処理周期tの出力ベクトルhtとして導出する。
【0057】
出力ベクトルhtの各要素値は、レコード毎の行動(この一例では、ユーザが商品を購入すること)の確からしさのスコアを表している。例えば、ht={e1,e2}であった場合、要素e1は、ユーザが商品を購入することの確からしさを示すスコア(確率)を表し、要素e2は、ユーザが商品を購入しないことの確からしさを示すスコアを表している。RNN240は、上述した数式に基づく計算を繰り返すことで、出力ベクトルを繰り返し導出する。
【0058】
図6は、時間経過に応じたRNN240の処理内容を並列に展開した図である。例えば、FCNN230から入力ベクトルx
t1が入力された初回の処理周期t1では、RNN240は、出力ベクトルh
t1を出力する。初回処理時t1の出力ベクトルh
t1は、アクセスログのうち最初のレコードに係る、ユーザが商品を購入することの確からしさを示すスコアを要素として含んでおり、各要素は、例えば、各要素におけるユーザが商品を購入することの確からしさを示すスコアである。
【0059】
次の処理周期t2では、RNN240は、初回の処理周期t1に入力された入力ベクトルxt1と、前回の処理周期t1の出力ベクトルht1とに基づいて、出力ベクトルht2を出力する。処理周期t2の出力ベクトルht2は、2番目のレコードに係るユーザが商品を購入することの確からしさを示すスコアを要素として含んでいる。
【0060】
次の処理周期t3では、RNN240は、初回の処理周期t1に入力された入力ベクトルxt1と、前回の処理周期t2の出力ベクトルht2とに基づいて、出力ベクトルht3を出力する。処理周期t3の出力ベクトルht3は、3番目のレコードに係るユーザが商品を購入することの確からしさを示すスコアを要素として含んでいる。
【0061】
このように、RNN240は、再帰処理を繰り返すことで、より多くのレコードのスコアを要素とする出力ベクトルを導出する。なお、RNN240は、セッションの最後のレコードのスコアを要素とする出力ベクトルを導出するまで、再帰的に出力ベクトルを導出することを繰り返すものとする。例えば、RNN240の学習時に、セッションの最後のレコードに対して所定の付加的情報(以下、エンドラベルと称する)が付与された商品データが利用された場合、RNN240は、エンドラベルが付与されたレコードのスコアを要素とする出力ベクトルを導出するまで再帰処理を繰り返す。これによって、例えば、ある2つのアクセスログが、いずれもユーザが商品を購入するアクセスログであって、それらのアクセスログには、互いに数が異なるレコードが含まれる場合であっても、最後のレコードまで、アクセスログに含まれるレコードの数と同じ回数だけ再帰処理を繰り返すため、RNN240の再帰処理の回数(
図6中のk)というハイパーパラメータを調整せずとも、各レコードの種類に応じて再帰処理の回数を動的に変更しながらスコアを求めることができる。
【0062】
LU250は、RNN240から出力されたベクトルに対して、線形変換行列を乗算することで、2次元のベクトルに変換(次元を圧縮)し、それを出力層に出力する。
【0063】
図5に戻り、次に、行動推定部116は、分類器200から分類結果を取得し、その分類結果に基づいてユーザが所定の行動を行うか否かを推定する(S106)。カテゴリの分類結果には、RNN240が再帰処理毎に出力した出力ベクトルが含まれており、その出力ベクトルには、行動の確からしさのスコアの結果が要素として含まれている。行動推定部116は、例えば、ユーザが商品を購入することの確からしさを示すスコアと、ユーザが商品を購入しないことの確からしさを示すスコアとのうち、スコアが大きいほうの行動をユーザが行う、或いは行わないと推定する。
【0064】
決定部118は、行動推定部116の推定結果に基づいて、ユーザに提供する情報を提供すると決定する(S108)。決定部118は、例えば、行動推定部116の推定結果が、ユーザが商品を購入しないと推定した場合、ユーザの商品の購入を促すように、商品の割引や値引き等の商品の購入に係るクーポン(特典)情報をユーザに提供すると決定する。この場合、決定部118は、推定の元になったアクセスログに係るユーザ(の端末装置10)にクーポン情報を送信するようにサービス提供装置20に指示する。これにより、情報処理装置100は、ユーザが商品を購入しないことが推定される場合であっても、ユーザに商品の購入を促すことができる。
【0065】
なお、決定部118は、例えば、行動推定部116の推定結果に基づいて、ユーザが商品を購入すると推定した場合、ユーザが購入する商品の割引や値引き等に係るクーポンを示す情報をユーザに出力するものであってもよい。これにより、情報処理装置100は、商品を購入してくれるユーザに対して特典を付与することにより、今後もサービス提供装置20が提供するサービスを介して商品を購入するように促すことができる。
【0066】
[不正な決済が行われた場合の決定部118の処理]
また、分類器200が、ユーザが行う所定の行動のうち、「サービスに入会するか」について出力するものであり、行動推定部116が、分類器200から分類結果を取得し、その分類結果に基づいてユーザがサービスに入会すると推定する場合、決定部118は、サービスへの入会を促す案内情報をユーザに対して出力する。具体的には、決定部118は、推定の元になったアクセスログに係るユーザ(の端末装置10)に案内情報を提供すると決定し、案内情報を送信するようにサービス提供装置20に指示する。これにより、情報処理装置100は、ユーザがサービスに入会することが推定される場合に、ユーザに適切にサービスの案内をすることができる。
【0067】
[サービスに入会する場合の決定部118の処理]
また、分類器200が、ユーザが行う所定の行動のうち、「不正な決済が行われたか」について出力するものであり、行動推定部116が、分類器200から分類結果を取得し、その分類結果に基づいてユーザによって不正な決済が行われたと推定する場合、決定部118は、不正な決済によってユーザに購入された商品に係る決済処理を中止すると決定する。この場合、決定部118は、決済処理装置30に対して当該決済処理の中止を指示する情報を送信する。決済処理装置30は、決定部118から受信した情報に基づいて、不正な決済によってユーザに購入された商品に係る決済処理を中止する。これにより、情報処理装置100は、不正な決済によってユーザが商品を購入したことが推定される場合に、当該購入に係る決済処理を中止することができる。
【0068】
[アクセスログの取得タイミング]
また、上述では、取得部112が、セッション毎のアクセスログを取得する場合について説明したが、これに限られない。取得部112は、例えば、現在、サービス提供装置20が提供するウェブページを閲覧しているアクセスログを、セッションが完結するよりも前に、リアルタイムに取得するものであってもよい。これにより、情報処理装置100は、商品の購入を検討しながらウェブページを閲覧するユーザに対して、即座にクーポンを提供することができ、サービスへの入会を検討しながらウェブページを閲覧するユーザに対して、即座に案内情報を提供することができ、不正な決済で商品を購入しようとしているユーザの決済を抑制したりすることができる。
【0069】
[行動推定部116の処理の他の例]
また、上述した説明では、行動推定部116が、分類器200の分類結果を参照し、ユーザが商品を購入することの確からしさを示すスコアと、ユーザが商品を購入しないことの確からしさを示すスコアとのうち、スコアが大きいほうの行動をユーザが行う、或いは行わないと推定したがこれに限られない。例えば、行動推定部116は、分類器200の分類結果として示されるスコアの全部が、或いは所定数以上のスコアが閾値未満である場合、RNN240に、一つ前の再帰処理を再び行わせ、レコードのスコアが閾値未満のレコードの出力ベクトルをあらためて導出させてよい。例えば、RNN240が、処理周期t1において導出した出力ベクトルht1の複数の要素eのうち、最も値が大きい要素だけを残した出力ベクトルht1を基に処理周期t2において出力ベクトルht2を導出したとする。このような場合に、処理周期t2における出力ベクトルht2の要素eがいずれも閾値未満であった場合、すなわち、2番目のレコードのスコアがいずれも閾値未満であった場合、行動推定部116は、RNN240に、処理周期t1の再帰処理を再び行わせる。この際、行動推定部116は、処理周期t1において導出した出力ベクトルht1の複数の要素eのうち、最も値が大きい要素を残すのではなく、例えば、2番目に値が大きい要素、或いは3番目や4番目に値が大きい要素を残した出力ベクトルht1を基にして、RNN240に出力ベクトルht2を導出させる。
【0070】
このように、最初のレコードよりも後に閲覧されたウェブページに係るレコードの分類結果が曖昧である場合、最初のレコードの分類が間違っている蓋然性が高いと判断して、最初のレコードのスコアのうち、二番目以降に確からしいレコードのスコアを基に、以降のレコードのスコアを再計算させる。これによって、最初のレコードの分類を間違ったことにより、それ以降の全てのレコードの分類を間違ってしまうという再帰処理特有の事象が発生するのを抑制することができる。
【0071】
[学習時の処理フロー]
以下、第1実施形態における情報処理装置100の学習時の一連の流れをフローチャートに即して説明する。
図7は、第1実施形態における情報処理装置100による学習時の一連の処理の流れを示すフローチャートである。
【0072】
まず、学習処理部120は、記憶部130に格納された教師データ134から、あるアクセスログを選択する(S200)。教師データ134は、予め、「ユーザが商品を購入したこと」、「ユーザが商品を購入しなかったこと」、「ユーザがサービスに入会したこと」、「ユーザがサービスに入会しなかったこと」、「ユーザによって不正決済が行われたこと」、「ユーザによって不正決済が行われなかったこと」等の各種タグが教師ラベルとして対応付けられたアクセスログである。
【0073】
次に、学習処理部120は、教師データ134からアクセスログを選択すると、そのアクセスログを分類器200に入力する(S202)。
【0074】
次に、学習処理部120は、アクセスログを入力した分類器200から出力結果、すなわち最尤タグベクトルを取得する(S204)。
【0075】
次に、学習処理部120は、最尤タグベクトルによって示されるタグと、分類器200に入力したアクセスログに教師ラベルとした対応付けられたタグとを比較し、双方のタグの組み合わせが一致するか否かを判定する(S206)。
【0076】
学習処理部120は、タグの組み合わせが一致しないと判定した場合、誤差逆伝番等の勾配法に基づいて、分類器200のパラメータを学習する(S208)。例えば、学習処理部120は、教師ラベルとした対応付けられたタグの組み合わせの尤度を最大値とし、その最大値から、最尤タグベクトルによって示されるタグの組み合わせの尤度を減算した差分が小さくなるように、分類器200のパラメータを学習する。これによって、本フローチャートの処理が終了する。
【0077】
以上説明した第1実施形態の情報処理装置100によれば、アクセスログからユーザの所定の行動を推定し、推定した行動に応じた情報を出力することにより、ユーザに期待する行動(商品の購入やサービスの入会)を促したり、不正な決済による商品の購入を抑制したりすることができる。
【0078】
また、上述した第1実施形態によれば、教師ラベルとして正解となるカテゴリと共に、含まれるレコードの数が異なるアクセスログを学習データとして分類器200を学習させるため、全てのレコードについて再帰処理を繰り返すため、RNN240の再帰処理の回数というハイパーパラメータを調整せずとも、各アクセスログのレコードの数に応じて再帰処理の回数を動的に変更しながらスコアを求めることができ、更に、事前にアクセスログのレコードの数がわからなくとも、各レコードを分類することができる。
【0079】
<第2実施形態>
以下、第2実施形態について説明する。上述した第1実施形態では、RNN240が、ネットワークの中間層がLSTMであるものについて説明した。これに対して、第2実施形態では、RNN240が、コンボリューショナルニューラルネットワークと、ネットワークの中間層がLSTMのRNNとを組み合わせたニューラルネットワーク(以下、CONVLSTMと称する)である点で上述した第1から第3実施形態と相違する。以下、第1から第3実施形態との相違点を中心に説明し、第1から第3実施形態と共通する点については説明を省略する。なお、第2実施形態の説明において、第1から第3実施形態と同じ部分については同一符号を付して説明する。
【0080】
第2実施形態では、例えば、第1CNN210、及び第2CNN220のそれぞれについてプーリング処理が省略されたり、FCNN230が省略されたりすることで、分類器200の上段に設けられた各種ニューラルネットワーク等から、RNN240に3階テンソルが入力される。
【0081】
第2実施形態におけるRNN240は、例えば、コンボリューショナルニューラルネットワークと、ネットワークの中間層がLSTMであるRNNとの組み合わせたニューラルネットワーク(以下、CONVLSTMと称する)であり、3階テンソルが入力されると、そのテンソルの元になったタイトルや概要、画像に対応する商品の分類先とするカテゴリの確からしさ(尤もらしさ)を表すスコアをレコード毎に出力するように学習されたニューラルネットワークである。CONVLSTMは、上述したLSTMの各ゲートの計算式において、重みと状態変数との内積計算が畳み込み計算に変更されたものである。数式(2)は、CONVLSTMのゲートおよびニューロンの計算式を表している。
【0082】
【0083】
第2実施形態におけるxtは、処理周期tにおいて入力される3階テンソル(以下、入力テンソル)を表し、htは、処理周期tにおいてRNN240により出力される3階テンソル(以下、出力テンソル)を表している。
【0084】
例えば、第2実施形態におけるRNN240は、重みWiと入力テンソルxtとの畳み込み値と、重みRiと前回の出力テンソルht-1との畳み込み値と、重みQiと前回の内部演算テンソル(3階テンソル)ct-1とのアダマール積(要素毎の積)と、バイアス成分biとの和を変数としたシグモイド関数σを解くことで、処理周期tのインプットゲートテンソル(3階テンソル)itを導出する。
【0085】
また、RNN240は、重みWfと入力テンソルxtとの畳み込み値と、重みRfと前回の出力ベクトルht-1との畳み込み値と、重みQfと前回の内部演算テンソルct-1とのアダマール積と、バイアス成分bfとの和を変数としたシグモイド関数σを解くことで、処理周期tのフォーゲットゲートテンソルftを導出する。
【0086】
また、RNN240は、処理周期tのフォーゲットゲートテンソルftおよびテンソルztのアダマール積と、処理周期t-1の内部演算テンソルct‐1および処理周期tのフォーゲットゲートテンソルftのアダマール積との和を、処理周期tの内部演算テンソルctとして導出する。
【0087】
ztは、重みWzと入力テンソルxtとの畳み込み値と、重みRzと前回の出力テンソルht-1との畳み込み値と、バイアス成分bzとの和を変数としたハイパポリックタンジェント関数tanhを解くことで導出される。
【0088】
また、RNN240は、重みWoと入力テンソルxtとの畳み込み値と、重みRoと前回の出力テンソルht-1との畳み込み値と、重みQoと今回の内部演算テンソルctとのアダマール積と、バイアス成分boとの和を変数としたシグモイド関数σを解くことで、処理周期tのアウトプットゲートテンソル(3階テンソル)otを導出する。
【0089】
RNN240は、アウトプットゲートテンソルotを導出すると、アウトプットゲートテンソルotと、内部演算テンソルctを変数としたハイパポリックタンジェント関数tanhの解とのアダマール積を、処理周期tの出力テンソルhtとして導出する。
【0090】
出力テンソルhtの各要素値は、上述した実施形態の出力ベクトルと同様に、各レコードのスコアを表している。RNN240は、上述した数式に基づく計算を繰り返すことで、出力テンソルを繰り返し導出する。
【0091】
以上説明した第2実施形態によれば、分類器200のRNN240を、中間層がCONVLSTMであるRNNとするため、上述した第1実施形態と比べて、更に適切なユーザの所定の行動に分類することができ、その結果、決定部118は、より適切な情報を提供すると決定することができる。
【0092】
<ハードウェア構成>
上述した実施形態の情報処理装置100は、例えば、
図8に示すようなハードウェア構成により実現される。
図8は、実施形態の情報処理装置100のハードウェア構成の一例を示す図である。
【0093】
情報処理装置100は、NIC100-1、CPU100-2、RAM100-3、ROM100-4、フラッシュメモリやHDD等の二次記憶装置100-5、およびドライブ装置100-6が、内部バスあるいは専用通信線によって相互に接続された構成となっている。ドライブ装置100-6には、光ディスク等の可搬型記憶媒体が装着される。二次記憶装置100-5、またはドライブ装置100-6に装着された可搬型記憶媒体に格納されたプログラムがDMAコントローラ(不図示)等によってRAM100-3に展開され、CPU100-2によって実行されることで、制御部110が実現される。制御部110が参照するプログラムは、ネットワークNWを介して他の装置からダウンロードされてもよい。
【0094】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何ら限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【0095】
1…情報処理システム、10…端末装置、20…サービス提供装置、30…決済処理装置、100…情報処理装置、100-5…二次記憶装置、100-6…ドライブ装置、102…通信部、110…制御部、112…取得部、114…形態素解析部、116…行動推定部、118…決定部、120…学習処理部、130…記憶部、132…分類器情報、134…教師データ、200…分類器