特許第5735191号(P5735191)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 楽天株式会社の特許一覧

特許5735191検索装置、検索方法、記録媒体、ならびに、プログラム
<>
  • 特許5735191-検索装置、検索方法、記録媒体、ならびに、プログラム 図000002
  • 特許5735191-検索装置、検索方法、記録媒体、ならびに、プログラム 図000003
  • 特許5735191-検索装置、検索方法、記録媒体、ならびに、プログラム 図000004
  • 特許5735191-検索装置、検索方法、記録媒体、ならびに、プログラム 図000005
  • 特許5735191-検索装置、検索方法、記録媒体、ならびに、プログラム 図000006
  • 特許5735191-検索装置、検索方法、記録媒体、ならびに、プログラム 図000007
  • 特許5735191-検索装置、検索方法、記録媒体、ならびに、プログラム 図000008
  • 特許5735191-検索装置、検索方法、記録媒体、ならびに、プログラム 図000009
  • 特許5735191-検索装置、検索方法、記録媒体、ならびに、プログラム 図000010
  • 特許5735191-検索装置、検索方法、記録媒体、ならびに、プログラム 図000011
  • 特許5735191-検索装置、検索方法、記録媒体、ならびに、プログラム 図000012
  • 特許5735191-検索装置、検索方法、記録媒体、ならびに、プログラム 図000013
  • 特許5735191-検索装置、検索方法、記録媒体、ならびに、プログラム 図000014
  • 特許5735191-検索装置、検索方法、記録媒体、ならびに、プログラム 図000015
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】5735191
(24)【登録日】2015年4月24日
(45)【発行日】2015年6月17日
(54)【発明の名称】検索装置、検索方法、記録媒体、ならびに、プログラム
(51)【国際特許分類】
   G06F 17/30 20060101AFI20150528BHJP
【FI】
   G06F17/30 340B
   G06F17/30 380E
   G06F17/30 220Z
【請求項の数】10
【全頁数】30
(21)【出願番号】特願2015-504433(P2015-504433)
(86)(22)【出願日】2014年7月31日
(86)【国際出願番号】JP2014070223
【審査請求日】2015年1月22日
【早期審査対象出願】
(73)【特許権者】
【識別番号】399037405
【氏名又は名称】楽天株式会社
(74)【代理人】
【識別番号】100110135
【弁理士】
【氏名又は名称】石井 裕一郎
(74)【代理人】
【識別番号】100132883
【弁理士】
【氏名又は名称】森川 泰司
(74)【代理人】
【識別番号】100148633
【弁理士】
【氏名又は名称】桜田 圭
(74)【代理人】
【識別番号】100163452
【弁理士】
【氏名又は名称】南郷 邦臣
(72)【発明者】
【氏名】江美 智子
(72)【発明者】
【氏名】若松 陽造
(72)【発明者】
【氏名】前田 裕
【審査官】 齊藤 貴孝
(56)【参考文献】
【文献】 特開2010−282402(JP,A)
【文献】 米国特許第07243102(US,B1)
【文献】 特表2013−510343(JP,A)
【文献】 清水 徹,Web検索における検索結果ランキング 〜評価手法とアルゴリズム〜,知能と情報,日本,日本知能情報ファジィ学会,2010年 4月15日,第22巻,第2号,p.73−79
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/30
(57)【特許請求の範囲】
【請求項1】
複数のレコードが記憶されるレコード記憶部と、
前記記憶された複数のレコードにより識別される検索対象のそれぞれについて、
(a)移行期間中、第1アルゴリズムにより計算された第1スコアを、前記レコードに含まれる第1スコア欄に格納し、第2アルゴリズムにより計算された第2スコアを、前記レコードに含まれる第2スコア欄に格納し、
(b)非移行期間中、前記第1アルゴリズムにより計算された第1スコアを、前記レコードに含まれる前記第1スコア欄と前記第2スコア欄に格納する
ことにより、前記記憶されている複数のレコードを更新する更新部と、
ユーザが操作するユーザ端末からクエリを受信すると、前記記憶された複数のレコードの中から前記受信したクエリに適合するレコードを検索し、前記ユーザが第1グループに属すれば前記第1スコア欄に格納されているスコアに基づく順に、前記ユーザが第2グループに属すれば前記第2スコア欄に格納されているスコアに基づく順に、前記検索されたレコードを前記ユーザ端末へ送信する検索部と、
前記検索されたレコードに対する前記第1グループに属する第1ユーザの反応を示すデータを収集し、前記検索されたレコードに対する前記第2グループに属する第2ユーザの反応を示すデータを、当該検索されたレコードにおいて前記第1スコア欄に格納されているスコアと前記第2スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集する収集部と、
前記収集された前記第1ユーザの反応に基づいて、前記第1ユーザの第1反応率を推定し、前記第1スコア欄に格納されているスコアと前記第2スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集された前記第2ユーザの反応に基づいて、前記第2ユーザの第2反応率を推定する推定部と、
を備えることを特徴とする検索装置。
【請求項2】
前記更新部は、前記第1スコア欄に格納されているスコアに基づく順に、前記複数のレコードを更新する、
ことを特徴とする請求項1に記載の検索装置。
【請求項3】
前記第1アルゴリズムにより計算される第1スコアと、前記第2アルゴリズムにより計算される第2スコアとは、重複しない、
ことを特徴とする請求項1に記載の検索装置。
【請求項4】
前記移行期間中において計算された前記第1スコアと前記第2スコアとが等しければ、前記更新部は、前記第1スコアと前記第2スコアとのうち少なくとも一方を微小にランダムに変化させてから、前記第1スコアと前記第2スコアを前記レコード記憶部に格納する、
ことを特徴とする請求項1に記載の検索装置。
【請求項5】
前記収集部は、前記第1ユーザの反応を示すデータとして、前記第1スコア欄に格納されているスコアの順に送信されたレコードにより識別される検索対象のいずれかが前記第1ユーザによって選択されたか否かを示す反応パラメータを収集し、前記第2ユーザの反応を示すデータとして、前記第2スコア欄に格納されているスコアの順に送信されたレコードにより識別される検索対象のいずれかが前記第2ユーザによって選択されたか否かを示す反応パラメータを収集する、
ことを特徴とする請求項1に記載の検索装置。
【請求項6】
複数のレコードが記憶されるレコード記憶部と、
前記記憶された複数のレコードにより識別される検索対象のそれぞれについて、
(a)移行期間中、第1アルゴリズムにより計算された第1スコアを、前記レコードに含まれる第1スコア欄に格納し、第2アルゴリズムにより計算された第2スコアを、前記レコードに含まれる第2スコア欄に格納し、
(b)非移行期間中、前記第1アルゴリズムにより計算された第1スコアを、前記レコードに含まれる前記第1スコア欄と前記第2スコア欄に格納する
ことにより、前記記憶されている複数のレコードを更新する更新部と、
ユーザが操作するユーザ端末からクエリを受信すると、前記記憶された複数のレコードの中から前記受信したクエリに適合するレコードを検索し、前記検索されたレコードを前記第2スコア欄に格納されているスコアに基づいてソートする検索部と、
前記移行期間中に検索されたレコードに対する前記ユーザの反応を示すデータを、当該検索されたレコードにおいて前記第1スコア欄に格納されているスコアと前記第2スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集する収集部と、
前記収集されたユーザの反応を示すデータと、当該反応を示すデータに対応付けられた割合とに基づいて、前記割合を1と仮定することにより、前記第1アルゴリズムによる第1反応率を推定し、前記割合を0と仮定することにより、前記第2アルゴリズムによる第2反応率を推定する推定部と、
を備えることを特徴とする検索装置。
【請求項7】
複数のレコードが記憶されるレコード記憶部と、
検索対象のスコアを計算するアルゴリズムを設定する設定部と、
前記記憶された複数のレコードにより識別される検索対象のそれぞれについて、前記設定されたアルゴリズムにより計算されたスコアを、前記レコードに含まれるスコア欄に格納することにより、前記記憶されている複数のレコードを更新する更新部と、
ユーザが操作するユーザ端末からクエリを受信すると、前記受信されたクエリに適合するレコードを検索し、前記検索されたレコードを前記スコア欄に記憶されたスコアの順に前記ユーザ端末へ送信する検索部と、
を備え、
前記更新部は、前記スコア欄に記憶されたスコアによりソートした順で、前記複数のレコードを更新する、
ことを特徴とする検索装置。
【請求項8】
検索装置が、レコード記憶部に記憶された複数のレコードにより識別される検索対象のそれぞれについて、
(a)移行期間中、第1アルゴリズムにより計算された第1スコアを、前記レコードに含まれる第1スコア欄に格納し、第2アルゴリズムにより計算された第2スコアを、前記レコードに含まれる第2スコア欄に格納し、
(b)非移行期間中、前記第1アルゴリズムにより計算された第1スコアを、前記レコードに含まれる前記第1スコア欄と前記第2スコア欄に格納する
ことにより、前記記憶されている複数のレコードを更新する更新ステップと、
前記検索装置が、ユーザが操作するユーザ端末からクエリを受信すると、前記記憶された複数のレコードの中から前記受信したクエリに適合するレコードを検索し、前記ユーザが第1グループに属すれば前記第1スコア欄に格納されているスコアに基づく順に、前記ユーザが第2グループに属すれば前記第2スコア欄に格納されているスコアに基づく順に、前記検索されたレコードを前記ユーザ端末へ送信する検索ステップと、
前記検索装置が、前記検索されたレコードに対する前記第1グループに属する第1ユーザの反応を示すデータを収集し、前記検索されたレコードに対する前記第2グループに属する第2ユーザの反応を示すデータを、当該検索されたレコードにおいて前記第1スコア欄に格納されているスコアと前記第2スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集する収集ステップと、
前記検索装置が、前記収集された前記第1ユーザの反応に基づいて、前記第1ユーザの第1反応率を推定し、前記第1スコア欄に格納されているスコアと前記第2スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集された前記第2ユーザの反応に基づいて、前記第2ユーザの第2反応率を推定する推定ステップと、
を備えることを特徴とする検索方法。
【請求項9】
コンピュータを、
複数のレコードが記憶されるレコード記憶部、
前記記憶された複数のレコードにより識別される検索対象のそれぞれについて、
(a)移行期間中、第1アルゴリズムにより計算された第1スコアを、前記レコードに含まれる第1スコア欄に格納し、第2アルゴリズムにより計算された第2スコアを、前記レコードに含まれる第2スコア欄に格納し、
(b)非移行期間中、前記第1アルゴリズムにより計算された第1スコアを、前記レコードに含まれる前記第1スコア欄と前記第2スコア欄に格納する
ことにより、前記記憶されている複数のレコードを更新する更新部、
ユーザが操作するユーザ端末からクエリを受信すると、前記記憶された複数のレコードの中から前記受信したクエリに適合するレコードを検索し、前記ユーザが第1グループに属すれば前記第1スコア欄に格納されているスコアに基づく順に、前記ユーザが第2グループに属すれば前記第2スコア欄に格納されているスコアに基づく順に、前記検索されたレコードを前記ユーザ端末へ送信する検索部、
前記検索されたレコードに対する前記第1グループに属する第1ユーザの反応を示すデータを収集し、前記検索されたレコードに対する前記第2グループに属する第2ユーザの反応を示すデータを、当該検索されたレコードにおいて前記第1スコア欄に格納されているスコアと前記第2スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集する収集部、
前記収集された前記第1ユーザの反応に基づいて、前記第1ユーザの第1反応率を推定し、前記第1スコア欄に格納されているスコアと前記第2スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集された前記第2ユーザの反応に基づいて、前記第2ユーザの第2反応率を推定する推定部、
として機能させるプログラムを記憶する、コンピュータ読み取り可能な記録媒体。
【請求項10】
コンピュータを、
複数のレコードが記憶されるレコード記憶部、
前記記憶された複数のレコードにより識別される検索対象のそれぞれについて、
(a)移行期間中、第1アルゴリズムにより計算された第1スコアを、前記レコードに含まれる第1スコア欄に格納し、第2アルゴリズムにより計算された第2スコアを、前記レコードに含まれる第2スコア欄に格納し、
(b)非移行期間中、前記第1アルゴリズムにより計算された第1スコアを、前記レコードに含まれる前記第1スコア欄と前記第2スコア欄に格納する
ことにより、前記記憶されている複数のレコードを更新する更新部、
ユーザが操作するユーザ端末からクエリを受信すると、前記記憶された複数のレコードの中から前記受信したクエリに適合するレコードを検索し、前記ユーザが第1グループに属すれば前記第1スコア欄に格納されているスコアに基づく順に、前記ユーザが第2グループに属すれば前記第2スコア欄に格納されているスコアに基づく順に、前記検索されたレコードを前記ユーザ端末へ送信する検索部、
前記検索されたレコードに対する前記第1グループに属する第1ユーザの反応を示すデータを収集し、前記検索されたレコードに対する前記第2グループに属する第2ユーザの反応を示すデータを、当該検索されたレコードにおいて前記第1スコア欄に格納されているスコアと前記第2スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集する収集部、
前記収集された前記第1ユーザの反応に基づいて、前記第1ユーザの第1反応率を推定し、前記第1スコア欄に格納されているスコアと前記第2スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集された前記第2ユーザの反応に基づいて、前記第2ユーザの第2反応率を推定する推定部、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子商取引システムの開発や保守にかかるコストを抑えるために好適な検索装置、検索方法、記録媒体、ならびに、プログラムに関する。
【背景技術】
【0002】
インターネットに接続されたコンピュータや、企業内で構築されたイントラネットに接続されたコンピュータには、様々なデータ、様々な電子文書等が多数保管される。保管されるデータ等が増えるほど、ユーザが欲するデータを探す手間も増える。ユーザが所望のデータをなるべく早く検索できるようにするために、より優秀な検索アルゴリズムが望まれる。
【0003】
例えば、特許文献1には、検索アルゴリズムにおける評価方法の一つであるnDCG(normalized Discounted Cumulative Gain)と検索処理に要するレスポンス時間とを用いて検索アルゴリズムの性能を総合的に評価するシステムが開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2012−128802号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、電子商取引システムのように規模が大きくなると、現在運用中の本番環境に加えて、開発中のアルゴリズムの性能を評価するためのテスト環境を別途用意することは容易ではなく、コストがかさんでしまう。また、開発者にとっては、なるべく本番環境に近い環境でテストできることが望ましく、更に言えば、本番環境において複数のアルゴリズムを併用して相互に評価できることが望ましい。
【0006】
本発明は、以上のような事情に鑑みてなされたものであり、電子商取引システムの開発や保守にかかるコストを抑えるために好適な検索装置、検索方法、記録媒体、ならびに、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の第1の観点に係る検索装置は、
複数のレコードが記憶されるレコード記憶部と、
前記記憶された複数のレコードにより識別される検索対象のそれぞれについて、
(a)移行期間中、第1アルゴリズムにより計算された第1スコアを、前記レコードに含まれる第1スコア欄に格納し、第2アルゴリズムにより計算された第2スコアを、前記レコードに含まれる第2スコア欄に格納し、
(b)非移行期間中、前記第1アルゴリズムにより計算された第1スコアを、前記レコードに含まれる前記第1スコア欄と前記第2スコア欄に格納する
ことにより、前記記憶されている複数のレコードを更新する更新部と、
ユーザが操作するユーザ端末からクエリを受信すると、前記記憶された複数のレコードの中から前記受信したクエリに適合するレコードを検索し、前記ユーザが第1グループに属すれば前記第1スコア欄に格納されているスコアに基づく順に、前記ユーザが第2グループに属すれば前記第2スコア欄に格納されているスコアに基づく順に、前記検索されたレコードを前記ユーザ端末へ送信する検索部と、
前記検索されたレコードに対する前記第1グループに属する第1ユーザの反応を示すデータを収集し、前記検索されたレコードに対する前記第2グループに属する第2ユーザの反応を示すデータを、当該検索されたレコードにおいて前記第1スコア欄に格納されているスコアと前記第2スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集する収集部と、
前記収集された前記第1ユーザの反応に基づいて、前記第1ユーザの第1反応率を推定し、前記第1スコア欄に格納されているスコアと前記第2スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集された前記第2ユーザの反応に基づいて、前記第2ユーザの第2反応率を推定する推定部と、
を備える。
【0008】
前記更新部は、前記第1スコア欄に格納されているスコアに基づく順に、前記複数のレコードを更新してもよい。
【0009】
前記第1アルゴリズムにより計算される第1スコアと、前記第2アルゴリズムにより計算される第2スコアとは、重複しなくてもよい。
【0010】
前記移行期間中において計算された前記第1スコアと前記第2スコアとが等しければ、前記更新部は、前記第1スコアと前記第2スコアとのうち少なくとも一方を微小にランダムに変化させてから、前記第1スコアと前記第2スコアを前記レコード記憶部に格納してもよい。
【0011】
前記収集部は、前記第1ユーザの反応を示すデータとして、前記第1スコア欄に格納されているスコアの順に送信されたレコードにより識別される検索対象のいずれかが前記第1ユーザによって選択されたか否かを示す反応パラメータを収集し、前記第2ユーザの反応を示すデータとして、前記第2スコア欄に格納されているスコアの順に送信されたレコードにより識別される検索対象のいずれかが前記第2ユーザによって選択されたか否かを示す反応パラメータを収集してもよい。
【0012】
本発明のその他の観点に係る検索装置は、
複数のレコードが記憶されるレコード記憶部と、
前記記憶された複数のレコードにより識別される検索対象のそれぞれについて、
(a)移行期間中、第1アルゴリズムにより計算された第1スコアを、前記レコードに含まれる第1スコア欄に格納し、第2アルゴリズムにより計算された第2スコアを、前記レコードに含まれる第2スコア欄に格納し、
(b)非移行期間中、前記第1アルゴリズムにより計算された第1スコアを、前記レコードに含まれる前記第1スコア欄と前記第2スコア欄に格納する
ことにより、前記記憶されている複数のレコードを更新する更新部と、
ユーザが操作するユーザ端末からクエリを受信すると、前記記憶された複数のレコードの中から前記受信したクエリに適合するレコードを検索し、前記検索されたレコードを前記第2スコア欄に格納されているスコアに基づいてソートする検索部と、
前記移行期間中に検索されたレコードに対する前記ユーザの反応を示すデータを、当該検索されたレコードにおいて前記第1スコア欄に格納されているスコアと前記第2スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集する収集部と、
前記収集されたユーザの反応を示すデータと、当該反応を示すデータに対応付けられた割合とに基づいて、前記割合を1と仮定することにより、前記第1アルゴリズムによる第1反応率を推定し、前記割合を0と仮定することにより、前記第2アルゴリズムによる第2反応率を推定する推定部と、
を備える。
【0013】
本発明のその他の観点に係る検索装置は、
複数のレコードが記憶されるレコード記憶部と、
検索対象のスコアを計算するアルゴリズムを設定する設定部と、
前記記憶された複数のレコードにより識別される検索対象のそれぞれについて、前記設定されたアルゴリズムにより計算されたスコアを、前記レコードに含まれるスコア欄に格納することにより、前記記憶されている複数のレコードを更新する更新部と、
ユーザが操作するユーザ端末からクエリを受信すると、前記受信されたクエリに適合するレコードを検索し、前記検索されたレコードを前記スコア欄に記憶されたスコアの順に前記ユーザ端末へ送信する検索部と、
を備え、
前記更新部は、前記スコア欄に記憶されたスコアによりソートした順で、前記複数のレコードを更新する。
【0014】
本発明のその他の観点に係る検索方法は、
レコード記憶部に記憶された複数のレコードにより識別される検索対象のそれぞれについて、
(a)移行期間中、第1アルゴリズムにより計算された第1スコアを、前記レコードに含まれる第1スコア欄に格納し、第2アルゴリズムにより計算された第2スコアを、前記レコードに含まれる第2スコア欄に格納し、
(b)非移行期間中、前記第1アルゴリズムにより計算された第1スコアを、前記レコードに含まれる前記第1スコア欄と前記第2スコア欄に格納する
ことにより、前記記憶されている複数のレコードを更新する更新ステップと、
ユーザが操作するユーザ端末からクエリを受信すると、前記記憶された複数のレコードの中から前記受信したクエリに適合するレコードを検索し、前記ユーザが第1グループに属すれば前記第1スコア欄に格納されているスコアに基づく順に、前記ユーザが第2グループに属すれば前記第2スコア欄に格納されているスコアに基づく順に、前記検索されたレコードを前記ユーザ端末へ送信する検索ステップと、
前記検索されたレコードに対する前記第1グループに属する第1ユーザの反応を示すデータを収集し、前記検索されたレコードに対する前記第2グループに属する第2ユーザの反応を示すデータを、当該検索されたレコードにおいて前記第1スコア欄に格納されているスコアと前記第2スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集する収集ステップと、
前記収集された前記第1ユーザの反応に基づいて、前記第1ユーザの第1反応率を推定し、前記第1スコア欄に格納されているスコアと前記第2スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集された前記第2ユーザの反応に基づいて、前記第2ユーザの第2反応率を推定する推定ステップと、
を備える。
【0015】
本発明のその他の観点に係るコンピュータ読み取り可能な記録媒体は、
コンピュータを、
複数のレコードが記憶されるレコード記憶部、
前記記憶された複数のレコードにより識別される検索対象のそれぞれについて、
(a)移行期間中、第1アルゴリズムにより計算された第1スコアを、前記レコードに含まれる第1スコア欄に格納し、第2アルゴリズムにより計算された第2スコアを、前記レコードに含まれる第2スコア欄に格納し、
(b)非移行期間中、前記第1アルゴリズムにより計算された第1スコアを、前記レコードに含まれる前記第1スコア欄と前記第2スコア欄に格納する
ことにより、前記記憶されている複数のレコードを更新する更新部、
ユーザが操作するユーザ端末からクエリを受信すると、前記記憶された複数のレコードの中から前記受信したクエリに適合するレコードを検索し、前記ユーザが第1グループに属すれば前記第1スコア欄に格納されているスコアに基づく順に、前記ユーザが第2グループに属すれば前記第2スコア欄に格納されているスコアに基づく順に、前記検索されたレコードを前記ユーザ端末へ送信する検索部、
前記検索されたレコードに対する前記第1グループに属する第1ユーザの反応を示すデータを収集し、前記検索されたレコードに対する前記第2グループに属する第2ユーザの反応を示すデータを、当該検索されたレコードにおいて前記第1スコア欄に格納されているスコアと前記第2スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集する収集部、
前記収集された前記第1ユーザの反応に基づいて、前記第1ユーザの第1反応率を推定し、前記第1スコア欄に格納されているスコアと前記第2スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集された前記第2ユーザの反応に基づいて、前記第2ユーザの第2反応率を推定する推定部、
として機能させるプログラムを記憶する。
【0016】
本発明のその他の観点に係るプログラムは、
コンピュータを、
複数のレコードが記憶されるレコード記憶部、
前記記憶された複数のレコードにより識別される検索対象のそれぞれについて、
(a)移行期間中、第1アルゴリズムにより計算された第1スコアを、前記レコードに含まれる第1スコア欄に格納し、第2アルゴリズムにより計算された第2スコアを、前記レコードに含まれる第2スコア欄に格納し、
(b)非移行期間中、前記第1アルゴリズムにより計算された第1スコアを、前記レコードに含まれる前記第1スコア欄と前記第2スコア欄に格納する
ことにより、前記記憶されている複数のレコードを更新する更新部、
ユーザが操作するユーザ端末からクエリを受信すると、前記記憶された複数のレコードの中から前記受信したクエリに適合するレコードを検索し、前記ユーザが第1グループに属すれば前記第1スコア欄に格納されているスコアに基づく順に、前記ユーザが第2グループに属すれば前記第2スコア欄に格納されているスコアに基づく順に、前記検索されたレコードを前記ユーザ端末へ送信する検索部、
前記検索されたレコードに対する前記第1グループに属する第1ユーザの反応を示すデータを収集し、前記検索されたレコードに対する前記第2グループに属する第2ユーザの反応を示すデータを、当該検索されたレコードにおいて前記第1スコア欄に格納されているスコアと前記第2スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集する収集部、
前記収集された前記第1ユーザの反応に基づいて、前記第1ユーザの第1反応率を推定し、前記第1スコア欄に格納されているスコアと前記第2スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集された前記第2ユーザの反応に基づいて、前記第2ユーザの第2反応率を推定する推定部、
として機能させる。
【0017】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記記録媒体は、非一時的な記録媒体であってよく、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【0018】
本発明によれば、電子商取引システムの開発や保守にかかるコストを抑えることができる。
【図面の簡単な説明】
【0019】
図1】電子商取引システムの構成の概要を示す図である。
図2】電子商取引サーバの構成を示す図である。
図3】商品データベースに格納される商品情報の例を示す図である。
図4】ユーザ端末の構成を示す図である。
図5】電子商取引システムの機能的な構成を示す図である。
図6】ユーザ情報を示す図である。
図7】商品情報の表示例を示す図である。
図8】商品情報の表示例を示す他の図である。
図9】商品情報の表示例を示す他の図である。
図10】第1アルゴリズムにおいて採用される要因と寄与率を示す図である。
図11】第2アルゴリズムにおいて採用される要因と寄与率を示す図である。
図12】更新処理を説明するためのフローチャートである。
図13】検索処理を説明するためのフローチャートである。
図14】変形例における電子商取引システムの機能的な構成を示す図である。
【発明を実施するための形態】
【0020】
本発明の実施形態を説明する。以下の実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【0021】
まず、本実施形態の電子商取引システム1の概要構成を、図1を用いて説明する。電子商取引システム1は、電子商取引サーバ10と、電子商取引に参加するユーザが使用するユーザ端末20(図1では、ユーザ端末20A,20Bの二つ)と、通信ネットワーク50とから構成される。本実施形態では、通信ネットワーク50はインターネットである。
【0022】
本実施形態においては、電子商取引とは、インターネット上で行われるオークションである。電子商取引サーバ10は、オークションのシステム管理者により管理される。オークションには、様々な商品やサービスが出品される。オークションでは、売り手ユーザによって登録された商品は、最終的に最も高い価格を提示した買い手ユーザに販売される。
【0023】
説明の簡略化のため、商品とサービスをまとめて「商品」と呼び、商品には、例えばホテルの宿泊券、オンラインチケット、ソフトウェアの使用ライセンスなどの無形のサービス、も含まれる。
【0024】
なお、電子商取引はオークションに限定されず、例えばインターネット上で商品を売買する電子ショッピングモールでもよい。
【0025】
電子商取引サーバ10は、売り手ユーザによって登録された商品を示す商品情報を記憶し、閲覧要求があったユーザ端末20へ商品情報を送信する。
【0026】
商品情報は、ユーザ端末20からアクセス可能なウェブページによって、ユーザ端末20に提供される。ウェブページは、HTML(HyperText Markup Language)データ、画像データ、音声データ等から構成される。ウェブページはHTML形式でなくてもよく、XML(Extensible Markup Language)形式、XHTML(Extensible HyperText Markup Language)形式などでもよい。あるいは、商品情報は、ユーザ端末20に予めインストールされた専用のアプリケーションを用いてユーザ端末20に提供されてもよい。
【0027】
電子商取引サーバ10は、ユーザが指定した商品情報の送信をユーザ端末20から要求されると、ユーザによって指定された商品に関する商品情報をユーザ端末20へ送信する。また、電子商取引サーバ10は、ユーザから指定された商品に関する商品情報だけでなく、売り手ユーザ(もしくはシステム管理者)にとって買い手ユーザの注目を惹きたい商品や買い手ユーザに購入を勧めたい商品に関する商品情報を検索して、ユーザ端末20へ送信する。このため、以下の説明において、電子商取引サーバ10を検索装置と呼ぶことがある。
【0028】
ユーザ端末20は、出品物を登録する売り手ユーザ、もしくは、商品情報を閲覧し入札する買い手ユーザによって、操作される。売り手ユーザは、ユーザ端末20を操作して電子商取引サーバ10にアクセスし、商品情報を登録して出品する。買い手ユーザは、ユーザ端末20を操作して電子商取引サーバ10にアクセスし、商品情報を閲覧する。
【0029】
なお、以下の説明において、単に「ユーザ」と言う場合には、主に買い手ユーザを指す。
【0030】
通信ネットワーク50は、電子商取引サーバ10とユーザ端末20とを互いに接続する。通信ネットワーク50は、典型的にはインターネットであるが、電話回線、専用回線、LAN(Local Area Network)などが含まれてもよい。
【0031】
次に、電子商取引サーバ10のハードウェア構成について、図2を用いて説明する。電子商取引サーバ10は、記憶部201、通信部202、制御部203を備える。
【0032】
記憶部201は、ハードディスク等の記憶装置から構成される。記憶部201には、商品データベース251が記憶される。商品データベース251は、電子商取引に出品されるすべての商品についての商品情報を記憶する。
【0033】
通信部202は、NIC(Network Interface Card)を備え、電子商取引サーバ10を通信ネットワーク50に接続し、ユーザ端末20と通信する。
【0034】
制御部203は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等を備え、電子商取引サーバ10全体を制御する。また、制御部203は、第1スコアと第2スコアを計算し、商品情報を更新する。詳しくは後述する。
【0035】
図3に、商品データベース251に記憶される商品情報の構成例を示す。商品データベース251には、商品を識別する出品番号と対応付けて、商品名、出品者、入札期限等、商品の属性を示す様々なデータが記憶される。商品情報は、売り手ユーザが使用するユーザ端末20、あるいは、電子商取引サーバ10によって、随時更新される。
【0036】
また、商品情報には、第1アルゴリズムに基づいて制御部203によって計算された第1スコア310と、第2アルゴリズムに基づいて制御部203によって計算された第2スコア320とが含まれる。第1スコア310と第2スコア320は、例えば0から200までの整数といったように、予め決められた範囲内の数値によって表される。
【0037】
第1スコア310と第2スコア320は、それぞれ、例えば入札数、閲覧数、商品情報の最終更新日時、入札期限日時までの残り時間、出品された時点での価格、現在の最高値、等に基づいて計算される。
【0038】
第1スコア310と第2スコア320は、オークションのシステム管理者にとってユーザに注目させたい商品、あるいは、多くのユーザに注目されている商品を推定するために用いられる。制御部203は、ユーザ端末20から商品情報を閲覧する要求を受信すると、要求された商品情報に加えて、第1スコア310が比較的高い商品情報が示す商品、又は、第2スコア320が比較的高い商品情報が示す商品を、ユーザへのお薦め商品としてユーザに提示する。本実施形態では、第1スコア310が大きいほど、ユーザの購買意欲を増加させる効果が高い(ユーザの反応が良い)と推定される。同様に、第2スコア320が大きいほど、ユーザの反応が良いと推定される。
【0039】
ところで、ユーザにどの商品を勧めれば購買意欲をより高められるかを推測するために、様々なアルゴリズムが開発され、テストされる。第1アルゴリズムによって計算された第1スコア310が現在正式に採用されていても、より良いサービスを実現すべく並行して、他のアルゴリズムが開発されることがある。現在開発中の第2アルゴリズムによって計算された第2スコア320のほうが、第1アルゴリズムによって計算された第1スコア310よりも、ページビュー率が高かったり購買率が高かったりするかもしれない。そこで、全ユーザのうちある決まった割合のユーザ(例えば全ユーザの50%)については、第1アルゴリズムによって計算された第1スコア310に基づいて商品情報を提供しつつも、残りのユーザ(例えば残りの50%のユーザ)については、第2アルゴリズムによって計算された第2スコア320に基づいて商品情報を提供することによって、二つのアルゴリズムを比較する、いわゆるA−Bテストが実施される。
【0040】
本実施形態では、このA−Bテストは、本番環境とは別途構築されたテスト環境ではなく、実際に稼働中の本番環境上で実行される。
【0041】
なお、第1アルゴリズムと第2アルゴリズムの具体的なロジック、計算式等は、本発明によって限定されない。
【0042】
また、全ユーザ数に対する第1スコア310を採用する対象ユーザ数の割合と、全ユーザ数に対する第2スコア320を採用する対象ユーザ数の割合は、本実施形態では共に50%としているが、任意に変更してよい。
【0043】
電子商取引サーバ10として、一般的なコンピュータサーバ、メインフレーム、クラウド型サーバなどを用いることができる。
【0044】
次に、ユーザ端末20のハードウェア構成について、図4を用いて説明する。ユーザ端末20は、通信部401、画像処理部402、音声処理部403、I/O(Input/Output)部404、入力部405、記憶部406、制御部407を備える。
【0045】
通信部401は、NICを備え、ユーザ端末20を通信ネットワーク50に接続し、電子商取引サーバ10と通信する。
【0046】
画像処理部402は、画像を生成してディスプレイ451に表示する。例えば、画像処理部402は、上述の商品情報を含むウェブページを構成するHTMLデータや画像データ、入札を受け付けるウェブページを構成するHTMLデータや画像データ等を、通信部401を介して電子商取引サーバ10から受信し、商品情報等をディスプレイ451に表示する。
【0047】
音声処理部403は、記憶部406もしくは電子商取引サーバ10から音声データを取得し、再生し、音声をスピーカ452から出力する。
【0048】
I/O部404は、取り外し可能なメモリカードをユーザ端末20に接続するインタフェースを備える。
【0049】
入力部405は、ユーザからの入力を受け付けるインタフェースを備える。本実施形態では、入力部405は、キーボードとマウスを備える。
【0050】
記憶部406は、ROM、RAM等の記憶装置を備え、ユーザ端末20を制御するオペレーティングシステム、各種のプログラム、画像データ、音声データ、テキストデータ等を記憶する。
【0051】
制御部407は、CPUを備え、ユーザ端末20全体を制御する。
【0052】
ユーザ端末20として、通信機能を持った一般的なパーソナルコンピュータ、携帯電話機、スマートフォン、携帯端末、タブレット型コンピュータ等を用いることができる。本実施形態では、ユーザ端末20としてパーソナルコンピュータを採用する。
【0053】
次に、電子商取引システム1の機能的な構成について、図5を用いて説明する。
【0054】
レコード記憶部501には、商品のそれぞれについて、商品情報を示すレコードが記憶される。一つの商品に関する商品情報を、一つの“レコード”と呼ぶ。図3には、出品番号が“12345”と“23456”と“34567”の三つのレコードが例示されている。本実施形態では、オークションに出品される商品一つにつき、一つのレコードが存在する。レコード記憶部501には、オークションに出品されるすべての商品に関する商品情報がレコード記憶部501に記憶される。電子商取引サーバ10の記憶部201がレコード記憶部501として機能する。
【0055】
更新部502は、レコード記憶部501に記憶されるレコードを更新する。電子商取引サーバ10の制御部203と記憶部201が協働して、更新部502として機能する。
【0056】
より詳細には、オークションが開催される期間の種別には二種類ある。すなわち、(1)すべてのユーザのうち一部のユーザ(「第1グループに属するユーザ」という。)に対しては第1スコア欄310に格納されているスコアを用いて商品情報を提供し、残りの一部のユーザ(「第2グループに属するユーザ」という。)に対しては第2スコア欄320に格納されているスコアを用いて商品情報を提供する“移行期間”と、(2)すべてのユーザに対して第1スコア欄310に格納されているスコアを用いて商品情報を提供する“非移行期間”である。
【0057】
移行期間は、システム管理者が開発した新しいアルゴリズムをテストする期間である。移行期間中、現在運用中の第1アルゴリズムと新たな第2アルゴリズムとを比較するA−Bテストが行われる。非移行期間は、A−Bテストを実施していない期間である。
【0058】
移行期間中では、制御部203は、第1アルゴリズムにより計算された第1スコアを、商品情報に含まれる第1スコア欄310に格納し、第2アルゴリズムにより計算された第2スコアを、商品情報に含まれる第2スコア欄320に格納する。
【0059】
非移行期間中では、制御部203は、第1アルゴリズムにより計算された第1スコアを、第1スコア欄310と第2スコア欄320の両方に格納する。第1スコア欄310と第2スコア欄320には同じ値が格納される。
【0060】
非移行期間から移行期間に切り替わった時点では、全レコードについて、第1スコア欄310と第2スコア欄320の両方に、第1スコアが格納されていることになる。移行期間における全レコードの第1スコア欄310と第2スコア欄320の更新が終わると、全レコードについて、第1スコア欄310には第1スコアが、第2スコア欄320には第2スコアが、それぞれ格納される。
【0061】
移行期間から非移行期間に切り替わった時点では、全レコードについて、第1スコア欄310には第1スコアが、第2スコア欄320には第2スコアが、それぞれ格納されていることになる。非移行期間における全レコードの第1スコア欄310と第2スコア欄320の更新が終わると、全レコードについて、第1スコア欄310と第2スコア欄320には第1スコアが格納される。
【0062】
レコードの数が多いほど、すべてのレコードの第1スコア欄310と第2スコア欄320の更新を完了するまでにかかる時間は長くなる。また、第1スコアと第2スコアを計算して更新する更新処理をすべてのレコードについて一度にまとめて行うと、商品データベース251を更新処理がほぼ占有することになり、一時的に負荷が増大し、レスポンスが低下するおそれがある。そこで、制御部203は、制御部203が行うすべての処理のうち更新処理の優先度を相対的に低くし、CPUのアイドル状態の割合が比較的大きい時間帯に更新処理を行う。このため、更新処理を開始しても、すべてのレコードの更新を完了するまでには時間がかかるので、移行期間中であっても、第1スコア欄310と第2スコア欄320の両方に第1スコアが格納されたままの状態のレコードが存在しうる。勿論、移行期間中であれば、時間はかかるかもしれないが、徐々に、すべてのレコードの第1スコア欄310と第2スコア欄320が更新されることになる。
【0063】
制御部203は、すべてのレコードを複数のグループに分割し、グループごとに更新処理を分散して実行してもよい。例えば、第1の時間帯には第1のグループに属するレコードを更新し、第2の時間帯には第2のグループに属するレコードを更新する、といったように、更新処理の対象となるレコードをグループ分けし、更新処理を分散して実行してもよい。
【0064】
制御部203は、更新処理を、商品情報が売り手ユーザ又はシステム管理者によって更新されるタイミングに、レコード単位で実行してもよい。例えば、制御部203は、非移行期間から移行期間に切り替わってからある商品に初めて入札があった時点で、もしくは、移行期間から非移行期間に切り替わってからある商品に初めて入札があった時点で、その商品に対応するレコードの第1スコア欄310と第2スコア欄320を更新してもよい。
【0065】
期間が切り替わった後、初めて入札があった時点だけでなく、あるいは、初めて入札があった時点に加えて、期間が切り替わった後の初めて商品情報が閲覧された時点(つまり期間が切り替わった後の初めてレコードが制御部203によって読み出された時点)や、出品された時点(新しいレコードが制御部203によって生成された時点)に、その商品に対応するレコードの第1スコア欄310と第2スコア欄320を更新してもよい。
【0066】
検索部503は、ユーザ端末20からクエリを受信すると、商品データベース251に記憶されたレコードの中から、クエリによって示される検索条件を満たすレコードを検索する。クエリは、指定された検索条件を満たすレコードを送信する旨の要求である。例えば、ユーザが商品情報を閲覧したい場合、ユーザはキーボードやマウス等を操作して検索条件を指定する。ユーザ端末20は、ユーザによって指定された検索条件を満たす商品に関する商品情報の送信を要求するクエリを生成し、電子商取引サーバ10へ送信する。検索部503は、受信したクエリに基づいて商品データベース251を検索する。
【0067】
また、検索部503は、ユーザが第1グループに属するか第2グループに属するかを判別する。第1グループに属するユーザは、第1スコア欄310に格納されたスコアに基づいて商品情報を提供すべきユーザであり、第2グループに属するユーザは、第2スコア欄320に格納されたスコアに基づいて商品情報を提供すべきユーザである。
【0068】
検索部503は、クエリを送信したユーザ端末20のユーザが第1グループに属すれば、第1スコア欄310に格納されたスコアに基づいて、ユーザに薦める商品に関する商品情報を示すレコードを並べ替え、ユーザ端末20へ順次送信する。また、検索部503は、クエリを送信したユーザ端末20のユーザが第2グループに属すれば、第2スコア欄320に格納されたスコアに基づいて、ユーザに薦める商品に関する商品情報を示すレコードを並べ替え、ユーザ端末20へ順次送信する。取得されたレコードはユーザ端末20へ送信され、ユーザ端末20のディスプレイに表示される。電子商取引サーバ10の記憶部201と通信部202と制御部203が協働して、検索部503として機能する。
【0069】
ユーザには、閲覧を希望する商品情報だけでなく、多くのユーザから注目されている商品やユーザへのお薦め商品等に関する商品情報が提供される。
【0070】
なお、クエリには、ユーザによって指定された特定の商品に関する商品情報の送信を要求するものがあってもよい。例えば、ユーザが特定の商品情報を閲覧したい場合、ユーザはキーボードやマウス等を操作して商品を指定する。ユーザ端末20は、ユーザによって指定された商品に関する商品情報の送信を要求するクエリを生成し、電子商取引サーバ10へ送信する。
【0071】
収集部504は、検索されたレコードに対する第1グループに属するユーザの反応を示すデータを収集する。また、収集部504は、検索されたレコードに対する第2グループに属するユーザの反応を示すデータを、ユーザに提示されたレコードにおいて第1スコア欄310に格納されているスコアと第2スコア欄320に格納されているスコアが等しいレコードの割合に対応付けて、収集する。制御部203と記憶部201が協働して、収集部504として機能する。
【0072】
より詳細には、制御部203は、クエリを受信すると、そのクエリが第1グループに属するユーザによるものか第2グループに属するユーザによるものかを判別する。本実施形態では、電子商取引サーバ10の制御部203は、ユーザから入力されたユーザ名及びパスワードと、予め登録されたユーザ名及びパスワードとを照合し、正規のユーザであるか否かを判別するログイン処理を行う。ユーザから入力されたユーザ名及びパスワードと、予め登録されたユーザ名及びパスワードとが合致し、正規のユーザであると判別すると、制御部203は、ユーザが第1グループに属するか第2グループに属するかを判別する。
【0073】
本実施形態では、制御部203は、予め登録された全ユーザを、第1グループと第2グループのいずれかに分類し、分類結果を記憶部201に記憶する。
【0074】
図6に、分類結果を含むユーザ属性が記憶されるユーザ情報の例を示す。記憶部201には、ユーザを識別するユーザIDと対応付けて、氏名、住所、購入履歴等のほか、第1グループに属するか第2グループに属するかを示す情報が記憶される。ここでは第1グループに属するのであれば“1”が、第2グループに属するのであれば“2”が、ユーザ情報に格納される。
【0075】
制御部203は、ユーザをどちらのグループに属させるかをランダムに決定してもよいし、電子商取引システム1の利用頻度等、予め決められた条件に従ってグループを決定してもよい。ユーザが属するグループは、A−Bテストを開始する前に、つまり非移行期間から移行期間に変更される前に、制御部203によって決定される。
【0076】
そして、制御部203は、検索されたレコードに対する第1グループに属するユーザの反応を示す情報を収集する。具体的には、制御部203は、お薦め商品に関する商品情報の提示後に、第1グループに属する各ユーザが何らかの商品(お薦め商品でなくてもよい)に入札したか否かを判別する。すなわち、お薦め商品が提示された後にそのユーザによって入札されれば、ユーザがオークションに興味を示したと判別され、商品を薦めた効果があったと推測される。
【0077】
また、制御部203は、検索されたレコードに対する第2グループに属するユーザの反応を示す情報を収集する。具体的には、制御部203は、お薦め商品に関する商品情報の提示後に、第2グループに属する各ユーザが何らかの商品に入札したか否かを判別する。すなわち、お薦め商品が提示された後にそのユーザによって入札されれば、ユーザがオークションに興味を示したと判別され、商品を薦めた効果があったと推測される。
【0078】
なお、制御部203は、第1グループ(又は第2グループ)に属するユーザが何らかの商品に入札したか否かを判別する代わりに、第1グループ(又は第2グループ)に属するユーザが検索された商品に入札したか否かを判別してもよい。
【0079】
ここで、第2グループに属するユーザについては、制御部203は、検索されたレコードにおいて第1スコア欄310に格納されているスコアと第2スコア欄320に格納されているスコアとが等しいレコードの割合に対応付けて、ユーザの反応を示す情報を収集する。
【0080】
上述したように、レコード数が多い場合、期間が変更されてから(移行期間から非移行期間に変更されてから、又は、非移行期間から移行期間に変更されてから)、すべてのレコードの第1スコア欄310と第2スコア欄320の更新が完了するまで、時間がかかると考えられる。更新処理を開始してからすぐ後であれば、例えば全商品の1%程度しか第1スコア欄310と第2スコア欄320を更新できておらず、非移行期間内に設定された値のままかもしれない。すると、残りの99%の商品については第1スコア欄310と第2スコア欄320が更新されておらず、A−Bテストの正確な結果が得られない。そこで、制御部203は、全レコード中の第1スコア欄310に格納されているスコアと第2スコア欄320に格納されているスコアが等しいレコードの割合に対応付けて、ユーザの反応を示す情報を収集し、更新がまだ終わっていない商品に対するユーザの反応を推定する。
【0081】
例えば、第2スコア欄320に格納されているスコアが大きい順に上位20件の商品情報をユーザにお薦めする場合に、20件のレコードのうち15件のレコードにおいて第1スコア欄310に格納されているスコアと第2スコア欄320に格納されているスコアが等しかったとすると、全レコード中、第1スコア欄310に格納されているスコアと第2スコア欄320に格納されているスコアとが等しいレコードの割合は、75%である。ユーザが何らかの商品に入札すれば、ユーザの反応を示す情報として、ユーザが反応した数(反応数)に1を加算する。つまり、第1スコア欄310に格納されているスコアと第2スコア欄320に格納されているスコアとが等しいレコードの割合が75%であることに対応する反応数が得られる。
【0082】
同様にして、第1スコア欄310に格納されているスコアと第2スコア欄320に格納されているスコアが等しいレコードの割合が50%であることに対応する反応数、第1スコア欄310に格納されているスコアと第2スコア欄320に格納されているスコアが等しいレコードの割合が40%であることに対応する反応数、第1スコア欄310に格納されているスコアと第2スコア欄320に格納されているスコアが等しいレコードの割合が30%であることに対応する反応数、等々が得られる。
【0083】
次に、推定部505は、収集部504によって収集された第1グループに属するユーザの反応を示すデータに基づいて、第1グループに属するユーザの第1反応率Bを推定する。また、推定部505は、第1スコア欄310に格納されているスコアと第2スコア欄320に格納されているスコアが等しいレコードの割合に応じて収集された第2グループに属するユーザの反応を示すデータに基づいて、第2グループに属するユーザの第2反応率Cを推定する。制御部203が推定部505として機能する。
【0084】
より詳細には、制御部203は、第1グループに属するユーザから通算してY個(Yは1以上の整数)のクエリQ[i](iは1からYまでの整数)を受信したとき、クエリQ[i]のそれぞれに応答して、クエリQ[i]に含まれる検索条件を満たすレコードを商品データベース251から検索する。そして、制御部203は、クエリQ[i]に対する検索結果R[i]をユーザ端末20へ送信する。検索結果R[i]は、ユーザ端末20によってユーザに表示される。
【0085】
検索結果R[i]が提示された第1グループに属するM人のユーザのうち、提示後に何らかの商品に入札したユーザの人数がm人であったとすると、第1グループに属するユーザの第1反応率Bは、[式1]で表される。
【0086】
B = m/M ・・・[式1]
【0087】
制御部203は、検索結果R[i]の提示後にユーザが何らかの商品を入札した場合ではなく、検索結果R[i]の提示後にユーザが検索結果R[i]に含まれるレコードに対応する商品のいずれかに入札した場合に、変数mをインクリメントしてもよい。
【0088】
制御部203は、第2グループに属するユーザから通算してX個(Xは1以上の整数)のクエリQ[i](iは1からXまでの整数)を受信したとき、クエリQ[i]のそれぞれに応答して、クエリQ[i]に含まれる検索条件を満たすレコードを商品データベース251から検索する。そして、制御部203は、クエリQ[i]に対する検索結果R[i]をユーザ端末20へ送信する。検索結果R[i]は、ユーザ端末20によってユーザに表示される。
【0089】
制御部203は、すべてのレコードのうち、第2スコア欄320に格納されているスコアが最も大きいレコードから順に所定個数(例えば20個)のレコードを検索結果R[i]とする。つまり、第2スコア欄320に格納されているスコアが大きい順に所定個数のレコードが検索結果R[i]となる。
【0090】
ただし、所定個数は任意であり、全ユーザについて同じ個数としてもよいし、第1グループに属するユーザなら第1の所定個数、第2グループに属するユーザなら第2の所定個数というように、ユーザごとに異なる個数としてもよい。
【0091】
検索結果R[i]に含まれるX個のレコードのうち、第1スコア欄310に格納されているスコアと第2スコア欄320に格納されているスコアが等しいレコードの割合をW[i]とする。
【0092】
例えば、非移行期間から移行期間に変更された後、第1スコア欄310と第2スコア欄320を更新する更新処理がまだ完了していない場合、更新処理がまだ行われていないレコードの第1スコア欄310に格納されているスコアと第2スコア欄320に格納されているスコアは等しいままである。
【0093】
なお、第1アルゴリズムによって計算された第1スコアと、第2アルゴリズムによって計算された第2スコアとが、偶然等しくなる可能性がある。しかし、本実施形態では、このような偶然一致するケースは誤差の範囲内とする。
【0094】
ただし、制御部203は、第1スコアが取りうる範囲と、第2スコアが取りうる範囲とが重複しないように設定してもよい。例えば、第1スコアが0以上100以下の実数とし、第2スコアが1000以上1100以下の実数とすれば、第1スコアと第2スコアが偶然一致するケースはない。
【0095】
また、制御部203は、第1アルゴリズムによって計算された第1スコアと、第2アルゴリズムによって計算された第2スコアとが等しくなった場合には、第1スコアと第2スコアのうち少なくともいずれか一方を微少に変化させてから、第1スコアと第2スコアをレコードに格納してもよい。
【0096】
変化させる量は、例えば、ランダムな値に設定される。また、微少とは、スコア同士の大小関係に過度に影響を及ぼさない程度であり、スコアの値の数パーセント程度以下とするとよい。
【0097】
制御部203は、検索結果R[i]を提示されたユーザが、提示後に何らかの商品を入札した場合、そのユーザの反応S[i]に“1”をセットする。何も入札しなかった場合、制御部203は、そのユーザの反応S[i]に“0”をセットする。
【0098】
制御部203は、検索結果R[i]の提示後にユーザが何らかの商品を入札した場合ではなく、検索結果R[i]の提示後にユーザが検索結果R[i]に含まれるレコードに対応する商品のいずれかに入札した場合に、反応S[i]に“1”をセットし、それ以外の場合に、反応S[i]に“0”をセットしてもよい。
【0099】
検索結果R[i]が提示された第2グループに属するN人のユーザのうち、提示後に何らかの商品に入札したユーザの人数がn人であったとすると、割合W[i]の場合における、第2グループに属するユーザの第2反応率C(W[i])は、[式2]で表される。
【0100】
C(W[i]) = n/N ・・・[式2]
【0101】
割合W[i]=0であれば、商品データベース251に格納されているすべてのレコードの第1スコア欄310と第2スコア欄320が更新されたとは言い切れないものの、少なくとも、検索結果R[i]に含まれるすべてのレコードの第1スコア欄310と第2スコア欄320が更新されていることを意味する。つまり、近似的に、C(0)が、第2アルゴリズムを正式にリリースした場合に期待される反応率であるとみなすことが可能である。第2反応率Cが大きいほど、出品者もしくはシステム管理者にとって優れたアルゴリズムと言える。しかし、第2反応率Cの正確な値は、全レコードの第1スコア欄310と第2スコア欄320を更新した後でなければ分からない。そこで、本実施形態では、全レコードの第1スコア欄310と第2スコア欄320の更新が終わる前でも、第2反応率Cをなるべく正確に推定できるようにするのである。
【0102】
割合W[i](=p)は、0以上1以下の値を取りうる。制御部203は、[式3]に示すように、一次補間により、第2反応率を表す近似関数C(p)を得る。
【0103】
C(p) = B×p + C×(1−p) ・・・[式3]
【0104】
上述したようにi番目の割合W[i]が得られている。制御部203は、[式4]に示すように、[式3]に基づいてユーザの反応を表す近似値S’[i]を得る。
【0105】
S’[i] = B×W[i] + C×(1−W[i])
・・・[式4]
【0106】
一方、反応S[i]は[式4]によらずとも上述のように得られるのであるから、近似値S’(i)の誤差e(i)は[式5]によって表される。
【0107】
e(i) = S[i] − S’[i]
= S[i] − B×W[i] + C×(1−W[i])
・・・[式5]
【0108】
二乗平均平方根(Root Mean Square;RMS)は[式6]により表される。
【0109】
RMS = √((Σe(i)^2)/X) ・・・[式6]
【0110】
演算子「^2」は二乗を表す。演算子「Σ」はiが0からXまでのe(i)^2の和を表す。演算子「√」は平方根を表す。
【0111】
制御部203は、RMSが最小となるときの第2反応率Cを求める。
【0112】
以上の計算により、第1反応率Bと第2反応率Cが得られる。第2反応率Cが第1反応率Bより大きければ、第2アルゴリズムは第1アルゴリズムよりも優れていることになり、システム管理者は第1アルゴリズムよりも第2アルゴリズムを採用すべきであると言える。第1アルゴリズムが第2アルゴリズムよりも優れていれば、システム管理者は、第1アルゴリズムと第2アルゴリズムを入れ替えずに、非移行期間に戻せばよい。第2アルゴリズムが第1アルゴリズムよりも優れていれば、システム管理者は、第1アルゴリズムを第2アルゴリズムで置き換えてから、非移行期間に戻せばよい。
【0113】
次に、受信部506は、クエリに含まれる検索条件を満たすレコードを電子商取引サーバ10から受信する。ユーザ端末20の制御部407と通信部401が協働して、受信部506として機能する。
【0114】
表示部507は、受信部506により受信した、商品情報を示すレコードに基づいて、商品情報をディスプレイ451に表示する。制御部407と画像処理部402が協働して、表示部507として機能する。
【0115】
図7に、ユーザ端末20による商品情報の表示例を示す。ユーザは、所望のキーワードを入力し、ボタン701〜705を操作することにより所望のソート順を選択することにより、検索条件を決定する。ユーザ端末20の制御部407は、入力された内容に基づいてクエリを生成し、生成したクエリを電子商取引サーバ10へ送信する。
【0116】
ソート順には、例えば、価格が安い順、価格が高い順、入札が多い順、入札が少ない順、人気順、の五つがある。
【0117】
移行期間か非移行期間かにかかわらず、価格が安い順、価格が高い順、入札が多い順、入札が少ない順の四つのうちのいずれかが指定されると、電子商取引サーバ10の制御部203は、検索結果であるレコードの抽出後、抽出したレコードを指定された順でソートし、ユーザ端末20へ送信する。
【0118】
例えば、キーワード「ゲーム」「フライトシミュレーター」が入力され、且つ、ソート順として「入札が多い順」が指定されると、ユーザ端末20の制御部407は、商品説明等に「ゲーム」と「フライトシミュレーター」が含まれている商品情報を入札が多い順にソートして表示する、というクエリを生成して電子商取引サーバ10へ送信する。電子商取引サーバ10の制御部203は、受信したクエリに基づき、商品データベース251を検索する。制御部203は、検索されたレコードを入札件数が多い順にソートし、ソートされたレコードを含むデータをユーザ端末20へ送信する。ユーザ端末20の制御部407は、検索結果であるレコード(図7ではレコード751,752,753の三つ)を上から入札件数が多い順に表示する。
【0119】
ソート順として「人気順」が指定された場合については、移行期間と非移行期間とで動作が異なる。
【0120】
非移行期間において、並び順として「人気順」が指定されると、電子商取引サーバ10の制御部203は、検索結果であるレコードの抽出後、抽出したレコードを第1スコア欄310に格納されているスコアが大きい順にソートする。制御部203は、ソートされたレコードをユーザ端末20へ送信する。ユーザ端末20の制御部407は、検索結果であるレコードを表示する。非移行期間では、ユーザが第1グループに属するか第2グループに属するかは考慮されない。
【0121】
一方、移行期間において、ソート順として「人気順」が指定されると、電子商取引サーバ10の制御部203は、第1グループに属するユーザが電子商取引システムにログインした状態でクエリが送信されたならば、検索結果であるレコードの抽出後、抽出したレコードを第1スコア欄310に格納されているレコードが大きい順にソートする。そして、制御部203は、ソートされたレコードを含むデータをユーザ端末20へ送信する。ユーザ端末20の制御部407は、検索結果であるソートされたレコードを表示する。
【0122】
図8に、移行期間中、第1グループに属するユーザがログインした状態における、ユーザ端末20による商品情報の表示例を示す。
【0123】
また、移行期間において、ソート順として「人気順」が指定されると、電子商取引サーバ10の制御部203は、第2グループに属するユーザが電子商取引システムにログインした状態でクエリが送信されたならば、検索結果であるレコードの抽出後、抽出したレコードを第2スコア欄320に格納されているスコアが大きい順にソートする。そして、制御部203は、ソートされたレコードをユーザ端末20へ送信する。ユーザ端末20の制御部407は、検索結果であるソートされたレコードを表示する。
【0124】
図9に、移行期間中、第2グループに属するユーザがログインした状態における、ユーザ端末20による商品情報の表示例を示す。
【0125】
図8図9を比較すると分かるように、第1グループに属するユーザと、第2グループに属するユーザとでは、適用されるアルゴリズムが異なるため、表示内容が異なってくる。
【0126】
図10に、第1アルゴリズムにおいて、第1スコアの計算に用いられるパラメータとなる要因と、その要因が第1スコアに寄与する度合い(寄与率)との関係を示す。また、図11に、第2アルゴリズムにおいて、第2スコアの計算に用いられるパラメータとなる要因と、その要因が第2スコアに寄与する度合い(寄与率)との関係を示す。
【0127】
第1アルゴリズムでは、各要因の寄与率が均等になるように設計されているが、第2アルゴリズムでは、ページビュー数(商品情報を示すウェブページがユーザ端末20によって表示された回数)と、ブックマーク数(商品情報を示すウェブページがユーザによって“お気に入り”に登録された件数)の寄与率が相対的に高まるように設計されている。
【0128】
ページビュー数とブックマーク数はいずれも、システム管理者は把握可能であるものの、買い手ユーザは一般に知り得ない情報である。しかし、ページビュー数とブックマーク数は、どの商品がどのくらい関心を持たれているのかを判断するために有益な情報となり得る。そこで、電子商取引サーバ10は、ページビュー数とブックマーク数を、ユーザに直接的に提示はしないものの、ページビュー数とブックマーク数を勘案したアルゴリズムにより計算されたスコアを用いて間接的に提示することで、買い手ユーザに多種多様な商品を紹介し、興味を持たせるように工夫している。
【0129】
なお、図10図11に示した要因と寄与率はあくまでも例示であり、アルゴリズムの詳細は本発明によって限定されない。
【0130】
次に、入力受付部508は、ユーザからの様々な指示入力を受け付ける。受け付けられる指示入力には、例えば、検索条件となるキーワードの入力、ソート順を指定する入力、等がある。ユーザは、キーボードやマウス等の入力デバイスを用いて指示を入力する。ユーザ端末20の入力部405と制御部407が協働して、入力受付部508として機能する。
【0131】
送信部509は、入力受付部508が受け付けた指示入力に基づいて生成されたクエリを電子商取引サーバ10へ送信する。ユーザ端末20の制御部407と通信部401が協働して、送信部509として機能する。
【0132】
受信部510は、ユーザ端末20からクエリを受信する。上述のように、検索部503は、受信したクエリに基づいてレコードを検索し、検索結果を順次ユーザ端末20へ送信する。電子商取引サーバ10の制御部203と通信部202が協働して、受信部510として機能する。
【0133】
次に、本実施形態の電子商取引サーバ10において実行される、第1スコア欄310と第2スコア欄320を更新する更新処理の流れについて、図12のフローチャートを用いて説明する。
【0134】
まず、制御部203は、更新タイミングになったか否かを判別する(ステップS1201)。
【0135】
更新タイミングになっていないと判別した場合(ステップS1201;NO)、制御部203は、更新タイミングになるまで待機する。
【0136】
更新タイミングになったと判別した場合(ステップS1201;YES)、制御部203は、現在時刻が移行期間に含まれるか否かを判別する(ステップS1202)。
【0137】
例えば、システム管理者が新しいアルゴリズム(第2アルゴリズム)を作成し、現在本番運用中の第1アルゴリズムと新しい第2アルゴリズムとを並行して運用して比較するA−Bテストを開始すると判断すると、システム管理者は電子商取引システム1を非移行期間から移行期間に変更する。A−Bテストを行わない場合は、システム管理者は電子商取引システム1を移行期間から非移行期間に変更する。
【0138】
現在時刻が移行期間に含まれると判別した場合(ステップS1202;YES)、制御部203は、商品データベース251に格納されているすべてのレコードを対象に、第1アルゴリズムに基づいて第1スコアを計算し、第2アルゴリズムに基づいて第2スコアを計算する(ステップS1203)。
【0139】
なお、上述したように、制御部203は、商品データベース251に格納されているすべてのレコードを対象に一斉に第1スコアと第2スコアの計算を開始してもよいし、レコードを複数のグループに分割し、グループ単位で第1スコアと第2スコアの計算を行ってもよい。
【0140】
そして、制御部203は、レコードの第1スコア欄310に第1スコアを格納し、レコードの第2スコア欄320に第2スコアを格納する(ステップS1204)。
【0141】
一方、現在時刻が移行期間に含まれない(非移行期間である)と判別した場合(ステップS1202;NO)、制御部203は、第1アルゴリズムに基づいて第1スコアを計算する(ステップS1205)。第2スコアは計算されない。
【0142】
そして、制御部203は、レコードのうち第1スコア欄310と第2スコア欄320の両方に、第1スコアを格納する(ステップS1206)。
【0143】
この更新処理により、制御部203は、移行期間であれば、第1スコアと第2スコアの両方をレコードに格納し、非移行期間であれば、第1スコアのみをレコードに格納する。
【0144】
なお、レコードの数が多いほど、更新処理を完了するまでに時間がかかるため、非移行期間から移行期間に変わった後でも、非移行期間中に計算された第1スコアが第2スコア欄320に格納されたままの状態になる期間があり得る。全レコードの更新が終われば、移行期間中、第1スコア欄310には第1スコアが、第2スコア欄320には第2スコアが、それぞれ格納される。
【0145】
また、移行期間から非移行期間に変わった後でも、移行期間中に計算された第2スコアが第2スコア欄320に格納されたままの状態になる期間があり得る。全レコードの更新が終われば、非移行期間中、第1スコア欄310と第2スコア欄320の両方に第1スコアが格納される。
【0146】
次に、本実施形態の電子商取引サーバ10とユーザ端末20とによって実行される、クエリに基づいて得られた検索結果がユーザに提示される検索処理の流れについて、図13のフローチャートを用いて説明する。ここでは、ソート順として「人気順」が選択されたものとする。
【0147】
まず、電子商取引サーバ10とユーザ端末20は、ログイン処理を行う(ステップS1301)。
【0148】
具体的には、ユーザ端末20は、ユーザからユーザ名及びパスワードの入力を受け付け、これらを暗号化して電子商取引サーバ10へ送信する。電子商取引サーバ10は、暗号化されたユーザ名及びパスワードを復号し、得られたユーザ名及びパスワードと、予め登録され記憶されたユーザ名及びパスワードとを照合する。これらが一致すれば、電子商取引サーバ10は、認証を要求したユーザが正規のユーザであると判別し、電子商取引サービスの利用を許可する。これらが一致しなければ、電子商取引サーバ10は、認証を要求したユーザが正規のユーザではないと判別し、電子商取引サービスの利用を許可しない。
【0149】
なお、電子商取引サーバ10の制御部203は、このログイン処理において認証したユーザ名と、図6に示すユーザ情報とに基づいて、ログインしたユーザが第1グループに属するのか第2グループに属するのかを判別する。
【0150】
ユーザ端末20の制御部407は、正規のユーザと認証されたユーザから、検索条件となるキーワードとソート順を指定する入力を受け付ける(ステップS1302)。
【0151】
ユーザ端末20の制御部407は、入力された検索条件を含むクエリを生成して電子商取引サーバ10へ送信する(ステップS1303)。
【0152】
電子商取引サーバ10の制御部203は、ユーザ端末20からクエリを受信する(ステップS1304)。
【0153】
電子商取引サーバ10の制御部203は、受信したクエリに基づいてレコードを検索する(ステップS1305)。
【0154】
電子商取引サーバ10の制御部203は、ユーザが第1グループに属するのか第2グループに属するのかを判別する(ステップS1306)。
【0155】
ユーザが第1グループに属すると判別した場合(ステップS1306;YES)、制御部203は、検索されたレコードを第1スコア欄310に格納されているスコアが大きい順にソートし、ソートされた検索結果をユーザ端末20へ送信する(ステップS1307)。
【0156】
ユーザが第1グループに属さない、つまりユーザが第2グループに属すると判別した場合(ステップS1306;NO)、制御部203は、検索されたレコードを第2スコア欄320に格納されているスコアが大きい順にソートし、ソートされた検索結果をユーザ端末20へ送信する(ステップS1308)。
【0157】
ユーザ端末20の制御部407は、第1スコア欄310に格納されているスコアに基づいてソートされた検索結果、又は、第2スコア欄320に格納されているスコアに基づいてソートされた検索結果を、電子商取引サーバ10から受信する(ステップS1309)。
【0158】
ユーザ端末20の制御部407は、受信した検索結果をディスプレイ451に表示する(ステップS1310)。
【0159】
ユーザ端末20の制御部407は、ユーザの反応を示すデータを電子商取引サーバ10へ送信する(ステップS1311)。
【0160】
電子商取引サーバ10の制御部203は、ユーザの反応を示すデータをユーザ端末20から受信し、記憶部201に記録する(ステップS1312)。
【0161】
そして、電子商取引サーバ10の制御部203は、[式1]から[式6]を用いて、第1グループに属するユーザによる第1反応率Bと、第2グループに属するユーザによる第2反応率Cとを計算し(ステップS1313)、出力する。
【0162】
ステップS1313での計算結果から、システム管理者は、第1アルゴリズムと第2アルゴリズムのどちらがより優れているのかを判断する。第1アルゴリズムに基づいて計算される第1反応率Bよりも、第2アルゴリズムに基づいて計算される第2反応率Cの方が大きければ、第2アルゴリズムが第1アルゴリズムよりも優れている。
【0163】
なお、このフローチャートでは、ステップS1313において第1反応率Bと第2反応率Cが計算されているが、制御部203は、検索処理を実行するたびに毎回これらを計算しなくてもよく、例えば、システム管理者から任意のタイミングで入力されるコマンドに応答して、第1反応率Bと第2反応率Cを計算してもよい。
【0164】
第1反応率Bと第2反応率Cは、例えば、システム管理者から任意のタイミングで入力されるコマンドに応答して、電子商取引サーバ10に接続されるディスプレイ等に表示されればよい。
【0165】
また、ユーザが入札する処理が省略されているが、ステップS1310において表示された検索結果を用いて何らかの商品がユーザによって入札された場合には、ユーザ端末20は、入札した商品を識別する出品番号と入札金額とを暗号化して電子商取引サーバ10へ送信する。電子商取引サーバ10は、暗号化された出品番号と入札金額を復号し、商品データベース251を更新する。入札された商品に対応するレコードには、入札時刻と入札金額と入札したユーザのユーザIDとが対応付けて格納される。
【0166】
本実施形態の電子商取引システム1によれば、二種類のアルゴリズムを比較するA−Bテストを行う際、本番環境のほかに特別なテスト環境を構築する必要がなく、電子商取引システム1の開発や保守にかかるコストを抑えることができる。また、レコードの数が多いほどスコアの更新に要する時間が長くなり、従来はA−Bテストの結果を得るまでに時間がかかったが、本実施形態によれば、A−Bテストの結果をより早くより正確に推定できるようになる。
【0167】
本発明は、上述した実施形態に限定されず、種々の変形及び応用が可能である。また、上述した実施形態の各構成要素を自由に組み合わせることも可能である。
【0168】
電子商取引サーバ10の制御部203は、移行期間において、全レコードを第1スコア欄310に格納されているスコアに基づいてソートした順で更新してもよい。例えば、制御部203は、第1スコアと第2スコアを計算する対象のレコードを、第1スコア欄310に格納されているスコアが大きい順に選択してもよい。ユーザには、第1スコア欄310に格納されているスコアが大きい順に、レコードが提示される。
【0169】
ユーザには、スコアが大きい順に20件ごと、スコアが大きい順に50件ごと、といったように、先頭から提示されることが多い。従って、スコアが低いレコードは、ユーザに提示されない可能性が比較的高いと考えられる。そこで、スコアが大きい順に更新することにより、できるだけ早期に、第1スコア欄310に格納されるスコアと第2スコア欄320に格納されるスコアとが異なるレコードがユーザの目に触れる機会を増やし、A−Bテストの効率を上げることができる。
【0170】
制御部203は、第2アルゴリズムによる第2反応率Cだけでなく、第1アルゴリズムによる第1反応率Bも推定してもよい。制御部203は、ユーザの反応を示すパラメータである反応S[i]と、反応S[i]に対応付けられた割合とに基づいて、この割合を1と仮定することにより、第1アルゴリズムによる第1反応率Bを推定してもよい。また、制御部203は、この割合を0と仮定することにより、第2アルゴリズムによる第2反応率Cを推定してもよい。
【0171】
上記実施形態では、ユーザが何らかの商品に入札すれば、反応S[i]に“1”がセットされ、何も入札されなければ、反応S[i]に“0”がセットされる。しかし、制御部203は、反応S[i]に、入札された金額(電子ショッピングモールであれば商品の購入価格)をセットするようにしてもよい。これにより、同じ「入札した」あるいは「購入した」というユーザの行為であっても、どの程度反応の大きさに違いがあるのかをスコアに反映させることができる。なお、制御部203は、検索結果を提示したユーザによって何も入札されなかった場合には、反応S[i]に“0”をセットすればよい。
【0172】
また、制御部203は、反応S[i]に、商品情報を示すウェブページの滞在時間(ウェブページを表示し続けた時間)をセットするようにしてもよい。滞在時間が長いほど、商品情報への関心が高いと推測される。滞在時間を考慮することにより、同じ「入札した」あるいは「購入した」というユーザの行為であっても、どの程度反応の大きさに違いがあるのかをスコアに反映させることができる。
【0173】
制御部203は、上述した更新処理を、定期的に繰り返し実行してもよい。例えば、図10図11に示すページビュー数、ブックマーク数、入札件数、現在の価格は、いずれも可変な値であり、更新処理を行うタイミングによって異なる可能性が高い。そこで、制御部203が、例えば毎日一回予め決められた時間帯等に、繰り返し実行することにより、第1反応率Bと第2反応率Cの精度を高めることができる。
【0174】
三つ以上のアルゴリズムを同時に比較する場合、制御部203は、新たに第3スコア欄をレコードに設け、第3スコア欄に第3スコアを格納してもよい。また、制御部203は、ユーザを三つのグループに分け、第1アルゴリズムは第1グループに属するユーザに適用し、第2アルゴリズムは第2グループに属するユーザに適用し、第3アルゴリズムは第3グループに属するユーザに適用すればよい。
【0175】
上記実施形態では、同時に二つのアルゴリズムを比較するA−Bテストを行っているが、アルゴリズムを一つのみ実装し、その実装した一つのアルゴリズムの精度を評価するために本発明を用いることもできる。
【0176】
図14に、変形例の電子商取引システム1の機能的な構成を示す。同一の機能部については同一の符号を記し、説明を省略する。
【0177】
上記実施形態では、オークションが開催される期間に移行期間と非移行期間があったが、本変形例では、実装されるアルゴリズムが一つしかないため、期間の区別はない。また、ユーザを、第1グループに属するユーザと第2グループに属するユーザとに分類する必要はない。
【0178】
設定部1401は、商品情報を示すレコードのスコアを計算するアルゴリズムを設定する。例えば、第1アルゴリズムと第2アルゴリズムとが存在し、第1アルゴリズムのみ電子商取引システム1に適用して第1アルゴリズムを単独でテストをする場合、設定部1401は、システム管理者からの指示に基づき、電子商取引システム1に適用するアルゴリズムとして、第1アルゴリズムを設定する。電子商取引サーバ10の制御部203が設定部1401として機能する。
【0179】
レコード記憶部501には、商品情報を示す複数のレコードが記憶される。上記実施形態では、一つのレコードに二つのスコア欄310,320があるが、本変形例では、一つのレコードに一つのスコア欄があればよい。
【0180】
更新部502は、レコード記憶部501に記憶されている複数のレコードにより識別される商品情報のそれぞれについて、設定部1401によって設定されたアルゴリズムにより計算されたスコアを、レコードに含まれるスコア欄に格納することにより、レコード記憶部501に記憶されている複数のレコードのそれぞれを更新する。
【0181】
また、更新部502は、スコア欄に記憶されたスコアによりソートした順で、レコード記憶部501に記憶されている複数のレコードを更新する。
【0182】
上述のように、レコード数が多いほどすべてのレコードについてスコア欄を更新するには時間がかかると予想されるため、アルゴリズムを入れ替えた後であっても、スコア欄に古いアルゴリズムによって計算されたスコアが格納されたままになっている期間があり得る。そこで、スコア欄に記憶されたスコアによりソートした順でレコードを更新することにより、できるだけ早期に、更新されたスコアを有するレコードがユーザの目に触れる機会を増やし、テストの効率を上げる。
【0183】
検索部503は、ユーザ端末20からクエリを受信すると、クエリに適合するレコードを検索し、検索されたレコードをスコア欄に格納されたスコアの順にユーザ端末20へ送信する。
【0184】
ユーザ端末20は、検索されたレコードを受信し、ディスプレイ451に表示する。ユーザ端末20には、クエリに含まれる検索条件を満たすレコードが、スコア欄に格納されているスコアの順に(例えばスコアが大きい順に)、表示される。
【0185】
本変形例においても、電子商取引サーバ10の制御部203は、[式1]を用いてユーザの反応率を計算し、出力することができる。システム管理者は、第1アルゴリズムを適用した場合に計算された反応率と、第2アルゴリズムを適用した場合に計算された反応率とを比較し、反応率が良い方のアルゴリズムを採用すればよい。
【0186】
上記実施形態及び変形例では、インターネット上で行われるオークションを例にとって説明したが、オークションに限られず、例えば電子ショッピングモールにおいてユーザにお薦め商品を提示するための手法として採用することもできる。また、インターネット等の一般的な検索システムにおける検索結果の提示手法として本発明を利用することができる。
【0187】
電子商取引システム1の全部又は一部としてコンピュータを動作させるためのプログラムを、メモリカード、CD(Compact Disc)、DVD(Digital Versatile Disk)、MO(Magneto Optical disk)などのコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。
【0188】
さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。
【0189】
本発明によれば、電子商取引システムの開発や保守にかかるコストを抑えるために好適な検索装置、検索方法、記録媒体、ならびに、プログラムを提供することができる。
【符号の説明】
【0190】
1 電子商取引システム
10 電子商取引サーバ
20,20A,20B,20C ユーザ端末
50 通信ネットワーク
201 記憶部
202 通信部
203 制御部
251 商品データベース
310 第1スコア
320 第2スコア
401 通信部
402 画像処理部
403 音声処理部
404 I/O部
405 入力部
406 記憶部
407 制御部
501 レコード記憶部
502 更新部
503 検索部
504 収集部
505 推定部
506 受信部
507 表示部
508 入力受付部
509 送信部
510 受信部
1401 設定部
【要約】
レコード記憶部(501)には複数のレコードが記憶される。更新部(502)は、第1期間中、第1アルゴリズムにより計算された第1スコアを第1スコア欄に格納し、第2アルゴリズムにより計算された第2スコアを第2スコア欄に格納する。更新部(502)は、第2期間中、第1スコアを第1スコア欄と第2スコア欄に格納する。検索部(503)は、レコードを検索し、ユーザが第1グループに属すれば第1スコア欄に格納されたスコアに基づいて、ユーザが第2グループに属すれば第2スコア欄に格納されたスコアに基づいてソートする。収集部(504)は、第1グループに属する第1ユーザの反応を収集し、第2グループに属する第2ユーザの反応を、検索されたレコード中、第1スコア欄と第2スコア欄に等しいスコアが格納されたレコードの割合に対応付けて収集する。推定部(505)は、第1ユーザの反応率と第2ユーザの反応率を推定する。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14