(57)【特許請求の範囲】
【請求項１】
複数のレコードが記憶されるレコード記憶部と、
前記記憶された複数のレコードにより識別される検索対象のそれぞれについて、
（ａ）移行期間中、第１アルゴリズムにより計算された第１スコアを、前記レコードに含まれる第１スコア欄に格納し、第２アルゴリズムにより計算された第２スコアを、前記レコードに含まれる第２スコア欄に格納し、
（ｂ）非移行期間中、前記第１アルゴリズムにより計算された第１スコアを、前記レコードに含まれる前記第１スコア欄と前記第２スコア欄に格納する
ことにより、前記記憶されている複数のレコードを更新する更新部と、
ユーザが操作するユーザ端末からクエリを受信すると、前記記憶された複数のレコードの中から前記受信したクエリに適合するレコードを検索し、前記ユーザが第１グループに属すれば前記第１スコア欄に格納されているスコアに基づく順に、前記ユーザが第２グループに属すれば前記第２スコア欄に格納されているスコアに基づく順に、前記検索されたレコードを前記ユーザ端末へ送信する検索部と、
前記検索されたレコードに対する前記第１グループに属する第１ユーザの反応を示すデータを収集し、前記検索されたレコードに対する前記第２グループに属する第２ユーザの反応を示すデータを、当該検索されたレコードにおいて前記第１スコア欄に格納されているスコアと前記第２スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集する収集部と、
前記収集された前記第１ユーザの反応に基づいて、前記第１ユーザの第１反応率を推定し、前記第１スコア欄に格納されているスコアと前記第２スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集された前記第２ユーザの反応に基づいて、前記第２ユーザの第２反応率を推定する推定部と、
を備えることを特徴とする検索装置。
【請求項２】
前記更新部は、前記第１スコア欄に格納されているスコアに基づく順に、前記複数のレコードを更新する、
ことを特徴とする請求項１に記載の検索装置。
【請求項３】
前記第１アルゴリズムにより計算される第１スコアと、前記第２アルゴリズムにより計算される第２スコアとは、重複しない、
ことを特徴とする請求項１に記載の検索装置。
【請求項４】
前記移行期間中において計算された前記第１スコアと前記第２スコアとが等しければ、前記更新部は、前記第１スコアと前記第２スコアとのうち少なくとも一方を微小にランダムに変化させてから、前記第１スコアと前記第２スコアを前記レコード記憶部に格納する、
ことを特徴とする請求項１に記載の検索装置。
【請求項５】
前記収集部は、前記第１ユーザの反応を示すデータとして、前記第１スコア欄に格納されているスコアの順に送信されたレコードにより識別される検索対象のいずれかが前記第１ユーザによって選択されたか否かを示す反応パラメータを収集し、前記第２ユーザの反応を示すデータとして、前記第２スコア欄に格納されているスコアの順に送信されたレコードにより識別される検索対象のいずれかが前記第２ユーザによって選択されたか否かを示す反応パラメータを収集する、
ことを特徴とする請求項１に記載の検索装置。
【請求項６】
複数のレコードが記憶されるレコード記憶部と、
前記記憶された複数のレコードにより識別される検索対象のそれぞれについて、
（ａ）移行期間中、第１アルゴリズムにより計算された第１スコアを、前記レコードに含まれる第１スコア欄に格納し、第２アルゴリズムにより計算された第２スコアを、前記レコードに含まれる第２スコア欄に格納し、
（ｂ）非移行期間中、前記第１アルゴリズムにより計算された第１スコアを、前記レコードに含まれる前記第１スコア欄と前記第２スコア欄に格納する
ことにより、前記記憶されている複数のレコードを更新する更新部と、
ユーザが操作するユーザ端末からクエリを受信すると、前記記憶された複数のレコードの中から前記受信したクエリに適合するレコードを検索し、前記検索されたレコードを前記第２スコア欄に格納されているスコアに基づいてソートする検索部と、
前記移行期間中に検索されたレコードに対する前記ユーザの反応を示すデータを、当該検索されたレコードにおいて前記第１スコア欄に格納されているスコアと前記第２スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集する収集部と、
前記収集されたユーザの反応を示すデータと、当該反応を示すデータに対応付けられた割合とに基づいて、前記割合を１と仮定することにより、前記第１アルゴリズムによる第１反応率を推定し、前記割合を０と仮定することにより、前記第２アルゴリズムによる第２反応率を推定する推定部と、
を備えることを特徴とする検索装置。
【請求項７】
複数のレコードが記憶されるレコード記憶部と、
検索対象のスコアを計算するアルゴリズムを設定する設定部と、
前記記憶された複数のレコードにより識別される検索対象のそれぞれについて、前記設定されたアルゴリズムにより計算されたスコアを、前記レコードに含まれるスコア欄に格納することにより、前記記憶されている複数のレコードを更新する更新部と、
ユーザが操作するユーザ端末からクエリを受信すると、前記受信されたクエリに適合するレコードを検索し、前記検索されたレコードを前記スコア欄に記憶されたスコアの順に前記ユーザ端末へ送信する検索部と、
を備え、
前記更新部は、前記スコア欄に記憶されたスコアによりソートした順で、前記複数のレコードを更新する、
ことを特徴とする検索装置。
【請求項８】
検索装置が、レコード記憶部に記憶された複数のレコードにより識別される検索対象のそれぞれについて、
（ａ）移行期間中、第１アルゴリズムにより計算された第１スコアを、前記レコードに含まれる第１スコア欄に格納し、第２アルゴリズムにより計算された第２スコアを、前記レコードに含まれる第２スコア欄に格納し、
（ｂ）非移行期間中、前記第１アルゴリズムにより計算された第１スコアを、前記レコードに含まれる前記第１スコア欄と前記第２スコア欄に格納する
ことにより、前記記憶されている複数のレコードを更新する更新ステップと、
前記検索装置が、ユーザが操作するユーザ端末からクエリを受信すると、前記記憶された複数のレコードの中から前記受信したクエリに適合するレコードを検索し、前記ユーザが第１グループに属すれば前記第１スコア欄に格納されているスコアに基づく順に、前記ユーザが第２グループに属すれば前記第２スコア欄に格納されているスコアに基づく順に、前記検索されたレコードを前記ユーザ端末へ送信する検索ステップと、
前記検索装置が、前記検索されたレコードに対する前記第１グループに属する第１ユーザの反応を示すデータを収集し、前記検索されたレコードに対する前記第２グループに属する第２ユーザの反応を示すデータを、当該検索されたレコードにおいて前記第１スコア欄に格納されているスコアと前記第２スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集する収集ステップと、
前記検索装置が、前記収集された前記第１ユーザの反応に基づいて、前記第１ユーザの第１反応率を推定し、前記第１スコア欄に格納されているスコアと前記第２スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集された前記第２ユーザの反応に基づいて、前記第２ユーザの第２反応率を推定する推定ステップと、
を備えることを特徴とする検索方法。
【請求項９】
コンピュータを、
複数のレコードが記憶されるレコード記憶部、
前記記憶された複数のレコードにより識別される検索対象のそれぞれについて、
（ａ）移行期間中、第１アルゴリズムにより計算された第１スコアを、前記レコードに含まれる第１スコア欄に格納し、第２アルゴリズムにより計算された第２スコアを、前記レコードに含まれる第２スコア欄に格納し、
（ｂ）非移行期間中、前記第１アルゴリズムにより計算された第１スコアを、前記レコードに含まれる前記第１スコア欄と前記第２スコア欄に格納する
ことにより、前記記憶されている複数のレコードを更新する更新部、
ユーザが操作するユーザ端末からクエリを受信すると、前記記憶された複数のレコードの中から前記受信したクエリに適合するレコードを検索し、前記ユーザが第１グループに属すれば前記第１スコア欄に格納されているスコアに基づく順に、前記ユーザが第２グループに属すれば前記第２スコア欄に格納されているスコアに基づく順に、前記検索されたレコードを前記ユーザ端末へ送信する検索部、
前記検索されたレコードに対する前記第１グループに属する第１ユーザの反応を示すデータを収集し、前記検索されたレコードに対する前記第２グループに属する第２ユーザの反応を示すデータを、当該検索されたレコードにおいて前記第１スコア欄に格納されているスコアと前記第２スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集する収集部、
前記収集された前記第１ユーザの反応に基づいて、前記第１ユーザの第１反応率を推定し、前記第１スコア欄に格納されているスコアと前記第２スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集された前記第２ユーザの反応に基づいて、前記第２ユーザの第２反応率を推定する推定部、
として機能させるプログラムを記憶する、コンピュータ読み取り可能な記録媒体。
【請求項１０】
コンピュータを、
複数のレコードが記憶されるレコード記憶部、
前記記憶された複数のレコードにより識別される検索対象のそれぞれについて、
（ａ）移行期間中、第１アルゴリズムにより計算された第１スコアを、前記レコードに含まれる第１スコア欄に格納し、第２アルゴリズムにより計算された第２スコアを、前記レコードに含まれる第２スコア欄に格納し、
（ｂ）非移行期間中、前記第１アルゴリズムにより計算された第１スコアを、前記レコードに含まれる前記第１スコア欄と前記第２スコア欄に格納する
ことにより、前記記憶されている複数のレコードを更新する更新部、
ユーザが操作するユーザ端末からクエリを受信すると、前記記憶された複数のレコードの中から前記受信したクエリに適合するレコードを検索し、前記ユーザが第１グループに属すれば前記第１スコア欄に格納されているスコアに基づく順に、前記ユーザが第２グループに属すれば前記第２スコア欄に格納されているスコアに基づく順に、前記検索されたレコードを前記ユーザ端末へ送信する検索部、
前記検索されたレコードに対する前記第１グループに属する第１ユーザの反応を示すデータを収集し、前記検索されたレコードに対する前記第２グループに属する第２ユーザの反応を示すデータを、当該検索されたレコードにおいて前記第１スコア欄に格納されているスコアと前記第２スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集する収集部、
前記収集された前記第１ユーザの反応に基づいて、前記第１ユーザの第１反応率を推定し、前記第１スコア欄に格納されているスコアと前記第２スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集された前記第２ユーザの反応に基づいて、前記第２ユーザの第２反応率を推定する推定部、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子商取引システムの開発や保守にかかるコストを抑えるために好適な検索装置、検索方法、記録媒体、ならびに、プログラムに関する。
【背景技術】
【０００２】
インターネットに接続されたコンピュータや、企業内で構築されたイントラネットに接続されたコンピュータには、様々なデータ、様々な電子文書等が多数保管される。保管されるデータ等が増えるほど、ユーザが欲するデータを探す手間も増える。ユーザが所望のデータをなるべく早く検索できるようにするために、より優秀な検索アルゴリズムが望まれる。【０００３】
例えば、特許文献１には、検索アルゴリズムにおける評価方法の一つであるｎＤＣＧ（normalized Discounted Cumulative Gain）と検索処理に要するレスポンス時間とを用いて検索アルゴリズムの性能を総合的に評価するシステムが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１２８８０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、電子商取引システムのように規模が大きくなると、現在運用中の本番環境に加えて、開発中のアルゴリズムの性能を評価するためのテスト環境を別途用意することは容易ではなく、コストがかさんでしまう。また、開発者にとっては、なるべく本番環境に近い環境でテストできることが望ましく、更に言えば、本番環境において複数のアルゴリズムを併用して相互に評価できることが望ましい。【０００６】
本発明は、以上のような事情に鑑みてなされたものであり、電子商取引システムの開発や保守にかかるコストを抑えるために好適な検索装置、検索方法、記録媒体、ならびに、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第１の観点に係る検索装置は、
複数のレコードが記憶されるレコード記憶部と、
前記記憶された複数のレコードにより識別される検索対象のそれぞれについて、
（ａ）移行期間中、第１アルゴリズムにより計算された第１スコアを、前記レコードに含まれる第１スコア欄に格納し、第２アルゴリズムにより計算された第２スコアを、前記レコードに含まれる第２スコア欄に格納し、
（ｂ）非移行期間中、前記第１アルゴリズムにより計算された第１スコアを、前記レコードに含まれる前記第１スコア欄と前記第２スコア欄に格納する
ことにより、前記記憶されている複数のレコードを更新する更新部と、
ユーザが操作するユーザ端末からクエリを受信すると、前記記憶された複数のレコードの中から前記受信したクエリに適合するレコードを検索し、前記ユーザが第１グループに属すれば前記第１スコア欄に格納されているスコアに基づく順に、前記ユーザが第２グループに属すれば前記第２スコア欄に格納されているスコアに基づく順に、前記検索されたレコードを前記ユーザ端末へ送信する検索部と、
前記検索されたレコードに対する前記第１グループに属する第１ユーザの反応を示すデータを収集し、前記検索されたレコードに対する前記第２グループに属する第２ユーザの反応を示すデータを、当該検索されたレコードにおいて前記第１スコア欄に格納されているスコアと前記第２スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集する収集部と、
前記収集された前記第１ユーザの反応に基づいて、前記第１ユーザの第１反応率を推定し、前記第１スコア欄に格納されているスコアと前記第２スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集された前記第２ユーザの反応に基づいて、前記第２ユーザの第２反応率を推定する推定部と、
を備える。【０００８】
前記更新部は、前記第１スコア欄に格納されているスコアに基づく順に、前記複数のレコードを更新してもよい。【０００９】
前記第１アルゴリズムにより計算される第１スコアと、前記第２アルゴリズムにより計算される第２スコアとは、重複しなくてもよい。【００１０】
前記移行期間中において計算された前記第１スコアと前記第２スコアとが等しければ、前記更新部は、前記第１スコアと前記第２スコアとのうち少なくとも一方を微小にランダムに変化させてから、前記第１スコアと前記第２スコアを前記レコード記憶部に格納してもよい。【００１１】
前記収集部は、前記第１ユーザの反応を示すデータとして、前記第１スコア欄に格納されているスコアの順に送信されたレコードにより識別される検索対象のいずれかが前記第１ユーザによって選択されたか否かを示す反応パラメータを収集し、前記第２ユーザの反応を示すデータとして、前記第２スコア欄に格納されているスコアの順に送信されたレコードにより識別される検索対象のいずれかが前記第２ユーザによって選択されたか否かを示す反応パラメータを収集してもよい。【００１２】
本発明のその他の観点に係る検索装置は、
複数のレコードが記憶されるレコード記憶部と、
前記記憶された複数のレコードにより識別される検索対象のそれぞれについて、
（ａ）移行期間中、第１アルゴリズムにより計算された第１スコアを、前記レコードに含まれる第１スコア欄に格納し、第２アルゴリズムにより計算された第２スコアを、前記レコードに含まれる第２スコア欄に格納し、
（ｂ）非移行期間中、前記第１アルゴリズムにより計算された第１スコアを、前記レコードに含まれる前記第１スコア欄と前記第２スコア欄に格納する
ことにより、前記記憶されている複数のレコードを更新する更新部と、
ユーザが操作するユーザ端末からクエリを受信すると、前記記憶された複数のレコードの中から前記受信したクエリに適合するレコードを検索し、前記検索されたレコードを前記第２スコア欄に格納されているスコアに基づいてソートする検索部と、
前記移行期間中に検索されたレコードに対する前記ユーザの反応を示すデータを、当該検索されたレコードにおいて前記第１スコア欄に格納されているスコアと前記第２スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集する収集部と、
前記収集されたユーザの反応を示すデータと、当該反応を示すデータに対応付けられた割合とに基づいて、前記割合を１と仮定することにより、前記第１アルゴリズムによる第１反応率を推定し、前記割合を０と仮定することにより、前記第２アルゴリズムによる第２反応率を推定する推定部と、
を備える。【００１３】
本発明のその他の観点に係る検索装置は、
複数のレコードが記憶されるレコード記憶部と、
検索対象のスコアを計算するアルゴリズムを設定する設定部と、
前記記憶された複数のレコードにより識別される検索対象のそれぞれについて、前記設定されたアルゴリズムにより計算されたスコアを、前記レコードに含まれるスコア欄に格納することにより、前記記憶されている複数のレコードを更新する更新部と、
ユーザが操作するユーザ端末からクエリを受信すると、前記受信されたクエリに適合するレコードを検索し、前記検索されたレコードを前記スコア欄に記憶されたスコアの順に前記ユーザ端末へ送信する検索部と、
を備え、
前記更新部は、前記スコア欄に記憶されたスコアによりソートした順で、前記複数のレコードを更新する。【００１４】
本発明のその他の観点に係る検索方法は、
レコード記憶部に記憶された複数のレコードにより識別される検索対象のそれぞれについて、
（ａ）移行期間中、第１アルゴリズムにより計算された第１スコアを、前記レコードに含まれる第１スコア欄に格納し、第２アルゴリズムにより計算された第２スコアを、前記レコードに含まれる第２スコア欄に格納し、
（ｂ）非移行期間中、前記第１アルゴリズムにより計算された第１スコアを、前記レコードに含まれる前記第１スコア欄と前記第２スコア欄に格納する
ことにより、前記記憶されている複数のレコードを更新する更新ステップと、
ユーザが操作するユーザ端末からクエリを受信すると、前記記憶された複数のレコードの中から前記受信したクエリに適合するレコードを検索し、前記ユーザが第１グループに属すれば前記第１スコア欄に格納されているスコアに基づく順に、前記ユーザが第２グループに属すれば前記第２スコア欄に格納されているスコアに基づく順に、前記検索されたレコードを前記ユーザ端末へ送信する検索ステップと、
前記検索されたレコードに対する前記第１グループに属する第１ユーザの反応を示すデータを収集し、前記検索されたレコードに対する前記第２グループに属する第２ユーザの反応を示すデータを、当該検索されたレコードにおいて前記第１スコア欄に格納されているスコアと前記第２スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集する収集ステップと、
前記収集された前記第１ユーザの反応に基づいて、前記第１ユーザの第１反応率を推定し、前記第１スコア欄に格納されているスコアと前記第２スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集された前記第２ユーザの反応に基づいて、前記第２ユーザの第２反応率を推定する推定ステップと、
を備える。【００１５】
本発明のその他の観点に係るコンピュータ読み取り可能な記録媒体は、
コンピュータを、
複数のレコードが記憶されるレコード記憶部、
前記記憶された複数のレコードにより識別される検索対象のそれぞれについて、
（ａ）移行期間中、第１アルゴリズムにより計算された第１スコアを、前記レコードに含まれる第１スコア欄に格納し、第２アルゴリズムにより計算された第２スコアを、前記レコードに含まれる第２スコア欄に格納し、
（ｂ）非移行期間中、前記第１アルゴリズムにより計算された第１スコアを、前記レコードに含まれる前記第１スコア欄と前記第２スコア欄に格納する
ことにより、前記記憶されている複数のレコードを更新する更新部、
ユーザが操作するユーザ端末からクエリを受信すると、前記記憶された複数のレコードの中から前記受信したクエリに適合するレコードを検索し、前記ユーザが第１グループに属すれば前記第１スコア欄に格納されているスコアに基づく順に、前記ユーザが第２グループに属すれば前記第２スコア欄に格納されているスコアに基づく順に、前記検索されたレコードを前記ユーザ端末へ送信する検索部、
前記検索されたレコードに対する前記第１グループに属する第１ユーザの反応を示すデータを収集し、前記検索されたレコードに対する前記第２グループに属する第２ユーザの反応を示すデータを、当該検索されたレコードにおいて前記第１スコア欄に格納されているスコアと前記第２スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集する収集部、
前記収集された前記第１ユーザの反応に基づいて、前記第１ユーザの第１反応率を推定し、前記第１スコア欄に格納されているスコアと前記第２スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集された前記第２ユーザの反応に基づいて、前記第２ユーザの第２反応率を推定する推定部、
として機能させるプログラムを記憶する。【００１６】
本発明のその他の観点に係るプログラムは、
コンピュータを、
複数のレコードが記憶されるレコード記憶部、
前記記憶された複数のレコードにより識別される検索対象のそれぞれについて、
（ａ）移行期間中、第１アルゴリズムにより計算された第１スコアを、前記レコードに含まれる第１スコア欄に格納し、第２アルゴリズムにより計算された第２スコアを、前記レコードに含まれる第２スコア欄に格納し、
（ｂ）非移行期間中、前記第１アルゴリズムにより計算された第１スコアを、前記レコードに含まれる前記第１スコア欄と前記第２スコア欄に格納する
ことにより、前記記憶されている複数のレコードを更新する更新部、
ユーザが操作するユーザ端末からクエリを受信すると、前記記憶された複数のレコードの中から前記受信したクエリに適合するレコードを検索し、前記ユーザが第１グループに属すれば前記第１スコア欄に格納されているスコアに基づく順に、前記ユーザが第２グループに属すれば前記第２スコア欄に格納されているスコアに基づく順に、前記検索されたレコードを前記ユーザ端末へ送信する検索部、
前記検索されたレコードに対する前記第１グループに属する第１ユーザの反応を示すデータを収集し、前記検索されたレコードに対する前記第２グループに属する第２ユーザの反応を示すデータを、当該検索されたレコードにおいて前記第１スコア欄に格納されているスコアと前記第２スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集する収集部、
前記収集された前記第１ユーザの反応に基づいて、前記第１ユーザの第１反応率を推定し、前記第１スコア欄に格納されているスコアと前記第２スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集された前記第２ユーザの反応に基づいて、前記第２ユーザの第２反応率を推定する推定部、
として機能させる。【００１７】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記記録媒体は、非一時的な記録媒体であってよく、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【００１８】
本発明によれば、電子商取引システムの開発や保守にかかるコストを抑えることができる。
【図面の簡単な説明】
【００１９】
【図１】電子商取引システムの構成の概要を示す図である。
【図２】電子商取引サーバの構成を示す図である。
【図３】商品データベースに格納される商品情報の例を示す図である。
【図４】ユーザ端末の構成を示す図である。
【図５】電子商取引システムの機能的な構成を示す図である。
【図６】ユーザ情報を示す図である。
【図７】商品情報の表示例を示す図である。
【図８】商品情報の表示例を示す他の図である。
【図９】商品情報の表示例を示す他の図である。
【図１０】第１アルゴリズムにおいて採用される要因と寄与率を示す図である。
【図１１】第２アルゴリズムにおいて採用される要因と寄与率を示す図である。
【図１２】更新処理を説明するためのフローチャートである。
【図１３】検索処理を説明するためのフローチャートである。
【図１４】変形例における電子商取引システムの機能的な構成を示す図である。
【発明を実施するための形態】
【００２０】
本発明の実施形態を説明する。以下の実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【００２１】
まず、本実施形態の電子商取引システム１の概要構成を、図１を用いて説明する。電子商取引システム１は、電子商取引サーバ１０と、電子商取引に参加するユーザが使用するユーザ端末２０（図１では、ユーザ端末２０Ａ，２０Ｂの二つ）と、通信ネットワーク５０とから構成される。本実施形態では、通信ネットワーク５０はインターネットである。
【００２２】
本実施形態においては、電子商取引とは、インターネット上で行われるオークションである。電子商取引サーバ１０は、オークションのシステム管理者により管理される。オークションには、様々な商品やサービスが出品される。オークションでは、売り手ユーザによって登録された商品は、最終的に最も高い価格を提示した買い手ユーザに販売される。
【００２３】
説明の簡略化のため、商品とサービスをまとめて「商品」と呼び、商品には、例えばホテルの宿泊券、オンラインチケット、ソフトウェアの使用ライセンスなどの無形のサービス、も含まれる。
【００２４】
なお、電子商取引はオークションに限定されず、例えばインターネット上で商品を売買する電子ショッピングモールでもよい。
【００２５】
電子商取引サーバ１０は、売り手ユーザによって登録された商品を示す商品情報を記憶し、閲覧要求があったユーザ端末２０へ商品情報を送信する。
【００２６】
商品情報は、ユーザ端末２０からアクセス可能なウェブページによって、ユーザ端末２０に提供される。ウェブページは、ＨＴＭＬ（HyperText Markup Language）データ、画像データ、音声データ等から構成される。ウェブページはＨＴＭＬ形式でなくてもよく、ＸＭＬ（Extensible Markup Language）形式、ＸＨＴＭＬ（Extensible HyperText Markup Language）形式などでもよい。あるいは、商品情報は、ユーザ端末２０に予めインストールされた専用のアプリケーションを用いてユーザ端末２０に提供されてもよい。
【００２７】
電子商取引サーバ１０は、ユーザが指定した商品情報の送信をユーザ端末２０から要求されると、ユーザによって指定された商品に関する商品情報をユーザ端末２０へ送信する。また、電子商取引サーバ１０は、ユーザから指定された商品に関する商品情報だけでなく、売り手ユーザ（もしくはシステム管理者）にとって買い手ユーザの注目を惹きたい商品や買い手ユーザに購入を勧めたい商品に関する商品情報を検索して、ユーザ端末２０へ送信する。このため、以下の説明において、電子商取引サーバ１０を検索装置と呼ぶことがある。
【００２８】
ユーザ端末２０は、出品物を登録する売り手ユーザ、もしくは、商品情報を閲覧し入札する買い手ユーザによって、操作される。売り手ユーザは、ユーザ端末２０を操作して電子商取引サーバ１０にアクセスし、商品情報を登録して出品する。買い手ユーザは、ユーザ端末２０を操作して電子商取引サーバ１０にアクセスし、商品情報を閲覧する。
【００２９】
なお、以下の説明において、単に「ユーザ」と言う場合には、主に買い手ユーザを指す。
【００３０】
通信ネットワーク５０は、電子商取引サーバ１０とユーザ端末２０とを互いに接続する。通信ネットワーク５０は、典型的にはインターネットであるが、電話回線、専用回線、ＬＡＮ（Local Area Network）などが含まれてもよい。
【００３１】
次に、電子商取引サーバ１０のハードウェア構成について、図２を用いて説明する。電子商取引サーバ１０は、記憶部２０１、通信部２０２、制御部２０３を備える。
【００３２】
記憶部２０１は、ハードディスク等の記憶装置から構成される。記憶部２０１には、商品データベース２５１が記憶される。商品データベース２５１は、電子商取引に出品されるすべての商品についての商品情報を記憶する。
【００３３】
通信部２０２は、ＮＩＣ（Network Interface Card）を備え、電子商取引サーバ１０を通信ネットワーク５０に接続し、ユーザ端末２０と通信する。
【００３４】
制御部２０３は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）等を備え、電子商取引サーバ１０全体を制御する。また、制御部２０３は、第１スコアと第２スコアを計算し、商品情報を更新する。詳しくは後述する。
【００３５】
図３に、商品データベース２５１に記憶される商品情報の構成例を示す。商品データベース２５１には、商品を識別する出品番号と対応付けて、商品名、出品者、入札期限等、商品の属性を示す様々なデータが記憶される。商品情報は、売り手ユーザが使用するユーザ端末２０、あるいは、電子商取引サーバ１０によって、随時更新される。
【００３６】
また、商品情報には、第１アルゴリズムに基づいて制御部２０３によって計算された第１スコア３１０と、第２アルゴリズムに基づいて制御部２０３によって計算された第２スコア３２０とが含まれる。第１スコア３１０と第２スコア３２０は、例えば０から２００までの整数といったように、予め決められた範囲内の数値によって表される。
【００３７】
第１スコア３１０と第２スコア３２０は、それぞれ、例えば入札数、閲覧数、商品情報の最終更新日時、入札期限日時までの残り時間、出品された時点での価格、現在の最高値、等に基づいて計算される。
【００３８】
第１スコア３１０と第２スコア３２０は、オークションのシステム管理者にとってユーザに注目させたい商品、あるいは、多くのユーザに注目されている商品を推定するために用いられる。制御部２０３は、ユーザ端末２０から商品情報を閲覧する要求を受信すると、要求された商品情報に加えて、第１スコア３１０が比較的高い商品情報が示す商品、又は、第２スコア３２０が比較的高い商品情報が示す商品を、ユーザへのお薦め商品としてユーザに提示する。本実施形態では、第１スコア３１０が大きいほど、ユーザの購買意欲を増加させる効果が高い（ユーザの反応が良い）と推定される。同様に、第２スコア３２０が大きいほど、ユーザの反応が良いと推定される。
【００３９】
ところで、ユーザにどの商品を勧めれば購買意欲をより高められるかを推測するために、様々なアルゴリズムが開発され、テストされる。第１アルゴリズムによって計算された第１スコア３１０が現在正式に採用されていても、より良いサービスを実現すべく並行して、他のアルゴリズムが開発されることがある。現在開発中の第２アルゴリズムによって計算された第２スコア３２０のほうが、第１アルゴリズムによって計算された第１スコア３１０よりも、ページビュー率が高かったり購買率が高かったりするかもしれない。そこで、全ユーザのうちある決まった割合のユーザ（例えば全ユーザの５０％）については、第１アルゴリズムによって計算された第１スコア３１０に基づいて商品情報を提供しつつも、残りのユーザ（例えば残りの５０％のユーザ）については、第２アルゴリズムによって計算された第２スコア３２０に基づいて商品情報を提供することによって、二つのアルゴリズムを比較する、いわゆるＡ−Ｂテストが実施される。
【００４０】
本実施形態では、このＡ−Ｂテストは、本番環境とは別途構築されたテスト環境ではなく、実際に稼働中の本番環境上で実行される。
【００４１】
なお、第１アルゴリズムと第２アルゴリズムの具体的なロジック、計算式等は、本発明によって限定されない。
【００４２】
また、全ユーザ数に対する第１スコア３１０を採用する対象ユーザ数の割合と、全ユーザ数に対する第２スコア３２０を採用する対象ユーザ数の割合は、本実施形態では共に５０％としているが、任意に変更してよい。
【００４３】
電子商取引サーバ１０として、一般的なコンピュータサーバ、メインフレーム、クラウド型サーバなどを用いることができる。
【００４４】
次に、ユーザ端末２０のハードウェア構成について、図４を用いて説明する。ユーザ端末２０は、通信部４０１、画像処理部４０２、音声処理部４０３、Ｉ／Ｏ（Input/Output）部４０４、入力部４０５、記憶部４０６、制御部４０７を備える。
【００４５】
通信部４０１は、ＮＩＣを備え、ユーザ端末２０を通信ネットワーク５０に接続し、電子商取引サーバ１０と通信する。
【００４６】
画像処理部４０２は、画像を生成してディスプレイ４５１に表示する。例えば、画像処理部４０２は、上述の商品情報を含むウェブページを構成するＨＴＭＬデータや画像データ、入札を受け付けるウェブページを構成するＨＴＭＬデータや画像データ等を、通信部４０１を介して電子商取引サーバ１０から受信し、商品情報等をディスプレイ４５１に表示する。
【００４７】
音声処理部４０３は、記憶部４０６もしくは電子商取引サーバ１０から音声データを取得し、再生し、音声をスピーカ４５２から出力する。
【００４８】
Ｉ／Ｏ部４０４は、取り外し可能なメモリカードをユーザ端末２０に接続するインタフェースを備える。
【００４９】
入力部４０５は、ユーザからの入力を受け付けるインタフェースを備える。本実施形態では、入力部４０５は、キーボードとマウスを備える。
【００５０】
記憶部４０６は、ＲＯＭ、ＲＡＭ等の記憶装置を備え、ユーザ端末２０を制御するオペレーティングシステム、各種のプログラム、画像データ、音声データ、テキストデータ等を記憶する。
【００５１】
制御部４０７は、ＣＰＵを備え、ユーザ端末２０全体を制御する。
【００５２】
ユーザ端末２０として、通信機能を持った一般的なパーソナルコンピュータ、携帯電話機、スマートフォン、携帯端末、タブレット型コンピュータ等を用いることができる。本実施形態では、ユーザ端末２０としてパーソナルコンピュータを採用する。
【００５３】
次に、電子商取引システム１の機能的な構成について、図５を用いて説明する。
【００５４】
レコード記憶部５０１には、商品のそれぞれについて、商品情報を示すレコードが記憶される。一つの商品に関する商品情報を、一つの“レコード”と呼ぶ。図３には、出品番号が“１２３４５”と“２３４５６”と“３４５６７”の三つのレコードが例示されている。本実施形態では、オークションに出品される商品一つにつき、一つのレコードが存在する。レコード記憶部５０１には、オークションに出品されるすべての商品に関する商品情報がレコード記憶部５０１に記憶される。電子商取引サーバ１０の記憶部２０１がレコード記憶部５０１として機能する。
【００５５】
更新部５０２は、レコード記憶部５０１に記憶されるレコードを更新する。電子商取引サーバ１０の制御部２０３と記憶部２０１が協働して、更新部５０２として機能する。
【００５６】
より詳細には、オークションが開催される期間の種別には二種類ある。すなわち、（１）すべてのユーザのうち一部のユーザ（「第１グループに属するユーザ」という。）に対しては第１スコア欄３１０に格納されているスコアを用いて商品情報を提供し、残りの一部のユーザ（「第２グループに属するユーザ」という。）に対しては第２スコア欄３２０に格納されているスコアを用いて商品情報を提供する“移行期間”と、（２）すべてのユーザに対して第１スコア欄３１０に格納されているスコアを用いて商品情報を提供する“非移行期間”である。
【００５７】
移行期間は、システム管理者が開発した新しいアルゴリズムをテストする期間である。移行期間中、現在運用中の第１アルゴリズムと新たな第２アルゴリズムとを比較するＡ−Ｂテストが行われる。非移行期間は、Ａ−Ｂテストを実施していない期間である。
【００５８】
移行期間中では、制御部２０３は、第１アルゴリズムにより計算された第１スコアを、商品情報に含まれる第１スコア欄３１０に格納し、第２アルゴリズムにより計算された第２スコアを、商品情報に含まれる第２スコア欄３２０に格納する。
【００５９】
非移行期間中では、制御部２０３は、第１アルゴリズムにより計算された第１スコアを、第１スコア欄３１０と第２スコア欄３２０の両方に格納する。第１スコア欄３１０と第２スコア欄３２０には同じ値が格納される。
【００６０】
非移行期間から移行期間に切り替わった時点では、全レコードについて、第１スコア欄３１０と第２スコア欄３２０の両方に、第１スコアが格納されていることになる。移行期間における全レコードの第１スコア欄３１０と第２スコア欄３２０の更新が終わると、全レコードについて、第１スコア欄３１０には第１スコアが、第２スコア欄３２０には第２スコアが、それぞれ格納される。
【００６１】
移行期間から非移行期間に切り替わった時点では、全レコードについて、第１スコア欄３１０には第１スコアが、第２スコア欄３２０には第２スコアが、それぞれ格納されていることになる。非移行期間における全レコードの第１スコア欄３１０と第２スコア欄３２０の更新が終わると、全レコードについて、第１スコア欄３１０と第２スコア欄３２０には第１スコアが格納される。
【００６２】
レコードの数が多いほど、すべてのレコードの第１スコア欄３１０と第２スコア欄３２０の更新を完了するまでにかかる時間は長くなる。また、第１スコアと第２スコアを計算して更新する更新処理をすべてのレコードについて一度にまとめて行うと、商品データベース２５１を更新処理がほぼ占有することになり、一時的に負荷が増大し、レスポンスが低下するおそれがある。そこで、制御部２０３は、制御部２０３が行うすべての処理のうち更新処理の優先度を相対的に低くし、ＣＰＵのアイドル状態の割合が比較的大きい時間帯に更新処理を行う。このため、更新処理を開始しても、すべてのレコードの更新を完了するまでには時間がかかるので、移行期間中であっても、第１スコア欄３１０と第２スコア欄３２０の両方に第１スコアが格納されたままの状態のレコードが存在しうる。勿論、移行期間中であれば、時間はかかるかもしれないが、徐々に、すべてのレコードの第１スコア欄３１０と第２スコア欄３２０が更新されることになる。
【００６３】
制御部２０３は、すべてのレコードを複数のグループに分割し、グループごとに更新処理を分散して実行してもよい。例えば、第１の時間帯には第１のグループに属するレコードを更新し、第２の時間帯には第２のグループに属するレコードを更新する、といったように、更新処理の対象となるレコードをグループ分けし、更新処理を分散して実行してもよい。
【００６４】
制御部２０３は、更新処理を、商品情報が売り手ユーザ又はシステム管理者によって更新されるタイミングに、レコード単位で実行してもよい。例えば、制御部２０３は、非移行期間から移行期間に切り替わってからある商品に初めて入札があった時点で、もしくは、移行期間から非移行期間に切り替わってからある商品に初めて入札があった時点で、その商品に対応するレコードの第１スコア欄３１０と第２スコア欄３２０を更新してもよい。
【００６５】
期間が切り替わった後、初めて入札があった時点だけでなく、あるいは、初めて入札があった時点に加えて、期間が切り替わった後の初めて商品情報が閲覧された時点（つまり期間が切り替わった後の初めてレコードが制御部２０３によって読み出された時点）や、出品された時点（新しいレコードが制御部２０３によって生成された時点）に、その商品に対応するレコードの第１スコア欄３１０と第２スコア欄３２０を更新してもよい。
【００６６】
検索部５０３は、ユーザ端末２０からクエリを受信すると、商品データベース２５１に記憶されたレコードの中から、クエリによって示される検索条件を満たすレコードを検索する。クエリは、指定された検索条件を満たすレコードを送信する旨の要求である。例えば、ユーザが商品情報を閲覧したい場合、ユーザはキーボードやマウス等を操作して検索条件を指定する。ユーザ端末２０は、ユーザによって指定された検索条件を満たす商品に関する商品情報の送信を要求するクエリを生成し、電子商取引サーバ１０へ送信する。検索部５０３は、受信したクエリに基づいて商品データベース２５１を検索する。
【００６７】
また、検索部５０３は、ユーザが第１グループに属するか第２グループに属するかを判別する。第１グループに属するユーザは、第１スコア欄３１０に格納されたスコアに基づいて商品情報を提供すべきユーザであり、第２グループに属するユーザは、第２スコア欄３２０に格納されたスコアに基づいて商品情報を提供すべきユーザである。
【００６８】
検索部５０３は、クエリを送信したユーザ端末２０のユーザが第１グループに属すれば、第１スコア欄３１０に格納されたスコアに基づいて、ユーザに薦める商品に関する商品情報を示すレコードを並べ替え、ユーザ端末２０へ順次送信する。また、検索部５０３は、クエリを送信したユーザ端末２０のユーザが第２グループに属すれば、第２スコア欄３２０に格納されたスコアに基づいて、ユーザに薦める商品に関する商品情報を示すレコードを並べ替え、ユーザ端末２０へ順次送信する。取得されたレコードはユーザ端末２０へ送信され、ユーザ端末２０のディスプレイに表示される。電子商取引サーバ１０の記憶部２０１と通信部２０２と制御部２０３が協働して、検索部５０３として機能する。
【００６９】
ユーザには、閲覧を希望する商品情報だけでなく、多くのユーザから注目されている商品やユーザへのお薦め商品等に関する商品情報が提供される。
【００７０】
なお、クエリには、ユーザによって指定された特定の商品に関する商品情報の送信を要求するものがあってもよい。例えば、ユーザが特定の商品情報を閲覧したい場合、ユーザはキーボードやマウス等を操作して商品を指定する。ユーザ端末２０は、ユーザによって指定された商品に関する商品情報の送信を要求するクエリを生成し、電子商取引サーバ１０へ送信する。
【００７１】
収集部５０４は、検索されたレコードに対する第１グループに属するユーザの反応を示すデータを収集する。また、収集部５０４は、検索されたレコードに対する第２グループに属するユーザの反応を示すデータを、ユーザに提示されたレコードにおいて第１スコア欄３１０に格納されているスコアと第２スコア欄３２０に格納されているスコアが等しいレコードの割合に対応付けて、収集する。制御部２０３と記憶部２０１が協働して、収集部５０４として機能する。
【００７２】
より詳細には、制御部２０３は、クエリを受信すると、そのクエリが第１グループに属するユーザによるものか第２グループに属するユーザによるものかを判別する。本実施形態では、電子商取引サーバ１０の制御部２０３は、ユーザから入力されたユーザ名及びパスワードと、予め登録されたユーザ名及びパスワードとを照合し、正規のユーザであるか否かを判別するログイン処理を行う。ユーザから入力されたユーザ名及びパスワードと、予め登録されたユーザ名及びパスワードとが合致し、正規のユーザであると判別すると、制御部２０３は、ユーザが第１グループに属するか第２グループに属するかを判別する。
【００７３】
本実施形態では、制御部２０３は、予め登録された全ユーザを、第１グループと第２グループのいずれかに分類し、分類結果を記憶部２０１に記憶する。
【００７４】
図６に、分類結果を含むユーザ属性が記憶されるユーザ情報の例を示す。記憶部２０１には、ユーザを識別するユーザＩＤと対応付けて、氏名、住所、購入履歴等のほか、第１グループに属するか第２グループに属するかを示す情報が記憶される。ここでは第１グループに属するのであれば“１”が、第２グループに属するのであれば“２”が、ユーザ情報に格納される。
【００７５】
制御部２０３は、ユーザをどちらのグループに属させるかをランダムに決定してもよいし、電子商取引システム１の利用頻度等、予め決められた条件に従ってグループを決定してもよい。ユーザが属するグループは、Ａ−Ｂテストを開始する前に、つまり非移行期間から移行期間に変更される前に、制御部２０３によって決定される。
【００７６】
そして、制御部２０３は、検索されたレコードに対する第１グループに属するユーザの反応を示す情報を収集する。具体的には、制御部２０３は、お薦め商品に関する商品情報の提示後に、第１グループに属する各ユーザが何らかの商品（お薦め商品でなくてもよい）に入札したか否かを判別する。すなわち、お薦め商品が提示された後にそのユーザによって入札されれば、ユーザがオークションに興味を示したと判別され、商品を薦めた効果があったと推測される。
【００７７】
また、制御部２０３は、検索されたレコードに対する第２グループに属するユーザの反応を示す情報を収集する。具体的には、制御部２０３は、お薦め商品に関する商品情報の提示後に、第２グループに属する各ユーザが何らかの商品に入札したか否かを判別する。すなわち、お薦め商品が提示された後にそのユーザによって入札されれば、ユーザがオークションに興味を示したと判別され、商品を薦めた効果があったと推測される。
【００７８】
なお、制御部２０３は、第１グループ（又は第２グループ）に属するユーザが何らかの商品に入札したか否かを判別する代わりに、第１グループ（又は第２グループ）に属するユーザが検索された商品に入札したか否かを判別してもよい。
【００７９】
ここで、第２グループに属するユーザについては、制御部２０３は、検索されたレコードにおいて第１スコア欄３１０に格納されているスコアと第２スコア欄３２０に格納されているスコアとが等しいレコードの割合に対応付けて、ユーザの反応を示す情報を収集する。
【００８０】
上述したように、レコード数が多い場合、期間が変更されてから（移行期間から非移行期間に変更されてから、又は、非移行期間から移行期間に変更されてから）、すべてのレコードの第１スコア欄３１０と第２スコア欄３２０の更新が完了するまで、時間がかかると考えられる。更新処理を開始してからすぐ後であれば、例えば全商品の１％程度しか第１スコア欄３１０と第２スコア欄３２０を更新できておらず、非移行期間内に設定された値のままかもしれない。すると、残りの９９％の商品については第１スコア欄３１０と第２スコア欄３２０が更新されておらず、Ａ−Ｂテストの正確な結果が得られない。そこで、制御部２０３は、全レコード中の第１スコア欄３１０に格納されているスコアと第２スコア欄３２０に格納されているスコアが等しいレコードの割合に対応付けて、ユーザの反応を示す情報を収集し、更新がまだ終わっていない商品に対するユーザの反応を推定する。
【００８１】
例えば、第２スコア欄３２０に格納されているスコアが大きい順に上位２０件の商品情報をユーザにお薦めする場合に、２０件のレコードのうち１５件のレコードにおいて第１スコア欄３１０に格納されているスコアと第２スコア欄３２０に格納されているスコアが等しかったとすると、全レコード中、第１スコア欄３１０に格納されているスコアと第２スコア欄３２０に格納されているスコアとが等しいレコードの割合は、７５％である。ユーザが何らかの商品に入札すれば、ユーザの反応を示す情報として、ユーザが反応した数（反応数）に１を加算する。つまり、第１スコア欄３１０に格納されているスコアと第２スコア欄３２０に格納されているスコアとが等しいレコードの割合が７５％であることに対応する反応数が得られる。
【００８２】
同様にして、第１スコア欄３１０に格納されているスコアと第２スコア欄３２０に格納されているスコアが等しいレコードの割合が５０％であることに対応する反応数、第１スコア欄３１０に格納されているスコアと第２スコア欄３２０に格納されているスコアが等しいレコードの割合が４０％であることに対応する反応数、第１スコア欄３１０に格納されているスコアと第２スコア欄３２０に格納されているスコアが等しいレコードの割合が３０％であることに対応する反応数、等々が得られる。
【００８３】
次に、推定部５０５は、収集部５０４によって収集された第１グループに属するユーザの反応を示すデータに基づいて、第１グループに属するユーザの第１反応率Ｂを推定する。また、推定部５０５は、第１スコア欄３１０に格納されているスコアと第２スコア欄３２０に格納されているスコアが等しいレコードの割合に応じて収集された第２グループに属するユーザの反応を示すデータに基づいて、第２グループに属するユーザの第２反応率Ｃを推定する。制御部２０３が推定部５０５として機能する。
【００８４】
より詳細には、制御部２０３は、第１グループに属するユーザから通算してＹ個（Ｙは１以上の整数）のクエリＱ［ｉ］（ｉは１からＹまでの整数）を受信したとき、クエリＱ［ｉ］のそれぞれに応答して、クエリＱ［ｉ］に含まれる検索条件を満たすレコードを商品データベース２５１から検索する。そして、制御部２０３は、クエリＱ［ｉ］に対する検索結果Ｒ［ｉ］をユーザ端末２０へ送信する。検索結果Ｒ［ｉ］は、ユーザ端末２０によってユーザに表示される。
【００８５】
検索結果Ｒ［ｉ］が提示された第１グループに属するＭ人のユーザのうち、提示後に何らかの商品に入札したユーザの人数がｍ人であったとすると、第１グループに属するユーザの第１反応率Ｂは、［式１］で表される。
【００８６】
Ｂ  ＝  ｍ／Ｍ      ・・・［式１］
【００８７】
制御部２０３は、検索結果Ｒ［ｉ］の提示後にユーザが何らかの商品を入札した場合ではなく、検索結果Ｒ［ｉ］の提示後にユーザが検索結果Ｒ［ｉ］に含まれるレコードに対応する商品のいずれかに入札した場合に、変数ｍをインクリメントしてもよい。
【００８８】
制御部２０３は、第２グループに属するユーザから通算してＸ個（Ｘは１以上の整数）のクエリＱ［ｉ］（ｉは１からＸまでの整数）を受信したとき、クエリＱ［ｉ］のそれぞれに応答して、クエリＱ［ｉ］に含まれる検索条件を満たすレコードを商品データベース２５１から検索する。そして、制御部２０３は、クエリＱ［ｉ］に対する検索結果Ｒ［ｉ］をユーザ端末２０へ送信する。検索結果Ｒ［ｉ］は、ユーザ端末２０によってユーザに表示される。
【００８９】
制御部２０３は、すべてのレコードのうち、第２スコア欄３２０に格納されているスコアが最も大きいレコードから順に所定個数（例えば２０個）のレコードを検索結果Ｒ［ｉ］とする。つまり、第２スコア欄３２０に格納されているスコアが大きい順に所定個数のレコードが検索結果Ｒ［ｉ］となる。
【００９０】
ただし、所定個数は任意であり、全ユーザについて同じ個数としてもよいし、第１グループに属するユーザなら第１の所定個数、第２グループに属するユーザなら第２の所定個数というように、ユーザごとに異なる個数としてもよい。
【００９１】
検索結果Ｒ［ｉ］に含まれるＸ個のレコードのうち、第１スコア欄３１０に格納されているスコアと第２スコア欄３２０に格納されているスコアが等しいレコードの割合をＷ［ｉ］とする。
【００９２】
例えば、非移行期間から移行期間に変更された後、第１スコア欄３１０と第２スコア欄３２０を更新する更新処理がまだ完了していない場合、更新処理がまだ行われていないレコードの第１スコア欄３１０に格納されているスコアと第２スコア欄３２０に格納されているスコアは等しいままである。
【００９３】
なお、第１アルゴリズムによって計算された第１スコアと、第２アルゴリズムによって計算された第２スコアとが、偶然等しくなる可能性がある。しかし、本実施形態では、このような偶然一致するケースは誤差の範囲内とする。
【００９４】
ただし、制御部２０３は、第１スコアが取りうる範囲と、第２スコアが取りうる範囲とが重複しないように設定してもよい。例えば、第１スコアが０以上１００以下の実数とし、第２スコアが１０００以上１１００以下の実数とすれば、第１スコアと第２スコアが偶然一致するケースはない。
【００９５】
また、制御部２０３は、第１アルゴリズムによって計算された第１スコアと、第２アルゴリズムによって計算された第２スコアとが等しくなった場合には、第１スコアと第２スコアのうち少なくともいずれか一方を微少に変化させてから、第１スコアと第２スコアをレコードに格納してもよい。
【００９６】
変化させる量は、例えば、ランダムな値に設定される。また、微少とは、スコア同士の大小関係に過度に影響を及ぼさない程度であり、スコアの値の数パーセント程度以下とするとよい。
【００９７】
制御部２０３は、検索結果Ｒ［ｉ］を提示されたユーザが、提示後に何らかの商品を入札した場合、そのユーザの反応Ｓ［ｉ］に“１”をセットする。何も入札しなかった場合、制御部２０３は、そのユーザの反応Ｓ［ｉ］に“０”をセットする。
【００９８】
制御部２０３は、検索結果Ｒ［ｉ］の提示後にユーザが何らかの商品を入札した場合ではなく、検索結果Ｒ［ｉ］の提示後にユーザが検索結果Ｒ［ｉ］に含まれるレコードに対応する商品のいずれかに入札した場合に、反応Ｓ［ｉ］に“１”をセットし、それ以外の場合に、反応Ｓ［ｉ］に“０”をセットしてもよい。
【００９９】
検索結果Ｒ［ｉ］が提示された第２グループに属するＮ人のユーザのうち、提示後に何らかの商品に入札したユーザの人数がｎ人であったとすると、割合Ｗ［ｉ］の場合における、第２グループに属するユーザの第２反応率Ｃ（Ｗ［ｉ］）は、［式２］で表される。
【０１００】
Ｃ（Ｗ［ｉ］）  ＝  ｎ／Ｎ      ・・・［式２］
【０１０１】
割合Ｗ［ｉ］＝０であれば、商品データベース２５１に格納されているすべてのレコードの第１スコア欄３１０と第２スコア欄３２０が更新されたとは言い切れないものの、少なくとも、検索結果Ｒ［ｉ］に含まれるすべてのレコードの第１スコア欄３１０と第２スコア欄３２０が更新されていることを意味する。つまり、近似的に、Ｃ（０）が、第２アルゴリズムを正式にリリースした場合に期待される反応率であるとみなすことが可能である。第２反応率Ｃが大きいほど、出品者もしくはシステム管理者にとって優れたアルゴリズムと言える。しかし、第２反応率Ｃの正確な値は、全レコードの第１スコア欄３１０と第２スコア欄３２０を更新した後でなければ分からない。そこで、本実施形態では、全レコードの第１スコア欄３１０と第２スコア欄３２０の更新が終わる前でも、第２反応率Ｃをなるべく正確に推定できるようにするのである。
【０１０２】
割合Ｗ［ｉ］（＝ｐ）は、０以上１以下の値を取りうる。制御部２０３は、［式３］に示すように、一次補間により、第２反応率を表す近似関数Ｃ（ｐ）を得る。
【０１０３】
Ｃ（ｐ）  ＝  Ｂ×ｐ  ＋  Ｃ×（１−ｐ）      ・・・［式３］
【０１０４】
上述したようにｉ番目の割合Ｗ［ｉ］が得られている。制御部２０３は、［式４］に示すように、［式３］に基づいてユーザの反応を表す近似値Ｓ’［ｉ］を得る。
【０１０５】
Ｓ’［ｉ］  ＝  Ｂ×Ｗ［ｉ］  ＋  Ｃ×（１−Ｗ［ｉ］）
・・・［式４］
【０１０６】
一方、反応Ｓ［ｉ］は［式４］によらずとも上述のように得られるのであるから、近似値Ｓ’（ｉ）の誤差ｅ（ｉ）は［式５］によって表される。
【０１０７】
ｅ（ｉ）  ＝  Ｓ［ｉ］  −  Ｓ’［ｉ］
＝  Ｓ［ｉ］  −  Ｂ×Ｗ［ｉ］  ＋  Ｃ×（１−Ｗ［ｉ］）
・・・［式５］
【０１０８】
二乗平均平方根（Root Mean Square；RMS）は［式６］により表される。
【０１０９】
ＲＭＳ  ＝  √（（Σｅ（ｉ）＾２）／Ｘ）      ・・・［式６］
【０１１０】
演算子「＾２」は二乗を表す。演算子「Σ」はｉが０からＸまでのｅ（ｉ）＾２の和を表す。演算子「√」は平方根を表す。
【０１１１】
制御部２０３は、ＲＭＳが最小となるときの第２反応率Ｃを求める。
【０１１２】
以上の計算により、第１反応率Ｂと第２反応率Ｃが得られる。第２反応率Ｃが第１反応率Ｂより大きければ、第２アルゴリズムは第１アルゴリズムよりも優れていることになり、システム管理者は第１アルゴリズムよりも第２アルゴリズムを採用すべきであると言える。第１アルゴリズムが第２アルゴリズムよりも優れていれば、システム管理者は、第１アルゴリズムと第２アルゴリズムを入れ替えずに、非移行期間に戻せばよい。第２アルゴリズムが第１アルゴリズムよりも優れていれば、システム管理者は、第１アルゴリズムを第２アルゴリズムで置き換えてから、非移行期間に戻せばよい。
【０１１３】
次に、受信部５０６は、クエリに含まれる検索条件を満たすレコードを電子商取引サーバ１０から受信する。ユーザ端末２０の制御部４０７と通信部４０１が協働して、受信部５０６として機能する。
【０１１４】
表示部５０７は、受信部５０６により受信した、商品情報を示すレコードに基づいて、商品情報をディスプレイ４５１に表示する。制御部４０７と画像処理部４０２が協働して、表示部５０７として機能する。
【０１１５】
図７に、ユーザ端末２０による商品情報の表示例を示す。ユーザは、所望のキーワードを入力し、ボタン７０１〜７０５を操作することにより所望のソート順を選択することにより、検索条件を決定する。ユーザ端末２０の制御部４０７は、入力された内容に基づいてクエリを生成し、生成したクエリを電子商取引サーバ１０へ送信する。
【０１１６】
ソート順には、例えば、価格が安い順、価格が高い順、入札が多い順、入札が少ない順、人気順、の五つがある。
【０１１７】
移行期間か非移行期間かにかかわらず、価格が安い順、価格が高い順、入札が多い順、入札が少ない順の四つのうちのいずれかが指定されると、電子商取引サーバ１０の制御部２０３は、検索結果であるレコードの抽出後、抽出したレコードを指定された順でソートし、ユーザ端末２０へ送信する。
【０１１８】
例えば、キーワード「ゲーム」「フライトシミュレーター」が入力され、且つ、ソート順として「入札が多い順」が指定されると、ユーザ端末２０の制御部４０７は、商品説明等に「ゲーム」と「フライトシミュレーター」が含まれている商品情報を入札が多い順にソートして表示する、というクエリを生成して電子商取引サーバ１０へ送信する。電子商取引サーバ１０の制御部２０３は、受信したクエリに基づき、商品データベース２５１を検索する。制御部２０３は、検索されたレコードを入札件数が多い順にソートし、ソートされたレコードを含むデータをユーザ端末２０へ送信する。ユーザ端末２０の制御部４０７は、検索結果であるレコード（図７ではレコード７５１，７５２，７５３の三つ）を上から入札件数が多い順に表示する。
【０１１９】
ソート順として「人気順」が指定された場合については、移行期間と非移行期間とで動作が異なる。
【０１２０】
非移行期間において、並び順として「人気順」が指定されると、電子商取引サーバ１０の制御部２０３は、検索結果であるレコードの抽出後、抽出したレコードを第１スコア欄３１０に格納されているスコアが大きい順にソートする。制御部２０３は、ソートされたレコードをユーザ端末２０へ送信する。ユーザ端末２０の制御部４０７は、検索結果であるレコードを表示する。非移行期間では、ユーザが第１グループに属するか第２グループに属するかは考慮されない。
【０１２１】
一方、移行期間において、ソート順として「人気順」が指定されると、電子商取引サーバ１０の制御部２０３は、第１グループに属するユーザが電子商取引システムにログインした状態でクエリが送信されたならば、検索結果であるレコードの抽出後、抽出したレコードを第１スコア欄３１０に格納されているレコードが大きい順にソートする。そして、制御部２０３は、ソートされたレコードを含むデータをユーザ端末２０へ送信する。ユーザ端末２０の制御部４０７は、検索結果であるソートされたレコードを表示する。
【０１２２】
図８に、移行期間中、第１グループに属するユーザがログインした状態における、ユーザ端末２０による商品情報の表示例を示す。
【０１２３】
また、移行期間において、ソート順として「人気順」が指定されると、電子商取引サーバ１０の制御部２０３は、第２グループに属するユーザが電子商取引システムにログインした状態でクエリが送信されたならば、検索結果であるレコードの抽出後、抽出したレコードを第２スコア欄３２０に格納されているスコアが大きい順にソートする。そして、制御部２０３は、ソートされたレコードをユーザ端末２０へ送信する。ユーザ端末２０の制御部４０７は、検索結果であるソートされたレコードを表示する。
【０１２４】
図９に、移行期間中、第２グループに属するユーザがログインした状態における、ユーザ端末２０による商品情報の表示例を示す。
【０１２５】
図８と図９を比較すると分かるように、第１グループに属するユーザと、第２グループに属するユーザとでは、適用されるアルゴリズムが異なるため、表示内容が異なってくる。
【０１２６】
図１０に、第１アルゴリズムにおいて、第１スコアの計算に用いられるパラメータとなる要因と、その要因が第１スコアに寄与する度合い（寄与率）との関係を示す。また、図１１に、第２アルゴリズムにおいて、第２スコアの計算に用いられるパラメータとなる要因と、その要因が第２スコアに寄与する度合い（寄与率）との関係を示す。
【０１２７】
第１アルゴリズムでは、各要因の寄与率が均等になるように設計されているが、第２アルゴリズムでは、ページビュー数（商品情報を示すウェブページがユーザ端末２０によって表示された回数）と、ブックマーク数（商品情報を示すウェブページがユーザによって“お気に入り”に登録された件数）の寄与率が相対的に高まるように設計されている。
【０１２８】
ページビュー数とブックマーク数はいずれも、システム管理者は把握可能であるものの、買い手ユーザは一般に知り得ない情報である。しかし、ページビュー数とブックマーク数は、どの商品がどのくらい関心を持たれているのかを判断するために有益な情報となり得る。そこで、電子商取引サーバ１０は、ページビュー数とブックマーク数を、ユーザに直接的に提示はしないものの、ページビュー数とブックマーク数を勘案したアルゴリズムにより計算されたスコアを用いて間接的に提示することで、買い手ユーザに多種多様な商品を紹介し、興味を持たせるように工夫している。
【０１２９】
なお、図１０と図１１に示した要因と寄与率はあくまでも例示であり、アルゴリズムの詳細は本発明によって限定されない。
【０１３０】
次に、入力受付部５０８は、ユーザからの様々な指示入力を受け付ける。受け付けられる指示入力には、例えば、検索条件となるキーワードの入力、ソート順を指定する入力、等がある。ユーザは、キーボードやマウス等の入力デバイスを用いて指示を入力する。ユーザ端末２０の入力部４０５と制御部４０７が協働して、入力受付部５０８として機能する。
【０１３１】
送信部５０９は、入力受付部５０８が受け付けた指示入力に基づいて生成されたクエリを電子商取引サーバ１０へ送信する。ユーザ端末２０の制御部４０７と通信部４０１が協働して、送信部５０９として機能する。
【０１３２】
受信部５１０は、ユーザ端末２０からクエリを受信する。上述のように、検索部５０３は、受信したクエリに基づいてレコードを検索し、検索結果を順次ユーザ端末２０へ送信する。電子商取引サーバ１０の制御部２０３と通信部２０２が協働して、受信部５１０として機能する。
【０１３３】
次に、本実施形態の電子商取引サーバ１０において実行される、第１スコア欄３１０と第２スコア欄３２０を更新する更新処理の流れについて、図１２のフローチャートを用いて説明する。
【０１３４】
まず、制御部２０３は、更新タイミングになったか否かを判別する（ステップＳ１２０１）。
【０１３５】
更新タイミングになっていないと判別した場合（ステップＳ１２０１；ＮＯ）、制御部２０３は、更新タイミングになるまで待機する。
【０１３６】
更新タイミングになったと判別した場合（ステップＳ１２０１；ＹＥＳ）、制御部２０３は、現在時刻が移行期間に含まれるか否かを判別する（ステップＳ１２０２）。
【０１３７】
例えば、システム管理者が新しいアルゴリズム（第２アルゴリズム）を作成し、現在本番運用中の第１アルゴリズムと新しい第２アルゴリズムとを並行して運用して比較するＡ−Ｂテストを開始すると判断すると、システム管理者は電子商取引システム１を非移行期間から移行期間に変更する。Ａ−Ｂテストを行わない場合は、システム管理者は電子商取引システム１を移行期間から非移行期間に変更する。
【０１３８】
現在時刻が移行期間に含まれると判別した場合（ステップＳ１２０２；ＹＥＳ）、制御部２０３は、商品データベース２５１に格納されているすべてのレコードを対象に、第１アルゴリズムに基づいて第１スコアを計算し、第２アルゴリズムに基づいて第２スコアを計算する（ステップＳ１２０３）。
【０１３９】
なお、上述したように、制御部２０３は、商品データベース２５１に格納されているすべてのレコードを対象に一斉に第１スコアと第２スコアの計算を開始してもよいし、レコードを複数のグループに分割し、グループ単位で第１スコアと第２スコアの計算を行ってもよい。
【０１４０】
そして、制御部２０３は、レコードの第１スコア欄３１０に第１スコアを格納し、レコードの第２スコア欄３２０に第２スコアを格納する（ステップＳ１２０４）。
【０１４１】
一方、現在時刻が移行期間に含まれない（非移行期間である）と判別した場合（ステップＳ１２０２；ＮＯ）、制御部２０３は、第１アルゴリズムに基づいて第１スコアを計算する（ステップＳ１２０５）。第２スコアは計算されない。
【０１４２】
そして、制御部２０３は、レコードのうち第１スコア欄３１０と第２スコア欄３２０の両方に、第１スコアを格納する（ステップＳ１２０６）。
【０１４３】
この更新処理により、制御部２０３は、移行期間であれば、第１スコアと第２スコアの両方をレコードに格納し、非移行期間であれば、第１スコアのみをレコードに格納する。
【０１４４】
なお、レコードの数が多いほど、更新処理を完了するまでに時間がかかるため、非移行期間から移行期間に変わった後でも、非移行期間中に計算された第１スコアが第２スコア欄３２０に格納されたままの状態になる期間があり得る。全レコードの更新が終われば、移行期間中、第１スコア欄３１０には第１スコアが、第２スコア欄３２０には第２スコアが、それぞれ格納される。
【０１４５】
また、移行期間から非移行期間に変わった後でも、移行期間中に計算された第２スコアが第２スコア欄３２０に格納されたままの状態になる期間があり得る。全レコードの更新が終われば、非移行期間中、第１スコア欄３１０と第２スコア欄３２０の両方に第１スコアが格納される。
【０１４６】
次に、本実施形態の電子商取引サーバ１０とユーザ端末２０とによって実行される、クエリに基づいて得られた検索結果がユーザに提示される検索処理の流れについて、図１３のフローチャートを用いて説明する。ここでは、ソート順として「人気順」が選択されたものとする。
【０１４７】
まず、電子商取引サーバ１０とユーザ端末２０は、ログイン処理を行う（ステップＳ１３０１）。
【０１４８】
具体的には、ユーザ端末２０は、ユーザからユーザ名及びパスワードの入力を受け付け、これらを暗号化して電子商取引サーバ１０へ送信する。電子商取引サーバ１０は、暗号化されたユーザ名及びパスワードを復号し、得られたユーザ名及びパスワードと、予め登録され記憶されたユーザ名及びパスワードとを照合する。これらが一致すれば、電子商取引サーバ１０は、認証を要求したユーザが正規のユーザであると判別し、電子商取引サービスの利用を許可する。これらが一致しなければ、電子商取引サーバ１０は、認証を要求したユーザが正規のユーザではないと判別し、電子商取引サービスの利用を許可しない。
【０１４９】
なお、電子商取引サーバ１０の制御部２０３は、このログイン処理において認証したユーザ名と、図６に示すユーザ情報とに基づいて、ログインしたユーザが第１グループに属するのか第２グループに属するのかを判別する。
【０１５０】
ユーザ端末２０の制御部４０７は、正規のユーザと認証されたユーザから、検索条件となるキーワードとソート順を指定する入力を受け付ける（ステップＳ１３０２）。
【０１５１】
ユーザ端末２０の制御部４０７は、入力された検索条件を含むクエリを生成して電子商取引サーバ１０へ送信する（ステップＳ１３０３）。
【０１５２】
電子商取引サーバ１０の制御部２０３は、ユーザ端末２０からクエリを受信する（ステップＳ１３０４）。
【０１５３】
電子商取引サーバ１０の制御部２０３は、受信したクエリに基づいてレコードを検索する（ステップＳ１３０５）。
【０１５４】
電子商取引サーバ１０の制御部２０３は、ユーザが第１グループに属するのか第２グループに属するのかを判別する（ステップＳ１３０６）。
【０１５５】
ユーザが第１グループに属すると判別した場合（ステップＳ１３０６；ＹＥＳ）、制御部２０３は、検索されたレコードを第１スコア欄３１０に格納されているスコアが大きい順にソートし、ソートされた検索結果をユーザ端末２０へ送信する（ステップＳ１３０７）。
【０１５６】
ユーザが第１グループに属さない、つまりユーザが第２グループに属すると判別した場合（ステップＳ１３０６；ＮＯ）、制御部２０３は、検索されたレコードを第２スコア欄３２０に格納されているスコアが大きい順にソートし、ソートされた検索結果をユーザ端末２０へ送信する（ステップＳ１３０８）。
【０１５７】
ユーザ端末２０の制御部４０７は、第１スコア欄３１０に格納されているスコアに基づいてソートされた検索結果、又は、第２スコア欄３２０に格納されているスコアに基づいてソートされた検索結果を、電子商取引サーバ１０から受信する（ステップＳ１３０９）。
【０１５８】
ユーザ端末２０の制御部４０７は、受信した検索結果をディスプレイ４５１に表示する（ステップＳ１３１０）。
【０１５９】
ユーザ端末２０の制御部４０７は、ユーザの反応を示すデータを電子商取引サーバ１０へ送信する（ステップＳ１３１１）。
【０１６０】
電子商取引サーバ１０の制御部２０３は、ユーザの反応を示すデータをユーザ端末２０から受信し、記憶部２０１に記録する（ステップＳ１３１２）。
【０１６１】
そして、電子商取引サーバ１０の制御部２０３は、［式１］から［式６］を用いて、第１グループに属するユーザによる第１反応率Ｂと、第２グループに属するユーザによる第２反応率Ｃとを計算し（ステップＳ１３１３）、出力する。
【０１６２】
ステップＳ１３１３での計算結果から、システム管理者は、第１アルゴリズムと第２アルゴリズムのどちらがより優れているのかを判断する。第１アルゴリズムに基づいて計算される第１反応率Ｂよりも、第２アルゴリズムに基づいて計算される第２反応率Ｃの方が大きければ、第２アルゴリズムが第１アルゴリズムよりも優れている。
【０１６３】
なお、このフローチャートでは、ステップＳ１３１３において第１反応率Ｂと第２反応率Ｃが計算されているが、制御部２０３は、検索処理を実行するたびに毎回これらを計算しなくてもよく、例えば、システム管理者から任意のタイミングで入力されるコマンドに応答して、第１反応率Ｂと第２反応率Ｃを計算してもよい。
【０１６４】
第１反応率Ｂと第２反応率Ｃは、例えば、システム管理者から任意のタイミングで入力されるコマンドに応答して、電子商取引サーバ１０に接続されるディスプレイ等に表示されればよい。
【０１６５】
また、ユーザが入札する処理が省略されているが、ステップＳ１３１０において表示された検索結果を用いて何らかの商品がユーザによって入札された場合には、ユーザ端末２０は、入札した商品を識別する出品番号と入札金額とを暗号化して電子商取引サーバ１０へ送信する。電子商取引サーバ１０は、暗号化された出品番号と入札金額を復号し、商品データベース２５１を更新する。入札された商品に対応するレコードには、入札時刻と入札金額と入札したユーザのユーザＩＤとが対応付けて格納される。
【０１６６】
本実施形態の電子商取引システム１によれば、二種類のアルゴリズムを比較するＡ−Ｂテストを行う際、本番環境のほかに特別なテスト環境を構築する必要がなく、電子商取引システム１の開発や保守にかかるコストを抑えることができる。また、レコードの数が多いほどスコアの更新に要する時間が長くなり、従来はＡ−Ｂテストの結果を得るまでに時間がかかったが、本実施形態によれば、Ａ−Ｂテストの結果をより早くより正確に推定できるようになる。
【０１６７】
本発明は、上述した実施形態に限定されず、種々の変形及び応用が可能である。また、上述した実施形態の各構成要素を自由に組み合わせることも可能である。
【０１６８】
電子商取引サーバ１０の制御部２０３は、移行期間において、全レコードを第１スコア欄３１０に格納されているスコアに基づいてソートした順で更新してもよい。例えば、制御部２０３は、第１スコアと第２スコアを計算する対象のレコードを、第１スコア欄３１０に格納されているスコアが大きい順に選択してもよい。ユーザには、第１スコア欄３１０に格納されているスコアが大きい順に、レコードが提示される。
【０１６９】
ユーザには、スコアが大きい順に２０件ごと、スコアが大きい順に５０件ごと、といったように、先頭から提示されることが多い。従って、スコアが低いレコードは、ユーザに提示されない可能性が比較的高いと考えられる。そこで、スコアが大きい順に更新することにより、できるだけ早期に、第１スコア欄３１０に格納されるスコアと第２スコア欄３２０に格納されるスコアとが異なるレコードがユーザの目に触れる機会を増やし、Ａ−Ｂテストの効率を上げることができる。
【０１７０】
制御部２０３は、第２アルゴリズムによる第２反応率Ｃだけでなく、第１アルゴリズムによる第１反応率Ｂも推定してもよい。制御部２０３は、ユーザの反応を示すパラメータである反応Ｓ［ｉ］と、反応Ｓ［ｉ］に対応付けられた割合とに基づいて、この割合を１と仮定することにより、第１アルゴリズムによる第１反応率Ｂを推定してもよい。また、制御部２０３は、この割合を０と仮定することにより、第２アルゴリズムによる第２反応率Ｃを推定してもよい。
【０１７１】
上記実施形態では、ユーザが何らかの商品に入札すれば、反応Ｓ［ｉ］に“１”がセットされ、何も入札されなければ、反応Ｓ［ｉ］に“０”がセットされる。しかし、制御部２０３は、反応Ｓ［ｉ］に、入札された金額（電子ショッピングモールであれば商品の購入価格）をセットするようにしてもよい。これにより、同じ「入札した」あるいは「購入した」というユーザの行為であっても、どの程度反応の大きさに違いがあるのかをスコアに反映させることができる。なお、制御部２０３は、検索結果を提示したユーザによって何も入札されなかった場合には、反応Ｓ［ｉ］に“０”をセットすればよい。
【０１７２】
また、制御部２０３は、反応Ｓ［ｉ］に、商品情報を示すウェブページの滞在時間（ウェブページを表示し続けた時間）をセットするようにしてもよい。滞在時間が長いほど、商品情報への関心が高いと推測される。滞在時間を考慮することにより、同じ「入札した」あるいは「購入した」というユーザの行為であっても、どの程度反応の大きさに違いがあるのかをスコアに反映させることができる。
【０１７３】
制御部２０３は、上述した更新処理を、定期的に繰り返し実行してもよい。例えば、図１０と図１１に示すページビュー数、ブックマーク数、入札件数、現在の価格は、いずれも可変な値であり、更新処理を行うタイミングによって異なる可能性が高い。そこで、制御部２０３が、例えば毎日一回予め決められた時間帯等に、繰り返し実行することにより、第１反応率Ｂと第２反応率Ｃの精度を高めることができる。
【０１７４】
三つ以上のアルゴリズムを同時に比較する場合、制御部２０３は、新たに第３スコア欄をレコードに設け、第３スコア欄に第３スコアを格納してもよい。また、制御部２０３は、ユーザを三つのグループに分け、第１アルゴリズムは第１グループに属するユーザに適用し、第２アルゴリズムは第２グループに属するユーザに適用し、第３アルゴリズムは第３グループに属するユーザに適用すればよい。
【０１７５】
上記実施形態では、同時に二つのアルゴリズムを比較するＡ−Ｂテストを行っているが、アルゴリズムを一つのみ実装し、その実装した一つのアルゴリズムの精度を評価するために本発明を用いることもできる。
【０１７６】
図１４に、変形例の電子商取引システム１の機能的な構成を示す。同一の機能部については同一の符号を記し、説明を省略する。
【０１７７】
上記実施形態では、オークションが開催される期間に移行期間と非移行期間があったが、本変形例では、実装されるアルゴリズムが一つしかないため、期間の区別はない。また、ユーザを、第１グループに属するユーザと第２グループに属するユーザとに分類する必要はない。
【０１７８】
設定部１４０１は、商品情報を示すレコードのスコアを計算するアルゴリズムを設定する。例えば、第１アルゴリズムと第２アルゴリズムとが存在し、第１アルゴリズムのみ電子商取引システム１に適用して第１アルゴリズムを単独でテストをする場合、設定部１４０１は、システム管理者からの指示に基づき、電子商取引システム１に適用するアルゴリズムとして、第１アルゴリズムを設定する。電子商取引サーバ１０の制御部２０３が設定部１４０１として機能する。
【０１７９】
レコード記憶部５０１には、商品情報を示す複数のレコードが記憶される。上記実施形態では、一つのレコードに二つのスコア欄３１０，３２０があるが、本変形例では、一つのレコードに一つのスコア欄があればよい。
【０１８０】
更新部５０２は、レコード記憶部５０１に記憶されている複数のレコードにより識別される商品情報のそれぞれについて、設定部１４０１によって設定されたアルゴリズムにより計算されたスコアを、レコードに含まれるスコア欄に格納することにより、レコード記憶部５０１に記憶されている複数のレコードのそれぞれを更新する。
【０１８１】
また、更新部５０２は、スコア欄に記憶されたスコアによりソートした順で、レコード記憶部５０１に記憶されている複数のレコードを更新する。
【０１８２】
上述のように、レコード数が多いほどすべてのレコードについてスコア欄を更新するには時間がかかると予想されるため、アルゴリズムを入れ替えた後であっても、スコア欄に古いアルゴリズムによって計算されたスコアが格納されたままになっている期間があり得る。そこで、スコア欄に記憶されたスコアによりソートした順でレコードを更新することにより、できるだけ早期に、更新されたスコアを有するレコードがユーザの目に触れる機会を増やし、テストの効率を上げる。
【０１８３】
検索部５０３は、ユーザ端末２０からクエリを受信すると、クエリに適合するレコードを検索し、検索されたレコードをスコア欄に格納されたスコアの順にユーザ端末２０へ送信する。
【０１８４】
ユーザ端末２０は、検索されたレコードを受信し、ディスプレイ４５１に表示する。ユーザ端末２０には、クエリに含まれる検索条件を満たすレコードが、スコア欄に格納されているスコアの順に（例えばスコアが大きい順に）、表示される。
【０１８５】
本変形例においても、電子商取引サーバ１０の制御部２０３は、［式１］を用いてユーザの反応率を計算し、出力することができる。システム管理者は、第１アルゴリズムを適用した場合に計算された反応率と、第２アルゴリズムを適用した場合に計算された反応率とを比較し、反応率が良い方のアルゴリズムを採用すればよい。
【０１８６】
上記実施形態及び変形例では、インターネット上で行われるオークションを例にとって説明したが、オークションに限られず、例えば電子ショッピングモールにおいてユーザにお薦め商品を提示するための手法として採用することもできる。また、インターネット等の一般的な検索システムにおける検索結果の提示手法として本発明を利用することができる。
【０１８７】
電子商取引システム１の全部又は一部としてコンピュータを動作させるためのプログラムを、メモリカード、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disk）、ＭＯ（Magneto Optical disk）などのコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。
【０１８８】
さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。
【０１８９】
本発明によれば、電子商取引システムの開発や保守にかかるコストを抑えるために好適な検索装置、検索方法、記録媒体、ならびに、プログラムを提供することができる。
【符号の説明】
【０１９０】
１  電子商取引システム
１０  電子商取引サーバ
２０，２０Ａ，２０Ｂ，２０Ｃ  ユーザ端末
５０  通信ネットワーク
２０１  記憶部
２０２  通信部
２０３  制御部
２５１  商品データベース
３１０  第１スコア
３２０  第２スコア
４０１  通信部
４０２  画像処理部
４０３  音声処理部
４０４  Ｉ／Ｏ部
４０５  入力部
４０６  記憶部
４０７  制御部
５０１  レコード記憶部
５０２  更新部
５０３  検索部
５０４  収集部
５０５  推定部
５０６  受信部
５０７  表示部
５０８  入力受付部
５０９  送信部
５１０  受信部
１４０１  設定部
【要約】
レコード記憶部（５０１）には複数のレコードが記憶される。更新部（５０２）は、第１期間中、第１アルゴリズムにより計算された第１スコアを第１スコア欄に格納し、第２アルゴリズムにより計算された第２スコアを第２スコア欄に格納する。更新部（５０２）は、第２期間中、第１スコアを第１スコア欄と第２スコア欄に格納する。検索部（５０３）は、レコードを検索し、ユーザが第１グループに属すれば第１スコア欄に格納されたスコアに基づいて、ユーザが第２グループに属すれば第２スコア欄に格納されたスコアに基づいてソートする。収集部（５０４）は、第１グループに属する第１ユーザの反応を収集し、第２グループに属する第２ユーザの反応を、検索されたレコード中、第１スコア欄と第２スコア欄に等しいスコアが格納されたレコードの割合に対応付けて収集する。推定部（５０５）は、第１ユーザの反応率と第２ユーザの反応率を推定する。【図１】
0005735191.tif 000002
【図２】
0005735191.tif 000003
【図３】
0005735191.tif 000004
【図４】
0005735191.tif 000005
【図５】
0005735191.tif 000006
【図６】
0005735191.tif 000007
【図７】
0005735191.tif 000008
【図８】
0005735191.tif 000009
【図９】
0005735191.tif 000010
【図１０】
0005735191.tif 000011
【図１１】
0005735191.tif 000012
【図１２】
0005735191.tif 000013
【図１３】
0005735191.tif 000014
【図１４】
0005735191.tif 000015