JP2012098845A - 情報処理装置、情報処理システム、情報処理プログラム、情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体、及び情報処理方法 - Google Patents
情報処理装置、情報処理システム、情報処理プログラム、情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体、及び情報処理方法 Download PDFInfo
- Publication number
- JP2012098845A JP2012098845A JP2010244799A JP2010244799A JP2012098845A JP 2012098845 A JP2012098845 A JP 2012098845A JP 2010244799 A JP2010244799 A JP 2010244799A JP 2010244799 A JP2010244799 A JP 2010244799A JP 2012098845 A JP2012098845 A JP 2012098845A
- Authority
- JP
- Japan
- Prior art keywords
- product
- node
- purchased
- information processing
- edge
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 132
- 238000003672 processing method Methods 0.000 title claims abstract description 8
- 238000000034 method Methods 0.000 claims description 96
- 230000008569 process Effects 0.000 claims description 91
- 238000012545 processing Methods 0.000 claims description 34
- 239000000284 extract Substances 0.000 claims description 13
- 230000006870 function Effects 0.000 claims description 12
- 238000012217 deletion Methods 0.000 claims description 5
- 230000037430 deletion Effects 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims 1
- 238000004364 calculation method Methods 0.000 description 32
- 238000000605 extraction Methods 0.000 description 20
- 238000004891 communication Methods 0.000 description 7
- 238000012552 review Methods 0.000 description 7
- 210000000707 wrist Anatomy 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000014509 gene expression Effects 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 241000556720 Manga Species 0.000 description 1
- 241000533293 Sesbania emerus Species 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000005401 electroluminescence Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】ある商品を購入したユーザが後に購入する商品を正確に特定できる情報処理装置、情報処理システム、情報処理プログラム、情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体、及び情報処理方法を提供する。
【解決手段】情報処理装置100は、有向グラフが有する2つのノードi,jについて、ノードiにより表現される商品xが購入された後にノードjにより表現される商品yが購入された購入数n[i,j]と、商品yが購入された後に商品xが購入された購入数n[j,i]とを履歴記憶部から取得する。次に、情報処理装置100は、1より大きい定数KについてK×n[j,i]≦n[i,j]が成立すれば、ノードiを始点としノードjを終点とするエッジv[i,j]を有向グラフに追加する。
【選択図】図2
【解決手段】情報処理装置100は、有向グラフが有する2つのノードi,jについて、ノードiにより表現される商品xが購入された後にノードjにより表現される商品yが購入された購入数n[i,j]と、商品yが購入された後に商品xが購入された購入数n[j,i]とを履歴記憶部から取得する。次に、情報処理装置100は、1より大きい定数KについてK×n[j,i]≦n[i,j]が成立すれば、ノードiを始点としノードjを終点とするエッジv[i,j]を有向グラフに追加する。
【選択図】図2
Description
本発明は、情報処理装置、情報処理システム、情報処理プログラム、情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体、及び情報処理方法に関する。
従来から、商品の購買履歴データに基づいて顧客に商品を推薦する技術が知られている(例えば、特許文献1)。
ここで、特許文献1の技術では、ある商品を購入したユーザが後に購入する商品を正確に特定できないという問題があった。
本発明は、このような点に鑑みてなされたものであり、その目的とするところは、ある商品を購入したユーザが後に購入する商品を正確に特定できる情報処理装置、情報処理システム、情報処理プログラム、情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体、及び情報処理方法を提供することにある。
上記目的を達成するため、本発明の第1の観点に係る情報処理装置は、
商品を購入したユーザを示すユーザ情報と、前記ユーザが前記商品を購入した購入日時を示す情報と、前記商品を示す商品情報と、を複数記憶する履歴記憶部、
前記複数の商品情報で示される商品のそれぞれを表現するノードと、第一の商品と第二の商品とが前記ユーザにより購入された順序を表現するエッジと、を備える有向グラフを記憶可能なグラフ記憶部、
前記有向グラフが備える2つのノードi,jについて、前記ノードiにより表現される商品xが購入された後に前記ノードjにより表現される商品yが購入された購入数n[i,j]と、前記商品yが購入された後に前記商品xが購入された購入数n[j,i]と、を、前記履歴記憶部から取得し、1より大きい定数Kについて、
(1)K×n[j,i]≦n[i,j]が成立すれば、前記ノードiを始点とし前記ノードjを終点とするエッジv[i,j]を、前記有向グラフに追加し、
(2)K×n[i,j]≦n[j,i]が成立すれば、前記ノードjを始点とし前記ノードiを終点とするエッジv[j,i]を、前記有向グラフに追加する、
追加部、
を備えることを特徴とする。
商品を購入したユーザを示すユーザ情報と、前記ユーザが前記商品を購入した購入日時を示す情報と、前記商品を示す商品情報と、を複数記憶する履歴記憶部、
前記複数の商品情報で示される商品のそれぞれを表現するノードと、第一の商品と第二の商品とが前記ユーザにより購入された順序を表現するエッジと、を備える有向グラフを記憶可能なグラフ記憶部、
前記有向グラフが備える2つのノードi,jについて、前記ノードiにより表現される商品xが購入された後に前記ノードjにより表現される商品yが購入された購入数n[i,j]と、前記商品yが購入された後に前記商品xが購入された購入数n[j,i]と、を、前記履歴記憶部から取得し、1より大きい定数Kについて、
(1)K×n[j,i]≦n[i,j]が成立すれば、前記ノードiを始点とし前記ノードjを終点とするエッジv[i,j]を、前記有向グラフに追加し、
(2)K×n[i,j]≦n[j,i]が成立すれば、前記ノードjを始点とし前記ノードiを終点とするエッジv[j,i]を、前記有向グラフに追加する、
追加部、
を備えることを特徴とする。
また、第1の観点に係る情報処理装置において、
前記追加部によるエッジの追加がされた後、前記グラフ記憶部に記憶された有向グラフが備える3つのノードp,q,rについて、前記有向グラフが前記ノードpを始点とし前記ノードqを終点とするエッジv[p,q]と、前記ノードpを始点とし前記ノードrを終点とするエッジv[p,r]と、を備える場合、
(1)購入数n[p,q]が購入数n[p,r]に対して十分に大きければ、前記エッジv[p,r]を、前記有向グラフから削除し、
(2)前記購入数n[p,r]が前記購入数n[p,q]に対して十分に大きければ、前記エッジv[p,q]を、前記有向グラフから削除する、
削除部、
をさらに備えるとしても良い。
前記追加部によるエッジの追加がされた後、前記グラフ記憶部に記憶された有向グラフが備える3つのノードp,q,rについて、前記有向グラフが前記ノードpを始点とし前記ノードqを終点とするエッジv[p,q]と、前記ノードpを始点とし前記ノードrを終点とするエッジv[p,r]と、を備える場合、
(1)購入数n[p,q]が購入数n[p,r]に対して十分に大きければ、前記エッジv[p,r]を、前記有向グラフから削除し、
(2)前記購入数n[p,r]が前記購入数n[p,q]に対して十分に大きければ、前記エッジv[p,q]を、前記有向グラフから削除する、
削除部、
をさらに備えるとしても良い。
また、第1の観点に係る情報処理装置において、
1未満の正定数Hについて、
(1)n[p,r]/(n[p,q]+n[p,r])≦Hであれば、前記購入数n[p,q]が前記購入数n[p,r]に対して十分に大きいものとし、
(2)n[p,q]/(n[p,q]+n[p,r])≦Hであれば、前記購入数n[p,r]が前記購入数n[p,q]に対して十分に大きいものとする、
としても良い。
1未満の正定数Hについて、
(1)n[p,r]/(n[p,q]+n[p,r])≦Hであれば、前記購入数n[p,q]が前記購入数n[p,r]に対して十分に大きいものとし、
(2)n[p,q]/(n[p,q]+n[p,r])≦Hであれば、前記購入数n[p,r]が前記購入数n[p,q]に対して十分に大きいものとする、
としても良い。
また、第1の観点に係る情報処理装置において、
前記複数の商品情報で示される商品のいずれかを指定する指定部、
前記グラフ記憶部に記憶された有向グラフにおいて、前記指定された商品を表現するノードから、エッジに沿ってたどった経路内のノードを順に抽出し、当該抽出されたノードを当該抽出された順序で並べたノード列を取得する取得部、
前記取得されたノード列に含まれるノードのそれぞれにより表現される商品を、当該ノードの当該ノード列における順序にしたがって並べた商品列を、前記指定された商品の後に購入が推薦される商品の順序として出力する出力部、
をさらに備えるとしても良い。
前記複数の商品情報で示される商品のいずれかを指定する指定部、
前記グラフ記憶部に記憶された有向グラフにおいて、前記指定された商品を表現するノードから、エッジに沿ってたどった経路内のノードを順に抽出し、当該抽出されたノードを当該抽出された順序で並べたノード列を取得する取得部、
前記取得されたノード列に含まれるノードのそれぞれにより表現される商品を、当該ノードの当該ノード列における順序にしたがって並べた商品列を、前記指定された商品の後に購入が推薦される商品の順序として出力する出力部、
をさらに備えるとしても良い。
また、第1の観点に係る情報処理装置において、
前記取得部は、前記指定された商品を表現するノードを注目ノードに設定した後、
(1)当該注目ノードを始点とするエッジの終点のノードであり、かつ、既に抽出されたノードでないノードからなるノード群を取得し、
(2)当該取得されたノード群から、いずれかのノードを抽出し、
(3)当該抽出されたノードを新たな注目ノードに設定し直して、終了条件が満たされるまで、前記処理(1)乃至前記処理(3)を繰り返す、
ことにより、前記経路内のノードを順に抽出する、
としても良い。
前記取得部は、前記指定された商品を表現するノードを注目ノードに設定した後、
(1)当該注目ノードを始点とするエッジの終点のノードであり、かつ、既に抽出されたノードでないノードからなるノード群を取得し、
(2)当該取得されたノード群から、いずれかのノードを抽出し、
(3)当該抽出されたノードを新たな注目ノードに設定し直して、終了条件が満たされるまで、前記処理(1)乃至前記処理(3)を繰り返す、
ことにより、前記経路内のノードを順に抽出する、
としても良い。
また、第1の観点に係る情報処理装置において、
前記取得部は、前記指定された商品を表現するノードを注目ノードに設定した後、
(1)当該指定された商品を表現するノードを始点とするエッジの終点であり、かつ、当該注目ノードを始点とするエッジの終点であり、かつ、既に抽出されたノードでないノードからなるノード群を取得し、
(2)当該取得されたノード群から、いずれかのノードを抽出し、
(3)当該抽出されたノードを新たな注目ノードに設定し直して、終了条件が満たされるまで、前記処理(1)乃至前記処理(3)を繰り返す、
ことにより、前記経路内のノードを順に抽出する、
としても良い。
前記取得部は、前記指定された商品を表現するノードを注目ノードに設定した後、
(1)当該指定された商品を表現するノードを始点とするエッジの終点であり、かつ、当該注目ノードを始点とするエッジの終点であり、かつ、既に抽出されたノードでないノードからなるノード群を取得し、
(2)当該取得されたノード群から、いずれかのノードを抽出し、
(3)当該抽出されたノードを新たな注目ノードに設定し直して、終了条件が満たされるまで、前記処理(1)乃至前記処理(3)を繰り返す、
ことにより、前記経路内のノードを順に抽出する、
としても良い。
また、第1の観点に係る情報処理装置において、
前記取得部は、前記処理(2)において、当該取得されたノード群に含まれるノードのうち、当該ノードを始点とするエッジの数が最大のノードを抽出する、
としても良い。
前記取得部は、前記処理(2)において、当該取得されたノード群に含まれるノードのうち、当該ノードを始点とするエッジの数が最大のノードを抽出する、
としても良い。
また、第1の観点に係る情報処理装置において、
前記取得部は、前記処理(2)において、当該取得されたノード群に含まれるノードのうち、当該ノードを始点とし、当該ノード群に含まれるいずれかのノードを終点とするエッジの数が最大のノードを抽出する、
としても良い。
前記取得部は、前記処理(2)において、当該取得されたノード群に含まれるノードのうち、当該ノードを始点とし、当該ノード群に含まれるいずれかのノードを終点とするエッジの数が最大のノードを抽出する、
としても良い。
また、第1の観点に係る情報処理装置において、
前記取得部は、前記処理(2)において、当該取得されたノード群に含まれるノードを始点ならびに終点とするエッジをたどる経路であって、当該経路内における各ノードを通過する回数が1回限りの経路のうち、長さが最大である経路の始点のノードを抽出する、
としても良い。
前記取得部は、前記処理(2)において、当該取得されたノード群に含まれるノードを始点ならびに終点とするエッジをたどる経路であって、当該経路内における各ノードを通過する回数が1回限りの経路のうち、長さが最大である経路の始点のノードを抽出する、
としても良い。
また、第1の観点に係る情報処理装置において、
前記終了条件は、前記ノード群が取得できなくなると、満たされる、
としても良い。
前記終了条件は、前記ノード群が取得できなくなると、満たされる、
としても良い。
また、第1の観点に係る情報処理装置において、
前記終了条件は、所定の数のノードが抽出されると、満たされる、
としても良い。
前記終了条件は、所定の数のノードが抽出されると、満たされる、
としても良い。
また、第1の観点に係る情報処理装置において、
前記指定部は、前記複数の商品情報で示される商品のうち、前記グラフ記憶部に記憶される有向グラフにおいて当該商品を表現するノードがいずれかのエッジの始点となっており、いずれのエッジの終点でもないノードにより表現される商品を、指定する、
としても良い。
前記指定部は、前記複数の商品情報で示される商品のうち、前記グラフ記憶部に記憶される有向グラフにおいて当該商品を表現するノードがいずれかのエッジの始点となっており、いずれのエッジの終点でもないノードにより表現される商品を、指定する、
としても良い。
また、上記目的を達成するため、本発明の第2の観点に係る情報処理システムは、
商品を購入したユーザを示すユーザ情報と、前記ユーザが前記商品を購入した購入日時を示す情報と、前記商品を示す商品情報と、を複数記憶する履歴記憶部、
前記複数の商品情報で示される商品のそれぞれを表現するノードと、第一の商品と第二の商品とが前記ユーザにより購入された順序を表現するエッジと、を備える有向グラフの2つのノードi,jについて、前記ノードiにより表現される商品xが購入された後に前記ノードjにより表現される商品yが購入された購入数n[i,j]と、前記商品yが購入された後に前記商品xが購入された購入数n[j,i]と、を、前記履歴記憶部から取得し、1より大きい定数Kについて、
(1)K×n[j,i]≦n[i,j]が成立すれば、前記ノードiを始点とし前記ノードjを終点とするエッジv[i,j]を、前記有向グラフに追加し、
(2)K×n[i,j]≦n[j,i]が成立すれば、前記ノードjを始点とし前記ノードiを終点とするエッジv[j,i]を、前記有向グラフに追加する、
追加部、
を備えることを特徴とする。
商品を購入したユーザを示すユーザ情報と、前記ユーザが前記商品を購入した購入日時を示す情報と、前記商品を示す商品情報と、を複数記憶する履歴記憶部、
前記複数の商品情報で示される商品のそれぞれを表現するノードと、第一の商品と第二の商品とが前記ユーザにより購入された順序を表現するエッジと、を備える有向グラフの2つのノードi,jについて、前記ノードiにより表現される商品xが購入された後に前記ノードjにより表現される商品yが購入された購入数n[i,j]と、前記商品yが購入された後に前記商品xが購入された購入数n[j,i]と、を、前記履歴記憶部から取得し、1より大きい定数Kについて、
(1)K×n[j,i]≦n[i,j]が成立すれば、前記ノードiを始点とし前記ノードjを終点とするエッジv[i,j]を、前記有向グラフに追加し、
(2)K×n[i,j]≦n[j,i]が成立すれば、前記ノードjを始点とし前記ノードiを終点とするエッジv[j,i]を、前記有向グラフに追加する、
追加部、
を備えることを特徴とする。
また、上記目的を達成するため、本発明の第3の観点に係る情報処理プログラムは、
コンピュータを、
商品を購入したユーザを示すユーザ情報と、前記ユーザが前記商品を購入した購入日時を示す情報と、前記商品を示す商品情報と、を複数記憶する履歴記憶部、
前記複数の商品情報で示される商品のそれぞれを表現するノードと、第一の商品と第二の商品とが前記ユーザにより購入された順序を表現するエッジと、を備える有向グラフを記憶可能なグラフ記憶部、
前記有向グラフが備える2つのノードi,jについて、前記ノードiにより表現される商品xが購入された後に前記ノードjにより表現される商品yが購入された購入数n[i,j]と、前記商品yが購入された後に前記商品xが購入された購入数n[j,i]と、を、前記履歴記憶部から取得し、1より大きい定数Kについて、
(1)K×n[j,i]≦n[i,j]が成立すれば、前記ノードiを始点とし前記ノードjを終点とするエッジv[i,j]を、前記有向グラフに追加し、
(2)K×n[i,j]≦n[j,i]が成立すれば、前記ノードjを始点とし前記ノードiを終点とするエッジv[j,i]を、前記有向グラフに追加する、
追加部、
として機能させることを特徴とする。
コンピュータを、
商品を購入したユーザを示すユーザ情報と、前記ユーザが前記商品を購入した購入日時を示す情報と、前記商品を示す商品情報と、を複数記憶する履歴記憶部、
前記複数の商品情報で示される商品のそれぞれを表現するノードと、第一の商品と第二の商品とが前記ユーザにより購入された順序を表現するエッジと、を備える有向グラフを記憶可能なグラフ記憶部、
前記有向グラフが備える2つのノードi,jについて、前記ノードiにより表現される商品xが購入された後に前記ノードjにより表現される商品yが購入された購入数n[i,j]と、前記商品yが購入された後に前記商品xが購入された購入数n[j,i]と、を、前記履歴記憶部から取得し、1より大きい定数Kについて、
(1)K×n[j,i]≦n[i,j]が成立すれば、前記ノードiを始点とし前記ノードjを終点とするエッジv[i,j]を、前記有向グラフに追加し、
(2)K×n[i,j]≦n[j,i]が成立すれば、前記ノードjを始点とし前記ノードiを終点とするエッジv[j,i]を、前記有向グラフに追加する、
追加部、
として機能させることを特徴とする。
また、上記目的を達成するため、本発明の第4の観点に係るコンピュータ読み取り可能な記録媒体が記録した情報処理プログラムは、
コンピュータを、
商品を購入したユーザを示すユーザ情報と、前記ユーザが前記商品を購入した購入日時を示す情報と、前記商品を示す商品情報と、を複数記憶する履歴記憶部、
前記複数の商品情報で示される商品のそれぞれを表現するノードと、第一の商品と第二の商品とが前記ユーザにより購入された順序を表現するエッジと、を備える有向グラフを記憶可能なグラフ記憶部、
前記有向グラフが備える2つのノードi,jについて、前記ノードiにより表現される商品xが購入された後に前記ノードjにより表現される商品yが購入された購入数n[i,j]と、前記商品yが購入された後に前記商品xが購入された購入数n[j,i]と、を、前記履歴記憶部から取得し、1より大きい定数Kについて、
(1)K×n[j,i]≦n[i,j]が成立すれば、前記ノードiを始点とし前記ノードjを終点とするエッジv[i,j]を、前記有向グラフに追加し、
(2)K×n[i,j]≦n[j,i]が成立すれば、前記ノードjを始点とし前記ノードiを終点とするエッジv[j,i]を、前記有向グラフに追加する、
追加部、
として機能させることを特徴とする。
コンピュータを、
商品を購入したユーザを示すユーザ情報と、前記ユーザが前記商品を購入した購入日時を示す情報と、前記商品を示す商品情報と、を複数記憶する履歴記憶部、
前記複数の商品情報で示される商品のそれぞれを表現するノードと、第一の商品と第二の商品とが前記ユーザにより購入された順序を表現するエッジと、を備える有向グラフを記憶可能なグラフ記憶部、
前記有向グラフが備える2つのノードi,jについて、前記ノードiにより表現される商品xが購入された後に前記ノードjにより表現される商品yが購入された購入数n[i,j]と、前記商品yが購入された後に前記商品xが購入された購入数n[j,i]と、を、前記履歴記憶部から取得し、1より大きい定数Kについて、
(1)K×n[j,i]≦n[i,j]が成立すれば、前記ノードiを始点とし前記ノードjを終点とするエッジv[i,j]を、前記有向グラフに追加し、
(2)K×n[i,j]≦n[j,i]が成立すれば、前記ノードjを始点とし前記ノードiを終点とするエッジv[j,i]を、前記有向グラフに追加する、
追加部、
として機能させることを特徴とする。
さらに上記目的を達成するため、本発明の第5の観点に係る情報処理方法は、
履歴保存部と追加部とを備える情報処理装置が実行する方法であって、
前記履歴保存部が、商品を購入したユーザを示すユーザ情報と、前記ユーザが前記商品を購入した購入日時を示す情報と、前記商品を示す商品情報と、を履歴記憶部へ複数保存する、
履歴保存ステップ、
前記複数の商品情報で示される商品のそれぞれを表現するノードと、第一の商品と第二の商品とが前記ユーザにより購入された順序を表現するエッジと、を備える有向グラフの2つのノードi,jについて、前記ノードiにより表現される商品xが購入された後に前記ノードjにより表現される商品yが購入された購入数n[i,j]と、前記商品yが購入された後に前記商品xが購入された購入数n[j,i]と、を、前記履歴記憶部から取得し、1より大きい定数Kについて、
(1)K×n[j,i]≦n[i,j]が成立すれば、前記ノードiを始点とし前記ノードjを終点とするエッジv[i,j]を、前記有向グラフに追加し、
(2)K×n[i,j]≦n[j,i]が成立すれば、前記ノードjを始点とし前記ノードiを終点とするエッジv[j,i]を、前記有向グラフに追加する、
追加ステップ、
を有することを特徴とする。
履歴保存部と追加部とを備える情報処理装置が実行する方法であって、
前記履歴保存部が、商品を購入したユーザを示すユーザ情報と、前記ユーザが前記商品を購入した購入日時を示す情報と、前記商品を示す商品情報と、を履歴記憶部へ複数保存する、
履歴保存ステップ、
前記複数の商品情報で示される商品のそれぞれを表現するノードと、第一の商品と第二の商品とが前記ユーザにより購入された順序を表現するエッジと、を備える有向グラフの2つのノードi,jについて、前記ノードiにより表現される商品xが購入された後に前記ノードjにより表現される商品yが購入された購入数n[i,j]と、前記商品yが購入された後に前記商品xが購入された購入数n[j,i]と、を、前記履歴記憶部から取得し、1より大きい定数Kについて、
(1)K×n[j,i]≦n[i,j]が成立すれば、前記ノードiを始点とし前記ノードjを終点とするエッジv[i,j]を、前記有向グラフに追加し、
(2)K×n[i,j]≦n[j,i]が成立すれば、前記ノードjを始点とし前記ノードiを終点とするエッジv[j,i]を、前記有向グラフに追加する、
追加ステップ、
を有することを特徴とする。
本発明に係る情報処理装置、情報処理システム、情報処理プログラム、情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体、及び情報処理方法によれば、ある商品を購入したユーザが後に購入する商品を正確に特定できる。
以下、本発明の実施例について添付図面を参照しつつ説明する。
本発明の実施例1に係る情報処理システム1は、図1(a)に示すように、コンピュータ通信網10(以下単に、通信網10という)、本発明の情報処理装置であるサーバ装置100、及び端末装置201から203で構成される。端末装置201から203は、それぞれ同様の構成を有するため、以下、端末装置201についてのみ説明する。
通信網10は、例えば、インターネットで構成される。通信網10は、LAN(Local Area Network)又は公衆回線網であっても良い。
端末装置201は、例えば、LCD(Liquid Crystal Display)などの表示部と、キーボードなどの入力部とを備えたパーソナル・コンピュータで構成される。端末装置201は、ユーザに操作されて、操作に応じた各種の信号を情報処理システム1に入力し、入力された信号に基づいた情報を情報処理装置100へ送信する。また、端末装置201は、情報処理装置100から返信された情報を受信し、受信された情報に基づいて表示部に各種の情報を表示する。
情報処理装置100は、ウェブサーバソフトウェアをインストールされたサーバ機である。情報処理装置100は、端末装置201から送信されたリクエストに応じて、商品を掲載したウェブページ(以下、商品ページという)を返信する。次に、情報処理装置100は、端末装置201のユーザが、商品ページに掲載された商品を購入することを表す情報を端末装置201から受信すると、当該ユーザが当該商品の購入後に購入する商品を特定し、特定した商品の購入を勧めるウェブページ(以下、商品推薦ページという)を返信する。
ここで、複数の商品には、例えば、「1巻目」や「2巻目」などの商品の購入順序があるシリーズ商品がある。また、複数の商品には、例えば、「コーヒーメーカー」と「コーヒー豆」のように、商品の用途などに基づいて定まる購入順序があるものがある。
ここで、商品には、作品を商品化した商品を含むため、複数の商品には、本編作品の商品と続編作品の商品、又は原作作品の商品と派生作品の商品といった商品の関連性に基づいて定まる購入順序があるものがある。尚、原作となった作品を原作作品といい、原作作品から派生して制作された作品を派生作品という。派生作品の例としては、映画作品が制作されることに伴って制作された、映画で用いられる音楽の派生作品が挙げられる。また、ある作品を基準となる基準作品とすると、基準作品の原作作品と派生作品とは、根源的又は派生的に関連しているので、これらを関連作品という。よって、原作作品、派生作品、及び関連作品を商品化した商品をそれぞれ原作商品、派生商品、及び関連商品という。
これらの商品名を有する商品からユーザが購入する商品を特定する情報処理装置100は、図1(b)に示すように、CPU(Central Processing Unit)100a、ROM(Read Only Memory)100b、RAM(Random Access Memory)100c、ハードディスク100d、メディアコントローラ100e、LANカード(Local Area Network)100f、ビデオカード100g、LCD(Liquid Crystal Display)100h、キーボード100i、スピーカ100j、及びマウス100kで構成される。
CPU100aは、ROM100b又はハードディスク100dに保存されたプログラムに従ってソフトウェア処理を実行することで、情報処理装置100の全体制御を行う。RAM100cは、CPU100aによるプログラムの実行時において、処理対象とする情報(つまり、データ)を一時的に記憶する。
ハードディスク100dは、各種の情報(つまり、データ)を保存した表(つまり、テーブル)を記憶する情報記憶部である。尚、情報処理装置100は、ハードディスク100dの代わりに、フラッシュメモリを備えても良い。
図1(b)のメディアコントローラ100eは、フラッシュメモリ、CD(Compact Disc)、DVD(Digital Versatile Disc)、及びブルーレイディスク(Blu-ray Disc)(登録商標)を含む記録媒体から各種のデータ及びプログラムを読み出す。
LANカード100fは、通信網10を介して接続する端末装置201ないし203との間でデータを送受信する。キーボード100i及びマウス100kは、ユーザの操作に応じた信号又は情報を入力する。LANカード100f、キーボード100i、及びマウス100kは、それぞれ情報入力部を構成する。
ビデオカード100gは、CPU100aから出力されたデジタル信号に基づいて画像を描画(つまり、レンダリング)すると共に、描画された画像を表す画像信号を出力する。LCD100hは、ビデオカード100gから出力された画像信号に従って画像を表示する表示部である。なお、情報処理装置100は、LCD100hの代わりに、PDP(Plasma Display Panel)又はEL(Electroluminescence)ディスプレイを備えても良い。スピーカ100jは、CPU100aから出力された信号に基づいて音声を出力する。LANカード100f、LCD100h、及びスピーカ100jは、それぞれ情報出力部を構成する。
情報処理装置100のCPU100aは、図1(b)のハードディスク100dと協働することで、図2に示すような設定記憶部101、商品記憶部102、履歴記憶部103、及びグラフ記憶部104として機能する。
設定記憶部101について説明する前に、商品記憶部102、履歴記憶部103、及びグラフ記憶部104について説明する。商品記憶部102は、図3(a)に示すような、商品を識別する商品IDと、商品を詳細に説明する商品詳細情報と対応付けて保存した商品テーブルTXを記憶する。ここで、商品詳細情報は、例えば、商品名を表す商品名情報と、商品の種類を表す情報と、商品によって提供される作品の種類を表す情報と、商品の画像ファイル名を表す情報と、商品の金額を表す金額情報とを含む。
履歴記憶部103は、図3(b)に示すような、購入履歴を表す履歴情報を保存した履歴テーブルTHを記憶する。履歴テーブルTHは、商品を購入したユーザを識別するユーザIDと、商品を購入した日時を表す購入日時情報と、ユーザが購入した商品の商品IDと、商品の金額情報とを対応付けて保存している。
尚、ユーザは、常に、情報処理装置100を用いて商品を購入する訳ではなく、他のシステムを用いて商品を購入することがある。このため、例えば、ユーザがシリーズ商品である「○○マン 1巻」、「○○マン 2巻」、「○○マン 3巻」、「○○マン 4巻」を購入したとしても、これらの4つの商品の商品IDの全てと、当該ユーザのユーザIDとを履歴テーブルTHが管理しているとは限らない。例えば、ユーザが情報処理装置100を用いて「○○マン 1巻」、「○○マン 2巻」、及び「○○マン 4巻」を購入したが、ユーザの嗜好を良く知る友人から「○○マン 3巻」をプレゼントされた場合などには、商品IDを履歴テーブルTHは、「○○マン 3巻」の商品IDと当該ユーザのユーザIDとを対応付けたデータを有していない。このため、履歴テーブルTHが管理するユーザIDと商品IDとの組合せは、商品のシリーズ順に正しく並んでいるとは限らない。
履歴記憶部103は、図3(c)に示すような、商品購入における前後関係を表す情報を保存した前後関係テーブルTFRを記憶する。前後関係テーブルTFRは、所定期間において、同じユーザによって購入された2つの商品の内、先に購入された商品(以下、先商品という)の商品ID(以下、先商品IDという)と、後に購入された商品(以下、後商品という)の商品ID(以下、後商品IDという)とを対応付けて保存する。また、前後関係テーブルTFRは、先商品IDで識別される先商品が購入された後に、当該先商品を購入したユーザと同じユーザが、後商品IDで識別される後商品を購入した回数(つまり、1ユーザが同じ商品を2回以上購入しないとすると、先商品の後に後商品を購入したユーザ数と同じになる)を、先商品IDと、後商品IDと、処理済フラグとに対応付けて保存している。尚、処理済フラグについては後述する。
グラフ記憶部104は、図4(a)に示すような有向グラフを表す情報を記憶する。ここで、グラフ記憶部104が記憶する有向グラフは、商品を表現するノードと、始点とされたノードから終点とされたノードまでを結ぶ矢印で表されるエッジとを有する。具体的には、ノードi001、ノードi002、ノードi003、及びノードi0004のような、図3(a)の商品テーブルTXに保存された商品ID「x001」、「x002」、「x003」、及び「x004」で識別される商品をそれぞれ表現するノードを複数有する。また、有向グラフは、例えば、ノードi001を始点とし、ノードi002を終点とし、視点から終点へ向かう矢印で表されるエッジv0001のようなエッジを複数有する。エッジv0001は、ノードi001で表現される商品が、ノードi002で表現される商品よりも先に購入された先商品であることを表す。
このため、有向グラフを表す情報は、ノードを表す情報と、エッジを表す情報とを含む。よって、グラフ記憶部104は、ノードを表す情報を保存するノードテーブルTNと、エッジを表す情報を保存するエッジテーブルTEとを記憶している。
ノードテーブルTNは、図4(b)に示すように、ノードを識別するノードIDと、ノードで表現される商品の商品IDとを対応づけて保存する。エッジテーブルTEは、図4(c)に示すように、エッジを識別するエッジIDと、エッジの始点とされたノード(以下、始点ノードという)のノードID(以下、始点ノードIDという)と、エッジの終点とされたノード(以下、終点ノードという)のノードID(以下、終点ノードIDという)とを対応付けて保存している。尚、連鎖数については後述する。
設定記憶部101は、各種の設定値が保存される電子ファイル(以下、設定ファイルという)を記憶する。ここで、設定ファイルに保存される設定値は、商品の前後関係を特定するために用いられる所定の定数Kの設定値が含まれる。また、設定ファイルに保存される設定値は、前後関係を有すると特定された先商品と後商品とが関連性を有するか否か(例えば、ユーザは、先商品と後商品とが関連性を有するから先商品の購入後に後商品を購入したのか、単なる偶然であるか)を判別するために用いられる所定の定数Hに設定される設定値もさらに含まれる。この定数Kの設定値及びこの定数Hの設定値は、端末装置201によって変更されても良いし、工場出荷の段階で予め定められていても良い。また、定数Kの設定値は「1」より大きい値であり、例えば、「3」として良い。定数Hの設定値は「0」より大きく、かつ「1」より小さい値であり、例えば、「0.03」として良い。
情報処理装置100のCPU100aは、上記情報を用いて、図5(a)に示すような、ユーザが商品を購入する購入順序を特定する順序特定処理を実行する。これにより、CPU100aは、図2に示すような初期化部111、ノード追加部112、前後関係特定部113、回数算出部114、回数判定部115、エッジ削除部116、エッジ追加部117、購入順序取得部118、及び商品指定部193として機能する。尚、順序特定処理は、例えば、1週間などの設定ファイルに保存された設定値の周期で実行される。
図5(a)の順序特定処理の実行を開始すると、図2の初期化部111は、初期化処理を実行する(ステップS01)。具体的には、初期化部111は、図4(b)のノードテーブルTN及びエッジテーブルTEから全レコードを削除することで、有向グラフがノード及びエッジを有しないように初期化する。また、初期化部111は、設定記憶部101に記憶された設定ファイルから、定数K及び定数Hに設定する設定値をそれぞれ読み出し、読み出した値を定数K及び定数Hにそれぞれ設定する。
次に、ノード追加部112は、ノード追加処理を実行する(ステップS02)。具体的には、ノード追加部112は、図3(a)の商品テーブルTXを読み出し、商品テーブルTXに保存された商品IDのそれぞれについて、図3(b)の履歴テーブルTHから商品の販売数量を算出する。次に、ノード追加部112は、算出された販売数量が所定の閾値(例えば、「1000」個)以上の商品についてそれぞれノードIDを生成する。その後、ノード追加部112は、読み込んだ商品IDと、生成したノードIDとを対応づけて、図4(b)のノードテーブルTNに追加する。
その後、図6のエッジ追加処理の実行が開始されると、図2の前後関係特定部113は、図3(b)の履歴テーブルTHに保存された複数の商品IDでそれぞれ識別される商品の前後関係を特定する前後関係特定処理を実行する(ステップS11)。
具体例として、前後関係特定部113は、履歴テーブルTHの先頭から1レコード読み出してから、読み出したレコードに保存された商品IDとユーザIDと購入日時情報とを取得した後に、取得された商品IDを先商品IDとする。次に、前後関係特定部113は、取得された購入日時情報で表される購入時刻から所定時間後の時間までの時刻を表す情報と、取得されたユーザIDとを保存したレコードを履歴テーブルTXから検索する。尚、この所定時間は、例えば、端末装置201によって指定され、設定ファイルに保存されているとしても良い。
その後、前後関係特定部113は、検索されたレコード毎に、検索されたレコードに保存された商品ID(つまり、後商品ID)を取得する。これによって、前後関係特定部113は、取得されたユーザIDで識別されるユーザが、取得された購入日時情報で表される時刻に、取得された先商品IDで識別される商品を購入してから所定時間以内に購入した後商品の商品IDを取得できる。
その後、前後関係特定部113は、図3(c)の前後関係テーブルTFRから、取得された先商品IDと、取得された後商品IDとを保存したレコードを検索し、レコードが検索された場合には、検索されたレコードに保存された情報で表される回数を値「1」だけ増加した値に更新する。これに対して、レコードが検索されなかった場合には、取得された先商品IDと、取得された後商品IDと、購入回数「1」と、オフ状態の処理済みフラグとを対応付けた情報を保存したレコードを前後関係テーブルTFRに追加する。本実施例において、1ユーザは1つの商品を1回しか購入しないと仮定し、同一ユーザ、同一先商品ID、同一後商品IDに対しては、1度しか購入回数をインクリメントしないとしても良い。また、これに限定されるのではなく、1ユーザは1つの商品を何回も購入すると仮定し、同一ユーザ、同一先商品ID、同一後商品IDに対して、検索されたレコードがある限り、何度でも購入回数をインクリメントするとしても良い。その後、前後関係特定部113は、読み出しの対象としたレコードの次のレコードを履歴テーブルTHから読み出し、履歴テーブルTXから読み出すレコードが無くなるまで、上記処理を繰り返す。
図6のステップS11を実行した後に、図2の回数算出部114は、図3(c)の前後関係テーブルTFRの処理済みフラグがオフ状態のレコード(以下、未処理のレコードという)の全てを処理したか否かを判別する(ステップS12)。尚、処理済みフラグは、オン状態でエッジ追加処理におけるステップS13からS23の処理対象とされたことを表し、オフ状態で処理対象とされていないことを表す。
ステップS12において、回数算出部114は、全ての未処理のレコードを処理した訳ではないと判別した場合には(ステップS12;No)、未処理のレコードの1つを注目レコードとする(ステップS13)。次に、回数算出部114は、注目レコードに保存された先商品IDを注目先商品IDとし、注目先商品IDに基づいて未処理のレコードを検索する。その後、回数算出部114は、検索された未処理のレコードに保存された後商品IDと、購入回数とを検索する(ステップS14)。その後、回数算出部114は、検索された全ての後商品IDについて、ステップS16からS23までの処理の対象としたか否かを判別する(ステップS15)。
ステップS15において、回数算出部114は、検索された全ての後商品IDについて処理の対象とした訳ではないと判別された場合(ステップS15;No)、未処理の後商品IDの1つを注目後商品IDとする(ステップS16)。
ここで、理解を容易にするために、注目先商品IDで識別される注目先商品を表現するノードを記号「i」で表し、注目後商品IDで識別される注目後商品を表現するノードを記号「j」で表し、ステップS14で検索された購入回数を記号「n[i,j]」で表す。
ステップS16の後に、回数算出部114は、後商品ID列に注目先商品IDを、先商品ID列に注目後商品IDを保存したレコードを、前後関係テーブルTFRから検索する(ステップS17)。その後、回数算出部114は、検索されたレコードに保存された購入回数を取得する(ステップS18)尚、ステップS18で検索された購入回数を、上記記号を用いて、記号「n[j,i]」で表す。
その後、図2の回数判別部115は、ステップS14の購入回数n[i,j]と、ステップS18の購入回数n[j,i]と、図5(a)のステップS01で設定された定数Kとが、以下の式(1)及び(2)を同時に成立させるという条件1Aを満足するか否かを判別する(ステップS19)。
n[j,i]≦n[i,j]・・・(1)
K×n[j,i]≦n[i,j]・・・(2)
但し、1<K
K×n[j,i]≦n[i,j]・・・(2)
但し、1<K
ここで、ノードiで表現される商品を記号「x」で表し、ノードjで表現される商品を記号「y」で表した場合に、この条件1Aは、例えば、商品xの購入後所定期間内に商品yが購入された回数の方が、商品yの購入後所定期間内に商品xが購入された回数よりもK倍以上多い場合に成立する。ここで、定数Kを好適な値に設定すると、条件1Aは、後商品が、先商品の派生商品であるか、又は先商品の続編商品である場合に成立することが多い。ここで、基準商品の派生商品や、本編作品の続編商品は、基準商品及び本編作品が購入された後に購入されることが多い。このため、これらの構成によれば、条件1Aを満足するか否かに基づいて、先商品を購入したユーザが、先商品を購入してから所定期間内に後商品を購入するということを精度良く特定できる。
図6のステップS19において、エッジ追加部117は、条件1Aが満足されると判別すると(ステップS19;Yes)、図7(a)に示すような、注目先商品を表現するノードiを始点とし、注目後商品を表現するノードjを終点とするエッジv[i,j]を有向グラフに追加する順方向エッジ追加処理を実行する(ステップS20)。
図7(a)の順方向エッジ追加処理を開始すると、エッジ追加部117は、注目先商品IDに基づき、注目先商品を表現するノードのノードIDを、図4(b)のノードテーブルTNから検索する(ステップS31)。次に、エッジ追加部117は、検索されたノードIDを、有向グラフへ新たに追加するエッジの始点ノードIDとする(ステップS32)。
エッジ追加部117は、注目後商品IDに基づき、注目後商品を表現するノードのノードIDを、ノードテーブルTNから検索する(ステップS33)。次に、エッジ追加部117は、検索されたノードIDを、新たに追加するエッジの終点ノードIDとする(ステップS34)。
その後、エッジ追加部117は、新たに追加するエッジを識別するエッジIDを生成する(ステップS35)。次に、エッジ追加部117は、生成されたエッジIDと、始点ノードIDと、終点ノードIDとを対応付けて、図4(c)のエッジテーブルTEに保存する(ステップS36)。その後、エッジ追加部117は、順方向エッジ追加処理の実行を終了する。
図6のステップS19において、エッジ追加部117は、条件1Aが満足されないと判別すると(ステップS19;No)、購入回数n[i,j]と、購入回数n[j,i]と、定数Kとが、以下の式(3)及び(4)を同時に成立させるという条件1Bを満足するか否かを判別する(ステップS21)。
n[i,j]<n[j,i]・・・(3)
K×n[i,j]<n[j,i]・・・(4)
但し、1<K
K×n[i,j]<n[j,i]・・・(4)
但し、1<K
上記と同様に、ノードiで表現される商品を記号「x」で表し、ノードjで表現される商品を記号「y」で表した場合に、この条件1Bは、例えば、商品yの購入後所定期間内に商品xが購入された回数の方が、商品xの購入後所定期間内に商品yが購入された回数よりもK倍より多い場合に成立する。尚、定数Kは、上記と同様に、値「3」として良い。
図6のステップS21において、エッジ追加部117は、条件1Bが満足されないと判別すると(ステップS21;No)、エッジを追加せずにステップS23の処理を実行する。また、条件1B(及び条件1A)が満足されないと判別された場合(ステップS21;No)、注目先ノードを始点ノードとし、かつ注目後ノードを終点ノードとするエッジを有向グラフが既に有している場合には当該エッジを削除し、注目後ノードを始点ノードとし、かつ注目先ノードを終点ノードとするエッジを有向グラフが既に有している場合には当該エッジを削除するとしても良い。これらの構成によれば、例えば、後商品が先商品の関連商品でないため、先商品と後商品とに購入順序の先後関係が無いにも関わらず、先商品を購入したユーザが、先商品を購入してから所定期間内に後商品を購入すると特定することを防止できる。
ステップS21において、エッジ追加部117は、条件1Bが満足されると判別すると(ステップS21;Yes)、図7(b)に示すような、注目後商品を表現するノードjを始点とし、注目先商品を表現するノードiを終点とするエッジv[j,i]を有向グラフに追加する逆方向エッジ追加処理を実行する(ステップS22)。
図7(b)の逆方向エッジ追加処理を開始すると、エッジ追加部117は、注目後商品IDに基づき、注目後商品を表現するノードのノードIDを検索し(ステップS41)し、検索されたノードIDを、新たに追加されるエッジの始点ノードIDとする(ステップS42)。次に、エッジ追加部117は、注目先商品IDに基づき、注目先商品を表現するノードのノードIDを検索し(ステップS43)、検索されたノードIDを、新たに追加されるエッジの終点ノードIDとする(ステップS44)。
その後、エッジ追加部117は、追加されるエッジを識別するエッジIDを生成し(ステップS45)、生成されたエッジIDと、始点ノードIDと、終点ノードIDとを対応付けてエッジテーブルTEに保存する(ステップS46)。その後、エッジ追加部117は、逆方向エッジ追加処理の実行を終了する。
図6のステップS21において、条件1Bが満足されないと判別された場合(ステップS21;No)、ステップS20が実行された後、又はステップS22が実行された後に、エッジ追加部117は、図3(c)の前後関係テーブルTFRにおいて、先商品ID列に注目先商品IDを保存し、後商品ID列に注目後商品IDを保存するレコードの処理済フラグをオン状態に更新し、先商品ID列に注目後商品IDを保存し、後商品ID列に注目先商品IDを保存するレコードの処理済フラグをオン状態に更新する(ステップS23)。その後、ステップS15の処理から、上記処理が繰り返される。
ステップS15において、検索された全ての後商品IDについて処理の対象としたと判別された場合(ステップS15;Yes)、回数算出部114は、ステップS12の処理に戻り上記処理を繰り返す。
ステップS12において、回数算出部114は、全ての未処理のレコードを処理したと判別した場合には(ステップS12;Yes)、エッジ追加処理の実行を終了する。
図5(a)のステップS03の処理を実行した後に、ステップS03で追加されたエッジが適切なエッジであるか否かを見直す、図8に示すようなエッジ見直処理が実行される(ステップS04)。
図8のエッジ見直処理の実行が開始されると、図2の回数算出部114は、図4(c)のエッジテーブルTEから全始点ノードIDを読み込む(ステップS51)。次に、回数算出部114は、読み込まれた全始点ノードIDについて、ステップS53からS58の処理を実行したか否かを判別する(ステップS52)。このとき、回数算出部114は、全始点ノードIDについて処理を実行した訳ではないと判別すると(ステップS52;No)、未処理の始点ノードIDの1つを注目始点ノードIDとする(ステップS53)。次に、回数算出部114は、注目始点ノードIDに基づき、注目始点ノードIDで識別されるノードが表現する商品の商品IDを、図3(a)の商品テーブルTXから検索する(ステップS54)。次に、回数算出部114は、検索された商品IDを注目先商品IDとした後に、注目先商品IDを先商品ID列に保存したレコードを1又は複数検索し、検索されたレコードにそれぞれ保存された購入回数を取得する(つまり、注目先商品IDを先商品IDとして購入回数を検索する)(ステップS55)。その後、回数算出部114は、検索された1又は複数の購入回数の総和を算出する(ステップS56)。
ここで、理解を容易にするために、注目始点ノードを記号「p」で表し、注目始点ノードpを始点とするエッジv[p,q]及びv[p,r]が2つ存在し、それらのエッジの終点ノードを記号「q」及び「r」で表す。この場合、ステップS55で2つの購入回数が検索されるので、それらをそれぞれ記号「n[p,q]」及び「n[p,r]」で表す。また、ステップS56で算出された購入回数を記号「n[p]」で表す。これにより、購入回数n[p]と、購入回数n[p,q]及び購入回数n[p,r]には、以下の式(5)が成立する。
n[p]=[p,q]+[p,r]・・・(5)
次に、回数算出部114は、ステップS55で検索されたレコードから終点ノードIDを1又は複数取り出す(つまり、注目始点ノードIDに基づいて終点ノードIDを検索する)(ステップS57)。その後、回数算出部114は、検索された全ての終点ノードIDについて、ステップS59からS63の処理が実行されたか否かを判別する(ステップS58)。
ステップS58において、回数算出部114は、全ての終点ノードIDについて処理をした訳ではないと判別すると(ステップS58;No)、未処理の終点ノードIDの1つを注目終点ノードIDとする(ステップS59)。その後、回数算出部114は、注目終点ノードIDに基づき、注目終点ノードIDで識別されるノードが表現する商品の商品IDを図3(a)の商品テーブルTXから検索する(ステップS60)。その後、回数算出部114は、検索された商品IDを注目後商品IDとし、当該注目後商品IDと、ステップS54で検索された注目先商品IDとに基づいて、購入回数を、図3(c)の前後関係テーブルTFRから検索する(ステップS61)。ここで、理解を容易にするため、注目先商品を表現する注目始点ノードを記号「p」で表し、注目後商品を表現する注目終点ノードを記号「q」で表し、ステップS61の購入回数を記号「n[p,q]」で表す。
その後、図2の回数判定部115は、ステップS56の購入回数n[p]と、ステップS61の購入回数n[p,q]と、図5(a)のステップ01で設定された定数Hとが、以下の式(6)を成立させるという条件2を満足するか否かを判別する(ステップS62)。
n[p,q]/n[p]≦H・・・(6)
但し、0<H<1
但し、0<H<1
ここで、ノードpで表現される商品を記号「x’」で表し、ノードqで表現される商品を記号「y’」で表し、ノードrで表現される商品を記号「z’」で表した場合に、この条件2は、例えば、商品x’の購入後所定期間内に購入された商品(例えば、商品y’及び商品z’)の総数に対して、商品x’の購入後所定期間内に購入された商品y’の数の割合が、定数H以下である場合に成立する。ここで、定数Hを好適な値に設定すると、条件2は、例えば、後商品が先商品の派生商品の派生商品である場合や、後商品が先商品の続編商品の続編商品である場合など、後商品が先商品から直接的に派生した商品で無い場合に成立することが多い。このため、これらの構成によれば、条件2を満足するか否かに基づいて、先商品を購入したユーザが、先商品を購入してから所定期間内に最初に購入する商品が後商品と異なるということを精度良く特定できる。
図8のステップS62において、図2のエッジ削除部115は、条件2が満足されたと判別すると(ステップS62;Yes)、図4(c)のエッジテーブルTEに保存されたレコード(以下、エッジレコードという)であって、注目始点ノードID及び注目終点ノードIDを保存するレコードを削除した後に(ステップS63)、ステップS58から上記処理を繰り返す。このため、これらの構成によれば、後商品が先商品から直接的に派生した商品で無いにも関わらず、先商品を購入したユーザが、先商品の次に購入する商品が後商品であると特定することを防止できる。
ステップS62において、エッジ削除部115が、条件2は満足されないと判別した場合(ステップS62;No)、ステップS63の処理を実行せずに、ステップS58から上記処理が繰り返される。
ステップS58において、回数算出部114は、全ての終点ノードIDについて処理をしたと判別すると(ステップS58;Yes)、ステップS52から上記処理が繰り返される。
ステップS52において、回数算出部114は、全始点ノードIDについて処理を実行したと判別すると(ステップS52;Yes)、エッジ見直処理の実行を終了する。
図5(a)のステップS04の実行が終了すると、複数の商品を購入する購入順序(以下、インデックスともいう)を取得する、図9に示すような購入順序取得処理が実行される(ステップS05)。
図9の購入順序取得処理を開始すると、図2の商品指定部192は、図4(c)のエッジテーブルTEから、純始点ノードIDを全て読み込む(ステップS71)。尚、純始点ノードIDとは、始点ノードであるが、他のエッジの終点ノードとされていないノードをいう。具体的には、商品指定部192は、エッジテーブルTEにおいて、始点ノードID列に保存されており、かつ終点ノードID列に保存されていないノードIDを純始点ノードのノードIDとして読み出す。この構成によれば、他のエッジの始点となっていない始点ノードから順に、エッジに従ってノードを抽出するため、商品の購入順序を効率良く少ない計算量で特定できる。
次に、商品指定部192は、読み込まれた全ての始点ノードIDについて、ステップS73からS80の処理を実行したか否かを判別する(ステップS72)。このとき、商品指定部192は、全ての始点ノードIDについて処理した訳ではないと判別すると(ステップS72;No)、未処理の始点ノードIDの1つを注目ノードIDと指定する(ステップS73)。
次に、購入順序取得部118は、注目ノードIDで識別される注目ノードを、ノード探索(以下、ノード抽出ともいう)の始端(開始点)とした場合に探索(抽出)されたノードのノードIDを格納する抽出ノードリスト(以下、注目ノード用の抽出ノードリストという)を生成する(ステップS74)。次に、購入順序取得部118は、ノードが抽出された順序を表す順序変数の値に「1」を代入することで初期化する(ステップS75)。その後、購入順序取得部118は、注目ノードIDで識別される注目ノードを探索されたノードであるとして有向グラフから抽出し、注目ノードIDと順序変数の値とを抽出ノードリストに追加する(ステップS76)。次に、購入順序取得部118は、図4(c)のエッジテーブルTEから、注目ノードIDに基づいて、注目ノードIDで識別される注目ノードの子ノードを検索する(ステップS77)。尚、あるノードの子ノードとは、当該ノードの終点ノードをいう。同様に、ある子ノードの孫ノードとは、当該子ノードの終点ノードをいう。これらに対して、あるノードの親ノードとは、当該ノードの始点ノードをいう。
例えば、図10(a)に示すように、注目ノードIDが「i001」であるとすると、注目ノードは、「v001」、「v002」、及び「v003」のエッジIDで識別される3つのエッジの始点ノードである。よって、「i001」で識別される注目ノードは、「i002」、「i003」、及び「i004」でそれぞれ識別される3つの子ノードを有する。「i002」、「i003」、及び「i004」でそれぞれ識別されるノードは、「v001」、「v002」、及び「v003」でそれぞれ識別されるエッジの終点ノードだからである。
図9のステップS77を実行した後に、購入順序取得部118は、子ノードで構成されるノード群を有向グラフから取得する(ステップS78)。具体的には、購入順序取得部118は、検索された子ノードIDを保持した子ノードリストを生成する。例えば、図10(a)に示すように、注目ノードIDが「i001」であるとすると、図10(b)に示すような「i002」、「i003」、及び「i004」というIDで識別される3つの子ノードで構成されるノード群を取得する。
その後、購入順序取得部118は、取得したノード群から既に抽出された1又は複数のノードを除去する(ステップS79)。具体的には、購入順序取得部118は、子ノードリストから、抽出ノードリストが保持するノードIDを削除する。この構成によれば、同じユーザが、同じ商品を2回以上購入しないとする場合に、商品の購入順序を正確に特定できるだけでなく、商品の購入順序を特定するのに要する計算量を削減できる。これに対して、情報処理装置100が販売する商品が日用品である場合など、同じユーザが同じ商品を2回以上すると考えられる場合には、ステップS79の処理を実行しなくても良い。この構成によれば、同じユーザが、同じ商品を2回以上購入する場合に、商品の購入順序を正確に特定できる。
ステップS79の後に、購入順序取得部118は、所定の終了条件X1が満足されたか否かを判別する(ステップS80)。ここで、終了条件X1は、例えば、図10(d)に示すように、ステップS78で取得されたノード群から、ステップS79で抽出済みのノードを除去した後のノード群を構成するノードが無くなるという条件である。このとき、終了条件X1が成立すると判別された場合には(ステップS80;Yes)、購入順序取得部118は、ステップS79に戻り上記処理を繰り返す。これに対して、終了条件X1が成立しないと判別された場合には(ステップS80;No)、購入順序取得部118は、ノード群を構成するノードから1つのノードを抽出する(ステップS81)。
例えば、購入順序取得部118は、孫ノードが多い子ノード(つまり、子ノードが多いノード)を優先的に抽出する。具体例として、図10(a)に示すように、ノード群を構成するノードがノードi002、i003、及びi004の3つの子ノードである場合に、孫ノードが最も多いノードi002を抽出する。同じノード群を構成する子ノードの内で、孫ノードが多いノードは、例えば、孫ノードが少ない子ノードよりも、先に購入される商品を表現すると考えられるためである。よって、これらの構成によれば、商品の購入順序を、(例えば、後述する連結数に基づいてノードを抽出する実施例、及びノード群を構成し直す実施例に比べて)少ない計算量で高速に特定できる。よって、情報処理装置100が販売する商品が増加しても、商品の販売順序を特定するために必要な計算量の増加を抑制できる。
次に、購入順序取得部118は、順序変数の値を「1」だけインクリメントする(ステップS82)。その後、購入順序取得部118は、注目ノードを抽出されたノードに再設定する(ステップS83)。その後、購入順序取得部118は、注目ノードIDと順序変数の値とを抽出ノードリストに追加する(ステップS84)。その後に、購入順序取得部118は、所定の終了条件X2が満足されたか否かを判別する(ステップS85)。ここで、終了条件X2は、例えば、設定ファイルに保持された所定の抽出数の上限に、順序変数(つまり、抽出されたノードの数)が達したという条件である。ここで、例えば、漫画商品の場合には、数十巻程度までシリーズ化しているものが普通である。一方で、映画商品の場合には、数十もシリーズ化することは稀である。よって、これらの構成によれば、情報処理装置100が販売する商品の種類によって、抽出数の上限を適切に設定することで、関連が少ない商品についてまで購入順序を特定してしまうことを防止できるだけでなく、購入順序の特定に要する計算量を軽減できる。また、例えば、漫画商品であれば、1日で数冊の本を読破できるが、映画商品であれば1日で鑑賞可能な作品数はせいぜい1又は2作品である。このため、例えば、情報処理装置100が販売する商品の種類によって、抽出数の上限を適切に設定することで、ユーザが購入する量を超えた商品についてまで購入順序を特定してしまうことを防止できるだけでなく、購入順序の特定に要する計算量を軽減できる。
ステップS85において、購入順序取得部118は、終了条件X2が満足されたと判別する場合には(ステップS85;Yes)、ステップS72に戻り上記処理を繰り返す。これに対して、購入順序取得部118は、終了条件X2が満足されないと判別する場合には(ステップS85;No)、ステップS79に戻り上記処理を繰り返す。尚、条件X2の成立を判別するステップS85の処理を省略しても良い。
ステップS72において、商品指定部192は、全ての始点ノードIDについて処理したと判別すると(ステップS72;Yes)、購入順序取得処理の実行を終了する。
本実施例において、購入順序取得部118は、図10(a)に示すような、商品x001が指定された場合に、指定商品x001を表現するノードi001(以下、指定ノードi001という)の子ノードi002からi004で構成されるノード群を取得し、この取得されたノード群のみからノード抽出を繰り返すとして説明した。つまり、ステップS78でノード群を取得すると、購入順序取得部118は、1回目にステップS79を実行することで、注目ノードi001をノード群から除去し、ノード群を図10(b)に示すような群に更新する。その後、購入順序取得部118は、2回目にステップS79を実行することで、抽出された注目ノードi002を図10(b)のノード群から除去し、ノード群を図10(c)に示すような群に更新する。同様に、購入順序取得部118は、3回目にステップS79を実行することで、抽出された注目ノードi003を図10(c)のノード群から除去することで、ノード群を図10(d)に示すような群に更新する。その後、ノード群を構成するノードが存在しなくったので、購入順序取得部118は、終了条件1Xが成立したと判別する。
しかし、これに限定される訳でなく、購入順序取得部118は、図10(a)に示すような、指定商品x001を表現するノードi001の子ノードi002からi004で構成されるノード群から子ノードを抽出すると、抽出された子ノードの孫ノードを新たに検索し、図10(e)に示すような、検索された孫ノードで構成される群にノード群を更新する実施例を採用できる。つまり、購入順序取得部118は、ノードi001の子ノードであり、かつ子ノードi002の孫ノードでもあるノードi003及びi004だけでなく、ノードi001の子ノードでないが、子ノードi002の孫ノードでもあるノードi005でも構成されるノード群を取得する構成を採用できる。このノード群を更新する実施例の購入順序取得処理において、購入順序取得部118は、図9(b)に示すように、図9(a)のステップS85で終了条件X2が満足されないと判別されると(ステップS85;No)、ステップS79ではなく、ステップS77に戻り処理を繰り返せばよい。これらの構成によれば、例えば、指定商品の購入時期から所定期間までの期間よりも遅く購入された商品など、指定商品の購入から所定期間内に購入された商品でないものについても、指定商品から開始した商品の購入順序を特定できる。また、これらの構成によれば、例えば、指定商品と直接的に関連がない商品のような、直接的に指定商品との間で購入時期の先後関係がない商品についても、指定商品から開始した商品の購入順序を特定できる。
図5(a)のステップS05の処理を終了すると、購入順序取得部118は、ステップS05で生成された1又は複数の注目ノード用の抽出ノードリストを併合して、購入順序を表すグラフを生成する購入順序グラフ生成処理を実行した後に(ステップS06)、順序特定処理の実行を終了する。
ステップS06の具体例としては、例えば、注目ノードi001用の抽出ノードリストにおいて、図11(a)に示すように、1番にノードi001、2番にノードi002、3番にノードi003、4番にノードi004が保持されているとする。同様に、注目ノードi002用の抽出ノードリストにおいて、図11(b)に示すように、1番にノードi002及び2番にノードi003が保持されているとし、注目ノードi003用の抽出ノードリストにおいて、図11(c)に示すように、1番にノードi003及び2番にノードi004が保持されているとし、注目ノードi004用の抽出ノードリストにおいて、図11(d)に示すように、1番にノードi004及び2番にノードi005が保持されているとし、注目ノードi006用の抽出ノードリストにおいて、図11(f)に示すように、1番にノードi006、2番にノードi004が保持されているとする。この場合、購入順序取得部118は、注目ノードi001用の抽出ノードリスト、注目ノードi002用の抽出ノードリスト、注目ノードi003用の抽出ノードリスト、注目ノードi004用の抽出ノードリスト、及び注目ノードi006用の抽出ノードリストを併合することで、図11(g)に示すような購入順序グラフを生成する。
情報処理装置100のCPU100aは、図12に示すような、ユーザに対して商品を販売する商品販売処理を実行する。これにより、CPU100aは、図2に示すような情報入力部191、商品販売部192、商品指定部193、商品推薦部194、及び情報出力部195として機能する。尚、商品販売処理は、例えば、端末装置201からリクエストを受信する毎に実行される。
図12の商品販売処理を開始すると、情報入力部191は、端末装置201を操作するユーザのユーザID及びパスワードを受信入力する(ステップS91)。商品販売部192は、端末装置201を操作するユーザがユーザ認証をクリアするか否かを判別する(ステップS92)。このとき、ユーザ認証をユーザがクリアしないと判別されると(ステップS92;No)、商品販売処理の実行を終了する。これに対して、商品販売部192が、ユーザ認証をユーザがクリアしたと判別すると(ステップS92;Yes)、商品販売部192は、図3(a)の商品テーブルTXから、ユーザによって検索された商品の商品詳細情報を検索する(ステップS98)。その後、情報出力部195は、図13(a)に示すようなウェブページ(以下、商品詳細ページという)を端末装置201へ送信する(ステップS93)。端末装置201は、商品詳細ページを受信した後に、受信されたページを表示する。尚、図13(a)の商品詳細ページには、商品詳細情報で表される商品の種類、商品名、商品の値段、及び商品の画像などが掲載されている。
その後、端末装置201のユーザは、表示された商品詳細ページを閲覧し、商品を購入するか否かを決定する。ユーザが商品を購入すると決定した場合には、ユーザは、端末装置201の入力部を操作することで、購入の意思を表す情報及び決済に関する情報を端末装置201に入力させ、入力された情報を情報端末装置100へ送信させる。
その後、情報入力部191は、端末装置201から購入の意思を表す情報及び決済に関する情報を受信入力する。次に、商品販売部192は、受信した情報に基づいて商品が購入されたか否かを判別する(ステップS94)。このとき、商品販売部192は、商品が購入されたと判別すると(ステップS94;Yes)、購入された商品の商品IDと、ステップS91で取得されたユーザIDと、商品が購入された日時を表す情報とを対応付けて、図3(b)の履歴テーブルTHに保存する(ステップS95)。次に、商品推薦部193は、商品を購入したユーザに対して購入を勧める商品を推薦する、図14に示すような商品推薦処理を実行した後に(ステップS96)、ステップS97の処理を実行する。
尚、商品の購入を勧める商品推薦処理の実行タイミングは、商品の購入直後に限定されるものではない。例えば、ユーザがログインしてから商品詳細ページが送信される前、商品詳細ページが送信された後にユーザが商品を購入する前において実行されても良い。この場合、ステップS91のユーザ認証において取得されたユーザIDに基づいて、ユーザが過去に購入した商品を(特に、最後に購入した商品を)、後述する指定商品として商品推薦処理を実行しても良い。また、商品推薦処理によって推薦される商品は、商品推薦処理の実行前に表示されていたウェブページのトップ、又はログイン後に表示されるトップページのレコメンド枠に表示されても良い。
ステップS92において、認証をクリアしなかったと判別された場合、ステップS94において、商品が購入されなかったと判別された場合(ステップS94;No)、及びステップS96の処理が終了した場合には、端末装置201から受信した情報に基づき、端末装置201においてログアウトされたか否かを判別する(ステップS97)。このとき、商品販売部192は、ログアウトされたと判別した場合には(ステップS97;Yes)、ユーザがログアウトしたことを表す情報をハードディスク100dなどに保存するなどの処理を行った後に商品販売処理の実行を終了する。これに対して、商品販売部192は、ログアウトされなかったと判別した場合には(ステップS97;No)、ステップS93から上記処理を繰り返す。
図14の商品推薦処理を開始すると、商品推薦部193は、推薦する商品の商品名と、推奨する購入順序とを保持する推薦商品リストを生成し、生成したリストを初期化する(ステップS111A)。次に、商品推薦部193は、推奨する購入順序を表す順序変数の値に「0」を代入することで初期化する(ステップS111B)。
その後、商品推薦部193は、商品指定部193から指定された指定商品の商品IDを取得する(ステップS112)。尚、商品指定部193は、購入された商品(以下、購入商品という)を指定商品と指定するので、商品推薦部193は、指定商品の商品ID(以下、購入商品ID)を取得する。次に、商品推薦部193は、指定商品を注目商品とする(ステップS113)。その後、商品推薦部193は、注目商品の商品ID(つまり、注目商品ID)に基づいて、図4(b)のノードテーブルから注目商品を表現する注目ノードの注目ノードIDを検索する(ステップS114)。
その後、商品推薦部193は、検索された注目ノードIDに基づいて、図5(a)のステップS06で生成された購入順序グラフから、注目ノードの子ノードIDを検索する(ステップS115)。その後、商品推薦部193は、注目ノードが終端ノードである(つまり、注目ノードの子ノードが存在しない)という条件Y1を満足するか否か判別する(ステップS116)。
ステップS116において、商品推薦部193は、条件Y1が満足されないと判別すると(ステップS116;No)、子ノードIDに基づき、子ノードで表現される商品の商品IDを、図4(b)のノードテーブルから検索する(ステップS117)。その後、商品推薦部193は、検索された商品IDが、購入商品ID(つまり、指定商品ID)と同じであるという条件Y2を満足するか否か判別する(ステップS118)。
これは、例えば、図5(a)のステップS06の処理によって、既に説明した図11(a)から図11(d)に示すような抽出ノードリストと、図11(e)に示すような、1番にノードi005及び2番にノードi001が保持されている抽出ノードリストとが併合されると、図11(h)に示すような、環状の購入順序グラフが生成されるためである。つまり、ユーザは1つの商品を1回だけ購入すると仮定する場合には、指定商品がノードi001で表現される商品である場合に、ノードi002、ノードi003、ノードi004、及びノードi005でそれぞれ表現される商品を推薦商品とした後に、ノードi001で表現される指定商品を再度購入するように勧めてしまうことを防止できる。
ステップS118において、商品推薦部193は、条件Y2が満足されないと判別すると(ステップS118;No)、検索された商品IDに基づいて商品名情報を、図3(a)の商品テーブルTXから検索する(ステップS119)。その後、商品推薦部193は、順序変数の値を「1」だけインクリメントする(ステップS120)。次に、商品推薦部193は、検索された商品名情報で表される商品名と、順序変数で表される順序とを、推薦商品リストに追加する(ステップS121)。その後、商品推薦部193は、順序変数が、例えば、設定ファイルに設定された指定枠数と等しいという条件Y3を満足するか否か判別する(ステップS122)。尚、指定枠数とは、例えば、図13(d)に示すような、商品推薦ページに掲載される推薦商品の数をいう。この構成によれば、商品推薦ページに掲載される推薦商品の数だけ推薦する商品を特定するので、指定枠数よりも多い商品を推薦商品とすることを防止し、無駄な演算が行われることを抑制できる。
ステップS122において、商品推薦部193は、条件Y3が満足されないと判別すると(ステップS122;No)、検索された子ノードのノードIDを、注目ノードIDとした後に(ステップS123)、ステップS115から上記処理を繰り返す。
ステップS116において、条件Y1が成立したと判別された場合(ステップS116;Yes)、ステップS118において、条件Y2が成立したと判別された場合(ステップS118;Yes)、又はステップS122において、条件Y3が成立したと判別された場合(ステップS122;Yes)、商品推薦部193は、推薦商品リストに保持された順に推薦商品と、推薦商品の購入を推奨する順番とを掲載する商品推薦ページを生成し、商品推薦部193は、生成された商品推薦ページを端末装置201へ送信出力するように情報出力部195を制御する(ステップS124)。その後、商品推薦部193は、商品推奨処理の実行を終了する。これらの構成によれば、ある商品を購入したユーザが、当該商品の購入後に購入する複数の商品を、当該ユーザが購入する順序と共に推薦することができる。このため、当該ユーザが、当該購入された商品の続編商品又は派生商品などの関連商品を知らない場合であっても、当該ユーザは、当該購入された商品の関連商品を、関連した順に(つまり、派生順又は継続順)に購入できる。
尚、終了条件Y2の成立を判別するステップS118の処理、又は終了条件Y3の成立を判別するステップS122の処理のいずれか1つを省略しても良い。
次に、実施例2について説明を行う。尚、実施例1とに共通する構成については説明を省略する。
実施例2の情報処理装置は、図5(b)に示すような順序特定処理を実行する。実施例2の順序特定処理は、図5(a)に示した実施例1の順序特定処理におけるステップS01の初期化処理、ステップS02のノード追加処理、ステップS03のエッジ追加処理、及びステップS04のエッジ見直処理に相当する処理(ステップS201からS204)を有するが、ステップS05の購入順序取得処理及びステップS06の購入順序グラフ生成処理に相当する処理を有しない。
実施例2の情報処理装置は、図5(b)に示すような順序特定処理を実行する。実施例2の順序特定処理は、図5(a)に示した実施例1の順序特定処理におけるステップS01の初期化処理、ステップS02のノード追加処理、ステップS03のエッジ追加処理、及びステップS04のエッジ見直処理に相当する処理(ステップS201からS204)を有するが、ステップS05の購入順序取得処理及びステップS06の購入順序グラフ生成処理に相当する処理を有しない。
実施例2の情報処理装置は、図5(b)の順序特定処理(つまり、初期化処理、ノード追加処理、エッジ追加処理、及びエッジ見直処理までの処理)を、例えば、1週間などの予め定められた周期で実行し、実行により生成された有向グラフを表す情報をグラフ記憶部に記憶しておく。その後、情報処理装置は、端末装置のユーザが商品を購入する度に、グラフ記憶部に記憶された情報で表される有向グラフから商品の購入順序を特定し、商品を推薦する、図15に示すような商品推奨処理を実行する。
図15の商品推奨処理の実行を開始すると、情報処理装置は、図14のステップS111AからS114までの処理と同様の処理を実行する(ステップS221AからS214)。その後、情報処理装置は、図9のステップS77からS85の処理と同様の処理を実行する(ステップS277からS285)。
ここで、ステップS281において、情報処理装置は、ノード群を構成するノードの内で、注目ノードからみた連鎖数が多い程大きい値となる優先度を、以下の式(7)に従って算出し、算出された優先度の大きいノードを優先的に抽出する。
ここで、図10(a)に示すような、ノードi001からみたノードi002の連鎖数とは、当該ノードi002の親ノードi001から出発して、当該親ノードi001の子ノードi002、i003、及びi004をそれぞれ最大1回だけ辿る複数の経路の内で、当該ノードi001へ最初に移動する経路であって、最も長い(つまり、経路上のノード数が多い)経路上のノード数(親ノード及び子ノードの数)をいう。図10(a)に示すノードi001からみたノードi002の連鎖数は、ノードi001からi002に移動してから、ノードi002からi003に移動し、その後ノードi003からi004に移動する経路が最も長い経路である。このため、ノードi001からみたノードi002の連鎖数は、当該最長経路上のノードi001、i002、i003、及びi004の数「4」と算出される。
よってこれらの構成によれば、商品を購入したユーザが、当該商品の購入後所定期間において購入する商品及び商品の購入順序をより多く特定できる。また、最も連鎖数が多いノードで表現される商品は、他のノードで表される商品の内で最先に購入される商品であることが多い。また、最も連鎖数が多いノードで表現される商品は、他のノードで表される商品の本編作品又は原作作品である場合が多い。このため、これらの構成によれば、ユーザが購入した商品に関連したより多くの商品を推薦できる。
尚、ノード群に含まれる各ノードの優先度を総和すると値「1」となる。このため、情報処理装置は、上式(7)を用いて算出された各ノードの優先度を抽出確率として用い、ステップS281の処理を実行する毎に、ノード群に含まれるノードをランダムに抽出しても良い。この構成によれば、例えば、商品を購入したユーザが購入する可能性が高いものを、可能性の高い順序でユーザに推薦することができる。また、この構成によれば、商品推奨処理が実行される毎に、ユーザに対して推薦する商品を異ならせることができる。
ここで、ステップS284において、情報処理装置は、図9のステップS84と異なり、注目ノードIDと順序変数とを、抽出ノードリストではなく推薦商品リストに追加する。
また、ステップS280において、条件X1が成立したと判別された場合(ステップS280;Yes)、又はステップS285において、条件X2が成立したと判別された場合(ステップS285;Yes)、情報処理装置は、図14のステップS124と同様の処理を実行する(ステップS294)。その後、情報処理装置は、商品推奨処理の実行を終了する。
これらの構成によれば、実施例2の情報処理装置は、商品が購入される度に、既に記憶された有向グラフを表す情報を用いて、購入された商品の後に購入される商品のみを特定する。このため、情報処理装置が販売する商品の種類が増加しても(つまり、図3(a)の商品テーブルTXに保存された商品IDが増加しても)、ある商品が購入されてから所定時間内に購入される商品数は通常変化しないのだから、ある商品を購入したユーザが、当該商品の購入後に購入する商品及び購入順序を特定するために必要な計算量の増加を抑制できる。
本発明に係る機能を実現するための構成を備えた情報処理装置として提供できることはもとより、複数の装置で構成される情報処理システムであって、本発明に係る機能を実現するための構成をシステム全体として備えた情報処理システムとして提供することもできる。
なお、本発明に係る機能を実現するための構成を予め備えた情報処理装置として提供できることはもとより、プログラムの適用により、既存の情報処理装置を本発明に係る情報処理装置として機能させることもできる。すなわち、上記実施例1で例示した情報処理装置100又は上記実施例2で例示した情報処理装置による各機能構成を実現させるための情報処理プログラムを、既存の情報処理装置を制御するコンピュータ(CPUなど)が実行できるように適用することで、本発明に係る情報処理装置100として機能させることができる。
このようなプログラムの配布方法は任意であり、例えば、メモリカード、CD−ROM、又はDVD−ROMなどの記録媒体に格納して配布できる他、インターネットなどの通信媒体を介して配布することもできる。また、本発明に係る情報処理方法は、本発明に係る情報処理装置100を用いて実施できる。
以上本発明の好ましい実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
10:通信網
100:情報処理装置
201〜203:端末装置
100a:CPU
100b:ROM
100c:RAM
100d:ハードディスク
100e:メディアコントローラ
100f:LANカード
100g:ビデオカード
100h:LCD
100i:キーボード
100j:スピーカ
100k:マウス
101:設定記憶部
102:商品記憶部
103:履歴記憶部
104:グラフ記憶部
111:初期化部
112:ノード追加部
113:前後関係特定部
114:回数算出部
115:回数判定部
116:エッジ削除部
117:エッジ追加部
118:購入順序取得部
191:情報入力部
192:商品販売部
193:商品指定部
194:商品推薦部
195:情報出力部
201,202:端末装置
100:情報処理装置
201〜203:端末装置
100a:CPU
100b:ROM
100c:RAM
100d:ハードディスク
100e:メディアコントローラ
100f:LANカード
100g:ビデオカード
100h:LCD
100i:キーボード
100j:スピーカ
100k:マウス
101:設定記憶部
102:商品記憶部
103:履歴記憶部
104:グラフ記憶部
111:初期化部
112:ノード追加部
113:前後関係特定部
114:回数算出部
115:回数判定部
116:エッジ削除部
117:エッジ追加部
118:購入順序取得部
191:情報入力部
192:商品販売部
193:商品指定部
194:商品推薦部
195:情報出力部
201,202:端末装置
Claims (16)
- 商品を購入したユーザを示すユーザ情報と、前記ユーザが前記商品を購入した購入日時を示す情報と、前記商品を示す商品情報と、を複数記憶する履歴記憶部、
前記複数の商品情報で示される商品のそれぞれを表現するノードと、第一の商品と第二の商品とが前記ユーザにより購入された順序を表現するエッジと、を備える有向グラフを記憶可能なグラフ記憶部、
前記有向グラフが備える2つのノードi,jについて、前記ノードiにより表現される商品xが購入された後に前記ノードjにより表現される商品yが購入された購入数n[i,j]と、前記商品yが購入された後に前記商品xが購入された購入数n[j,i]と、を、前記履歴記憶部から取得し、1より大きい定数Kについて、
(1)K×n[j,i]≦n[i,j]が成立すれば、前記ノードiを始点とし前記ノードjを終点とするエッジv[i,j]を、前記有向グラフに追加し、
(2)K×n[i,j]≦n[j,i]が成立すれば、前記ノードjを始点とし前記ノードiを終点とするエッジv[j,i]を、前記有向グラフに追加する、
追加部、
を備えることを特徴とする情報処理装置。 - 請求項1に記載の情報処理装置であって、
前記追加部によるエッジの追加がされた後、前記グラフ記憶部に記憶された有向グラフが備える3つのノードp,q,rについて、前記有向グラフが前記ノードpを始点とし前記ノードqを終点とするエッジv[p,q]と、前記ノードpを始点とし前記ノードrを終点とするエッジv[p,r]と、を備える場合、
(1)購入数n[p,q]が購入数n[p,r]に対して十分に大きければ、前記エッジv[p,r]を、前記有向グラフから削除し、
(2)前記購入数n[p,r]が前記購入数n[p,q]に対して十分に大きければ、前記エッジv[p,q]を、前記有向グラフから削除する、
削除部、
をさらに備えることを特徴とする情報処理装置。 - 請求項2に記載の情報処理装置であって、1未満の正定数Hについて、
(1)n[p,r]/(n[p,q]+n[p,r])≦Hであれば、前記購入数n[p,q]が前記購入数n[p,r]に対して十分に大きいものとし、
(2)n[p,q]/(n[p,q]+n[p,r])≦Hであれば、前記購入数n[p,r]が前記購入数n[p,q]に対して十分に大きいものとする、
ことを特徴とする情報処理装置。 - 請求項1から3のいずれか一項に記載の情報処理装置であって、
前記複数の商品情報で示される商品のいずれかを指定する指定部、
前記グラフ記憶部に記憶された有向グラフにおいて、前記指定された商品を表現するノードから、エッジに沿ってたどった経路内のノードを順に抽出し、当該抽出されたノードを当該抽出された順序で並べたノード列を取得する取得部、
前記取得されたノード列に含まれるノードのそれぞれにより表現される商品を、当該ノードの当該ノード列における順序にしたがって並べた商品列を、前記指定された商品の後に購入が推薦される商品の順序として出力する出力部、
をさらに備えることを特徴とする情報処理装置。 - 請求項4に記載の情報処理装置であって、
前記取得部は、前記指定された商品を表現するノードを注目ノードに設定した後、
(1)当該注目ノードを始点とするエッジの終点のノードであり、かつ、既に抽出されたノードでないノードからなるノード群を取得し、
(2)当該取得されたノード群から、いずれかのノードを抽出し、
(3)当該抽出されたノードを新たな注目ノードに設定し直して、終了条件が満たされるまで、前記処理(1)乃至前記処理(3)を繰り返す、
ことにより、前記経路内のノードを順に抽出する、
ことを特徴とする情報処理装置。 - 請求項4に記載の情報処理装置であって、
前記取得部は、前記指定された商品を表現するノードを注目ノードに設定した後、
(1)当該指定された商品を表現するノードを始点とするエッジの終点であり、かつ、当該注目ノードを始点とするエッジの終点であり、かつ、既に抽出されたノードでないノードからなるノード群を取得し、
(2)当該取得されたノード群から、いずれかのノードを抽出し、
(3)当該抽出されたノードを新たな注目ノードに設定し直して、終了条件が満たされるまで、前記処理(1)乃至前記処理(3)を繰り返す、
ことにより、前記経路内のノードを順に抽出する、
ことを特徴とする情報処理装置。 - 請求項5又は6に記載の情報処理装置であって、
前記取得部は、前記処理(2)において、当該取得されたノード群に含まれるノードのうち、当該ノードを始点とするエッジの数が最大のノードを抽出する、
ことを特徴とする情報処理装置。 - 請求項5又は6に記載の情報処理装置であって、
前記取得部は、前記処理(2)において、当該取得されたノード群に含まれるノードのうち、当該ノードを始点とし、当該ノード群に含まれるいずれかのノードを終点とするエッジの数が最大のノードを抽出する、
ことを特徴とする情報処理装置。 - 請求項5又は6に記載の情報処理装置であって、
前記取得部は、前記処理(2)において、当該取得されたノード群に含まれるノードを始点ならびに終点とするエッジをたどる経路であって、当該経路内における各ノードを通過する回数が1回限りの経路のうち、長さが最大である経路の始点のノードを抽出する、
ことを特徴とする情報処理装置。 - 請求項5から9のいずれか一項に記載の情報処理装置であって、
前記終了条件は、前記ノード群が取得できなくなると、満たされる、
ことを特徴とする情報処理装置。 - 請求項5から9のいずれか一項に記載の情報処理装置であって、
前記終了条件は、所定の数のノードが抽出されると、満たされる、
ことを特徴とする情報処理装置。 - 請求項5から11のいずれか一項に記載の情報処理装置であって、
前記指定部は、前記複数の商品情報で示される商品のうち、前記グラフ記憶部に記憶される有向グラフにおいて当該商品を表現するノードがいずれかのエッジの始点となっており、いずれのエッジの終点でもないノードにより表現される商品を、指定する、
ことを特徴とする情報処理装置。 - 商品を購入したユーザを示すユーザ情報と、前記ユーザが前記商品を購入した購入日時を示す情報と、前記商品を示す商品情報と、を複数記憶する履歴記憶部、
前記複数の商品情報で示される商品のそれぞれを表現するノードと、第一の商品と第二の商品とが前記ユーザにより購入された順序を表現するエッジと、を備える有向グラフの2つのノードi,jについて、前記ノードiにより表現される商品xが購入された後に前記ノードjにより表現される商品yが購入された購入数n[i,j]と、前記商品yが購入された後に前記商品xが購入された購入数n[j,i]と、を、前記履歴記憶部から取得し、1より大きい定数Kについて、
(1)K×n[j,i]≦n[i,j]が成立すれば、前記ノードiを始点とし前記ノードjを終点とするエッジv[i,j]を、前記有向グラフに追加し、
(2)K×n[i,j]≦n[j,i]が成立すれば、前記ノードjを始点とし前記ノードiを終点とするエッジv[j,i]を、前記有向グラフに追加する、
追加部、
を備えることを特徴とする情報処理システム。 - コンピュータを、
商品を購入したユーザを示すユーザ情報と、前記ユーザが前記商品を購入した購入日時を示す情報と、前記商品を示す商品情報と、を複数記憶する履歴記憶部、
前記複数の商品情報で示される商品のそれぞれを表現するノードと、第一の商品と第二の商品とが前記ユーザにより購入された順序を表現するエッジと、を備える有向グラフを記憶可能なグラフ記憶部、
前記有向グラフが備える2つのノードi,jについて、前記ノードiにより表現される商品xが購入された後に前記ノードjにより表現される商品yが購入された購入数n[i,j]と、前記商品yが購入された後に前記商品xが購入された購入数n[j,i]と、を、前記履歴記憶部から取得し、1より大きい定数Kについて、
(1)K×n[j,i]≦n[i,j]が成立すれば、前記ノードiを始点とし前記ノードjを終点とするエッジv[i,j]を、前記有向グラフに追加し、
(2)K×n[i,j]≦n[j,i]が成立すれば、前記ノードjを始点とし前記ノードiを終点とするエッジv[j,i]を、前記有向グラフに追加する、
追加部、
として機能させることを特徴とする情報処理プログラム。 - コンピュータを、
商品を購入したユーザを示すユーザ情報と、前記ユーザが前記商品を購入した購入日時を示す情報と、前記商品を示す商品情報と、を複数記憶する履歴記憶部、
前記複数の商品情報で示される商品のそれぞれを表現するノードと、第一の商品と第二の商品とが前記ユーザにより購入された順序を表現するエッジと、を備える有向グラフを記憶可能なグラフ記憶部、
前記有向グラフが備える2つのノードi,jについて、前記ノードiにより表現される商品xが購入された後に前記ノードjにより表現される商品yが購入された購入数n[i,j]と、前記商品yが購入された後に前記商品xが購入された購入数n[j,i]と、を、前記履歴記憶部から取得し、1より大きい定数Kについて、
(1)K×n[j,i]≦n[i,j]が成立すれば、前記ノードiを始点とし前記ノードjを終点とするエッジv[i,j]を、前記有向グラフに追加し、
(2)K×n[i,j]≦n[j,i]が成立すれば、前記ノードjを始点とし前記ノードiを終点とするエッジv[j,i]を、前記有向グラフに追加する、
追加部、
として機能させることを特徴とする情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体。 - 履歴保存部と追加部とを備える情報処理装置が実行する方法であって、
前記履歴保存部が、商品を購入したユーザを示すユーザ情報と、前記ユーザが前記商品を購入した購入日時を示す情報と、前記商品を示す商品情報と、を履歴記憶部へ複数保存する、
履歴保存ステップ、
前記複数の商品情報で示される商品のそれぞれを表現するノードと、第一の商品と第二の商品とが前記ユーザにより購入された順序を表現するエッジと、を備える有向グラフの2つのノードi,jについて、前記ノードiにより表現される商品xが購入された後に前記ノードjにより表現される商品yが購入された購入数n[i,j]と、前記商品yが購入された後に前記商品xが購入された購入数n[j,i]と、を、前記履歴記憶部から取得し、1より大きい定数Kについて、
(1)K×n[j,i]≦n[i,j]が成立すれば、前記ノードiを始点とし前記ノードjを終点とするエッジv[i,j]を、前記有向グラフに追加し、
(2)K×n[i,j]≦n[j,i]が成立すれば、前記ノードjを始点とし前記ノードiを終点とするエッジv[j,i]を、前記有向グラフに追加する、
追加ステップ、
を有することを特徴とする情報処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010244799A JP2012098845A (ja) | 2010-10-29 | 2010-10-29 | 情報処理装置、情報処理システム、情報処理プログラム、情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体、及び情報処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010244799A JP2012098845A (ja) | 2010-10-29 | 2010-10-29 | 情報処理装置、情報処理システム、情報処理プログラム、情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体、及び情報処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012098845A true JP2012098845A (ja) | 2012-05-24 |
Family
ID=46390691
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010244799A Pending JP2012098845A (ja) | 2010-10-29 | 2010-10-29 | 情報処理装置、情報処理システム、情報処理プログラム、情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体、及び情報処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012098845A (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015011709A (ja) * | 2013-07-01 | 2015-01-19 | パロ・アルト・リサーチ・センター・インコーポレーテッドPalo Alto Research Center Incorporated | 明示的に表されたグラフで並列探索を行うシステムおよび方法 |
JP2015069235A (ja) * | 2013-09-26 | 2015-04-13 | 大日本印刷株式会社 | 情報処理装置及び情報処理方法 |
JP2015130165A (ja) * | 2014-01-06 | 2015-07-16 | パロ・アルト・リサーチ・センター・インコーポレーテッドPalo Alto Research Center Incorporated | ハイパーグラフソルバーのためのグラフ入力の自動編集 |
JP2015156216A (ja) * | 2014-02-19 | 2015-08-27 | パロ・アルト・リサーチ・センター・インコーポレーテッドPalo Alto Research Center Incorporated | ハイパーグラフ内のグラフの枝刈り |
WO2019171752A1 (ja) * | 2018-03-09 | 2019-09-12 | ソニー株式会社 | 情報処理装置、情報処理方法及びプログラム |
JP2020119463A (ja) * | 2019-01-28 | 2020-08-06 | ヤフー株式会社 | 関連付け装置、関連付け方法及び関連付けプログラム |
JP2021193595A (ja) * | 2020-09-21 | 2021-12-23 | ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド | 会話推薦方法、装置及び機器 |
JP2022035382A (ja) * | 2020-08-20 | 2022-03-04 | ヤフー株式会社 | 情報処理装置、情報処理方法、及び情報処理プログラム |
-
2010
- 2010-10-29 JP JP2010244799A patent/JP2012098845A/ja active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015011709A (ja) * | 2013-07-01 | 2015-01-19 | パロ・アルト・リサーチ・センター・インコーポレーテッドPalo Alto Research Center Incorporated | 明示的に表されたグラフで並列探索を行うシステムおよび方法 |
JP2015069235A (ja) * | 2013-09-26 | 2015-04-13 | 大日本印刷株式会社 | 情報処理装置及び情報処理方法 |
JP2015130165A (ja) * | 2014-01-06 | 2015-07-16 | パロ・アルト・リサーチ・センター・インコーポレーテッドPalo Alto Research Center Incorporated | ハイパーグラフソルバーのためのグラフ入力の自動編集 |
JP2015156216A (ja) * | 2014-02-19 | 2015-08-27 | パロ・アルト・リサーチ・センター・インコーポレーテッドPalo Alto Research Center Incorporated | ハイパーグラフ内のグラフの枝刈り |
WO2019171752A1 (ja) * | 2018-03-09 | 2019-09-12 | ソニー株式会社 | 情報処理装置、情報処理方法及びプログラム |
JP2020119463A (ja) * | 2019-01-28 | 2020-08-06 | ヤフー株式会社 | 関連付け装置、関連付け方法及び関連付けプログラム |
JP7078561B2 (ja) | 2019-01-28 | 2022-05-31 | ヤフー株式会社 | 関連付け装置、関連付け方法及び関連付けプログラム |
JP2022035382A (ja) * | 2020-08-20 | 2022-03-04 | ヤフー株式会社 | 情報処理装置、情報処理方法、及び情報処理プログラム |
JP7130019B2 (ja) | 2020-08-20 | 2022-09-02 | ヤフー株式会社 | 情報処理装置、情報処理方法、及び情報処理プログラム |
JP2021193595A (ja) * | 2020-09-21 | 2021-12-23 | ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド | 会話推薦方法、装置及び機器 |
JP7262539B2 (ja) | 2020-09-21 | 2023-04-21 | ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド | 会話推薦方法、装置及び機器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2012098845A (ja) | 情報処理装置、情報処理システム、情報処理プログラム、情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体、及び情報処理方法 | |
US9501551B1 (en) | Automatic item categorizer | |
US10860883B2 (en) | Using images and image metadata to locate resources | |
CN105593889A (zh) | 基于社交信息对产品推荐的呈现 | |
CN109615425A (zh) | 一种产品推荐方法、装置、电子设备及存储介质 | |
US10528559B2 (en) | Information processing system, terminal, server, information processing method, recording medium, and program | |
US10489444B2 (en) | Using image recognition to locate resources | |
EP2524345A1 (en) | Attribute aggregation for standard product unit | |
TW201405345A (zh) | 社群網路系統中依據脈絡之物件擷取方法 | |
JPWO2017013770A1 (ja) | 検索装置、検索方法、記録媒体、および、プログラム | |
JP6043858B2 (ja) | 情報提供装置、情報提供方法および情報提供プログラム | |
JP2004220074A (ja) | ネットショッピング方法およびプログラム | |
JP2015194859A (ja) | 表示制御プログラム、方法、及び装置 | |
JP5331159B2 (ja) | 商品推薦方法、商品推薦装置及び商品推薦プログラム | |
JP5852688B2 (ja) | 情報提供装置、情報提供方法および情報提供プログラム | |
JP5403809B2 (ja) | 顧客情報管理サーバ、及び顧客情報管理プログラム | |
JP2005242904A (ja) | 文書群分析装置、文書群分析方法、文書群分析システム、プログラムおよび記録媒体 | |
KR100890333B1 (ko) | 상품 로컬 정보 제공 방법 및 시스템 | |
JP2014074961A (ja) | 商品推薦装置及び方法及びプログラム | |
KR20170133169A (ko) | 컨텐츠 공유 방법 | |
CN107015733B (zh) | 选项信息呈现***及方法 | |
JP4974090B2 (ja) | アイテム管理サーバ、及びアイテム管理システム | |
JP2008026968A (ja) | データ管理装置、データプログラム及びデータ管理方法 | |
JP2002163279A (ja) | 推奨情報提供方法、推奨情報送信システム、推奨情報送信装置及び記録媒体 | |
US10114909B1 (en) | Systems and methods storing a collection of item data |