WO2016017001A1 - 検索装置、検索方法、記録媒体、ならびに、プログラム - Google Patents

検索装置、検索方法、記録媒体、ならびに、プログラム Download PDF

Info

Publication number
WO2016017001A1
WO2016017001A1 PCT/JP2014/070223 JP2014070223W WO2016017001A1 WO 2016017001 A1 WO2016017001 A1 WO 2016017001A1 JP 2014070223 W JP2014070223 W JP 2014070223W WO 2016017001 A1 WO2016017001 A1 WO 2016017001A1
Authority
WO
WIPO (PCT)
Prior art keywords
score
stored
user
records
record
Prior art date
Application number
PCT/JP2014/070223
Other languages
English (en)
French (fr)
Inventor
智子 江美
陽造 若松
前田 裕
Original Assignee
楽天株式会社
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 楽天株式会社 filed Critical 楽天株式会社
Priority to JP2015504433A priority Critical patent/JP5735191B1/ja
Priority to PCT/JP2014/070223 priority patent/WO2016017001A1/ja
Publication of WO2016017001A1 publication Critical patent/WO2016017001A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor

Definitions

  • the present invention relates to a search device, a search method, a recording medium, and a program suitable for reducing the cost for development and maintenance of an electronic commerce system.
  • Patent Document 1 discloses a system that comprehensively evaluates the performance of a search algorithm using nDCG (normalized Discounted Cumulative Gain), which is one of evaluation methods in a search algorithm, and response time required for search processing. ing.
  • nDCG normalized Discounted Cumulative Gain
  • the present invention has been made in view of the circumstances as described above, and provides a search device, a search method, a recording medium, and a program suitable for suppressing the cost for development and maintenance of an electronic commerce system. With the goal.
  • the search device provides: A record storage unit for storing a plurality of records; For each of the search targets identified by the plurality of stored records, (A) During the transition period, the first score calculated by the first algorithm is stored in the first score field included in the record, and the second score calculated by the second algorithm is stored in the first score included in the record.
  • the first score calculated by the first algorithm is stored in the first score field and the second score field included in the record, thereby the plurality of stored An updater that updates the record;
  • a query is received from a user terminal operated by a user, a record that matches the received query is searched from the plurality of stored records, and if the user belongs to a first group, the first score field is displayed.
  • a search unit for transmitting the searched records to the user terminal in the order based on the scores stored in the second score column if the user belongs to the second group in the order based on the stored scores; Data indicating the response of the first user belonging to the first group to the searched record is collected, and the data indicating the response of the second user belonging to the second group to the searched record is searched for A collection unit that collects the records stored in the first score column and the scores stored in the second score column in association with the ratio of records equal to each other; Based on the collected responses of the first user, the first response rate of the first user is estimated, and the score stored in the first score column and the score stored in the second score column.
  • An estimation unit for estimating a second response rate of the second user based on the responses of the second user collected in association with the proportion of records equal to Is provided.
  • the update unit may update the plurality of records in the order based on the score stored in the first score field.
  • the first score calculated by the first algorithm and the second score calculated by the second algorithm may not overlap.
  • the updating unit changes at least one of the first score and the second score slightly and randomly.
  • the first score and the second score may be stored in the record storage unit.
  • the collection unit selects one of the search targets identified by the records transmitted in the order of the scores stored in the first score column by the first user. Collecting reaction parameters indicating whether or not, as data indicating the reaction of the second user, any of the search objects identified by the records transmitted in the order of the scores stored in the second score column is the You may collect the reaction parameter which shows whether it was selected by the 2nd user.
  • a search device provides: A record storage unit for storing a plurality of records; For each of the search targets identified by the plurality of stored records, (A) During the transition period, the first score calculated by the first algorithm is stored in the first score field included in the record, and the second score calculated by the second algorithm is stored in the first score included in the record.
  • the first score calculated by the first algorithm is stored in the first score field and the second score field included in the record, thereby the plurality of stored An updater that updates the record;
  • a query is received from a user terminal operated by a user
  • a record that matches the received query is retrieved from the stored records, and the retrieved record is stored in the second score field.
  • a search section that sorts based on the score;
  • the data indicating the reaction of the user to the records searched during the transition period are the scores stored in the first score column and the scores stored in the second score column in the searched records.
  • a collection unit that collects in correspondence with the ratio of equal records; Based on the collected data indicating the user's reaction and the ratio associated with the data indicating the reaction, the first response rate according to the first algorithm is estimated by assuming the ratio to be 1.
  • a search device provides: A record storage unit for storing a plurality of records; A setting section for setting an algorithm for calculating a search target score; For each of the search targets identified by the plurality of stored records, the score calculated by the set algorithm is stored in the score column included in the record, thereby the plurality of stored records; An update unit for updating A search unit that, when receiving a query from a user terminal operated by a user, searches for a record that matches the received query, and transmits the searched record to the user terminal in the order of the scores stored in the score field; , With The update unit updates the plurality of records in the order sorted by the scores stored in the score column.
  • a search method includes: For each of the search targets identified by a plurality of records stored in the record storage unit, (A) During the transition period, the first score calculated by the first algorithm is stored in the first score field included in the record, and the second score calculated by the second algorithm is stored in the first score included in the record.
  • the first score calculated by the first algorithm is stored in the first score field and the second score field included in the record, thereby the plurality of stored An update step to update the record;
  • a query is received from a user terminal operated by a user, a record that matches the received query is searched from the plurality of stored records, and if the user belongs to a first group, the first score field is displayed.
  • a computer-readable recording medium includes: Computer A record storage unit for storing a plurality of records, For each of the search targets identified by the plurality of stored records, (A) During the transition period, the first score calculated by the first algorithm is stored in the first score field included in the record, and the second score calculated by the second algorithm is stored in the first score included in the record.
  • the first score calculated by the first algorithm is stored in the first score field and the second score field included in the record, thereby the plurality of stored An update part that updates records,
  • a query is received from a user terminal operated by a user
  • a record that matches the received query is searched from the plurality of stored records, and if the user belongs to a first group, the first score field is displayed.
  • a search unit that transmits the searched records to the user terminal in the order based on the scores stored in the second score column if the user belongs to the second group in the order based on the stored scores; Data indicating the response of the first user belonging to the first group to the searched record is collected, and the data indicating the response of the second user belonging to the second group to the searched record is searched for
  • a collecting unit that collects the records stored in the first score column and the scores stored in the second score column in association with the ratio of records that are equal to each other; Based on the collected responses of the first user, the first response rate of the first user is estimated, and the score stored in the first score column and the score stored in the second score column.
  • An estimation unit that estimates a second response rate of the second user based on the responses of the second user collected in association with a ratio of records equal to each other, The program to be operated as is stored.
  • a program is: Computer A record storage unit for storing a plurality of records, For each of the search targets identified by the plurality of stored records, (A) During the transition period, the first score calculated by the first algorithm is stored in the first score field included in the record, and the second score calculated by the second algorithm is stored in the first score included in the record.
  • the first score calculated by the first algorithm is stored in the first score field and the second score field included in the record, thereby the plurality of stored An update part that updates records,
  • a query is received from a user terminal operated by a user
  • a record that matches the received query is searched from the plurality of stored records, and if the user belongs to a first group, the first score field is displayed.
  • a search unit that transmits the searched records to the user terminal in the order based on the scores stored in the second score column if the user belongs to the second group in the order based on the stored scores; Data indicating the response of the first user belonging to the first group to the searched record is collected, and the data indicating the response of the second user belonging to the second group to the searched record is searched for
  • a collecting unit that collects the records stored in the first score column and the scores stored in the second score column in association with the ratio of records that are equal to each other; Based on the collected responses of the first user, the first response rate of the first user is estimated, and the score stored in the first score column and the score stored in the second score column.
  • An estimation unit that estimates a second response rate of the second user based on the responses of the second user collected in association with a ratio of records equal to each other, To function as.
  • the above program can be distributed and sold via a computer communication network independently of the computer on which the program is executed.
  • the recording medium may be a non-temporary recording medium and can be distributed and sold independently of the computer.
  • the electronic commerce system 1 includes an electronic commerce server 10, user terminals 20 (two user terminals 20 ⁇ / b> A and 20 ⁇ / b> B in FIG. 1) used by users participating in electronic commerce, and a communication network 50.
  • the communication network 50 is the Internet.
  • the electronic commerce is an auction performed on the Internet.
  • the electronic commerce server 10 is managed by an auction system administrator.
  • Various products and services are listed in the auction.
  • the product registered by the seller user is sold to the buyer user who finally presented the highest price.
  • products and services are collectively referred to as “products”, and products include intangible services such as hotel accommodation tickets, online tickets, and software licenses.
  • electronic commerce is not limited to an auction, and may be, for example, an electronic shopping mall that buys and sells products on the Internet.
  • the electronic commerce server 10 stores product information indicating a product registered by the seller user, and transmits the product information to the user terminal 20 that has requested browsing.
  • the product information is provided to the user terminal 20 by a web page accessible from the user terminal 20.
  • the web page includes HTML (HyperTextyMarkup Language) data, image data, audio data, and the like.
  • HTML HyperTextyMarkup Language
  • the web page does not have to be in the HTML format, but may be in an XML (Extensible Markup Language) format, an XHTML (Extensible HyperText Markup Language) format, or the like.
  • the product information may be provided to the user terminal 20 using a dedicated application installed in advance on the user terminal 20.
  • the electronic commerce server 10 When the electronic commerce server 10 is requested by the user terminal 20 to transmit product information specified by the user, the electronic commerce server 10 transmits product information related to the product specified by the user to the user terminal 20. Further, the electronic commerce server 10 not only includes product information related to the product specified by the user, but also product information related to a product that the seller user (or system administrator) wants to attract the buyer user's attention or a product that the buyer user wants to purchase. Is transmitted to the user terminal 20. For this reason, in the following description, the electronic commerce server 10 may be called a search device.
  • the user terminal 20 is operated by a seller user who registers an exhibit or a buyer user who browses and bids on product information.
  • the seller user operates the user terminal 20 to access the electronic commerce server 10, registers product information, and exhibits.
  • the buyer user operates the user terminal 20 to access the electronic commerce server 10 and browses product information.
  • the term “user” simply refers to a buyer user.
  • the communication network 50 connects the electronic commerce server 10 and the user terminal 20 to each other.
  • the communication network 50 is typically the Internet, but may include a telephone line, a dedicated line, a LAN (Local Area Network), and the like.
  • the electronic commerce server 10 includes a storage unit 201, a communication unit 202, and a control unit 203.
  • the storage unit 201 includes a storage device such as a hard disk.
  • a product database 251 is stored in the storage unit 201.
  • the merchandise database 251 stores merchandise information about all the merchandise to be exhibited in electronic commerce.
  • the communication unit 202 includes a NIC (Network Interface Card), connects the electronic commerce server 10 to the communication network 50, and communicates with the user terminal 20.
  • NIC Network Interface Card
  • the control unit 203 includes a CPU (Central Processing Unit), ROM (Read Only Memory), RAM (Random Access Memory), and the like, and controls the entire electronic commerce server 10. Moreover, the control part 203 calculates a 1st score and a 2nd score, and updates merchandise information. Details will be described later.
  • CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • FIG. 3 shows a configuration example of product information stored in the product database 251.
  • the product database 251 stores various data indicating product attributes such as a product name, an exhibitor, a bid deadline, and the like in association with an exhibition number for identifying a product.
  • the product information is updated at any time by the user terminal 20 used by the seller user or the electronic commerce server 10.
  • the product information includes a first score 310 calculated by the control unit 203 based on the first algorithm and a second score 320 calculated by the control unit 203 based on the second algorithm.
  • the first score 310 and the second score 320 are represented by numerical values within a predetermined range such as an integer from 0 to 200, for example.
  • the first score 310 and the second score 320 are, for example, the number of bids, the number of views, the last update date / time of the product information, the remaining time until the bid deadline date / time, the price at the time of listing, the current maximum value, etc. Calculated based on.
  • the first score 310 and the second score 320 are used to estimate a product that the auction system administrator wants the user to pay attention to or a product that attracts attention from many users.
  • the control unit 203 receives a request to browse the product information from the user terminal 20, the product indicated by the product information having a relatively high first score 310 or the second score 320 is compared with the requested product information.
  • the product indicated by the high-quality product information is presented to the user as a recommended product for the user.
  • it is estimated that a user's reaction is so good that the 2nd score 320 is large.
  • the second score 320 calculated by the second algorithm currently under development may have a higher page view rate or higher purchase rate than the first score 310 calculated by the first algorithm. Therefore, for a certain percentage of all users (for example, 50% of all users), while providing product information based on the first score 310 calculated by the first algorithm, the remaining users (for example, For the remaining 50% of users, a so-called AB test is performed in which the two algorithms are compared by providing product information based on the second score 320 calculated by the second algorithm.
  • this AB test is executed not on a test environment constructed separately from the production environment but on the actual production environment.
  • the ratio of the number of target users who adopt the first score 310 to the total number of users and the ratio of the number of target users who adopt the second score 320 to the total number of users are both 50% in this embodiment. You may change to
  • the electronic commerce server 10 a general computer server, mainframe, cloud type server, or the like can be used.
  • the user terminal 20 includes a communication unit 401, an image processing unit 402, an audio processing unit 403, an I / O (Input / Output) unit 404, an input unit 405, a storage unit 406, and a control unit 407.
  • a communication unit 401 an image processing unit 402, an audio processing unit 403, an I / O (Input / Output) unit 404, an input unit 405, a storage unit 406, and a control unit 407.
  • the communication unit 401 includes a NIC, connects the user terminal 20 to the communication network 50, and communicates with the electronic commerce server 10.
  • the image processing unit 402 generates an image and displays it on the display 451.
  • the image processing unit 402 transmits the HTML data and image data constituting the web page including the above-described product information, the HTML data and image data constituting the web page for accepting bids, etc. via the communication unit 401 to the electronic commerce server. 10, product information and the like are displayed on the display 451.
  • the audio processing unit 403 acquires audio data from the storage unit 406 or the electronic commerce server 10, reproduces it, and outputs audio from the speaker 452.
  • the I / O unit 404 includes an interface for connecting a removable memory card to the user terminal 20.
  • the input unit 405 includes an interface that receives input from the user.
  • the input unit 405 includes a keyboard and a mouse.
  • the storage unit 406 includes a storage device such as a ROM and a RAM, and stores an operating system that controls the user terminal 20, various programs, image data, audio data, text data, and the like.
  • the control unit 407 includes a CPU and controls the entire user terminal 20.
  • a general personal computer a mobile phone, a smartphone, a mobile terminal, a tablet computer, or the like having a communication function can be used.
  • a personal computer is employed as the user terminal 20.
  • the record storage unit 501 stores a record indicating product information for each product.
  • Product information about one product is called one “record”.
  • FIG. 3 illustrates three records with the exhibition numbers “12345”, “23456”, and “34567”. In the present embodiment, there is one record for each product for sale in the auction.
  • product information regarding all products to be auctioned is stored in the record storage unit 501.
  • the storage unit 201 of the electronic commerce server 10 functions as the record storage unit 501.
  • the update unit 502 updates the record stored in the record storage unit 501.
  • the control unit 203 and the storage unit 201 of the electronic commerce server 10 cooperate to function as the update unit 502.
  • the transition period is a period for testing new algorithms developed by the system administrator. During the transition period, an AB test is performed to compare the first algorithm currently in operation with the new second algorithm.
  • the non-transition period is a period in which the AB test is not performed.
  • control unit 203 stores the first score calculated by the first algorithm in the first score column 310 included in the product information, and uses the second score calculated by the second algorithm as the product information. Is stored in the second score field 320 included in.
  • control unit 203 stores the first score calculated by the first algorithm in both the first score column 310 and the second score column 320. The same value is stored in the first score field 310 and the second score field 320.
  • the first score is stored in both the first score field 310 and the second score field 320 for all records.
  • the first score field 310 has the first score and the second score field 320 has the second score for all records.
  • the first score column 310 stores the first score and the second score column 320 stores the second score for all records.
  • the first score is stored in the first score field 310 and the second score field 320 for all records.
  • the control unit 203 relatively lowers the priority of the update process among all the processes performed by the control unit 203, and performs the update process in a time zone in which the ratio of the CPU idle state is relatively large. For this reason, even if the update process is started, it takes time to complete the update of all records.
  • both the first score field 310 and the second score field 320 There may be a record in which one score is still stored. Of course, during the transition period, it may take time, but the first score field 310 and the second score field 320 of all records are gradually updated.
  • the control unit 203 may divide all records into a plurality of groups and distribute and execute update processing for each group. For example, the records that belong to the first group are updated in the first time zone, and the records that belong to the second group are updated in the second time zone. It may be divided into groups and the update process may be executed in a distributed manner.
  • the control unit 203 may execute the update process for each record at a timing when the product information is updated by the seller user or the system administrator. For example, when the control unit 203 bids for the first time for a product after switching from the non-transition period to the transition period, or when the first bid is made for a product after switching from the transition period to the non-transition period.
  • the first score field 310 and the second score field 320 of the record corresponding to the product may be updated.
  • the column 320 may be updated.
  • the search unit 503 When the search unit 503 receives a query from the user terminal 20, the search unit 503 searches the records stored in the product database 251 for a record that satisfies the search condition indicated by the query.
  • the query is a request to transmit a record that satisfies a specified search condition. For example, when the user wants to browse the product information, the user designates the search condition by operating a keyboard or a mouse.
  • the user terminal 20 generates a query for requesting transmission of product information related to a product that satisfies the search condition specified by the user, and transmits the query to the electronic commerce server 10.
  • the search unit 503 searches the product database 251 based on the received query.
  • the search unit 503 determines whether the user belongs to the first group or the second group.
  • the user belonging to the first group is a user who should provide the product information based on the score stored in the first score column 310, and the user belonging to the second group has a score stored in the second score column 320. It is a user who should provide merchandise information based on it.
  • the search unit 503 sorts records indicating product information related to products recommended to the user based on the score stored in the first score column 310. And sequentially transmitted to the user terminal 20.
  • the search unit 503 displays a record indicating product information regarding the product recommended for the user based on the score stored in the second score field 320. Rearrange and sequentially transmit to the user terminal 20. The acquired record is transmitted to the user terminal 20 and displayed on the display of the user terminal 20.
  • the storage unit 201, the communication unit 202, and the control unit 203 of the electronic commerce server 10 function as a search unit 503.
  • the user is provided with not only product information desired to be browsed, but also product information related to products attracting attention from many users and recommended products to users.
  • the collection unit 504 collects data indicating the reactions of users belonging to the first group to the retrieved records. In addition, the collection unit 504 displays data indicating the reaction of the user belonging to the second group with respect to the searched record in the score stored in the first score column 310 and the second score column 320 in the record presented to the user. Collect in association with the proportion of records with the same stored score.
  • the control unit 203 and the storage unit 201 cooperate to function as the collection unit 504.
  • the control unit 203 determines whether the query is by a user belonging to the first group or a user belonging to the second group.
  • the control unit 203 of the electronic commerce server 10 collates the user name and password input by the user with the user name and password registered in advance, and determines whether or not the user is a legitimate user. Perform login process.
  • the control unit 203 determines whether the user belongs to the first group or the second group. Determine if it belongs.
  • the control unit 203 may randomly determine which group the user belongs to, or may determine a group according to a predetermined condition such as the usage frequency of the electronic commerce system 1.
  • the group to which the user belongs is determined by the control unit 203 before starting the AB test, that is, before changing from the non-transition period to the transition period.
  • control unit 203 searches for a user belonging to the first group (or the second group) instead of determining whether or not a user belonging to the first group (or the second group) has bid for any product. It may be determined whether or not the product has been bid.
  • control unit 203 selects the records having the same score stored in the first score column 310 and the score stored in the second score column 320 in the retrieved records. Information indicating the user's reaction is collected in association with the ratio.
  • the number of all records after the period is changed (from the transition period to the non-transition period, or from the non-transition period to the transition period) It is considered that it takes time until the update of the first score field 310 and the second score field 320 is completed. If it is immediately after the start of the update process, for example, only about 1% of all products can be updated in the first score field 310 and the second score field 320, and the values set during the non-transition period remain It may be. Then, for the remaining 99% of the products, the first score column 310 and the second score column 320 are not updated, and accurate results of the AB test cannot be obtained.
  • control unit 203 associates the ratio of records having the same score stored in the first score field 310 and the score stored in the second score field 320 in all records, and indicates information indicating the user's reaction. And estimate the user's reaction to a product that has not yet been updated.
  • the score stored in the second score column 320 is equal to the score stored in the second score column 320
  • the score stored in the first score column 310 is equal to the score stored in the second score column 320 among all records. Is 75%. If the user bids on some product, 1 is added to the number of responses (reaction number) as the information indicating the user's reaction. That is, the number of reactions corresponding to the ratio of records having the same score stored in the first score field 310 and the score stored in the second score field 320 being 75% is obtained.
  • the number of reactions corresponding to the ratio of records having the same score stored in the first score column 310 and the score stored in the second score column 320 being 50%.
  • the number of reactions corresponding to the ratio of records having the same score stored in the second score column 320 and the score stored in the second score column 320 being 40%, the score stored in the first score column 310 and the second score column
  • the number of responses corresponding to 30% of the records having the same score stored in 320 is obtained, and so on.
  • the search result R [i] is presented, if the number of users who bid for a certain product after presentation is m, the first reaction of the users belonging to the first group
  • the rate B is expressed by [Formula 1].
  • the control unit 203 does not use the case where the user bids for any product after the search result R [i] is presented, but the product corresponds to the record included in the search result R [i] after the search result R [i] is presented.
  • the variable m may be incremented when bidding on any of the above.
  • the control unit 203 receives the query Q [i] (i is an integer from 1 to X) X (X is an integer equal to or greater than 1) from the users belonging to the second group. ],
  • the product database 251 is searched for a record that satisfies the search condition included in the query Q [i]. Then, the control unit 203 transmits the search result R [i] for the query Q [i] to the user terminal 20.
  • the search result R [i] is displayed to the user by the user terminal 20.
  • the control unit 203 sets, as a search result R [i], a predetermined number of records (for example, 20) in order from the record having the highest score stored in the second score column 320 among all the records. That is, a predetermined number of records become search results R [i] in descending order of the scores stored in the second score column 320.
  • the predetermined number is arbitrary, and may be the same for all users.
  • the first predetermined number is for users belonging to the first group
  • the second predetermined number is for users belonging to the second group. Different numbers may be used.
  • the ratio of records having the same score stored in the first score field 310 and the score stored in the second score field 320 is represented by W [i]. To do.
  • the first of the records for which the update process has not yet been performed For example, if the update process for updating the first score field 310 and the second score field 320 has not yet been completed after the non-transition period is changed to the transition period, the first of the records for which the update process has not yet been performed.
  • the score stored in the score column 310 and the score stored in the second score column 320 remain equal.
  • first score calculated by the first algorithm and the second score calculated by the second algorithm may coincide by chance. However, in this embodiment, such a coincidence case is within an error range.
  • control unit 203 may set the range that the first score can take and the range that the second score can take so as not to overlap. For example, if the first score is a real number between 0 and 100 and the second score is a real number between 1000 and 1100, there is no case where the first score coincides with the second score.
  • the control unit 203 is at least one of the first score and the second score. After slightly changing one, the first score and the second score may be stored in the record.
  • the amount to be changed is set to a random value, for example.
  • the term “small” refers to a level that does not excessively affect the magnitude relationship between the scores, and is preferably about several percent or less of the score value.
  • control unit 203 sets “1” to the user's reaction S [i]. When no bid is made, the control unit 203 sets “0” to the user's reaction S [i].
  • the control unit 203 does not use the case where the user bids for any product after the search result R [i] is presented, but the product corresponds to the record included in the search result R [i] after the search result R [i] is presented.
  • “1” may be set to the reaction S [i]
  • “0” may be set to the reaction S [i] in other cases.
  • the search result R [ i] means that the first score field 310 and the second score field 320 of all records included in the record are updated. That is, approximately C (0) can be regarded as a response rate expected when the second algorithm is officially released. It can be said that the larger the second reaction rate C, the better the algorithm for the exhibitor or system administrator. However, the accurate value of the second reaction rate C is not known unless the first score field 310 and the second score field 320 of all records are updated. Therefore, in the present embodiment, the second reaction rate C can be estimated as accurately as possible even before the update of the first score field 310 and the second score field 320 of all records is completed.
  • the control unit 203 obtains an approximate value S ′ [i] representing the user's reaction based on [Expression 3].
  • Root mean square (RMS) is expressed by [Formula 6].
  • the control part 203 calculates
  • the first reaction rate B and the second reaction rate C are obtained. If the second response rate C is greater than the first response rate B, the second algorithm is superior to the first algorithm, and the system administrator should adopt the second algorithm over the first algorithm. I can say that. If the first algorithm is superior to the second algorithm, the system administrator may return to the non-transition period without replacing the first algorithm and the second algorithm. If the second algorithm is superior to the first algorithm, the system administrator may replace the first algorithm with the second algorithm and then return to the non-transition period.
  • the receiving unit 506 receives a record that satisfies the search condition included in the query from the electronic commerce server 10.
  • the control unit 407 and the communication unit 401 of the user terminal 20 cooperate to function as the reception unit 506.
  • the display unit 507 displays the product information on the display 451 based on the record indicating the product information received by the receiving unit 506.
  • the control unit 407 and the image processing unit 402 cooperate to function as the display unit 507.
  • 203 sorts the extracted records in the specified order and transmits them to the user terminal 20.
  • the control unit 203 of the electronic commerce server 10 stores the extracted record in the first score column 310 after extracting the record as the search result. Sort in descending order of score.
  • the control unit 203 transmits the sorted records to the user terminal 20.
  • the control unit 407 of the user terminal 20 displays a record that is a search result. In the non-migration period, it is not considered whether the user belongs to the first group or the second group.
  • the control unit 203 of the electronic commerce server 10 may transmit a query while a user belonging to the first group is logged in to the electronic commerce system. For example, after extracting records as search results, the extracted records are sorted in descending order of records stored in the first score field 310. Then, the control unit 203 transmits data including the sorted records to the user terminal 20. The control unit 407 of the user terminal 20 displays sorted records that are search results.
  • FIG. 8 shows a display example of product information by the user terminal 20 in a state in which a user belonging to the first group logs in during the transition period.
  • the control unit 203 of the electronic commerce server 10 may transmit a query while a user belonging to the second group is logged in to the electronic commerce system. For example, after extracting records as search results, the extracted records are sorted in descending order of the scores stored in the second score field 320. Then, the control unit 203 transmits the sorted records to the user terminal 20. The control unit 407 of the user terminal 20 displays sorted records that are search results.
  • FIG. 10 shows a relationship between a factor that is a parameter used to calculate the first score and a degree (contribution rate) that the factor contributes to the first score in the first algorithm.
  • FIG. 11 shows a relationship between a factor that is a parameter used to calculate the second score and a degree (contribution rate) that the factor contributes to the second score in the second algorithm.
  • the contribution ratio of each factor is designed to be equal, but in the second algorithm, the number of page views (the number of times a web page indicating product information is displayed by the user terminal 20), a bookmark, It is designed so that the contribution ratio of the number (the number of web pages indicating product information registered as “favorites” by the user) is relatively increased.
  • Both the number of page views and the number of bookmarks are information that can be grasped by the system administrator but is generally unknown to the buyer user.
  • the number of page views and the number of bookmarks can be useful information for determining which items are interested in how much. Therefore, the e-commerce server 10 does not present the page view number and the bookmark number directly to the user, but indirectly presents the page view number and the bookmark number using a score calculated by an algorithm considering the page view number and the bookmark number. Therefore, it introduces a wide variety of products to buyer users and devise them to make them interested.
  • the input receiving unit 508 receives various instruction inputs from the user.
  • Examples of the instruction input that can be accepted include an input of a keyword serving as a search condition and an input that specifies a sort order.
  • the user inputs an instruction using an input device such as a keyboard or a mouse.
  • the input unit 405 and the control unit 407 of the user terminal 20 cooperate to function as the input reception unit 508.
  • the receiving unit 510 receives a query from the user terminal 20. As described above, the search unit 503 searches for records based on the received query, and sequentially transmits the search results to the user terminal 20.
  • the control unit 203 and the communication unit 202 of the electronic commerce server 10 work together to function as the receiving unit 510.
  • control unit 203 determines whether or not the update timing has come (step S1201).
  • step S1201 If it is determined that the update timing is not reached (step S1201; NO), the control unit 203 waits until the update timing is reached.
  • step S1201 When it is determined that the update timing has come (step S1201; YES), the control unit 203 determines whether or not the current time is included in the transition period (step S1202).
  • control unit 203 calculates the first score based on the first algorithm for all records stored in the product database 251. Then, a second score is calculated based on the second algorithm (step S1203).
  • control unit 203 may start calculating the first score and the second score all at once for all the records stored in the product database 251, and may record the records into a plurality of groups. The first score and the second score may be calculated for each group.
  • control part 203 stores a 1st score in the 1st score column 310 of a record, and stores a 2nd score in the 2nd score column 320 of a record (step S1204).
  • control unit 203 stores both the first score and the second score in the record if it is a transition period, and stores only the first score in the record if it is a non-transition period.
  • the second score calculated during the transition period may be stored in the second score column 320 even after the transition period is changed to the non-transition period.
  • the first score is stored in both the first score field 310 and the second score field 320 during the non-transition period.
  • step S1301 the electronic commerce server 10 and the user terminal 20 perform a login process.
  • the user terminal 20 receives input of a user name and a password from the user, encrypts them, and transmits them to the electronic commerce server 10.
  • the electronic commerce server 10 decrypts the encrypted user name and password, and collates the obtained user name and password with a user name and password registered and stored in advance. If they match, the electronic commerce server 10 determines that the user who has requested authentication is a legitimate user, and permits the use of the electronic commerce service. If they do not match, the electronic commerce server 10 determines that the user who has requested authentication is not a legitimate user, and does not permit the use of the electronic commerce service.
  • the control unit 203 of the electronic commerce server 10 determines whether the logged-in user belongs to the first group or the second group based on the user name authenticated in the login process and the user information shown in FIG. Determine.
  • the control unit 407 of the user terminal 20 accepts an input specifying a keyword as a search condition and a sort order from a user who is authenticated as a legitimate user (step S1302).
  • the control unit 407 of the user terminal 20 generates a query including the input search condition and transmits it to the electronic commerce server 10 (step S1303).
  • the control unit 203 of the electronic commerce server 10 receives a query from the user terminal 20 (step S1304).
  • the control unit 203 of the electronic commerce server 10 determines whether the user belongs to the first group or the second group (step S1306).
  • control unit 203 sorts the retrieved records in descending order of the scores stored in the first score column 310, and the sorted search results. Is transmitted to the user terminal 20 (step S1307).
  • the control unit 407 of the user terminal 20 searches the search result sorted based on the score stored in the first score column 310 or the search result sorted based on the score stored in the second score column 320. Is received from the electronic commerce server 10 (step S1309).
  • the control unit 407 of the user terminal 20 displays the received search result on the display 451 (step S1310).
  • the control unit 203 of the electronic commerce server 10 receives data indicating the user's reaction from the user terminal 20 and records it in the storage unit 201 (step S1312).
  • the first reaction rate B and the second reaction rate C are calculated in step S1313.
  • the control unit 203 does not have to calculate them each time the search process is executed.
  • the first reaction rate B and the second reaction rate C may be calculated in response to a command input at an arbitrary timing from the system administrator.
  • the first reaction rate B and the second reaction rate C may be displayed on, for example, a display connected to the electronic commerce server 10 in response to a command input at an arbitrary timing from the system administrator.
  • the user terminal 20 displays the exhibition number for identifying the bid product.
  • the bid amount are encrypted and transmitted to the electronic commerce server 10.
  • the electronic commerce server 10 decrypts the encrypted exhibition number and bid price, and updates the product database 251. In the record corresponding to the bid product, the bid time, the bid price, and the user ID of the user who bids are stored in association with each other.
  • the electronic commerce system 1 of the present embodiment when the AB test for comparing two types of algorithms is performed, it is not necessary to construct a special test environment in addition to the production environment. Maintenance costs can be reduced. In addition, as the number of records increases, the time required for updating the score becomes longer. Conventionally, it takes time to obtain the AB test result. However, according to the present embodiment, the result of the AB test is obtained. This makes it possible to estimate faster and more accurately.
  • the control unit 203 of the electronic commerce server 10 may update all records in the order of sorting based on the scores stored in the first score column 310 during the transition period. For example, the control unit 203 may select the records for which the first score and the second score are calculated in descending order of the scores stored in the first score column 310. Records are presented to the user in descending order of the scores stored in the first score column 310.
  • control unit 203 may set the stay time of the web page indicating the product information (the time during which the web page has been displayed) in the reaction S [i]. It is estimated that the longer the staying time, the higher the interest in product information. By considering the staying time, it is possible to reflect to the score how much the response is different even if the user action is “bidding” or “purchasing”.
  • the control unit 203 may periodically and repeatedly execute the update process described above.
  • the number of page views, the number of bookmarks, the number of bids, and the current price shown in FIGS. 10 and 11 are all variable values, and are likely to differ depending on the timing of performing the update process.
  • the control unit 203 can increase the accuracy of the first reaction rate B and the second reaction rate C by repeatedly executing the control unit 203, for example, once a day in a predetermined time zone.
  • the AB test for comparing two algorithms at the same time is performed.
  • the present invention can also be used to implement only one algorithm and evaluate the accuracy of the implemented algorithm. .
  • the setting unit 1401 sets an algorithm for calculating a score of a record indicating product information. For example, when the first algorithm and the second algorithm exist and only the first algorithm is applied to the electronic commerce system 1 to test the first algorithm alone, the setting unit 1401 is based on an instruction from the system administrator.
  • the first algorithm is set as an algorithm applied to the electronic commerce system 1.
  • the control unit 203 of the electronic commerce server 10 functions as the setting unit 1401.
  • the record storage unit 501 stores a plurality of records indicating product information.
  • the update unit 502 stores, for each piece of product information identified by the plurality of records stored in the record storage unit 501, the score calculated by the algorithm set by the setting unit 1401 in the score field included in the record. By doing so, each of the plurality of records stored in the record storage unit 501 is updated.
  • the search unit 503 When the search unit 503 receives a query from the user terminal 20, the search unit 503 searches for a record that matches the query, and transmits the searched record to the user terminal 20 in the order of the scores stored in the score column.
  • the present invention is not limited to an auction, and may be adopted as a method for presenting recommended products to users in an electronic shopping mall, for example. Further, the present invention can be used as a method for presenting search results in a general search system such as the Internet.
  • the program may be stored in a disk device or the like of a server device on the Internet, and may be downloaded onto a computer by being superimposed on a carrier wave, for example.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 レコード記憶部(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ユーザの反応率を推定する。

Description

検索装置、検索方法、記録媒体、ならびに、プログラム
 本発明は、電子商取引システムの開発や保守にかかるコストを抑えるために好適な検索装置、検索方法、記録媒体、ならびに、プログラムに関する。
 インターネットに接続されたコンピュータや、企業内で構築されたイントラネットに接続されたコンピュータには、様々なデータ、様々な電子文書等が多数保管される。保管されるデータ等が増えるほど、ユーザが欲するデータを探す手間も増える。ユーザが所望のデータをなるべく早く検索できるようにするために、より優秀な検索アルゴリズムが望まれる。
 例えば、特許文献1には、検索アルゴリズムにおける評価方法の一つであるnDCG(normalized Discounted Cumulative Gain)と検索処理に要するレスポンス時間とを用いて検索アルゴリズムの性能を総合的に評価するシステムが開示されている。
特開2012-128802号公報
 しかしながら、電子商取引システムのように規模が大きくなると、現在運用中の本番環境に加えて、開発中のアルゴリズムの性能を評価するためのテスト環境を別途用意することは容易ではなく、コストがかさんでしまう。また、開発者にとっては、なるべく本番環境に近い環境でテストできることが望ましく、更に言えば、本番環境において複数のアルゴリズムを併用して相互に評価できることが望ましい。
 本発明は、以上のような事情に鑑みてなされたものであり、電子商取引システムの開発や保守にかかるコストを抑えるために好適な検索装置、検索方法、記録媒体、ならびに、プログラムを提供することを目的とする。
 本発明の第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反応率を推定する推定部と、
 を備える。
 前記更新部は、前記第1スコア欄に格納されているスコアに基づく順に、前記複数のレコードを更新してもよい。
 前記第1アルゴリズムにより計算される第1スコアと、前記第2アルゴリズムにより計算される第2スコアとは、重複しなくてもよい。
 前記移行期間中において計算された前記第1スコアと前記第2スコアとが等しければ、前記更新部は、前記第1スコアと前記第2スコアとのうち少なくとも一方を微小にランダムに変化させてから、前記第1スコアと前記第2スコアを前記レコード記憶部に格納してもよい。
 前記収集部は、前記第1ユーザの反応を示すデータとして、前記第1スコア欄に格納されているスコアの順に送信されたレコードにより識別される検索対象のいずれかが前記第1ユーザによって選択されたか否かを示す反応パラメータを収集し、前記第2ユーザの反応を示すデータとして、前記第2スコア欄に格納されているスコアの順に送信されたレコードにより識別される検索対象のいずれかが前記第2ユーザによって選択されたか否かを示す反応パラメータを収集してもよい。
 本発明のその他の観点に係る検索装置は、
 複数のレコードが記憶されるレコード記憶部と、
 前記記憶された複数のレコードにより識別される検索対象のそれぞれについて、
(a)移行期間中、第1アルゴリズムにより計算された第1スコアを、前記レコードに含まれる第1スコア欄に格納し、第2アルゴリズムにより計算された第2スコアを、前記レコードに含まれる第2スコア欄に格納し、
(b)非移行期間中、前記第1アルゴリズムにより計算された第1スコアを、前記レコードに含まれる前記第1スコア欄と前記第2スコア欄に格納する
ことにより、前記記憶されている複数のレコードを更新する更新部と、
 ユーザが操作するユーザ端末からクエリを受信すると、前記記憶された複数のレコードの中から前記受信したクエリに適合するレコードを検索し、前記検索されたレコードを前記第2スコア欄に格納されているスコアに基づいてソートする検索部と、
 前記移行期間中に検索されたレコードに対する前記ユーザの反応を示すデータを、当該検索されたレコードにおいて前記第1スコア欄に格納されているスコアと前記第2スコア欄に格納されているスコアとが等しいレコードの割合に対応付けて収集する収集部と、
 前記収集されたユーザの反応を示すデータと、当該反応を示すデータに対応付けられた割合とに基づいて、前記割合を1と仮定することにより、前記第1アルゴリズムによる第1反応率を推定し、前記割合を0と仮定することにより、前記第2アルゴリズムによる第2反応率を推定する推定部と、
 を備える。
 本発明のその他の観点に係る検索装置は、
 複数のレコードが記憶されるレコード記憶部と、
 検索対象のスコアを計算するアルゴリズムを設定する設定部と、
 前記記憶された複数のレコードにより識別される検索対象のそれぞれについて、前記設定されたアルゴリズムにより計算されたスコアを、前記レコードに含まれるスコア欄に格納することにより、前記記憶されている複数のレコードを更新する更新部と、
 ユーザが操作するユーザ端末からクエリを受信すると、前記受信されたクエリに適合するレコードを検索し、前記検索されたレコードを前記スコア欄に記憶されたスコアの順に前記ユーザ端末へ送信する検索部と、
 を備え、
 前記更新部は、前記スコア欄に記憶されたスコアによりソートした順で、前記複数のレコードを更新する。
 本発明のその他の観点に係る検索方法は、
 レコード記憶部に記憶された複数のレコードにより識別される検索対象のそれぞれについて、
(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反応率を推定する推定ステップと、
 を備える。
 本発明のその他の観点に係るコンピュータ読み取り可能な記録媒体は、
 コンピュータを、
 複数のレコードが記憶されるレコード記憶部、
 前記記憶された複数のレコードにより識別される検索対象のそれぞれについて、
(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反応率を推定する推定部、
 として機能させるプログラムを記憶する。
 本発明のその他の観点に係るプログラムは、
 コンピュータを、
 複数のレコードが記憶されるレコード記憶部、
 前記記憶された複数のレコードにより識別される検索対象のそれぞれについて、
(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反応率を推定する推定部、
 として機能させる。
 上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記記録媒体は、非一時的な記録媒体であってよく、コンピュータとは独立して配布・販売することができる。
 本発明によれば、電子商取引システムの開発や保守にかかるコストを抑えることができる。
電子商取引システムの構成の概要を示す図である。 電子商取引サーバの構成を示す図である。 商品データベースに格納される商品情報の例を示す図である。 ユーザ端末の構成を示す図である。 電子商取引システムの機能的な構成を示す図である。 ユーザ情報を示す図である。 商品情報の表示例を示す図である。 商品情報の表示例を示す他の図である。 商品情報の表示例を示す他の図である。 第1アルゴリズムにおいて採用される要因と寄与率を示す図である。 第2アルゴリズムにおいて採用される要因と寄与率を示す図である。 更新処理を説明するためのフローチャートである。 検索処理を説明するためのフローチャートである。 変形例における電子商取引システムの機能的な構成を示す図である。
 本発明の実施形態を説明する。以下の実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
 まず、本実施形態の電子商取引システム1の概要構成を、図1を用いて説明する。電子商取引システム1は、電子商取引サーバ10と、電子商取引に参加するユーザが使用するユーザ端末20(図1では、ユーザ端末20A,20Bの二つ)と、通信ネットワーク50とから構成される。本実施形態では、通信ネットワーク50はインターネットである。
 本実施形態においては、電子商取引とは、インターネット上で行われるオークションである。電子商取引サーバ10は、オークションのシステム管理者により管理される。オークションには、様々な商品やサービスが出品される。オークションでは、売り手ユーザによって登録された商品は、最終的に最も高い価格を提示した買い手ユーザに販売される。
 説明の簡略化のため、商品とサービスをまとめて「商品」と呼び、商品には、例えばホテルの宿泊券、オンラインチケット、ソフトウェアの使用ライセンスなどの無形のサービス、も含まれる。
 なお、電子商取引はオークションに限定されず、例えばインターネット上で商品を売買する電子ショッピングモールでもよい。
 電子商取引サーバ10は、売り手ユーザによって登録された商品を示す商品情報を記憶し、閲覧要求があったユーザ端末20へ商品情報を送信する。
 商品情報は、ユーザ端末20からアクセス可能なウェブページによって、ユーザ端末20に提供される。ウェブページは、HTML(HyperText Markup Language)データ、画像データ、音声データ等から構成される。ウェブページはHTML形式でなくてもよく、XML(Extensible Markup Language)形式、XHTML(Extensible HyperText Markup Language)形式などでもよい。あるいは、商品情報は、ユーザ端末20に予めインストールされた専用のアプリケーションを用いてユーザ端末20に提供されてもよい。
 電子商取引サーバ10は、ユーザが指定した商品情報の送信をユーザ端末20から要求されると、ユーザによって指定された商品に関する商品情報をユーザ端末20へ送信する。また、電子商取引サーバ10は、ユーザから指定された商品に関する商品情報だけでなく、売り手ユーザ(もしくはシステム管理者)にとって買い手ユーザの注目を惹きたい商品や買い手ユーザに購入を勧めたい商品に関する商品情報を検索して、ユーザ端末20へ送信する。このため、以下の説明において、電子商取引サーバ10を検索装置と呼ぶことがある。
 ユーザ端末20は、出品物を登録する売り手ユーザ、もしくは、商品情報を閲覧し入札する買い手ユーザによって、操作される。売り手ユーザは、ユーザ端末20を操作して電子商取引サーバ10にアクセスし、商品情報を登録して出品する。買い手ユーザは、ユーザ端末20を操作して電子商取引サーバ10にアクセスし、商品情報を閲覧する。
 なお、以下の説明において、単に「ユーザ」と言う場合には、主に買い手ユーザを指す。
 通信ネットワーク50は、電子商取引サーバ10とユーザ端末20とを互いに接続する。通信ネットワーク50は、典型的にはインターネットであるが、電話回線、専用回線、LAN(Local Area Network)などが含まれてもよい。
 次に、電子商取引サーバ10のハードウェア構成について、図2を用いて説明する。電子商取引サーバ10は、記憶部201、通信部202、制御部203を備える。
 記憶部201は、ハードディスク等の記憶装置から構成される。記憶部201には、商品データベース251が記憶される。商品データベース251は、電子商取引に出品されるすべての商品についての商品情報を記憶する。
 通信部202は、NIC(Network Interface Card)を備え、電子商取引サーバ10を通信ネットワーク50に接続し、ユーザ端末20と通信する。
 制御部203は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等を備え、電子商取引サーバ10全体を制御する。また、制御部203は、第1スコアと第2スコアを計算し、商品情報を更新する。詳しくは後述する。
 図3に、商品データベース251に記憶される商品情報の構成例を示す。商品データベース251には、商品を識別する出品番号と対応付けて、商品名、出品者、入札期限等、商品の属性を示す様々なデータが記憶される。商品情報は、売り手ユーザが使用するユーザ端末20、あるいは、電子商取引サーバ10によって、随時更新される。
 また、商品情報には、第1アルゴリズムに基づいて制御部203によって計算された第1スコア310と、第2アルゴリズムに基づいて制御部203によって計算された第2スコア320とが含まれる。第1スコア310と第2スコア320は、例えば0から200までの整数といったように、予め決められた範囲内の数値によって表される。
 第1スコア310と第2スコア320は、それぞれ、例えば入札数、閲覧数、商品情報の最終更新日時、入札期限日時までの残り時間、出品された時点での価格、現在の最高値、等に基づいて計算される。
 第1スコア310と第2スコア320は、オークションのシステム管理者にとってユーザに注目させたい商品、あるいは、多くのユーザに注目されている商品を推定するために用いられる。制御部203は、ユーザ端末20から商品情報を閲覧する要求を受信すると、要求された商品情報に加えて、第1スコア310が比較的高い商品情報が示す商品、又は、第2スコア320が比較的高い商品情報が示す商品を、ユーザへのお薦め商品としてユーザに提示する。本実施形態では、第1スコア310が大きいほど、ユーザの購買意欲を増加させる効果が高い(ユーザの反応が良い)と推定される。同様に、第2スコア320が大きいほど、ユーザの反応が良いと推定される。
 ところで、ユーザにどの商品を勧めれば購買意欲をより高められるかを推測するために、様々なアルゴリズムが開発され、テストされる。第1アルゴリズムによって計算された第1スコア310が現在正式に採用されていても、より良いサービスを実現すべく並行して、他のアルゴリズムが開発されることがある。現在開発中の第2アルゴリズムによって計算された第2スコア320のほうが、第1アルゴリズムによって計算された第1スコア310よりも、ページビュー率が高かったり購買率が高かったりするかもしれない。そこで、全ユーザのうちある決まった割合のユーザ(例えば全ユーザの50%)については、第1アルゴリズムによって計算された第1スコア310に基づいて商品情報を提供しつつも、残りのユーザ(例えば残りの50%のユーザ)については、第2アルゴリズムによって計算された第2スコア320に基づいて商品情報を提供することによって、二つのアルゴリズムを比較する、いわゆるA-Bテストが実施される。
 本実施形態では、このA-Bテストは、本番環境とは別途構築されたテスト環境ではなく、実際に稼働中の本番環境上で実行される。
 なお、第1アルゴリズムと第2アルゴリズムの具体的なロジック、計算式等は、本発明によって限定されない。
 また、全ユーザ数に対する第1スコア310を採用する対象ユーザ数の割合と、全ユーザ数に対する第2スコア320を採用する対象ユーザ数の割合は、本実施形態では共に50%としているが、任意に変更してよい。
 電子商取引サーバ10として、一般的なコンピュータサーバ、メインフレーム、クラウド型サーバなどを用いることができる。
 次に、ユーザ端末20のハードウェア構成について、図4を用いて説明する。ユーザ端末20は、通信部401、画像処理部402、音声処理部403、I/O(Input/Output)部404、入力部405、記憶部406、制御部407を備える。
 通信部401は、NICを備え、ユーザ端末20を通信ネットワーク50に接続し、電子商取引サーバ10と通信する。
 画像処理部402は、画像を生成してディスプレイ451に表示する。例えば、画像処理部402は、上述の商品情報を含むウェブページを構成するHTMLデータや画像データ、入札を受け付けるウェブページを構成するHTMLデータや画像データ等を、通信部401を介して電子商取引サーバ10から受信し、商品情報等をディスプレイ451に表示する。
 音声処理部403は、記憶部406もしくは電子商取引サーバ10から音声データを取得し、再生し、音声をスピーカ452から出力する。
 I/O部404は、取り外し可能なメモリカードをユーザ端末20に接続するインタフェースを備える。
 入力部405は、ユーザからの入力を受け付けるインタフェースを備える。本実施形態では、入力部405は、キーボードとマウスを備える。
 記憶部406は、ROM、RAM等の記憶装置を備え、ユーザ端末20を制御するオペレーティングシステム、各種のプログラム、画像データ、音声データ、テキストデータ等を記憶する。
 制御部407は、CPUを備え、ユーザ端末20全体を制御する。
 ユーザ端末20として、通信機能を持った一般的なパーソナルコンピュータ、携帯電話機、スマートフォン、携帯端末、タブレット型コンピュータ等を用いることができる。本実施形態では、ユーザ端末20としてパーソナルコンピュータを採用する。
 次に、電子商取引システム1の機能的な構成について、図5を用いて説明する。
 レコード記憶部501には、商品のそれぞれについて、商品情報を示すレコードが記憶される。一つの商品に関する商品情報を、一つの“レコード”と呼ぶ。図3には、出品番号が“12345”と“23456”と“34567”の三つのレコードが例示されている。本実施形態では、オークションに出品される商品一つにつき、一つのレコードが存在する。レコード記憶部501には、オークションに出品されるすべての商品に関する商品情報がレコード記憶部501に記憶される。電子商取引サーバ10の記憶部201がレコード記憶部501として機能する。
 更新部502は、レコード記憶部501に記憶されるレコードを更新する。電子商取引サーバ10の制御部203と記憶部201が協働して、更新部502として機能する。
 より詳細には、オークションが開催される期間の種別には二種類ある。すなわち、(1)すべてのユーザのうち一部のユーザ(「第1グループに属するユーザ」という。)に対しては第1スコア欄310に格納されているスコアを用いて商品情報を提供し、残りの一部のユーザ(「第2グループに属するユーザ」という。)に対しては第2スコア欄320に格納されているスコアを用いて商品情報を提供する“移行期間”と、(2)すべてのユーザに対して第1スコア欄310に格納されているスコアを用いて商品情報を提供する“非移行期間”である。
 移行期間は、システム管理者が開発した新しいアルゴリズムをテストする期間である。移行期間中、現在運用中の第1アルゴリズムと新たな第2アルゴリズムとを比較するA-Bテストが行われる。非移行期間は、A-Bテストを実施していない期間である。
 移行期間中では、制御部203は、第1アルゴリズムにより計算された第1スコアを、商品情報に含まれる第1スコア欄310に格納し、第2アルゴリズムにより計算された第2スコアを、商品情報に含まれる第2スコア欄320に格納する。
 非移行期間中では、制御部203は、第1アルゴリズムにより計算された第1スコアを、第1スコア欄310と第2スコア欄320の両方に格納する。第1スコア欄310と第2スコア欄320には同じ値が格納される。
 非移行期間から移行期間に切り替わった時点では、全レコードについて、第1スコア欄310と第2スコア欄320の両方に、第1スコアが格納されていることになる。移行期間における全レコードの第1スコア欄310と第2スコア欄320の更新が終わると、全レコードについて、第1スコア欄310には第1スコアが、第2スコア欄320には第2スコアが、それぞれ格納される。
 移行期間から非移行期間に切り替わった時点では、全レコードについて、第1スコア欄310には第1スコアが、第2スコア欄320には第2スコアが、それぞれ格納されていることになる。非移行期間における全レコードの第1スコア欄310と第2スコア欄320の更新が終わると、全レコードについて、第1スコア欄310と第2スコア欄320には第1スコアが格納される。
 レコードの数が多いほど、すべてのレコードの第1スコア欄310と第2スコア欄320の更新を完了するまでにかかる時間は長くなる。また、第1スコアと第2スコアを計算して更新する更新処理をすべてのレコードについて一度にまとめて行うと、商品データベース251を更新処理がほぼ占有することになり、一時的に負荷が増大し、レスポンスが低下するおそれがある。そこで、制御部203は、制御部203が行うすべての処理のうち更新処理の優先度を相対的に低くし、CPUのアイドル状態の割合が比較的大きい時間帯に更新処理を行う。このため、更新処理を開始しても、すべてのレコードの更新を完了するまでには時間がかかるので、移行期間中であっても、第1スコア欄310と第2スコア欄320の両方に第1スコアが格納されたままの状態のレコードが存在しうる。勿論、移行期間中であれば、時間はかかるかもしれないが、徐々に、すべてのレコードの第1スコア欄310と第2スコア欄320が更新されることになる。
 制御部203は、すべてのレコードを複数のグループに分割し、グループごとに更新処理を分散して実行してもよい。例えば、第1の時間帯には第1のグループに属するレコードを更新し、第2の時間帯には第2のグループに属するレコードを更新する、といったように、更新処理の対象となるレコードをグループ分けし、更新処理を分散して実行してもよい。
 制御部203は、更新処理を、商品情報が売り手ユーザ又はシステム管理者によって更新されるタイミングに、レコード単位で実行してもよい。例えば、制御部203は、非移行期間から移行期間に切り替わってからある商品に初めて入札があった時点で、もしくは、移行期間から非移行期間に切り替わってからある商品に初めて入札があった時点で、その商品に対応するレコードの第1スコア欄310と第2スコア欄320を更新してもよい。
 期間が切り替わった後、初めて入札があった時点だけでなく、あるいは、初めて入札があった時点に加えて、期間が切り替わった後の初めて商品情報が閲覧された時点(つまり期間が切り替わった後の初めてレコードが制御部203によって読み出された時点)や、出品された時点(新しいレコードが制御部203によって生成された時点)に、その商品に対応するレコードの第1スコア欄310と第2スコア欄320を更新してもよい。
 検索部503は、ユーザ端末20からクエリを受信すると、商品データベース251に記憶されたレコードの中から、クエリによって示される検索条件を満たすレコードを検索する。クエリは、指定された検索条件を満たすレコードを送信する旨の要求である。例えば、ユーザが商品情報を閲覧したい場合、ユーザはキーボードやマウス等を操作して検索条件を指定する。ユーザ端末20は、ユーザによって指定された検索条件を満たす商品に関する商品情報の送信を要求するクエリを生成し、電子商取引サーバ10へ送信する。検索部503は、受信したクエリに基づいて商品データベース251を検索する。
 また、検索部503は、ユーザが第1グループに属するか第2グループに属するかを判別する。第1グループに属するユーザは、第1スコア欄310に格納されたスコアに基づいて商品情報を提供すべきユーザであり、第2グループに属するユーザは、第2スコア欄320に格納されたスコアに基づいて商品情報を提供すべきユーザである。
 検索部503は、クエリを送信したユーザ端末20のユーザが第1グループに属すれば、第1スコア欄310に格納されたスコアに基づいて、ユーザに薦める商品に関する商品情報を示すレコードを並べ替え、ユーザ端末20へ順次送信する。また、検索部503は、クエリを送信したユーザ端末20のユーザが第2グループに属すれば、第2スコア欄320に格納されたスコアに基づいて、ユーザに薦める商品に関する商品情報を示すレコードを並べ替え、ユーザ端末20へ順次送信する。取得されたレコードはユーザ端末20へ送信され、ユーザ端末20のディスプレイに表示される。電子商取引サーバ10の記憶部201と通信部202と制御部203が協働して、検索部503として機能する。
 ユーザには、閲覧を希望する商品情報だけでなく、多くのユーザから注目されている商品やユーザへのお薦め商品等に関する商品情報が提供される。
 なお、クエリには、ユーザによって指定された特定の商品に関する商品情報の送信を要求するものがあってもよい。例えば、ユーザが特定の商品情報を閲覧したい場合、ユーザはキーボードやマウス等を操作して商品を指定する。ユーザ端末20は、ユーザによって指定された商品に関する商品情報の送信を要求するクエリを生成し、電子商取引サーバ10へ送信する。
 収集部504は、検索されたレコードに対する第1グループに属するユーザの反応を示すデータを収集する。また、収集部504は、検索されたレコードに対する第2グループに属するユーザの反応を示すデータを、ユーザに提示されたレコードにおいて第1スコア欄310に格納されているスコアと第2スコア欄320に格納されているスコアが等しいレコードの割合に対応付けて、収集する。制御部203と記憶部201が協働して、収集部504として機能する。
 より詳細には、制御部203は、クエリを受信すると、そのクエリが第1グループに属するユーザによるものか第2グループに属するユーザによるものかを判別する。本実施形態では、電子商取引サーバ10の制御部203は、ユーザから入力されたユーザ名及びパスワードと、予め登録されたユーザ名及びパスワードとを照合し、正規のユーザであるか否かを判別するログイン処理を行う。ユーザから入力されたユーザ名及びパスワードと、予め登録されたユーザ名及びパスワードとが合致し、正規のユーザであると判別すると、制御部203は、ユーザが第1グループに属するか第2グループに属するかを判別する。
 本実施形態では、制御部203は、予め登録された全ユーザを、第1グループと第2グループのいずれかに分類し、分類結果を記憶部201に記憶する。
 図6に、分類結果を含むユーザ属性が記憶されるユーザ情報の例を示す。記憶部201には、ユーザを識別するユーザIDと対応付けて、氏名、住所、購入履歴等のほか、第1グループに属するか第2グループに属するかを示す情報が記憶される。ここでは第1グループに属するのであれば“1”が、第2グループに属するのであれば“2”が、ユーザ情報に格納される。
 制御部203は、ユーザをどちらのグループに属させるかをランダムに決定してもよいし、電子商取引システム1の利用頻度等、予め決められた条件に従ってグループを決定してもよい。ユーザが属するグループは、A-Bテストを開始する前に、つまり非移行期間から移行期間に変更される前に、制御部203によって決定される。
 そして、制御部203は、検索されたレコードに対する第1グループに属するユーザの反応を示す情報を収集する。具体的には、制御部203は、お薦め商品に関する商品情報の提示後に、第1グループに属する各ユーザが何らかの商品(お薦め商品でなくてもよい)に入札したか否かを判別する。すなわち、お薦め商品が提示された後にそのユーザによって入札されれば、ユーザがオークションに興味を示したと判別され、商品を薦めた効果があったと推測される。
 また、制御部203は、検索されたレコードに対する第2グループに属するユーザの反応を示す情報を収集する。具体的には、制御部203は、お薦め商品に関する商品情報の提示後に、第2グループに属する各ユーザが何らかの商品に入札したか否かを判別する。すなわち、お薦め商品が提示された後にそのユーザによって入札されれば、ユーザがオークションに興味を示したと判別され、商品を薦めた効果があったと推測される。
 なお、制御部203は、第1グループ(又は第2グループ)に属するユーザが何らかの商品に入札したか否かを判別する代わりに、第1グループ(又は第2グループ)に属するユーザが検索された商品に入札したか否かを判別してもよい。
 ここで、第2グループに属するユーザについては、制御部203は、検索されたレコードにおいて第1スコア欄310に格納されているスコアと第2スコア欄320に格納されているスコアとが等しいレコードの割合に対応付けて、ユーザの反応を示す情報を収集する。
 上述したように、レコード数が多い場合、期間が変更されてから(移行期間から非移行期間に変更されてから、又は、非移行期間から移行期間に変更されてから)、すべてのレコードの第1スコア欄310と第2スコア欄320の更新が完了するまで、時間がかかると考えられる。更新処理を開始してからすぐ後であれば、例えば全商品の1%程度しか第1スコア欄310と第2スコア欄320を更新できておらず、非移行期間内に設定された値のままかもしれない。すると、残りの99%の商品については第1スコア欄310と第2スコア欄320が更新されておらず、A-Bテストの正確な結果が得られない。そこで、制御部203は、全レコード中の第1スコア欄310に格納されているスコアと第2スコア欄320に格納されているスコアが等しいレコードの割合に対応付けて、ユーザの反応を示す情報を収集し、更新がまだ終わっていない商品に対するユーザの反応を推定する。
 例えば、第2スコア欄320に格納されているスコアが大きい順に上位20件の商品情報をユーザにお薦めする場合に、20件のレコードのうち15件のレコードにおいて第1スコア欄310に格納されているスコアと第2スコア欄320に格納されているスコアが等しかったとすると、全レコード中、第1スコア欄310に格納されているスコアと第2スコア欄320に格納されているスコアとが等しいレコードの割合は、75%である。ユーザが何らかの商品に入札すれば、ユーザの反応を示す情報として、ユーザが反応した数(反応数)に1を加算する。つまり、第1スコア欄310に格納されているスコアと第2スコア欄320に格納されているスコアとが等しいレコードの割合が75%であることに対応する反応数が得られる。
 同様にして、第1スコア欄310に格納されているスコアと第2スコア欄320に格納されているスコアが等しいレコードの割合が50%であることに対応する反応数、第1スコア欄310に格納されているスコアと第2スコア欄320に格納されているスコアが等しいレコードの割合が40%であることに対応する反応数、第1スコア欄310に格納されているスコアと第2スコア欄320に格納されているスコアが等しいレコードの割合が30%であることに対応する反応数、等々が得られる。
 次に、推定部505は、収集部504によって収集された第1グループに属するユーザの反応を示すデータに基づいて、第1グループに属するユーザの第1反応率Bを推定する。また、推定部505は、第1スコア欄310に格納されているスコアと第2スコア欄320に格納されているスコアが等しいレコードの割合に応じて収集された第2グループに属するユーザの反応を示すデータに基づいて、第2グループに属するユーザの第2反応率Cを推定する。制御部203が推定部505として機能する。
 より詳細には、制御部203は、第1グループに属するユーザから通算してY個(Yは1以上の整数)のクエリQ[i](iは1からYまでの整数)を受信したとき、クエリQ[i]のそれぞれに応答して、クエリQ[i]に含まれる検索条件を満たすレコードを商品データベース251から検索する。そして、制御部203は、クエリQ[i]に対する検索結果R[i]をユーザ端末20へ送信する。検索結果R[i]は、ユーザ端末20によってユーザに表示される。
 検索結果R[i]が提示された第1グループに属するM人のユーザのうち、提示後に何らかの商品に入札したユーザの人数がm人であったとすると、第1グループに属するユーザの第1反応率Bは、[式1]で表される。
 B = m/M   ・・・[式1]
 制御部203は、検索結果R[i]の提示後にユーザが何らかの商品を入札した場合ではなく、検索結果R[i]の提示後にユーザが検索結果R[i]に含まれるレコードに対応する商品のいずれかに入札した場合に、変数mをインクリメントしてもよい。
 制御部203は、第2グループに属するユーザから通算してX個(Xは1以上の整数)のクエリQ[i](iは1からXまでの整数)を受信したとき、クエリQ[i]のそれぞれに応答して、クエリQ[i]に含まれる検索条件を満たすレコードを商品データベース251から検索する。そして、制御部203は、クエリQ[i]に対する検索結果R[i]をユーザ端末20へ送信する。検索結果R[i]は、ユーザ端末20によってユーザに表示される。
 制御部203は、すべてのレコードのうち、第2スコア欄320に格納されているスコアが最も大きいレコードから順に所定個数(例えば20個)のレコードを検索結果R[i]とする。つまり、第2スコア欄320に格納されているスコアが大きい順に所定個数のレコードが検索結果R[i]となる。
 ただし、所定個数は任意であり、全ユーザについて同じ個数としてもよいし、第1グループに属するユーザなら第1の所定個数、第2グループに属するユーザなら第2の所定個数というように、ユーザごとに異なる個数としてもよい。
 検索結果R[i]に含まれるX個のレコードのうち、第1スコア欄310に格納されているスコアと第2スコア欄320に格納されているスコアが等しいレコードの割合をW[i]とする。
 例えば、非移行期間から移行期間に変更された後、第1スコア欄310と第2スコア欄320を更新する更新処理がまだ完了していない場合、更新処理がまだ行われていないレコードの第1スコア欄310に格納されているスコアと第2スコア欄320に格納されているスコアは等しいままである。
 なお、第1アルゴリズムによって計算された第1スコアと、第2アルゴリズムによって計算された第2スコアとが、偶然等しくなる可能性がある。しかし、本実施形態では、このような偶然一致するケースは誤差の範囲内とする。
 ただし、制御部203は、第1スコアが取りうる範囲と、第2スコアが取りうる範囲とが重複しないように設定してもよい。例えば、第1スコアが0以上100以下の実数とし、第2スコアが1000以上1100以下の実数とすれば、第1スコアと第2スコアが偶然一致するケースはない。
 また、制御部203は、第1アルゴリズムによって計算された第1スコアと、第2アルゴリズムによって計算された第2スコアとが等しくなった場合には、第1スコアと第2スコアのうち少なくともいずれか一方を微少に変化させてから、第1スコアと第2スコアをレコードに格納してもよい。
 変化させる量は、例えば、ランダムな値に設定される。また、微少とは、スコア同士の大小関係に過度に影響を及ぼさない程度であり、スコアの値の数パーセント程度以下とするとよい。
 制御部203は、検索結果R[i]を提示されたユーザが、提示後に何らかの商品を入札した場合、そのユーザの反応S[i]に“1”をセットする。何も入札しなかった場合、制御部203は、そのユーザの反応S[i]に“0”をセットする。
 制御部203は、検索結果R[i]の提示後にユーザが何らかの商品を入札した場合ではなく、検索結果R[i]の提示後にユーザが検索結果R[i]に含まれるレコードに対応する商品のいずれかに入札した場合に、反応S[i]に“1”をセットし、それ以外の場合に、反応S[i]に“0”をセットしてもよい。
 検索結果R[i]が提示された第2グループに属するN人のユーザのうち、提示後に何らかの商品に入札したユーザの人数がn人であったとすると、割合W[i]の場合における、第2グループに属するユーザの第2反応率C(W[i])は、[式2]で表される。
 C(W[i]) = n/N   ・・・[式2]
 割合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をなるべく正確に推定できるようにするのである。
 割合W[i](=p)は、0以上1以下の値を取りうる。制御部203は、[式3]に示すように、一次補間により、第2反応率を表す近似関数C(p)を得る。
 C(p) = B×p + C×(1-p)   ・・・[式3]
 上述したようにi番目の割合W[i]が得られている。制御部203は、[式4]に示すように、[式3]に基づいてユーザの反応を表す近似値S’[i]を得る。
 S’[i] = B×W[i] + C×(1-W[i])
                        ・・・[式4]
 一方、反応S[i]は[式4]によらずとも上述のように得られるのであるから、近似値S’(i)の誤差e(i)は[式5]によって表される。
 e(i) = S[i] - S’[i]
      = S[i] - B×W[i] + C×(1-W[i])
                        ・・・[式5]
 二乗平均平方根(Root Mean Square;RMS)は[式6]により表される。
 RMS = √((Σe(i)^2)/X)   ・・・[式6]
 演算子「^2」は二乗を表す。演算子「Σ」はiが0からXまでのe(i)^2の和を表す。演算子「√」は平方根を表す。
 制御部203は、RMSが最小となるときの第2反応率Cを求める。
 以上の計算により、第1反応率Bと第2反応率Cが得られる。第2反応率Cが第1反応率Bより大きければ、第2アルゴリズムは第1アルゴリズムよりも優れていることになり、システム管理者は第1アルゴリズムよりも第2アルゴリズムを採用すべきであると言える。第1アルゴリズムが第2アルゴリズムよりも優れていれば、システム管理者は、第1アルゴリズムと第2アルゴリズムを入れ替えずに、非移行期間に戻せばよい。第2アルゴリズムが第1アルゴリズムよりも優れていれば、システム管理者は、第1アルゴリズムを第2アルゴリズムで置き換えてから、非移行期間に戻せばよい。
 次に、受信部506は、クエリに含まれる検索条件を満たすレコードを電子商取引サーバ10から受信する。ユーザ端末20の制御部407と通信部401が協働して、受信部506として機能する。
 表示部507は、受信部506により受信した、商品情報を示すレコードに基づいて、商品情報をディスプレイ451に表示する。制御部407と画像処理部402が協働して、表示部507として機能する。
 図7に、ユーザ端末20による商品情報の表示例を示す。ユーザは、所望のキーワードを入力し、ボタン701~705を操作することにより所望のソート順を選択することにより、検索条件を決定する。ユーザ端末20の制御部407は、入力された内容に基づいてクエリを生成し、生成したクエリを電子商取引サーバ10へ送信する。
 ソート順には、例えば、価格が安い順、価格が高い順、入札が多い順、入札が少ない順、人気順、の五つがある。
 移行期間か非移行期間かにかかわらず、価格が安い順、価格が高い順、入札が多い順、入札が少ない順の四つのうちのいずれかが指定されると、電子商取引サーバ10の制御部203は、検索結果であるレコードの抽出後、抽出したレコードを指定された順でソートし、ユーザ端末20へ送信する。
 例えば、キーワード「ゲーム」「フライトシミュレーター」が入力され、且つ、ソート順として「入札が多い順」が指定されると、ユーザ端末20の制御部407は、商品説明等に「ゲーム」と「フライトシミュレーター」が含まれている商品情報を入札が多い順にソートして表示する、というクエリを生成して電子商取引サーバ10へ送信する。電子商取引サーバ10の制御部203は、受信したクエリに基づき、商品データベース251を検索する。制御部203は、検索されたレコードを入札件数が多い順にソートし、ソートされたレコードを含むデータをユーザ端末20へ送信する。ユーザ端末20の制御部407は、検索結果であるレコード(図7ではレコード751,752,753の三つ)を上から入札件数が多い順に表示する。
 ソート順として「人気順」が指定された場合については、移行期間と非移行期間とで動作が異なる。
 非移行期間において、並び順として「人気順」が指定されると、電子商取引サーバ10の制御部203は、検索結果であるレコードの抽出後、抽出したレコードを第1スコア欄310に格納されているスコアが大きい順にソートする。制御部203は、ソートされたレコードをユーザ端末20へ送信する。ユーザ端末20の制御部407は、検索結果であるレコードを表示する。非移行期間では、ユーザが第1グループに属するか第2グループに属するかは考慮されない。
 一方、移行期間において、ソート順として「人気順」が指定されると、電子商取引サーバ10の制御部203は、第1グループに属するユーザが電子商取引システムにログインした状態でクエリが送信されたならば、検索結果であるレコードの抽出後、抽出したレコードを第1スコア欄310に格納されているレコードが大きい順にソートする。そして、制御部203は、ソートされたレコードを含むデータをユーザ端末20へ送信する。ユーザ端末20の制御部407は、検索結果であるソートされたレコードを表示する。
 図8に、移行期間中、第1グループに属するユーザがログインした状態における、ユーザ端末20による商品情報の表示例を示す。
 また、移行期間において、ソート順として「人気順」が指定されると、電子商取引サーバ10の制御部203は、第2グループに属するユーザが電子商取引システムにログインした状態でクエリが送信されたならば、検索結果であるレコードの抽出後、抽出したレコードを第2スコア欄320に格納されているスコアが大きい順にソートする。そして、制御部203は、ソートされたレコードをユーザ端末20へ送信する。ユーザ端末20の制御部407は、検索結果であるソートされたレコードを表示する。
 図9に、移行期間中、第2グループに属するユーザがログインした状態における、ユーザ端末20による商品情報の表示例を示す。
 図8と図9を比較すると分かるように、第1グループに属するユーザと、第2グループに属するユーザとでは、適用されるアルゴリズムが異なるため、表示内容が異なってくる。
 図10に、第1アルゴリズムにおいて、第1スコアの計算に用いられるパラメータとなる要因と、その要因が第1スコアに寄与する度合い(寄与率)との関係を示す。また、図11に、第2アルゴリズムにおいて、第2スコアの計算に用いられるパラメータとなる要因と、その要因が第2スコアに寄与する度合い(寄与率)との関係を示す。
 第1アルゴリズムでは、各要因の寄与率が均等になるように設計されているが、第2アルゴリズムでは、ページビュー数(商品情報を示すウェブページがユーザ端末20によって表示された回数)と、ブックマーク数(商品情報を示すウェブページがユーザによって“お気に入り”に登録された件数)の寄与率が相対的に高まるように設計されている。
 ページビュー数とブックマーク数はいずれも、システム管理者は把握可能であるものの、買い手ユーザは一般に知り得ない情報である。しかし、ページビュー数とブックマーク数は、どの商品がどのくらい関心を持たれているのかを判断するために有益な情報となり得る。そこで、電子商取引サーバ10は、ページビュー数とブックマーク数を、ユーザに直接的に提示はしないものの、ページビュー数とブックマーク数を勘案したアルゴリズムにより計算されたスコアを用いて間接的に提示することで、買い手ユーザに多種多様な商品を紹介し、興味を持たせるように工夫している。
 なお、図10と図11に示した要因と寄与率はあくまでも例示であり、アルゴリズムの詳細は本発明によって限定されない。
 次に、入力受付部508は、ユーザからの様々な指示入力を受け付ける。受け付けられる指示入力には、例えば、検索条件となるキーワードの入力、ソート順を指定する入力、等がある。ユーザは、キーボードやマウス等の入力デバイスを用いて指示を入力する。ユーザ端末20の入力部405と制御部407が協働して、入力受付部508として機能する。
 送信部509は、入力受付部508が受け付けた指示入力に基づいて生成されたクエリを電子商取引サーバ10へ送信する。ユーザ端末20の制御部407と通信部401が協働して、送信部509として機能する。
 受信部510は、ユーザ端末20からクエリを受信する。上述のように、検索部503は、受信したクエリに基づいてレコードを検索し、検索結果を順次ユーザ端末20へ送信する。電子商取引サーバ10の制御部203と通信部202が協働して、受信部510として機能する。
 次に、本実施形態の電子商取引サーバ10において実行される、第1スコア欄310と第2スコア欄320を更新する更新処理の流れについて、図12のフローチャートを用いて説明する。
 まず、制御部203は、更新タイミングになったか否かを判別する(ステップS1201)。
 更新タイミングになっていないと判別した場合(ステップS1201;NO)、制御部203は、更新タイミングになるまで待機する。
 更新タイミングになったと判別した場合(ステップS1201;YES)、制御部203は、現在時刻が移行期間に含まれるか否かを判別する(ステップS1202)。
 例えば、システム管理者が新しいアルゴリズム(第2アルゴリズム)を作成し、現在本番運用中の第1アルゴリズムと新しい第2アルゴリズムとを並行して運用して比較するA-Bテストを開始すると判断すると、システム管理者は電子商取引システム1を非移行期間から移行期間に変更する。A-Bテストを行わない場合は、システム管理者は電子商取引システム1を移行期間から非移行期間に変更する。
 現在時刻が移行期間に含まれると判別した場合(ステップS1202;YES)、制御部203は、商品データベース251に格納されているすべてのレコードを対象に、第1アルゴリズムに基づいて第1スコアを計算し、第2アルゴリズムに基づいて第2スコアを計算する(ステップS1203)。
 なお、上述したように、制御部203は、商品データベース251に格納されているすべてのレコードを対象に一斉に第1スコアと第2スコアの計算を開始してもよいし、レコードを複数のグループに分割し、グループ単位で第1スコアと第2スコアの計算を行ってもよい。
 そして、制御部203は、レコードの第1スコア欄310に第1スコアを格納し、レコードの第2スコア欄320に第2スコアを格納する(ステップS1204)。
 一方、現在時刻が移行期間に含まれない(非移行期間である)と判別した場合(ステップS1202;NO)、制御部203は、第1アルゴリズムに基づいて第1スコアを計算する(ステップS1205)。第2スコアは計算されない。
 そして、制御部203は、レコードのうち第1スコア欄310と第2スコア欄320の両方に、第1スコアを格納する(ステップS1206)。
 この更新処理により、制御部203は、移行期間であれば、第1スコアと第2スコアの両方をレコードに格納し、非移行期間であれば、第1スコアのみをレコードに格納する。
 なお、レコードの数が多いほど、更新処理を完了するまでに時間がかかるため、非移行期間から移行期間に変わった後でも、非移行期間中に計算された第1スコアが第2スコア欄320に格納されたままの状態になる期間があり得る。全レコードの更新が終われば、移行期間中、第1スコア欄310には第1スコアが、第2スコア欄320には第2スコアが、それぞれ格納される。
 また、移行期間から非移行期間に変わった後でも、移行期間中に計算された第2スコアが第2スコア欄320に格納されたままの状態になる期間があり得る。全レコードの更新が終われば、非移行期間中、第1スコア欄310と第2スコア欄320の両方に第1スコアが格納される。
 次に、本実施形態の電子商取引サーバ10とユーザ端末20とによって実行される、クエリに基づいて得られた検索結果がユーザに提示される検索処理の流れについて、図13のフローチャートを用いて説明する。ここでは、ソート順として「人気順」が選択されたものとする。
 まず、電子商取引サーバ10とユーザ端末20は、ログイン処理を行う(ステップS1301)。
 具体的には、ユーザ端末20は、ユーザからユーザ名及びパスワードの入力を受け付け、これらを暗号化して電子商取引サーバ10へ送信する。電子商取引サーバ10は、暗号化されたユーザ名及びパスワードを復号し、得られたユーザ名及びパスワードと、予め登録され記憶されたユーザ名及びパスワードとを照合する。これらが一致すれば、電子商取引サーバ10は、認証を要求したユーザが正規のユーザであると判別し、電子商取引サービスの利用を許可する。これらが一致しなければ、電子商取引サーバ10は、認証を要求したユーザが正規のユーザではないと判別し、電子商取引サービスの利用を許可しない。
 なお、電子商取引サーバ10の制御部203は、このログイン処理において認証したユーザ名と、図6に示すユーザ情報とに基づいて、ログインしたユーザが第1グループに属するのか第2グループに属するのかを判別する。
 ユーザ端末20の制御部407は、正規のユーザと認証されたユーザから、検索条件となるキーワードとソート順を指定する入力を受け付ける(ステップS1302)。
 ユーザ端末20の制御部407は、入力された検索条件を含むクエリを生成して電子商取引サーバ10へ送信する(ステップS1303)。
 電子商取引サーバ10の制御部203は、ユーザ端末20からクエリを受信する(ステップS1304)。
 電子商取引サーバ10の制御部203は、受信したクエリに基づいてレコードを検索する(ステップS1305)。
 電子商取引サーバ10の制御部203は、ユーザが第1グループに属するのか第2グループに属するのかを判別する(ステップS1306)。
 ユーザが第1グループに属すると判別した場合(ステップS1306;YES)、制御部203は、検索されたレコードを第1スコア欄310に格納されているスコアが大きい順にソートし、ソートされた検索結果をユーザ端末20へ送信する(ステップS1307)。
 ユーザが第1グループに属さない、つまりユーザが第2グループに属すると判別した場合(ステップS1306;NO)、制御部203は、検索されたレコードを第2スコア欄320に格納されているスコアが大きい順にソートし、ソートされた検索結果をユーザ端末20へ送信する(ステップS1308)。
 ユーザ端末20の制御部407は、第1スコア欄310に格納されているスコアに基づいてソートされた検索結果、又は、第2スコア欄320に格納されているスコアに基づいてソートされた検索結果を、電子商取引サーバ10から受信する(ステップS1309)。
 ユーザ端末20の制御部407は、受信した検索結果をディスプレイ451に表示する(ステップS1310)。
 ユーザ端末20の制御部407は、ユーザの反応を示すデータを電子商取引サーバ10へ送信する(ステップS1311)。
 電子商取引サーバ10の制御部203は、ユーザの反応を示すデータをユーザ端末20から受信し、記憶部201に記録する(ステップS1312)。
 そして、電子商取引サーバ10の制御部203は、[式1]から[式6]を用いて、第1グループに属するユーザによる第1反応率Bと、第2グループに属するユーザによる第2反応率Cとを計算し(ステップS1313)、出力する。
 ステップS1313での計算結果から、システム管理者は、第1アルゴリズムと第2アルゴリズムのどちらがより優れているのかを判断する。第1アルゴリズムに基づいて計算される第1反応率Bよりも、第2アルゴリズムに基づいて計算される第2反応率Cの方が大きければ、第2アルゴリズムが第1アルゴリズムよりも優れている。
 なお、このフローチャートでは、ステップS1313において第1反応率Bと第2反応率Cが計算されているが、制御部203は、検索処理を実行するたびに毎回これらを計算しなくてもよく、例えば、システム管理者から任意のタイミングで入力されるコマンドに応答して、第1反応率Bと第2反応率Cを計算してもよい。
 第1反応率Bと第2反応率Cは、例えば、システム管理者から任意のタイミングで入力されるコマンドに応答して、電子商取引サーバ10に接続されるディスプレイ等に表示されればよい。
 また、ユーザが入札する処理が省略されているが、ステップS1310において表示された検索結果を用いて何らかの商品がユーザによって入札された場合には、ユーザ端末20は、入札した商品を識別する出品番号と入札金額とを暗号化して電子商取引サーバ10へ送信する。電子商取引サーバ10は、暗号化された出品番号と入札金額を復号し、商品データベース251を更新する。入札された商品に対応するレコードには、入札時刻と入札金額と入札したユーザのユーザIDとが対応付けて格納される。
 本実施形態の電子商取引システム1によれば、二種類のアルゴリズムを比較するA-Bテストを行う際、本番環境のほかに特別なテスト環境を構築する必要がなく、電子商取引システム1の開発や保守にかかるコストを抑えることができる。また、レコードの数が多いほどスコアの更新に要する時間が長くなり、従来はA-Bテストの結果を得るまでに時間がかかったが、本実施形態によれば、A-Bテストの結果をより早くより正確に推定できるようになる。
 本発明は、上述した実施形態に限定されず、種々の変形及び応用が可能である。また、上述した実施形態の各構成要素を自由に組み合わせることも可能である。
 電子商取引サーバ10の制御部203は、移行期間において、全レコードを第1スコア欄310に格納されているスコアに基づいてソートした順で更新してもよい。例えば、制御部203は、第1スコアと第2スコアを計算する対象のレコードを、第1スコア欄310に格納されているスコアが大きい順に選択してもよい。ユーザには、第1スコア欄310に格納されているスコアが大きい順に、レコードが提示される。
 ユーザには、スコアが大きい順に20件ごと、スコアが大きい順に50件ごと、といったように、先頭から提示されることが多い。従って、スコアが低いレコードは、ユーザに提示されない可能性が比較的高いと考えられる。そこで、スコアが大きい順に更新することにより、できるだけ早期に、第1スコア欄310に格納されるスコアと第2スコア欄320に格納されるスコアとが異なるレコードがユーザの目に触れる機会を増やし、A-Bテストの効率を上げることができる。
 制御部203は、第2アルゴリズムによる第2反応率Cだけでなく、第1アルゴリズムによる第1反応率Bも推定してもよい。制御部203は、ユーザの反応を示すパラメータである反応S[i]と、反応S[i]に対応付けられた割合とに基づいて、この割合を1と仮定することにより、第1アルゴリズムによる第1反応率Bを推定してもよい。また、制御部203は、この割合を0と仮定することにより、第2アルゴリズムによる第2反応率Cを推定してもよい。
 上記実施形態では、ユーザが何らかの商品に入札すれば、反応S[i]に“1”がセットされ、何も入札されなければ、反応S[i]に“0”がセットされる。しかし、制御部203は、反応S[i]に、入札された金額(電子ショッピングモールであれば商品の購入価格)をセットするようにしてもよい。これにより、同じ「入札した」あるいは「購入した」というユーザの行為であっても、どの程度反応の大きさに違いがあるのかをスコアに反映させることができる。なお、制御部203は、検索結果を提示したユーザによって何も入札されなかった場合には、反応S[i]に“0”をセットすればよい。
 また、制御部203は、反応S[i]に、商品情報を示すウェブページの滞在時間(ウェブページを表示し続けた時間)をセットするようにしてもよい。滞在時間が長いほど、商品情報への関心が高いと推測される。滞在時間を考慮することにより、同じ「入札した」あるいは「購入した」というユーザの行為であっても、どの程度反応の大きさに違いがあるのかをスコアに反映させることができる。
 制御部203は、上述した更新処理を、定期的に繰り返し実行してもよい。例えば、図10と図11に示すページビュー数、ブックマーク数、入札件数、現在の価格は、いずれも可変な値であり、更新処理を行うタイミングによって異なる可能性が高い。そこで、制御部203が、例えば毎日一回予め決められた時間帯等に、繰り返し実行することにより、第1反応率Bと第2反応率Cの精度を高めることができる。
 三つ以上のアルゴリズムを同時に比較する場合、制御部203は、新たに第3スコア欄をレコードに設け、第3スコア欄に第3スコアを格納してもよい。また、制御部203は、ユーザを三つのグループに分け、第1アルゴリズムは第1グループに属するユーザに適用し、第2アルゴリズムは第2グループに属するユーザに適用し、第3アルゴリズムは第3グループに属するユーザに適用すればよい。
 上記実施形態では、同時に二つのアルゴリズムを比較するA-Bテストを行っているが、アルゴリズムを一つのみ実装し、その実装した一つのアルゴリズムの精度を評価するために本発明を用いることもできる。
 図14に、変形例の電子商取引システム1の機能的な構成を示す。同一の機能部については同一の符号を記し、説明を省略する。
 上記実施形態では、オークションが開催される期間に移行期間と非移行期間があったが、本変形例では、実装されるアルゴリズムが一つしかないため、期間の区別はない。また、ユーザを、第1グループに属するユーザと第2グループに属するユーザとに分類する必要はない。
 設定部1401は、商品情報を示すレコードのスコアを計算するアルゴリズムを設定する。例えば、第1アルゴリズムと第2アルゴリズムとが存在し、第1アルゴリズムのみ電子商取引システム1に適用して第1アルゴリズムを単独でテストをする場合、設定部1401は、システム管理者からの指示に基づき、電子商取引システム1に適用するアルゴリズムとして、第1アルゴリズムを設定する。電子商取引サーバ10の制御部203が設定部1401として機能する。
 レコード記憶部501には、商品情報を示す複数のレコードが記憶される。上記実施形態では、一つのレコードに二つのスコア欄310,320があるが、本変形例では、一つのレコードに一つのスコア欄があればよい。
 更新部502は、レコード記憶部501に記憶されている複数のレコードにより識別される商品情報のそれぞれについて、設定部1401によって設定されたアルゴリズムにより計算されたスコアを、レコードに含まれるスコア欄に格納することにより、レコード記憶部501に記憶されている複数のレコードのそれぞれを更新する。
 また、更新部502は、スコア欄に記憶されたスコアによりソートした順で、レコード記憶部501に記憶されている複数のレコードを更新する。
 上述のように、レコード数が多いほどすべてのレコードについてスコア欄を更新するには時間がかかると予想されるため、アルゴリズムを入れ替えた後であっても、スコア欄に古いアルゴリズムによって計算されたスコアが格納されたままになっている期間があり得る。そこで、スコア欄に記憶されたスコアによりソートした順でレコードを更新することにより、できるだけ早期に、更新されたスコアを有するレコードがユーザの目に触れる機会を増やし、テストの効率を上げる。
 検索部503は、ユーザ端末20からクエリを受信すると、クエリに適合するレコードを検索し、検索されたレコードをスコア欄に格納されたスコアの順にユーザ端末20へ送信する。
 ユーザ端末20は、検索されたレコードを受信し、ディスプレイ451に表示する。ユーザ端末20には、クエリに含まれる検索条件を満たすレコードが、スコア欄に格納されているスコアの順に(例えばスコアが大きい順に)、表示される。
 本変形例においても、電子商取引サーバ10の制御部203は、[式1]を用いてユーザの反応率を計算し、出力することができる。システム管理者は、第1アルゴリズムを適用した場合に計算された反応率と、第2アルゴリズムを適用した場合に計算された反応率とを比較し、反応率が良い方のアルゴリズムを採用すればよい。
 上記実施形態及び変形例では、インターネット上で行われるオークションを例にとって説明したが、オークションに限られず、例えば電子ショッピングモールにおいてユーザにお薦め商品を提示するための手法として採用することもできる。また、インターネット等の一般的な検索システムにおける検索結果の提示手法として本発明を利用することができる。
 電子商取引システム1の全部又は一部としてコンピュータを動作させるためのプログラムを、メモリカード、CD(Compact Disc)、DVD(Digital Versatile Disk)、MO(Magneto Optical disk)などのコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。
 さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。
 本発明によれば、電子商取引システムの開発や保守にかかるコストを抑えるために好適な検索装置、検索方法、記録媒体、ならびに、プログラムを提供することができる。
  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 設定部

Claims (10)

  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反応率を推定する推定部、
     として機能させるプログラム。
PCT/JP2014/070223 2014-07-31 2014-07-31 検索装置、検索方法、記録媒体、ならびに、プログラム WO2016017001A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015504433A JP5735191B1 (ja) 2014-07-31 2014-07-31 検索装置、検索方法、記録媒体、ならびに、プログラム
PCT/JP2014/070223 WO2016017001A1 (ja) 2014-07-31 2014-07-31 検索装置、検索方法、記録媒体、ならびに、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/070223 WO2016017001A1 (ja) 2014-07-31 2014-07-31 検索装置、検索方法、記録媒体、ならびに、プログラム

Publications (1)

Publication Number Publication Date
WO2016017001A1 true WO2016017001A1 (ja) 2016-02-04

Family

ID=53487069

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/070223 WO2016017001A1 (ja) 2014-07-31 2014-07-31 検索装置、検索方法、記録媒体、ならびに、プログラム

Country Status (2)

Country Link
JP (1) JP5735191B1 (ja)
WO (1) WO2016017001A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7243102B1 (en) * 2004-07-01 2007-07-10 Microsoft Corporation Machine directed improvement of ranking algorithms
JP2010282402A (ja) * 2009-06-04 2010-12-16 Kansai Electric Power Co Inc:The 検索システム
JP2013510343A (ja) * 2008-09-10 2013-03-21 マイクロソフト コーポレーション 検索結果のランク付けのための静的な関連性の特性としてのドキュメント長

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7243102B1 (en) * 2004-07-01 2007-07-10 Microsoft Corporation Machine directed improvement of ranking algorithms
JP2013510343A (ja) * 2008-09-10 2013-03-21 マイクロソフト コーポレーション 検索結果のランク付けのための静的な関連性の特性としてのドキュメント長
JP2010282402A (ja) * 2009-06-04 2010-12-16 Kansai Electric Power Co Inc:The 検索システム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TORU SHIMIZU: "Evaluation Methods and Algorithms for Web Search Ranking", JOURNAL OF JAPAN SOCIETY FOR FUZZY THEORY AND INTELLIGENT INFORMATICS, vol. 22, no. 2, 15 April 2010 (2010-04-15), pages 73 - 79 *

Also Published As

Publication number Publication date
JPWO2016017001A1 (ja) 2017-04-27
JP5735191B1 (ja) 2015-06-17

Similar Documents

Publication Publication Date Title
US10354309B2 (en) Methods and systems for selecting an optimized scoring function for use in ranking item listings presented in search results
US20180288177A1 (en) Methods and systems for activity-based recommendations
US8244564B2 (en) Multi-strategy generation of product recommendations
US9043351B1 (en) Determining search query specificity
US9141671B2 (en) System and method for presenting filter options to a user based on ongoing monitoring of filter selections
US9727906B1 (en) Generating item clusters based on aggregated search history data
US8392290B2 (en) Seller conversion factor to ranking score for presented item listings
WO2013161105A1 (ja) タグ管理装置、タグ管理方法、タグ管理プログラム、及びそのプログラムを記憶するコンピュータ読取可能な記録媒体
US9088811B2 (en) Information providing system, information providing method, information providing device, program, and information storage medium
WO2015034850A2 (en) Feature selection for recommender systems
US10140339B2 (en) Methods and systems for simulating a search to generate an optimized scoring function
US20140297630A1 (en) Method and system for re-ranking search results in a product search engine
US20160196593A1 (en) System and method for tracking filter activity and monitoring trends associated with said activity
US20160203183A1 (en) Information processing system, terminal, server, information processing method, recording medium, and program
JP2016062275A (ja) 抽出装置、抽出方法および抽出プログラム
JP2017173915A (ja) 情報処理装置、情報処理方法および情報処理プログラム
JP5639319B1 (ja) 情報処理装置、情報処理方法、プログラム、記憶媒体
US20160147845A1 (en) Methods and systems for managing n-streams of recommendations
JP5293970B2 (ja) 商品推奨方法及び商品推奨システム
US9881087B2 (en) Searching multiple sellers by multiple matching items
JP5735191B1 (ja) 検索装置、検索方法、記録媒体、ならびに、プログラム
US10409870B2 (en) Searching multiple sellers by multiple matching items
JP6356738B2 (ja) 提供装置、提供方法及び提供プログラム
JP2013077262A (ja) コンテンツを媒介としたユーザ属性情報拡張装置、ユーザ属性情報拡張方法及びユーザ属性情報拡張システム
JP2019074816A (ja) 情報処理装置、情報処理方法及び情報処理プログラム

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2015504433

Country of ref document: JP

Kind code of ref document: A

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14898639

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14898639

Country of ref document: EP

Kind code of ref document: A1