(58)【調査した分野】(Int.Cl.,DB名)
ネットワークを介して販売される商品またはサービスに対して所定の行動に至ったユーザの行動履歴を、前記ユーザの一連の行動に基づく処理基準期間ごとに一つに纏めた一以上の第1データを生成する第1生成部と、
前記第1生成部により生成された前記一以上の第1データの其々に含まれる前記商品またはサービスを、カテゴリごとに一つに纏めた一以上の第2データを生成する第2生成部と、
前記第2生成部により生成された前記一以上の第2データの其々に含まれる前記商品またはサービスのうち、同じ前記処理基準期間内にユーザが所定の行動に至った複数の前記商品またはサービス同士を一つに纏めた一以上の第3データを生成する第3生成部と、
ユーザが所定の行動に至った商品またはサービスの識別情報を取得する取得部と、
前記取得部により取得された前記識別情報が示す商品またはサービスと共に前記第3データとして一つに纏められた商品またはサービスを、前記所定の行動を起こしたユーザに推薦する推薦処理部と、
を備える情報処理装置。
前記推薦処理部は、前記識別情報が示す商品またはサービスと共に前記第3データとして一つに纏められた複数の商品またはサービスのうち、同じ前記処理基準期間内における前記所定の行動の回数が多い商品またはサービスほど優先して、前記所定の行動を起こしたユーザに推薦する、
請求項1から3のうちいずれか1項に記載の情報処理装置。
前記推薦処理部は、更に、前記取得部により取得された前記識別情報が示す商品またはサービスと共に前記第3データとして一つに纏められた商品またはサービスに類似する商品またはサービスを、前記所定の行動を起こしたユーザに推薦する、
請求項1から4のうちいずれか1項に記載の情報処理装置。
【発明を実施するための形態】
【0009】
以下、本発明を適用した情報処理装置、情報処理方法、およびプログラムを、図面を参照して説明する。
【0010】
[概要]
情報処理装置は、一以上のプロセッサにより実現される。情報処理装置は、ネットワークを介して販売される商品またはサービスに対して所定の行動に至った複数のユーザの行動履歴を、ユーザの一連の行動に基づく処理基準期間ごとに一つに纏めた複数の第1データを生成する。ネットワークを介して販売される商品またはサービスとは、例えば、ウェブサイトなどで販売される商品またはサービスである。情報処理装置は、生成した複数の第1データの其々に含まれる商品またはサービスを、カテゴリごとに一つに纏めた複数の第2データを生成し、それらの複数の第2データの其々に含まれる商品またはサービスのうち、同じ処理基準期間内にユーザが所定の行動に至った複数の商品またはサービス同士を一つに纏めた第3データを生成する。
【0011】
第3データでは、同じ所定期間内に不特定多数のユーザが所定の行動に至った複数の商品またはサービスが、カテゴリごとに纏められているため、例えば、消費者である、ある対象ユーザが商品またはサービスを閲覧したときに、第3データにおいて、対象ユーザが閲覧した商品またはサービスに対応付けられた他の商品またはサービスは、不特定多数のユーザが閲覧した商品またはサービスと同じカテゴリであるものとして扱われ、更に、同じ所定期間内に所定の行動に至った商品またはサービスとして扱われる。このような性質をもつ商品またはサービスは、対象ユーザにとっても所定の行動を起こしやすい商品またはサービスとなり得る。そのため、情報処理装置は、生成した第3データから、対象ユーザが閲覧等した商品またはサービスに対応付けられた他の商品またはサービスを抽出することで、対象ユーザが所定の行動を起こしやすい商品またはサービスを、対象ユーザにより精度よく推薦することができる。以下、商品またはサービスをまとめて単に「商品」と称して説明する。
【0012】
[全体構成]
図1は、実施形態における情報処理装置100を含む情報処理システム1の一例を示す図である。実施形態における情報処理システム1は、例えば、一以上の端末装置10と、サービス提供装置20と、情報処理装置100とを備える。これらの装置は、ネットワークNWを介して接続される。また、これらの装置のうち一部は、他の装置に仮想的な装置として包含されてもよく、例えば、サービス提供装置20の機能の一部または全部が、情報処理装置100の機能によって実現される仮想マシンであってもよいし、これとは反対に、情報処理装置100の機能の一部または全部が、サービス提供装置20の機能によって実現される仮想マシンであってもよい。
【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から取得した情報に基づいて、表示装置に各種画像を表示させる。
【0015】
サービス提供装置20は、例えば、UAとして起動されたウェブブラウザからのリクエストに応じてウェブページを端末装置10に提供するウェブサーバである。ウェブページは、例えば、インターネット上において商品を販売するショッピングサイトやオークションサイト、フリーマーケットサイト等のウェブサイト(以下、総称して「販売サイト」と称する)を構成するウェブページであってよい。また、サービス提供装置20は、検索サイトやSNS(Social Networking Service)、メールサービスなどの各種サービスを提供するウェブページを端末装置10に提供してもよい。また、サービス提供装置20は、UAとして起動されたアプリケーションからのリクエストに応じてコンテンツを端末装置10に提供することで、販売サイトなどの各種ウェブサイトと同様のサービスを提供するアプリケーションサーバであってもよい。
【0016】
図2は、サービス提供装置20により提供されるウェブページの一例を示す図である。図示の例では、ユーザが購入したい商品としてショッピングカードに投入した商品がリストアップされた販売サイトの一つのウェブページ(カート一覧ページと称する)を模式的に示している。このようなカート一覧ページには、図中R1の領域に示すように、ショッピングカードに投入された商品と共に合わせ買いを推奨する商品が掲載される。「合わせ買い」とは、例えば、ショッピングカートに投入した複数の商品の注文を同じタイミングで一度に確定(同時購入)することであってもよいし、ショッピングカートに投入した複数の商品の其々の注文を、タイミング問わずに、ある決められた期間内に完了することであってもよい。
【0017】
図3は、サービス提供装置20により提供されるウェブページの他の例を示す図である。図示の例では、商品の詳細な情報が掲載された販売サイトの一つのウェブページ(以下、商品詳細ページと称する)を模式的に示している。このような商品詳細ページには、商品の画像(図中R2)や、商品のタイトルを表す文章(図中R3)、商品の説明または概要を表す文章(図中R4)といったコンテンツが含まれ、更に、合わせ買いを推奨する商品が掲載される(図中R5)。
【0018】
情報処理装置100は、サービス提供装置20により提供された販売サイトにおいて、販売者が期待する所定の行動をユーザ(消費者)が起こした場合、そのユーザが所定の行動に至りやすい商品を決定する。所定の行動とは、コンバージョンの成立条件とする行動であり、例えば、販売サイトに一覧形式で掲載された商品がクリック操作やタッチ操作によって選択され、その商品の商品詳細ページに画面遷移すること(すなわち商品を閲覧すること)、商品をショッピングカートに投入して、カート一覧ページに商品がリストアップされること、ショッピングカートに投入した商品を購入すること、などの行動を含む。
【0019】
例えば、情報処理装置100は、販売サイトに含まれる商品詳細ページにユーザがアクセスして商品を閲覧した場合、ユーザが閲覧した商品と合わせて同時に閲覧されやすい商品を、ユーザが所定の行動に至りやすい商品として決定する。
【0020】
また、例えば、情報処理装置100は、販売サイトに含まれる商品詳細ページにユーザがアクセスして商品を閲覧した場合、ユーザが閲覧した商品がショッピングカートに投入されたと見做したとき(仮定したとき)に、その商品と合わせて同時にショッピングカートに投入されやすい商品を、ユーザが所定の行動に至りやすい商品として決定してもよいし、ユーザが閲覧した商品が購入されたと見做したときに、その商品と合わせて同時に購入されやすい商品を、ユーザが所定の行動に至りやすい商品として決定してもよい。
【0021】
また、例えば、情報処理装置100は、販売サイトに含まれる商品詳細ページにユーザがアクセスして商品を閲覧したのに代えて、或いは加えて、ユーザが商品詳細ページから商品をショッピングカートに投入した場合に、ユーザがショッピングカートに投入した商品と合わせて同時にショッピングカートに投入されやすい商品を、ユーザが所定の行動に至りやすい商品として決定してもよいし、ユーザがショッピングカートに投入した商品が購入されたと見做したときに、その商品と合わせて同時に購入されやすい商品を、ユーザが所定の行動に至りやすい商品として決定してもよい。
【0022】
また、例えば、情報処理装置100は、ユーザがショッピングカートに投入した商品を購入した場合、その商品と合わせて同時に購入されやすい商品を、ユーザが所定の行動に至りやすい商品として決定してもよい。
【0023】
[情報処理装置の構成]
図4は、実施形態における情報処理装置100の構成の一例を示す図である。図示のように、情報処理装置100は、例えば、配信管理部102と、最適化処理部104と、データベース更新部106と、データベース生成処理部110と、配信設定データベースDB1と、在庫データベースDB2と、商品データベースDB3と、第1レコメンド商品データベースDB4と、行動履歴データベースDB5と、第2レコメンド商品データベースDB6とを備える。配信管理部102は、「取得部」の一例であり、配信管理部102および最適化処理部104を合せたものは、「推薦処理部」の一例である。
【0024】
配信管理部102、最適化処理部104、データベース更新部106、およびデータベース生成処理部110は、例えば、CPU(Central Processing Unit)などのプロセッサが各種データベースを実現する記憶装置に格納されたプログラムを実行することにより実現される。また、配信管理部102、最適化処理部104、データベース更新部106、およびデータベース生成処理部110のうち一部または全部は、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、またはGPU(Graphics Processing Unit)などのハードウェア(回路部;circuitry)により実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。
【0025】
配信設定データベースDB1、在庫データベースDB2、商品データベースDB3、第1レコメンド商品データベースDB4、行動履歴データベースDB5、および第2レコメンド商品データベースDB6は、例えば、HDD(Hard Disc Drive)、フラッシュメモリ、EEPROM(Electrically Erasable Programmable Read Only Memory)、ROM(Read Only Memory)、RAM(Random Access Memory)などの記憶装置により実現される。これらの記憶装置には、ファームウェアやアプリケーションプログラムなどの各種プログラムが格納される。
【0026】
配信設定データベースDB1には、例えば、同時に購入すること(合わせ買い)を推奨する商品や、同時にショッピングカートに投入することを推奨する商品、同時に閲覧することを推奨する商品などが掲載される商品掲載枠ごとに、どういった商品を掲載するのかを決めるためのプログラム(アルゴリズム)が格納される。以下、同時に購入することを推奨する商品や、同時にショッピングカートに投入することを推奨する商品、同時に閲覧することを推奨する商品のことを「レコメンド商品」と総称する。
【0027】
在庫データベースDB2には、販売サイトに出店する各店舗で取り扱われる商品の在庫数が、各商品の識別情報(以下、商品IDと称する)に対応付けられたデータが含まれる。
【0028】
商品データベースDB3には、販売サイトに出店する各店舗で取り扱われる商品の商品タイトルや、価格、商品カテゴリなどの商品に関連した商品データが、商品IDに対応付けられたデータが含まれる。
【0029】
第1レコメンド商品データベースDB4および第2レコメンド商品データベースDB6には、商品掲載枠に掲載するレコメンド商品の候補の商品IDが含まれる。
【0030】
行動履歴データベースDB5には、ユーザの行動履歴が日時(タイムスタンプ)に対応付けられた行動履歴データが含まれる。例えば、行動履歴データベースDB5は、時間単位や日単位、月単位で更新されてよい。
【0031】
配信管理部102は、商品詳細ページやカート一覧ページを表示する端末装置10から所定のリクエストを受信すると、各ページの商品掲載枠に、どういった性質のレコメンド商品を掲載するのかを決定する。所定のリクエストとは、例えば、商品掲載枠に掲載するレコメンド商品の商品データを要求する情報であり、そのレコメンド商品の商品IDを抽出するために、現在ユーザが閲覧している商品の商品IDやユーザがショッピングカートに投入した商品の商品ID、ユーザが購入した商品の商品IDが含まれる。
【0032】
最適化処理部104は、配信管理部102によって決定された性質のレコメンド商品の商品データを各種データベースから抽出したり、商品掲載枠におけるレコメンド商品の掲載順位を決定したりする。
【0033】
データベース更新部106は、第2レコメンド商品データベースDB6に含まれるデータを用いて、第1レコメンド商品データベースDB4を更新する処理を、第1の所定周期(例えば1日に1回)で繰り返し行う。
【0034】
データベース生成処理部110は、行動履歴データベースDB5を用いて、新たなレコメンド商品のリストを生成し、生成したレコメンド商品のリストを第2レコメンド商品データベースDB6に追加することで、第2レコメンド商品データベースDB6を更新する。この処理を、第2の所定周期(例えば1日に1回)で繰り返し行われる。第2の所定周期は、第1の所定周期と同じ期間であってもよいし、第1の所定周期よりも短い期間であってもよい。
【0035】
[オンライン処理のフロー]
以下、実施形態における配信管理部102および最適化処理部104による一連の処理(オンライン処理またはオンデマンド処理)の流れをフローチャートに即して説明する。
図5は、実施形態における配信管理部102および最適化処理部104による一連の処理の流れを示すフローチャートである。
【0036】
まず、配信管理部102は、商品詳細ページやカート一覧ページを表示する端末装置10から所定のリクエストを受信するまで待機し(S100)、端末装置10から所定のリクエストを受信すると、配信設定データベースDB1を参照して、商品掲載枠ごとに、その枠に掲載するレコメンド商品の性質を決定する(S102)。
【0037】
例えば、配信管理部102は、配信設定データベースDB1に格納されたプログラムを参照し、商品詳細ページの商品掲載枠(
図3の領域R5)については、そのページに掲載された商品(ユーザが閲覧した商品)が購入されたものと見做したときに、その商品と合わせて同時に購入されやすい第1性質をもつ商品を掲載し、カート一覧ページの商品掲載枠(
図2の領域R1)については、ショッピングカートに投入された商品が購入されたものと見做したときに、その商品と合わせて同時に購入されやすい第2性質をもつ商品を掲載し、商品の注文が確定したときに表示されるページの商品掲載枠(不図示)については、ユーザが購入した商品と合わせて同時に購入されやすい第3性質をもつ商品を掲載することを決定する。以下、第1性質をもつ商品を、view2conv商品と称し、第2性質または第3性質をもつ商品を、conv2conv商品と称して説明する。
【0038】
次に、最適化処理部104は、配信管理部102により受信された所定のリクエストに含まれる商品ID(以下、対象商品ID)をキーとしたときに、掲載枠ごとに決められた商品の性質と合致するレコメンド商品の商品IDを、第1レコメンド商品データベースDB4の中から抽出する(S104)。
【0039】
例えば、商品詳細ページの商品掲載枠に対してview2conv商品が掲載されることが決められた場合、最適化処理部104は、キーとした商品IDに対応付けられた複数のレコメンド商品の商品IDのうち、第1性質をもつレコメンド商品の商品IDを抽出する。また、例えば、カート一覧ページの商品掲載枠に対してconv2conv商品が掲載されることが決められた場合、最適化処理部104は、キーとした商品IDに対応付けられた複数のレコメンド商品の商品IDのうち、第2性質または第3性質をもつレコメンド商品の商品IDを抽出する。
【0040】
次に、最適化処理部104は、抽出したレコメンド商品の商品IDを用いて、在庫データベースDB2および商品データベースDB3から、レコメンド商品の商品データを抽出する(S106)。例えば、最適化処理部104は、在庫データベースDB2から、キーとした商品IDに対応付けられた商品の在庫数を抽出し、その在庫数が1以上である場合(すなわち在庫が存在する場合)、更に、商品データベースDB3から、キーとした商品IDに対応付けられた商品のタイトルや価格などを含む商品データを抽出する。
【0041】
次に、最適化処理部104は、抽出した商品IDが示す各レコメンド商品の重みに基づいて、商品掲載枠内での掲載順位を決定する(S108)。レコメンド商品の重みについては後述する。
【0042】
次に、配信管理部102は、最適化処理部104によって商品掲載枠内での掲載順位が決定されたレコメンド商品の商品データを掲載順位と共に、所定のリクエストに対するレスポンスとして端末装置10に送信する(S110)。これによって、例えば、端末装置10を利用するユーザから見て、商品掲載枠の左側から右側に向けて、或いは商品掲載枠の上側から下側に向けて、掲載順位が高いレコメンド商品から順に並べられて掲載される。
【0043】
[データベース生成処理部の構成および処理内容]
図6は、実施形態におけるデータベース生成処理部110の構成要素と、各構成要素の処理内容を説明するための図である。実施形態におけるデータベース生成処理部110は、例えば、第1データ生成部112と、特定履歴抽出部114と、第2データ生成部116とを備える。第1データ生成部112は、「第1生成部」の一例であり、第2データ生成部116は、「第2生成部」および「第3生成部」の一例である。
【0044】
第1データ生成部112は、行動履歴データベースDB5から行動履歴データを取得し、取得した行動履歴データをユーザIDごとに纏め、更に、そのユーザIDごとに纏めた行動履歴データをセッションごとに一つに纏めることで、各ユーザIDおよび各セッションに関して行動履歴データを一つに纏め直したデータ(以下、第1集計ログデータと称する)を生成する。第1集計ログデータは、「第1データ」の一例である。
【0045】
セッションとは、例えば、ある同一のユーザが、ある商品を閲覧してから、その閲覧した商品を購入するまでの期間である。また、ユーザが商品を閲覧してから第3の所定期間(例えば1週間)が経過するまでに商品が購入されない場合、セッションは、ユーザが商品を閲覧してから第3の所定期間が経過するまでの期間(タイムアウトする期間)であってもよい。セッションは、「処理基準期間」の一例である。
【0046】
図7は、行動履歴データの一例を示す図である。図示の例のように、行動履歴データは、ユーザを識別するユーザIDに対して、そのユーザが起こした行動の履歴と、行動を起こした日時とが対応付けられた1つのレコードが羅列されたデータである。行動の履歴には、例えば、どの販売サイトで、どういった商品を閲覧したのか、どういった商品をショッピングカートに投入したのか、或いはどういった商品を購入したのか、といった履歴が含まれる。
【0047】
図8は、第1集計ログデータの一例を示す図である。図示の例のように、第1集計ログデータは、各セッションを識別するセッションIDごとに、そのセッション期間中に起こされた行動の履歴が対応付けられたデータが、ユーザIDごとに纏められたデータである。例えば、ユーザが、販売サイトの一つである「○○!ショッピングサイト」で商品Xを閲覧してから立て続けに商品Yや商品Zなどの複数の商品を閲覧し、その後、商品Xを購入した場合、第1集計ログデータに含まれるセッションIDが「SESH_1」のレコードのように、一つのセッションIDに対して、複数の商品の閲覧履歴が対応付けられることになる。例えば、第1集計ログデータでは、あるユーザAに対して、セッションIDが「SESH_1」であるセッションには、カテゴリが「1」の商品が纏められ、セッションIDが「SESH_2」であるセッションには、カテゴリが「2」の商品が纏められ、セッションIDが「SESH_3」であるセッションには、カテゴリが「3」の商品が纏められる。
【0048】
特定履歴抽出部114は、第1データ生成部112によってユーザIDおよびセッションごとに生成された複数の第1集計ログデータの其々から、特定の行動履歴データを抽出する。特定の行動履歴データとは、例えば、閲覧した商品を購入したことを示す行動履歴データである。これによって、例えば、あるユーザの行動履歴データが1〜kまでのセッションに分割されている場合、1〜kまでの複数のセッションの第1集計ログデータの中から、商品を閲覧したものの購入には至らなかったという行動履歴が取り除かれる。その結果、第1集計ログデータには、商品を閲覧した後に購入に至った行動履歴だけが残されることになる。また、特定の行動履歴データは、例えば、閲覧した商品をショッピングカートに投入したことを示す行動履歴データであってもよい。この場合、あるユーザの行動履歴データが1〜kまでのセッションに分割されている場合、1〜kまでの複数のセッションの第1集計ログデータの中から、商品を閲覧したもののショッピングカートに投入しなかったという行動履歴が取り除かれる。その結果、第1集計ログデータには、商品を閲覧した後にショッピングカートに投入した行動履歴または商品を閲覧した後に購入に至った行動履歴が残されることになる。
【0049】
第2データ生成部116は、特定の行動履歴データだけを含む複数の第1集計ログデータ、すなわち同じ商品IDを含む複数の第1集計ログデータを商品のカテゴリごとに一つに纏め直すことで、第1集計ログデータから、商品のカテゴリごとに行動履歴データを纏めた第2集計ログデータを生成する。第2集計ログデータは、「第2データ」の一例である。
【0050】
図9は、第2集計ログデータの一例を示す図である。図示の例のように、第2集計ログデータは、ある一人のユーザの行動履歴データに関して、「SESH_1」、「SESH_2」、「SESH_3」のようにセッションごとに纏められた第1集計ログデータを、更に、商品のカテゴリごとに纏めたデータを一つの単位としている。例えば、第2集計ログデータは、商品の各カテゴリに関して、各商品を識別する商品IDに対して行動履歴が対応付けられたデータであってよい。
【0051】
そして、第2データ生成部116は、商品のカテゴリ単位に分割した複数の第2集計ログデータのうち、同じセッションに分けられた第2集計ログデータ同士を結合したデータ(以下、レコメンド商品候補リストデータと称する)を生成し、これを第2レコメンド商品データベースDB6に記憶させる。レコメンド商品候補リストデータは、「第3データ」の一例である。
【0052】
図10は、レコメンド商品候補リストデータの生成方法を説明するための図である。例えば、セッションIDが「SESH_i」である、あるセッションiに着目したときに、そのセッションiに、商品カテゴリが「シューズ」に分類された第2集計ログデータと、商品カテゴリが「シャツ」に分類された第2集計ログデータとが含まれているとする。この場合、同一のユーザが、同じセッション中に、互いにカテゴリが異なる複数の商品を購入したことになる。
【0053】
そのため、第2データ生成部116は、「シューズ」および「シャツ」の互いに異なるカテゴリを一つに結合し、結合したカテゴリに含まれる商品をレコメンド商品の候補として抽出する。言い換えれば、第2データ生成部116は、互いに異なる複数のカテゴリの其々に含まれる商品を、合わせ買いされやすい商品(または同時にショッピングカートに投入されやすい商品)であるものと見做し、これらのカテゴリに含まれる商品をレコメンド商品の候補として抽出する。また、セッションIDが「SESH_k」の第2集計ログデータは、セッションIDが「SESH_i」の第2集計ログデータと異なるセッションであるため、これらのデータではカテゴリが一つに統合されない。なお、図示の例では、第2集計ログデータに「購入」以外にも「閲覧」といった他の行動履歴が含まれているが、上述したように特定履歴抽出部114によって「購入」の行動履歴(特定の行動履歴)のみが抽出されるため、「閲覧」などの行動履歴が対応付けられたレコードは予め第2集計ログデータに含まれていなくてよい。
【0054】
そして、第2データ生成部116は、抽出した商品の商品IDを互いに対応付けたレコメンド商品候補リストデータを生成する。図示の例では、商品IDが「ITEM_A」〜「ITEM_E」である各商品(購入された商品)が「シューズ」の商品カテゴリに分類されており、商品IDが「ITEM_O」〜「ITEM_S」である各商品(購入された商品)が「シャツ」の商品カテゴリに分類されている。これらの各商品を購入したという行動履歴データは、同じセッションに分類されるため、レコメンド商品候補リストデータでは、商品IDが「ITEM_A」〜「ITEM_E」の複数の商品と、商品IDが「ITEM_O」〜「ITEM_S」の複数の商品とが、合わせ買いされやすい商品、或いは同時にショッピングカートに投入されやすい商品として、カテゴリの枠を超えて互いに関連付けられることになる。
【0055】
[バッチ処理のフロー]
以下、実施形態におけるデータベース更新部106およびデータベース生成処理部110による一連の処理(バッチ処理)の流れをフローチャートに即して説明する。
図11は、実施形態におけるデータベース更新部106およびデータベース生成処理部110による一連の処理の流れを示すフローチャートである。本フローチャートの処理は、一例として、第1の所定周期と第2の所定周期とが同じ期間であるものとして説明する。なお、第1の所定周期と第2の所定周期とが互いに異なる期間である場合、後述するS200〜S212の一連の処理と、S214の処理とは互いに独立して(並列に)行われてよい。
【0056】
まず、第1データ生成部112は、行動履歴データベースDB5から行動履歴データを取得する(S200)。
【0057】
次に、第1データ生成部112は、取得した行動履歴データをユーザIDごとに纏め、更に、そのユーザIDごとに纏めた行動履歴データをセッションごとに一つに纏めることで、第1集計ログデータを生成する(S202)。
【0058】
次に、特定履歴抽出部114は、第1データ生成部112によって生成された複数の第1集計ログデータの其々から、特定の行動履歴データを抽出し、それ以外の行動履歴データを除去する(S204)。
【0059】
次に、第2データ生成部116は、特定の行動履歴データだけを含む複数の第1集計ログデータから、第2集計ログデータを生成する(S206)。
【0060】
次に、第2データ生成部116は、同じセッションに分けられた第2集計ログデータ同士を結合してレコメンド商品候補リストデータを生成する(S208)。
【0061】
次に、第2データ生成部116は、レコメンド商品候補リストデータに含まれるレコメンド商品の商品IDを第2レコメンド商品データベースDB6に追加することで、第2レコメンド商品データベースDB6を更新する(S210)。
【0062】
次に、データベース更新部106は、第2レコメンド商品データベースDB6に含まれるレコメンド商品の商品IDを、第1レコメンド商品データベースDB4に追加することで、第1レコメンド商品データベースDB4を更新する(S212)。これによってフローチャートの処理が終了する。
【0063】
[レコメンド商品の重みに基づく掲載順位の決定方法]
以下、上述した最適化処理部104によるレコメンド商品の重みに基づく掲載順位の決定方法について説明する。例えば、最適化処理部104は、所定のリクエストに含まれる対象商品IDに対応付けられたレコメンド商品の商品IDを、第1レコメンド商品データベースDB4の中から抽出する。第1レコメンド商品データベースDB4には、間接的にレコメンド商品候補リストデータが追加されているため、対象商品IDに対応付けられたレコメンド商品の商品IDは、レコメンド商品候補リストデータにおいて、対象商品IDに対応付けられている商品IDとなる。
【0064】
最適化処理部104は、抽出した複数の商品IDのうち、同じセッション中に購入された回数が多いレコメンド商品の商品IDほど、そのレコメンド商品の重みを大きくしてもよいし、同じセッション中にショッピングカートに投入された回数が多いレコメンド商品の商品IDほど、そのレコメンド商品の重みを大きくしてもよい。そして、最適化処理部104は、決定した重みが大きいレコメンド商品ほど掲載順位を高くし、重みが小さいレコメンド商品ほど掲載順位を低くする。これによって、重みが大きく、掲載順位が高い商品ほど、優先的に商品掲載枠に掲載されることになる。
【0065】
また、最適化処理部104は、第1レコメンド商品データベースDB4において、対象商品IDに商品IDが対応付けられたレコメンド商品に対して類似する商品を、商品掲載枠に掲載させるレコメンド商品としてもよい。商品同士が「類似する」とは、比較対象とする其々の商品をベクトル化したときに、あるベクトル空間において、それらの各商品のベクトルが互いに近い関係であることをいう。
【0066】
例えば、最適化処理部104は、対象商品IDに商品IDが対応付けられたレコメンド商品が掲載された商品詳細ページから、商品タイトルや商品概要を表すテキストベースのコンテンツを抽出し、抽出したコンテンツに含まれる各単語の出現頻度などの統計量を各要素とする多次元ベクトルを、レコメンド商品のベクトルとして生成してよい。
【0067】
また、最適化処理部104は、word2vecやGloVeのような分散表現または単語埋め込み表現(Word Embedding(s))と呼ばれる手法を用いて、抽出したコンテンツに含まれる各単語を基にレコメンド商品のベクトルを生成してもよい。分散表現または単語埋め込み表現は、単語または語句と、その単語または語句の前後で出現する単語または語句との共起性に基づいて、単語や語句をベクトル化する手法であり、例えば、予め用意された複数の単語や語句を含むコーパスに基づいて、対象とするコンテンツに含まれる単語または語句の前後に出現する出現確率を求め、その出現確率を要素値とする多次元のベクトルを生成する手法である。
【0068】
最適化処理部104は、予め用意された複数の類似商品のベクトルの其々と、対象商品IDに商品IDが対応付けられたレコメンド商品のベクトルとの類似度(例えばコサイン類似度)を導出する。類似商品は、レコメンド商品に類似し得る商品であり、例えば、商品データベースDB3に商品IDが登録された商品である。類似商品のベクトルは、レコメンド商品をベクトル化する手法と同じ手法を用いて、類似商品が掲載された商品詳細ページに含まれるコンテンツから生成されたベクトルであり、レコメンド商品のベクトルと同じ次元数(要素数)をもつベクトルであるものとする。
【0069】
そして、最適化処理部104は、レコメンド商品のベクトルに対する類似度が閾値以上の類似商品のベクトルを、複数の類似商品のベクトルの中から選択し、選択したベクトルの元となった類似商品を、商品掲載枠に掲載させるレコメンド商品とする。
【0070】
図12は、レコメンド商品に対して類似する商品の決定方法を説明するための図である。例えば、第1レコメンド商品データベースDB4において、対象商品IDに対して、複数のレコメンド商品の商品IDが対応付けられている場合、最適化処理部104は、対象商品IDをもつ対象商品I
TAに対して、商品IDが対応付けられた複数のレコメンド商品I
1〜I
kの其々の商品ベクトルと、類似商品のベクトルとの類似度を導出し、その類似度が閾値以上となる類似商品のベクトルを選択する。図示の例では、レコメンド商品I
1の商品ベクトルに対して、その類似度が閾値以上となる類似商品のベクトルが3つ存在し、それらの3つの類似商品のベクトルの其々に対応した類似商品I
1´、I
2´、I
3´を、商品掲載枠に掲載させるレコメンド商品に決定する。この際、最適化処理部104は、類似商品I
1´、I
2´、I
3´の各重みを類似度としてよい。これによって、商品I
1〜I
kと、類似商品I
1´、I
2´、I
3´との中から、重みが大きい商品から優先的に商品掲載枠に掲載される。
【0071】
このように、第1レコメンド商品データベースDB4において、対象商品IDに商品IDが対応付けられたレコメンド商品に対して類似する商品を、商品掲載枠に掲載させるレコメンド商品とすることで、過去に合わせ買いされていたり、同時にショッピングカートに投入されていたりした他の商品をレコメンド商品とするのに加えて、更に、そのレコメンド商品に類似した商品もレコメンド商品とすることができるため、消費者が、ショッピングカートに投入したり、購入したりといった所定の行動を起こしやすい商品を幅広く推薦することができる。
【0072】
また、最適化処理部104は、レコメンド商品の重みを、サポートベクターマシンやニューラルネットワークを利用した機械学習によって決めてもよい。例えば、最適化処理部104は、商品のレビュー数や、商品タイトルの一致度、商品価格などを素性とし、レビュー数が多かったり、そのレビューの評価が高かったり、商品タイトルの一致度が大きかったり、商品価格が安かったりするほど、商品の重みが小さくなるように、所定の学習モデルのパラメータを学習する。最適化処理部104は、予め学習した学習モデルに、第1レコメンド商品データベースDB4において、対象商品IDに商品IDが対応付けられたレコメンド商品の素性を入力することで、レコメンド商品の重みを決定する。これによって、所定の行動を起こしやすい商品をレコメンド商品として選択することができる。
【0073】
なお、上述した実施形態では、情報処理装置100が、所定のリクエストを受信したときに、その所定のリクエストに含まれる対象商品IDが示す対象商品が、過去に他の商品と一緒に合わせ買いされていたり、同時にショッピングカートに投入されていたりした場合、同時に購入された他の商品または同時にショッピングカートに投入された他の商品をレコメンド商品として推薦するものとして説明したがこれに限られない。
【0074】
例えば、情報処理装置100は、同時に購入された他の商品または同時にショッピングカートに投入された他の商品に関する広告コンテンツを、所定のリクエストに対するレスポンスとして端末装置10に提供してもよい。
【0075】
図13は、広告コンテンツが配信されたウェブページの一例を示す図である。例えば、最適化処理部104は、第1レコメンド商品データベースDB4において、対象商品IDに商品IDが対応付けられたレコメンド商品、すなわち、対象商品IDのカテゴリやそのカテゴリに結合されたカテゴリに含まれる商品を紹介する広告コンテンツを、所定の掲載枠(図中R6の領域)に掲載することを決定する。広告コンテンツは、例えば、静止画像や動画像であってよい。そして、最適化処理部104は、広告コンテンツが記憶された所定のデータベース(不図示)から、所定の掲載枠に掲載させる広告コンテンツを抽出し、これを配信管理部102に出力する。これを受けて配信管理部102は、広告コンテンツを、所定のリクエストに対するレスポンスとして端末装置10に送信する。
【0076】
以上説明した実施形態によれば、ネットワークを介して販売される商品に対して所定の行動に至った複数のユーザの行動履歴を、ユーザの一連の行動に基づいて区切られたセッションごとに一つに纏めた複数の第1集計ログデータを生成し、複数の第1集計ログデータの其々に含まれる商品を、カテゴリごとに一つに纏めた複数の第2集計ログデータを生成し、複数の第2集計ログデータの其々に含まれる商品のうち、同じセッション内にユーザが所定の行動に至った複数の商品同士を一つに纏めたレコメンド商品候補リストデータを生成するため、例えば、消費者であるユーザが所定の行動として、商品を閲覧した場合に、レコメンド商品候補リストデータにおいて、ユーザによって閲覧された商品に対応付けられた商品を、ユーザが合わせ買いしやすい(所定の行動を起こしやすい)商品として推薦することができる。
【0077】
例えば、上述した実施形態では、一度(同じセッション中)にまとめて複数の商品が購入された場合、第2集計ログデータとして、第1集計ログデータをカテゴリごとに纏めたものの、同時購入されている商品については、カテゴリが異なる商品同士でも、第2集計ログデータを再結合する。これによって、例えば、ユーザが「シャツ」というカテゴリの商品と、「シューズ」というカテゴリの商品を同時購入した場合、本来であれば、「シャツ」というカテゴリの商品と、「シューズ」というカテゴリの商品とは互いに分離されるところが、一つに結合させる(セッションをマージさせる)。この結果、両者のカテゴリの商品は、カテゴリの枠を超えて互いに関連する商品として扱われるため、例えば、消費者であるユーザが「ファッション」のカテゴリに分類される商品をショッピングカートに投入したり、購入したりした場合、「ファッション」のカテゴリの商品に加えて、そのカテゴリにマージされたカテゴリ(例えば「食品」など)の商品をレコメンドすることができ、ユーザが所定の行動を起こしやすい商品を、より精度よく推薦することができる。
【0078】
<ハードウェア構成>
上述した実施形態の情報処理装置100は、例えば、
図14に示すようなハードウェア構成により実現される。
図14は、実施形態の情報処理装置100のハードウェア構成の一例を示す図である。
【0079】
情報処理装置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によって実行されることで、配信管理部102、最適化処理部104、データベース更新部106、およびデータベース生成処理部110の各構成要素が実現される。これらの構成要素が参照するプログラムは、ネットワークNWを介して他の装置からダウンロードされてもよい。
【0080】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何ら限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。