WO2021111769A1 - 検索装置 - Google Patents
検索装置 Download PDFInfo
- Publication number
- WO2021111769A1 WO2021111769A1 PCT/JP2020/040298 JP2020040298W WO2021111769A1 WO 2021111769 A1 WO2021111769 A1 WO 2021111769A1 JP 2020040298 W JP2020040298 W JP 2020040298W WO 2021111769 A1 WO2021111769 A1 WO 2021111769A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- search
- query
- unit
- user
- target data
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 168
- 230000008569 process Effects 0.000 claims abstract description 113
- 230000002787 reinforcement Effects 0.000 claims description 14
- 230000009471 action Effects 0.000 claims description 9
- 238000012545 processing Methods 0.000 description 17
- 238000013500 data storage Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 9
- 238000007726 management method Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000000877 morphologic effect Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000013549 information retrieval technique Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000006249 magnetic particle Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3325—Reformulation based on results of preceding query
- G06F16/3326—Reformulation based on results of preceding query using relevance feedback from the user, e.g. relevance feedback on documents, documents sets, document terms or passages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/3332—Query translation
- G06F16/3338—Query expansion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
Definitions
- One aspect of the present invention relates to a search device.
- Relevance feedback which is a method of query extension, presents the input search query and data having a high degree of conformity to the user, and causes the user to input a label of conformity or nonconformity for each data. Then, the search query is modified based on the input label, the search is performed again using the modified search query, and the data having a high degree of conformity is presented to the user.
- a technique of extracting words that frequently co-occur with a search query from a search log (past search query) and proposing correction of the search query based on the extracted words is known. ing.
- the search query entered by the user can be appropriately complemented and data that matches the user's intention can be found accurately.
- additional processing and user operations as described above are required. That is, an extra step is required compared to the case where the query extension is not performed. Therefore, for example, if the query extension is executed even though the data matching the user's intention can be found by the search using only the search query entered by the user, the data matching the user's intention is finally obtained.
- the time and effort (time, steps) required to obtain the data will increase, and the search efficiency will decrease.
- search result data with the highest degree of suitability
- search result does not contain data that matches the user's intention, it is useless to confirm the user. Processing will occur and search efficiency will decrease.
- one aspect of the present invention is to provide a search device capable of improving search efficiency.
- the search device is related to an input unit that accepts a search query from a user, a search unit that calculates the degree of matching between the search query and each of a plurality of search target data prepared in advance, and a search query.
- the query extension part that generates the extended search query by adding the extended query to the search query, the first process that presents the search target data with the highest degree of conformity to the user, and the extended search query is searched as a new search query.
- the second process which proposes to the user to have the search unit calculate the suitability for each target data, and which process to execute is determined based on the suitability for each search target data calculated by the search unit. It is equipped with a policy decision unit.
- Which of the second process, which proposes the search to the user, and the process to be executed is determined based on the degree of suitability for each search target data currently obtained. Therefore, according to the above-mentioned search device, unnecessary processing (for example, a search that does not match the user's intention) is performed by appropriately switching between presenting the current search result to the user and performing a query extension and performing a re-search. It is possible to suppress the presentation of results and the proposal of unnecessary query extensions) and improve the search efficiency.
- FIG. 1 is a diagram showing a functional configuration of the search device 10 according to the embodiment.
- the search device 10 is a device that receives a search request from a user, searches for data that matches the user's intention, and presents the search result to the user.
- the user is the subject who requests the search process from the search device 10.
- the search device 10 uses the search result based on the search query until the data matching the user's intention is found (or until the user interrupts the search work).
- Timely selection of which process to execute the process presented in (1st process) or the process that proposes to the user to search using the expanded search query by expanding the search query (2nd process). It is configured to repeat the process to be executed.
- the search device 10 is composed of one or more computer devices.
- the form of the search device 10 is not limited to a specific form.
- the search device 10 is a terminal such as a smartphone, a tablet terminal, or a personal computer owned by the user.
- the search device 10 may be a server device configured to communicate with the terminal (client terminal) as described above and process a search request from the terminal.
- the search device 10 includes an input unit 11, a search unit 12, a query extension unit 13, a policy determination unit 14, a presentation unit 15 (presentation unit, reception unit), and a management unit 16. And a data storage unit 10a.
- a plurality of search target data are stored in advance in the data storage unit 10a.
- the search target data is text data.
- the input unit 11 receives a search query from the user.
- the search query is text data.
- the input form of the search query is not limited to a specific form.
- the search query may be entered in the form of text data or may be entered in the form of voice data.
- the input unit 11 may convert the search query into text data by executing a known voice recognition process on the search query.
- the search unit 12 calculates the goodness of fit between the search query received by the input unit 11 and each of the plurality of search target data (that is, the data stored in the data storage unit 10a) prepared in advance.
- the goodness of fit is, for example, a value indicating the degree of similarity between the search query and the data to be searched.
- Specific examples of the goodness of fit include tfidf (term frequency inverse document frequency), BM25, cosine similarity, jacquard coefficient distance, and the like.
- the search unit 12 is configured to be able to execute a plurality of different search methods (two as an example in this embodiment). Specifically, the search unit 12 includes a program for executing the first search method (hereinafter, "search A”), a program for executing the second search method (hereinafter, "search B”), and a program for executing the second search method (hereinafter, "search B"). have. Details of these search methods will be described later.
- the query extension unit 13 generates an extended search query by adding an extended query related to the search query to the search query. Specifically, the query extension unit 13 generates an expanded search query (extended search query) by adding a keyword (extended query) for complementing the search query input by the user. For example, when the search query entered by the user is "how to unlock", the query extension unit 13 adds "SIM lock” which is a keyword (extended query) for complementing the search query. Generates the extended search query "How to unlock SIM lock”.
- the query extension unit 13 is configured to be able to execute a plurality of different query extension methods (two as an example in this embodiment). Specifically, the query extension unit 13 executes a program for executing the first query extension method (hereinafter, "query extension C") and the second query extension method (hereinafter, "query extension D"). Has a program for. Details of these query extension methods will be described later.
- the policy determination unit 14 sets the first process (process based on search A or search B) and the second process (query extension C or query extension D) based on the goodness of fit for each search target data calculated by the search unit 12. Determine which process to perform with (based process).
- the first process is a process of presenting search target data having a high goodness of fit (hereinafter, also referred to as "highness of fit data”) to the user. That is, the first process is a process of outputting a search result (that is, data having a high degree of conformity) by a search query, and is a process generally performed in a normal information search.
- high goodness of fit data search target data having a high goodness of fit
- the second process is a process of proposing to the user that the extended search query generated by the query extension unit 13 is used as a new search query and the search unit 12 is made to calculate the goodness of fit for each search target data. That is, the second process is a process of proposing to the user a re-search using the extended search query without presenting the search result of the search query (query before expansion) to the user. In the present embodiment, the second process includes a process of inquiring the user whether or not to accept the extended search query before performing a re-search by the extended search query.
- the policy determining unit 14 determines which of a plurality of (two in the present embodiment) search methods (search A and search B) is to be executed. .. Further, when the policy determination unit 14 decides to execute the second process, it executes any of a plurality of (two in the present embodiment) query extension methods (query extension C, query extension D). Decide if you want to. That is, in the present embodiment, the policy determination unit 14 determines which of the plurality of (four in the present embodiment) measures (search A, search B, query extension C, query extension D) is executed. decide. In the present embodiment, the policy determination unit 14 determines which policy to execute by using the policy determination model (function) generated by reinforcement learning (machine learning). The details of the policy determination model will be described later.
- the presentation unit 15 presents the goodness-of-fit high-level data to the user when the policy determination unit 14 determines that the first process is to be executed.
- the management unit 16 manages the search target data presented to the user by the presentation unit 15 as presented data. For example, the management unit 16 adds a flag or the like indicating “presented” to the search target data stored in the data storage unit 10a, so that the search unit 12 determines whether or not each search target data has been presented. Be able to grasp.
- the presentation unit 15 also functions as a reception unit that receives feedback information from the user indicating whether or not the presented data matches the user's intention.
- the process by the search device 10 the process for the search query received by the input unit 11
- the presented data is excluded from the plurality of search target data stored in the data storage unit 10a, and then the search is performed.
- the search process (fitness calculation) by unit 12 is executed again.
- the policy determination unit 14 determines the policy based on the goodness of fit of each search target data (search target data excluding the presented data) recalculated by the search unit 12. As described above, the search device 10 repeats each of the above processes while appropriately determining the policy until the data matching the user's intention is presented to the user.
- FIG. 2 is a diagram schematically showing an outline of processing of the search device 10.
- FIG. 3 is a diagram showing an example of a dialogue between the user and the search device 10.
- the input unit 11 accepts a search query (here, as an example, "I want to unlock") ("Start” in FIG. 2).
- the search unit 12 calculates the goodness of fit between the search query and each search target data.
- the policy determination unit 14 determines the policy (search A, search B, query extension C, query extension D) to be executed based on the goodness of fit for each search target data.
- the query extension D is selected as the first measure.
- two types of extended search queries generated by the query extension unit 13 here, "terminal basic operation" and "SIM lock", which are extended queries included in each of the two extended search queries. Will be done.
- the search unit 12 calculates the degree of suitability for each search target data using the extended search query "SIM lock that wants to unlock”. Then, the policy determination unit 14 determines the policy again based on the goodness of fit for each search target data.
- query extension C is selected as the second measure.
- the search unit 12 calculates the goodness of fit for each search target data using the extended search query "obtain the SIM lock unlock key that you want to unlock”. .. Then, the policy determination unit 14 determines the policy again based on the goodness of fit for each search target data.
- search A is selected as the third measure.
- the presenting unit 15 presents to the user the search target data “I want to obtain the SIM unlock key”, which has a higher goodness of fit calculated by using the extended search query. After that, the presenting unit 15 receives feedback information from the user indicating that the presented data (that is, the search target data "I want to obtain the SIM unlock key”) is data that matches the user's intention, thereby receiving the search device. The processing of 10 is completed.
- the policy determination unit 14 presents the search result to the user according to the state at that time (goodness of fit for each search target data), or Controls whether to propose query extensions. By appropriately executing such control, it is possible to suppress the occurrence of unnecessary processing (for example, presentation of unnecessary search results or proposal of unnecessary query extension) and improve search efficiency.
- step S1 a plurality of indexed search target data are accumulated in the data storage unit 10a as a preparation for the search process.
- each search target data is a document (text) in which a question sentence and an answer sentence are paired.
- the text corresponding to the question sentence in the search target data is the search target. Therefore, in the following description, the part corresponding to the question text of the search target data is simply referred to as the search target data.
- the data storage unit 10a stores the inverted index together with the original text data indicating the search target data.
- An inverted index is an index structure in which a document is decomposed into units called tokens and the frequency is associated with each token.
- the search A uses the original form of the noun phrase among the part of speech obtained by the morphological analysis as a token.
- the search B uses a character string divided by n-gram as a token.
- the types of tokens are not limited to these.
- the token may be a distributed representation of words generated by Word2Vec.
- FIG. 5 is a diagram showing an example of search target data stored in the data storage unit 10a.
- FIG. 6 shows an example of the token (noun phrase after morphological analysis) and the inverted index (correspondence table between the token (phrase) and the frequency) obtained by the search A for the search target data shown in FIG.
- FIG. 7 shows an example of the token (2-gram) and the inverted index (correspondence table between the token (gram) and the frequency) obtained by the search B.
- step S1 may be executed only at the time of initial preparation, and may be omitted when the above-mentioned search target data and inverted index are already stored in the data storage unit 10a.
- step S2 the input unit 11 receives a search query from the user.
- the search query received by the input unit 11 is decomposed into tokens by the search unit 12 in step S3, which will be described later, in the same manner as the process in step S1 (the process of decomposing the search target data into tokens).
- FIG. 8 is a diagram showing an example of a search query.
- the search query "how to unlock" is decomposed into a token corresponding to search A (noun phrase after morphological analysis) and a token corresponding to search B (2-gram).
- step S3 the search unit 12 calculates the goodness of fit between the search query and each search target data stored in the data storage unit 10a.
- search A and search B use tfidf as a measure of goodness of fit.
- none of the tokens decomposed in the search A (“lock”, “unlock”) are registered in the inverted index (see FIG. 6) for the search A stored in the data storage unit 10a. .. Therefore, as shown in FIG. 9, the goodness of fit of all the search target data calculated by the search A is 0.
- the goodness of fit of the search target data of "1, 4, 5" is 0.
- the search target data managed as presented data by the management unit 16 in step S6, which will be described later, is excluded from the target of the process (goodness of fit calculation) in step S3.
- the search unit 12 may consider the goodness of fit with respect to the presented data to be 0.
- step S4 the policy determination unit 14 determines which of search A, search B, query extension C, and query extension D is executed based on the goodness of fit of each search target data calculated in step S3. decide.
- the policy determination unit 14 features the goodness of fit of the search target data (each of the top four search target data) having a high goodness of fit in each of the search A and the search B as a feature (8-dimensional vector). Then, the feature amount is input to the policy determination model (details will be described later).
- the policy determination unit 14 is based on the output result of the policy determination model (in the present embodiment, a four-dimensional vector consisting of numerical values indicating the desiredness of each of the search A, the search B, the query extension C, and the query extension D). And decide the policy to be adopted. If the first process (process based on search A or search B) is determined as a measure, step S5 is executed. If the second process (process based on query extension C or query extension D) is determined as a measure, step S9 is executed.
- the output result of the policy determination model in the present embodiment, a four-dimensional vector consisting of numerical values indicating the desiredness of each of the search A, the search B, the query extension C, and the query extension D.
- step S5 the presenting unit 15 presents to the user the goodness-of-fit data in the search method (search A or search B in the present embodiment) determined in step S4.
- the number of goodness-of-fit top data presented may be one or plural.
- step S6 the management unit 16 manages the search target data presented to the user by the presentation unit 15 as presented data. For example, the management unit 16 adds a flag or the like indicating “presented” to the search target data stored in the data storage unit 10a.
- step S7 the presentation unit 15 receives feedback information from the user indicating whether or not the presented data matches the user's intention.
- step S8: YES When feedback information indicating that the presented data is data that matches the user's intention is obtained (step S8: YES), the search device 10 performs a series of search processes based on the search query received from the user in step S2. To finish.
- step S3 is executed again. That is, the process of step S3 is executed after excluding the presented data (data found to be not the data desired by the user) from the search target data.
- step S9 the query extension unit 13 generates an extended search query by the query extension method (query extension C or query extension D in this embodiment) determined in step S4.
- FIG. 10 shows an example of an extended search query generated by each of the query extension C and the query extension D.
- the extension query "SIM lock” is added to the original search query "unlocking”, so that the extended search query "unlocking SIM lock” is added. Is generated.
- the extended search query "unlocking screen” is generated by adding the extended query "screen” to the original search query "unlocking method”. ..
- step S10 the query extension unit 13 presents to the user the extended search query generated in step S9 (or, as in the example shown in FIG. 3, only the additional candidate query (extended query) may be used). That is, the query extension unit 13 proposes to the user a re-search using the extended search query.
- step S11 the query extension unit 13 receives from the user acceptance / rejection information indicating acceptance / rejection of the extended search query presented to the user in step S10.
- step S12 YES
- step S3 is executed again. That is, the process of step S3 is executed with the extended search query as a new search query.
- step S4 is executed again. That is, the policy determination unit 14 determines another policy.
- the policy-determining model is a model generated by deep reinforcement learning. Reinforcement learning defines states (current states), behaviors, and rewards.
- the policy determination model sets the degree of conformity for each search target data as a state, and each measure (that is, the first process (presentation of the conformity upper data of search A or search B) and the second process ( (Presentation of extended search query generated by query extension C or query extension D)) as an action, and data that matches the user's intention (higher conformity data in the case of the first processing, extension in the case of the second processing) It is a model generated by performing reinforcement learning with the acquisition of search query) as a reward.
- the “state” is the goodness of fit of the goodness-of-fit high-ranking data (data of the top four cases as an example) obtained by the search A and the goodness-of-fit high-ranking obtained by the search B. It is an 8-dimensional vector in which the goodness of fit of each of the data (as an example, the top four data) is combined in a predetermined order.
- the state corresponds to the feature quantity input to the policy determination model.
- the "action” is (1) presenting the high-quality data of search A to the user, (2) presenting the high-quality data of search B to the user, and (3) presenting the extended search query generated by the query extension C to the user. And (4) the extended search query generated by the query extension D is presented to the user.
- the “reward” is a value that takes “1” when appropriate data is presented to the user as a result of the above “action”, and takes “0” in other cases.
- a reward "1” is given when the high-level goodness-of-fit data presented to the user matches the user's intention, and in other cases, the reward "1” is given.
- the reward "0” is given.
- the actions (3) and (4) above when the extended search query presented to the user is adopted by the user (that is, when the content of the extended search query matches the user's intention), the reward is paid. A “1” is given, otherwise a reward "0” is given.
- the policy determination model has a multi-layer neural network consisting of an input layer, an intermediate layer, and an output layer.
- the input layer is a part where a feature amount (state) is input.
- the goodness of fit of the top 4 items of search A is "0, 0, 0, 0”
- the goodness of fit of the top 4 items of search B is "0.796, 0.796, 0, 0”. ". Therefore, in this example, an 8-dimensional vector "0, 0, 0, 0, 0.796, 0.796, 0, 0" connecting these two results is input to the input layer. Therefore, the input layer is composed of 8 units.
- the intermediate layer may be composed of, for example, two layers (128 units of each layer).
- the output layer is the part that outputs the output result of the policy decision model.
- the output result is represented by a four-dimensional vector. Therefore, the output layer is composed of 4 units.
- Each value of the four-dimensional vector is a numerical value indicating the degree of desirability of each action of (1) to (4) above. As shown in FIG. 11, for example, when the output result is "1.3, 4, 2, 3.4", it is desirable as a measure in the order of "search B> query extension D> query extension C> search A". It represents that. In other words, in the above order, it means that the expected value for obtaining data that matches the user's intention is high.
- a known algorithm such as A3C can be used. For example, feedback information (step S7) and acceptance / rejection information from the user while repeatedly executing the processes of steps S3 to S12 shown in FIG. 2 until the search target data matching the user's intention is finally presented to the user.
- the internal parameters of the policy determination model function
- a policy determination model as a trained model can be obtained.
- the policy-determining model does not necessarily have to be generated by reinforcement learning. That is, the policy determination model does not necessarily have to have a multi-layer neural network, and may be a function that projects an output Y indicating which policy should be executed for some input X.
- the policy-determining model may be a rule-based function.
- the policy determination model may determine the policy based on the ⁇ rule> shown below. ⁇ Rule> (A) When the goodness of fit a of the search target data having the maximum goodness of fit in the search A is equal to or higher than the first threshold value (for example, 0.5), the search A is adopted.
- the maximum goodness of fit in search A is 0 (less than the first threshold value), and the maximum goodness of fit in search B is 0.796 (greater than or equal to the second threshold value).
- search B is adopted.
- FIG. 12 is a diagram showing an example of the query extension C
- FIG. 13 is a diagram showing an example of the query extension D.
- the query extension C has the highest IDF (Inverse Document Frequency) score from the top N data (here, N is 3 as an example) of the sum of the goodness of fit of the search A and the search B.
- IDF Inverse Document Frequency
- N 3 as an example
- Is. In query extension C for example, one is randomly selected from these noun phrases.
- the extended search query "How to unlock SIM lock” is generated as shown in FIG.
- the query extension D is a method of extracting words that frequently co-occur with a query from a past search query and proposing a modification of the query.
- the past search query is stored in a log database (not shown) included in the search device 10 as a search log, for example.
- the query extension unit 13 can execute the query extension by the query extension D by referring to the log database.
- the query extension D refers to the past search query, selects one word that frequently co-occurs with the current search query, and adds it to the current search query.
- the frequency of "how to unlock the screen" including "how to unlock” is the highest in the past search query. Therefore, as shown in FIG. 10, by adding the "screen” as an extended query, the extended search query "unlocking screen" is generated.
- the first process of presenting the search target data having a higher degree of conformity with the search query to the user and the re-search by the search unit 12 using the extended search query generated by the query extension unit 13 are performed.
- Which process to execute, the second process of proposing to the user is determined based on the degree of suitability for each search target data currently obtained.
- the policy determination unit 14 determines the policy based on the goodness of fit of each search target data having a predetermined number (4 in the present embodiment) of goodness of fit in each of search A and search B. To do.
- the search device 10 useless processing (for example, a search that does not match the user's intention) is performed by appropriately switching between presenting the current search result to the user and performing query extension and re-searching. It is possible to suppress the presentation of results and the proposal of unnecessary query extensions) and improve the search efficiency. As a result, the expected value of the number of steps (presentation of search results or query extension) required to present the search target data desired by the user to the user can be reduced as much as possible. For example, in the example of FIG. 2, the search target data desired by the user can be presented to the user by three steps.
- the policy determination unit 14 executes either the first process or the second process based on the goodness of fit of a predetermined number of search target data having a high goodness of fit. To determine.
- the policy determination unit 14 performs the first process and the second process based on the goodness of fit of the top four search target data in search A and the goodness of fit of the top four search target data in search B. Which of the above processes is to be executed (see FIG. 11). In this way, by paying attention to the goodness of fit of the search target data having a high goodness of fit, the search result should be presented to the user by the first process, or the search result is re-searched by the extended search query by the second process (that is, the query extension).
- a policy determination model which is a reinforcement learning model
- the part where the above judgment processing is performed is black-boxed as a parameter inside the model, but the search target data having a high goodness of fit.
- the goodness of fit of it is considered that the parameters can be learned so that the calculation corresponding to the above judgment process can be executed.
- a function created based on the rules as described above is used instead of the reinforcement learning model, a rule corresponding to the above judgment process is constructed by paying attention to the goodness of fit of the search target data having a high goodness of fit. It becomes possible to do.
- the policy determination unit 14 determines whether to execute the first process or the second process by using the policy determination model described above.
- the policy determination model sets the degree of conformity for each search target data as a state, and is generated by the first process (presentation of the upper match degree data in search A or search B) and the second process (query extension C or query extension D). It is a model generated by performing reinforcement learning with the presentation of the extended search query) as an action and the acquisition of data that matches the user's intention as a reward. Further, the policy determination model inputs the goodness of fit for each search target data and outputs a value indicating which of the first process and the second process should be executed.
- the accuracy of policy determination can be improved by repeatedly executing the search process of the search device 10.
- a rule-based function can be used as the policy determination model instead of such a reinforcement learning model.
- the rules become more complicated, so an appropriate function is created based on the rules. Becomes difficult.
- the reinforcement learning model as described above when used, the part corresponding to such a rule can be black-boxed, so that the above problem can be avoided.
- the search unit 12 is configured to be able to execute a plurality of different search methods (search A and search B as an example in the present embodiment). Then, when deciding to execute the first process, the policy determining unit 14 determines which of the plurality of search methods is to be executed. According to the above configuration, when the first process is executed, it is possible to present to the user a search result that is likely to match the user's intention among the search results of the plurality of search methods.
- the search unit 12 calculates the goodness of fit for each search target data for each of the plurality of search methods.
- the search unit 12 calculates the goodness of fit for each search target data for each of the search A and the search B (see FIG. 9).
- the policy determination unit 14 determines which process to execute, the first process or the second process, based on the goodness of fit for each search target data for each of the plurality of search methods. According to the above configuration, when the search unit 12 can execute a plurality of search methods, it is possible to determine a more appropriate measure as compared with the case where only the goodness of fit of a single search method is considered. , It can be expected to effectively improve the search efficiency.
- the query extension unit 13 is configured to be able to execute a plurality of different query extension methods (query extension C and query extension D as an example in this embodiment). Then, when deciding to execute the second process, the policy determination unit 14 determines which of the plurality of query extension methods is to be executed. According to the above configuration, when executing the second process, it is possible to propose to the user an extended search query that is likely to match the user's intention among the extended search queries generated by a plurality of query extension methods. It will be possible.
- the presentation unit 15 presents the goodness-of-fit high-level data to the user.
- the management unit 16 manages the search target data (highness-of-fit data) presented to the user by the presentation unit 15 as presented data.
- the presentation unit 15 receives feedback information from the user indicating whether or not the presented data matches the user's intention. Then, when the presentation unit 15 receives feedback information indicating that the presented data does not match the user's intention, the search unit 12 excludes the presented data from the plurality of search target data and searches. Calculate the goodness of fit for each data.
- the search process (mainly the process by the search unit 12, the query extension unit 13, and the policy determination unit 14) is performed until the search target data desired by the user is obtained according to the feedback information from the user. Can be executed repeatedly.
- the search unit 12 is configured to be able to execute two search methods (search A and search B), but the search unit 12 is configured to be able to execute only one search method. It may be configured so that three or more search methods can be executed.
- the query extension unit 13 is configured to be able to execute two query extension methods (query extension C and query extension D), whereas the query extension unit 13 is configured to be able to execute only one query extension method. It may be configured to be executable with three or more query extension techniques.
- the query extension unit 13 gives the user an extended search query to be used from among a plurality of extended search queries (or extended queries) as illustrated in FIG. It may be selected, or as illustrated in FIG. 10, only one extended search query (or extended query) may be presented to the user, and the user may be asked whether or not to adopt the extended search query. ..
- each functional block may be realized by using one device that is physically or logically connected, or directly or indirectly (for example, by two or more devices that are physically or logically separated). , Wired, wireless, etc.) and may be realized using these plurality of devices.
- the functional block may be realized by combining the software with the one device or the plurality of devices.
- Functions include judgment, decision, judgment, calculation, calculation, processing, derivation, investigation, search, confirmation, reception, transmission, output, access, solution, selection, selection, establishment, comparison, assumption, expectation, and assumption. Broadcasting, notifying, communicating, forwarding, configuring, reconfiguring, allocating, mapping, assigning, etc., but limited to these I can't.
- the search device 10 in the embodiment of the present disclosure may function as a computer that performs the processing of the present disclosure.
- FIG. 14 is a diagram showing an example of the hardware configuration of the search device 10 according to the embodiment of the present disclosure.
- the search device 10 described above may be physically configured as a computer device including a processor 1001, a memory 1002, a storage 1003, a communication device 1004, an input device 1005, an output device 1006, a bus 1007, and the like.
- the word “device” can be read as a circuit, device, unit, etc.
- the hardware configuration of the search device 10 may be configured to include one or more of the devices shown in FIG. 1, or may be configured not to include some of the devices.
- the processor 1001 For each function in the search device 10, the processor 1001 performs calculations by loading predetermined software (programs) on hardware such as the processor 1001 and the memory 1002, and controls communication by the communication device 1004, or the memory 1002. And by controlling at least one of reading and writing of data in the storage 1003.
- predetermined software programs
- Processor 1001 operates, for example, an operating system to control the entire computer.
- the processor 1001 may be configured by a central processing unit (CPU: Central Processing Unit) including an interface with a peripheral device, a control device, an arithmetic unit, a register, and the like.
- CPU Central Processing Unit
- the processor 1001 reads a program (program code), a software module, data, etc. from at least one of the storage 1003 and the communication device 1004 into the memory 1002, and executes various processes according to these.
- a program program code
- the program a program that causes a computer to execute at least a part of the operations described in the above-described embodiment is used.
- the policy determination unit 14 may be realized by a control program stored in the memory 1002 and operating in the processor 1001, and may be realized in the same manner for other functional blocks.
- Processor 1001 may be implemented by one or more chips.
- the program may be transmitted from the network via a telecommunication line.
- the memory 1002 is a computer-readable recording medium, and is composed of at least one such as a ROM (Read Only Memory), an EPROM (Erasable Programmable ROM), an EEPROM (Electrically Erasable Programmable ROM), and a RAM (Random Access Memory). May be done.
- the memory 1002 may be referred to as a register, a cache, a main memory (main storage device), or the like.
- the memory 1002 can store a program (program code), a software module, or the like that can be executed to implement the communication control method according to the embodiment of the present disclosure.
- the storage 1003 is a computer-readable recording medium, and is, for example, an optical disk such as a CD-ROM (Compact Disc ROM), a hard disk drive, a flexible disk, an optical magnetic disk (for example, a compact disk, a digital versatile disk, or a Blu-ray). It may consist of at least one (registered trademark) disk), smart card, flash memory (eg, card, stick, key drive), floppy (registered trademark) disk, magnetic strip, and the like.
- the storage 1003 may be referred to as an auxiliary storage device.
- the storage medium described above may be, for example, a database, server or other suitable medium containing at least one of the memory 1002 and the storage 1003.
- the communication device 1004 is hardware (transmission / reception device) for communicating between computers via at least one of a wired network and a wireless network, and is also referred to as, for example, a network device, a network controller, a network card, a communication module, or the like.
- the input device 1005 is an input device (for example, a keyboard, a mouse, a microphone, a switch, a button, a sensor, etc.) that receives an input from the outside.
- the output device 1006 is an output device (for example, a display, a speaker, an LED lamp, etc.) that outputs to the outside.
- the input device 1005 and the output device 1006 may have an integrated configuration (for example, a touch panel).
- each device such as the processor 1001 and the memory 1002 is connected by the bus 1007 for communicating information.
- the bus 1007 may be configured by using a single bus, or may be configured by using a different bus for each device.
- the search device 10 includes hardware such as a microprocessor, a digital signal processor (DSP: Digital Signal Processor), an ASIC (Application Specific Integrated Circuit), a PLD (Programmable Logic Device), and an FPGA (Field Programmable Gate Array). It may be configured, and the hardware may realize a part or all of each functional block. For example, processor 1001 may be implemented using at least one of these hardware.
- DSP Digital Signal Processor
- ASIC Application Specific Integrated Circuit
- PLD Programmable Logic Device
- FPGA Field Programmable Gate Array
- the input / output information and the like may be stored in a specific location (for example, memory) or may be managed using a management table. Input / output information and the like can be overwritten, updated, or added. The output information and the like may be deleted. The input information or the like may be transmitted to another device.
- the determination may be made by a value represented by 1 bit (0 or 1), by a truth value (Boolean: true or false), or by comparing numerical values (for example, a predetermined value). It may be done by comparison with the value).
- the notification of predetermined information (for example, the notification of "being X") is not limited to the explicit one, but is performed implicitly (for example, the notification of the predetermined information is not performed). May be good.
- Software whether referred to as software, firmware, middleware, microcode, hardware description language, or by any other name, is an instruction, instruction set, code, code segment, program code, program, subprogram, software module.
- Applications, software applications, software packages, routines, subroutines, objects, executable files, execution threads, procedures, features, etc. should be broadly interpreted.
- software, instructions, information, etc. may be transmitted and received via a transmission medium.
- a transmission medium For example, a website that uses at least one of wired technology (coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL: Digital Subscriber Line), etc.) and wireless technology (infrared, microwave, etc.) When transmitted from a server, or other remote source, at least one of these wired and wireless technologies is included within the definition of transmission medium.
- the information, signals, etc. described in this disclosure may be represented using any of a variety of different techniques.
- data, instructions, commands, information, signals, bits, symbols, chips, etc. that may be referred to throughout the above description are voltages, currents, electromagnetic waves, magnetic fields or magnetic particles, light fields or photons, or any of these. It may be represented by a combination of.
- information, parameters, etc. described in the present disclosure may be expressed using absolute values, relative values from predetermined values, or using other corresponding information. It may be represented.
- references to elements using designations such as “first”, “second”, etc. as used in this disclosure does not generally limit the quantity or order of those elements. These designations can be used in the present disclosure as a convenient way to distinguish between two or more elements. Thus, references to the first and second elements do not mean that only two elements can be adopted, or that the first element must somehow precede the second element.
- the term "A and B are different” may mean “A and B are different from each other”.
- the term may mean that "A and B are different from C”.
- Terms such as “separate” and “combined” may be interpreted in the same way as “different”.
- 10 Search device, 10a ... Data storage unit, 11 ... Input unit, 12 ... Search unit, 13 ... Query extension unit, 14 ... Policy decision unit, 15 ... Presentation unit (reception unit), 16 ... Management department.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
検索装置10は、ユーザから検索クエリを受け付ける入力部11と、検索クエリと予め用意された複数の検索対象データの各々との適合度を算出する検索部12と、検索クエリに関連する拡張クエリを検索クエリに追加することにより拡張検索クエリを生成するクエリ拡張部13と、適合度が上位の検索対象データをユーザに提示する第1処理と、拡張検索クエリを新たな検索クエリとして検索対象データ毎の適合度を検索部12に算出させることをユーザに提案する第2処理と、のいずれの処理を実行するかを、検索部12により算出された検索対象データ毎の適合度に基づいて決定する方策決定部14と、を備える。
Description
本発明の一側面は、検索装置に関する。
従来、テキスト、画像、動画、グラフ等の膨大な検索対象データの中からユーザの意図に合致するデータ(すなわち、ユーザの所望するデータ)を検索する情報検索技術が知られている。情報検索では、ユーザが入力した検索クエリと各検索対象データとの適合度が計算される。そして、適合度の高いデータが検索結果として出力される(例えば、非特許文献1参照)。また、ユーザの意図に合致するデータをより正確に発見するための情報検索技術として、クエリ拡張(例えば、非特許文献2参照)が提案されている。例えば、クエリ拡張の一手法であるRelevance feedbackは、入力された検索クエリと適合度の高いデータをユーザに提示し、各データについて適合又は不適合のラベルをユーザに入力させる。そして、入力されたラベルに基づいて検索クエリを修正し、修正された検索クエリを用いて再度検索し、適合度の高いデータをユーザに提示する。クエリ拡張の他の手法として、検索クエリと共起する頻度が高い単語を検索ログ(過去の検索クエリ)から抽出し、抽出された単語に基づいて検索クエリの修正を提案する技術等が知られている。
Robertson, S. E., Walker, S., Jones, S., Hancock-Beaulieu, M. & Gatford, M. (1994). Okapi at TREC-3.. In D. K. Harman (ed.),TREC (p./pp. 109-126), : National Institute of Standards and Technology (NIST).
Azad, H. K., & Deepak, A. (2019). Query expansion techniques for information retrieval: a survey. Information Processing & Management, 56(5), 1698-1735.
上述したクエリ拡張によれば、ユーザにより入力された検索クエリを適切に補完し、ユーザの意図に合致するデータを正確に発見できる可能性がある。しかし、クエリ拡張を実行する場合、上述したような追加の処理及びユーザ操作等が必要となる。すなわち、クエリ拡張を行わない場合と比較して、余分なステップが発生する。このため、例えばユーザが入力した検索クエリのみを用いた検索によってユーザの意図に合致するデータを発見できるにも関わらずクエリ拡張を実行してしまうと、ユーザの意図に合致するデータが最終的に得られるまでの手間(時間、ステップ)が多くなり、検索効率が低下してしまう。一方で、クエリ拡張を行う前に常に検索結果(適合度が上位のデータ)をユーザに提示すると、検索結果にユーザの意図に合致するデータが含まれていない場合には、無駄なユーザの確認処理が発生してしまい、検索効率が低下してしまう。
そこで、本発明の一側面は、検索効率を向上させることができる検索装置を提供することを目的とする。
本発明の一側面に係る検索装置は、ユーザから検索クエリを受け付ける入力部と、検索クエリと予め用意された複数の検索対象データの各々との適合度を算出する検索部と、検索クエリに関連する拡張クエリを検索クエリに追加することにより拡張検索クエリを生成するクエリ拡張部と、適合度が上位の検索対象データをユーザに提示する第1処理と、拡張検索クエリを新たな検索クエリとして検索対象データ毎の適合度を検索部に算出させることをユーザに提案する第2処理と、のいずれの処理を実行するかを、検索部により算出された検索対象データ毎の適合度に基づいて決定する方策決定部と、を備える。
本発明の一側面に係る検索装置では、検索クエリとの適合度が上位の検索対象データをユーザに提示する第1処理と、クエリ拡張部により生成される拡張検索クエリを用いた検索部による再検索をユーザに提案する第2処理と、のいずれの処理を実行するかが、現時点で得られている検索対象データ毎の適合度に基づいて決定される。従って、上記検索装置によれば、現時点の検索結果をユーザに提示するか、クエリ拡張を行って再検索を行うかを適切に切り換えることで、無駄な処理(例えば、ユーザの意図に合致しない検索結果の提示、不要なクエリ拡張の提案)を抑制し、検索効率を向上させることができる。
本発明の一側面によれば、検索効率を向上させることができる検索装置を提供することができる。
以下、添付図面を参照して、本発明の一実施形態について詳細に説明する。なお、図面の説明において同一又は相当要素には同一符号を付し、重複する説明を省略する。
図1は、一実施形態に係る検索装置10の機能構成を示す図である。検索装置10は、ユーザからの検索要求を受けて、ユーザの意図に合致するデータを検索し、検索結果をユーザに提示する装置である。ユーザは、検索装置10に対して検索処理を要求する主体である。具体的には、検索装置10は、ユーザから検索クエリを受け付けた後、ユーザの意図に合致するデータが見つかるまで(或いは、ユーザが検索作業を中断するまで)、検索クエリに基づく検索結果をユーザに提示する処理(第1処理)と検索クエリを拡張して拡張後の検索クエリを用いて検索することをユーザに提案する処理(第2処理)とのいずれの処理を実行するかを適時選択して実行する処理を繰り返すように構成されている。
検索装置10は、一以上のコンピュータ装置によって構成される。検索装置10の形態は特定の形態に限定されない。例えば、検索装置10は、ユーザが所持するスマートフォン、タブレット端末、パーソナルコンピュータ等の端末である。或いは、検索装置10は、上述したような端末(クライアント端末)と通信し、端末からの検索要求を処理するように構成されたサーバ装置であってもよい。
図1に示されるように、検索装置10は、入力部11と、検索部12と、クエリ拡張部13と、方策決定部14と、提示部15(提示部、受付部)と、管理部16と、データ蓄積部10aと、を備えている。データ蓄積部10aには、複数の検索対象データが予め記憶されている。本実施形態では、検索対象データは、テキストデータである。
入力部11は、ユーザから検索クエリを受け付ける。本実施形態では、検索クエリは、テキストデータである。ただし、検索クエリの入力形態は特定の形態に限定されない。例えば、検索クエリは、テキストデータの形式で入力されてもよいし、音声データの形式で入力されてもよい。例えば、検索クエリが音声データの形式で入力された場合には、入力部11は、検索クエリに対して公知の音声認識処理を実行することにより、検索クエリをテキストデータに変換すればよい。
検索部12は、入力部11が受け付けた検索クエリと予め用意された複数の検索対象データ(すなわち、データ蓄積部10aに格納されたデータ)の各々との適合度を算出する。適合度は、例えば、検索クエリと検索対象データとの間の類似度を示す値である。適合度の具体例としては、tfidf(term frequency inverse document frequency)、BM25、コサイン類似度、ジャカード係数距離等が挙げられる。
検索部12は、互いに異なる複数(本実施形態では一例として2つ)の検索手法を実行可能に構成されている。具体的には、検索部12は、第1の検索手法(以下「検索A」)を実行するためのプログラムと、第2の検索手法(以下「検索B」)を実行するためのプログラムと、を有している。これらの検索手法の詳細については後述する。
クエリ拡張部13は、検索クエリに関連する拡張クエリを検索クエリに追加することにより拡張検索クエリを生成する。具体的には、クエリ拡張部13は、ユーザにより入力された検索クエリを補完するためのキーワード(拡張クエリ)を追加することにより、拡張後の検索クエリ(拡張検索クエリ)を生成する。例えば、クエリ拡張部13は、ユーザにより入力された検索クエリが「ロックの外し方」である場合に、当該検索クエリを補完するためのキーワード(拡張クエリ)である「SIMロック」を追加することにより、拡張検索クエリ「ロックの外し方 SIMロック」を生成する。
クエリ拡張部13は、互いに異なる複数(本実施形態では一例として2つ)のクエリ拡張手法を実行可能に構成されている。具体的には、クエリ拡張部13は、第1のクエリ拡張手法(以下「クエリ拡張C」)を実行するためのプログラムと、第2のクエリ拡張手法(以下「クエリ拡張D」)を実行するためのプログラムと、を有している。これらのクエリ拡張手法の詳細については後述する。
方策決定部14は、検索部12により算出された検索対象データ毎の適合度に基づいて、第1処理(検索A又は検索Bに基づく処理)と第2処理(クエリ拡張C又はクエリ拡張Dに基づく処理)とのいずれの処理を実行するかを決定する。
第1処理は、適合度が上位の検索対象データ(以下「適合度上位データ」ともいう。)をユーザに提示する処理である。すなわち、第1処理は、検索クエリによる検索結果(すなわち、適合度上位データ)を出力する処理であり、通常の情報検索において一般的に行われる処理である。
第2処理は、クエリ拡張部13により生成された拡張検索クエリを新たな検索クエリとして検索部12に検索対象データ毎の適合度を算出させることをユーザに提案する処理である。すなわち、第2処理は、検索クエリ(拡張前のクエリ)による検索結果をユーザに提示することなく、拡張検索クエリを用いた再検索をユーザに提案する処理である。本実施形態では、第2処理は、拡張検索クエリによって再検索を行う前に、ユーザに当該拡張検索クエリの採否を問い合わせる処理を含んでいる。
方策決定部14は、第1処理を実行すると決定する場合には、複数(本実施形態では2つ)の検索手法(検索A、検索B)のうちのいずれの手法を実行するかを決定する。また、方策決定部14は、第2処理を実行すると決定する場合には、複数(本実施形態では2つ)のクエリ拡張手法(クエリ拡張C、クエリ拡張D)のうちのいずれの手法を実行するかを決定する。すなわち、本実施形態では、方策決定部14は、複数(本実施形態では4つ)の方策(検索A、検索B、クエリ拡張C、クエリ拡張D)のうちのいずれの方策を実行するかを決定する。本実施形態では、方策決定部14は、強化学習(機械学習)により生成された方策決定モデル(関数)を用いることにより、いずれの方策を実行するかを決定する。方策決定モデルの詳細については後述する。
提示部15は、方策決定部14により第1処理を実行すると決定された場合に、適合度上位データをユーザに提示する。管理部16は、提示部15によりユーザに提示された検索対象データを提示済みデータとして管理する。例えば、管理部16は、データ蓄積部10aに格納された検索対象データに「提示済み」を示すフラグ等を付加することにより、各検索対象データが提示済みであるか否かを検索部12が把握できるようにする。
本実施形態では、提示部15は、提示済みデータがユーザの意図に合致するデータであるか否かを示すフィードバック情報をユーザから受け付ける受付部としても機能する。提示済みデータがユーザの意図に合致するデータであることを示すフィードバック情報が得られた場合には、検索装置10による処理(入力部11が受け付けた検索クエリに対する処理)が完了する。一方、提示済みデータがユーザの意図に合致するデータでないことを示すフィードバック情報が得られた場合、データ蓄積部10aに格納された複数の検索対象データから当該提示済みデータを除外した上で、検索部12による検索処理(適合度算出)が再度実行される。そして、検索部12により再度算出された各検索対象データ(提示済みデータを除く検索対象データ)の適合度に基づいて、方策決定部14により方策が決定される。以上のように、検索装置10は、ユーザの意図に合致するデータがユーザに提示されるまで、適宜方針を決定しながら、上記各処理を繰り返す。
図2及び図3を参照して、検索装置10の処理の概要について説明する。図2は、検索装置10の処理の概要を模式的に示す図である。図3は、ユーザと検索装置10との対話の一例を示す図である。
まず、入力部11が検索クエリ(ここでは一例として「ロックを外したい」)を受け付ける(図2の「スタート」)。続いて、検索部12が当該検索クエリと各検索対象データとの適合度を算出する。そして、方策決定部14が、検索対象データ毎の適合度に基づいて、実行する方策(検索A、検索B、クエリ拡張C、クエリ拡張D)を決定する。ここでは一例として、1回目の方策として、クエリ拡張Dが選択される。その結果、クエリ拡張部13により生成された2種類の拡張検索クエリ(ここでは、2つの拡張検索クエリの各々に含まれる拡張クエリである「端末基本操作」及び「SIMロック」)がユーザに提示される。
その後、ユーザが「SIMロック」を指定したことに応じて、検索部12が、拡張検索クエリ「ロックを外したい SIMロック」を用いて、検索対象データ毎の適合度を算出する。そして、方策決定部14が、検索対象データ毎の適合度に基づいて、方策を改めて決定する。ここでは一例として、2回目の方策として、クエリ拡張Cが選択される。その結果、クエリ拡張部13により生成された2種類の拡張検索クエリ(ここでは、2つの拡張検索クエリの各々に含まれる拡張クエリである「解除費用」及び「解除キー入手」)がユーザに提示される。
その後、ユーザが「解除キー入手」を指定したことに応じて、検索部12が、拡張検索クエリ「ロックを外したい SIMロック 解除キー入手」を用いて、検索対象データ毎の適合度を算出する。そして、方策決定部14が、検索対象データ毎の適合度に基づいて、方策を改めて決定する。ここでは一例として、3回目の方策として、検索Aが選択される。その結果、提示部15により、上記拡張検索クエリを用いて算出された適合度が上位の検索対象データ「SIMロック解除キーを入手したい」がユーザに提示される。その後、提示部15が、提示済みデータ(すなわち、検索対象データ「SIMロック解除キーを入手したい」)がユーザの意図に合致するデータであることを示すフィードバック情報をユーザから受け付けることにより、検索装置10の処理が完了する。
図2及び図3に示したように、検索装置10では、方策決定部14が、その時点での状態(検索対象データ毎の適合度)に応じて、検索結果をユーザに提示するか、或いはクエリ拡張を提案するかを制御する。このような制御が適切に実行されることにより、無駄な処理(例えば、無駄な検索結果の提示、又は不要なクエリ拡張の提案)の発生を抑制し、検索効率を向上させることができる。
図4に示されるフローチャートを参照して、検索装置10の処理の一例についてより詳細に説明する。
ステップS1において、検索処理の前準備として、データ蓄積部10aに、索引付けされた複数の検索対象データが蓄積される。本実施形態では一例として、各検索対象データは、質問文と回答文とがペアになった文書(テキスト)である。本実施形態では、検索対象データのうち質問文に該当するテキストが検索対象となる。従って、以下の説明においては、検索対象データの質問文に対応する部分を単に検索対象データという。
データ蓄積部10aには、検索対象データを示すオリジナルのテキストデータと共に、転置インデックスが記憶される。転置インデックスは、文書をトークンと呼ばれる単位に分解し、各トークンに頻度を関連付けた索引構造である。本実施形態では、検索Aは、形態素解析で得られる品詞のうち名詞句の原形をトークンとして用いる。一方、検索Bは、n-gramで分割された文字列をトークンとして用いる。ただし、トークンの種類はこれらに限定されない。例えば、トークンは、Word2Vecにより生成される単語の分散表現等であってもよい。
図5は、データ蓄積部10aに蓄積された検索対象データの一例を示す図である。この例では、「ID=1」の検索対象データは「メールを送信したい」という質問文であることを示している。
図6は、図5に示される検索対象データについて、検索Aによって得られるトークン(形態素解析後の名詞句)及び転置インデックス(トークン(句)と頻度との対応表)の一例を示している。この例では、「ID=1」の検索対象データは、「メール」及び「送信」の2トークンに変換されている。
図7は、検索Bによって得られるトークン(2-gram)及び転置インデックス(トークン(gram)と頻度との対応表)の一例を示している。この例では、「ID=1」の検索対象データは、「$メ」、「メー」、…、「い$」の複数のトークンに変換されている。
データ蓄積部10aには、検索A用の転置インデックス(図6参照)と検索B用の転置インデックス(図7参照)の両方が記憶される。なお、ステップS1の処理は、初回準備時にのみ実行されればよく、データ蓄積部10aに上述した検索対象データ及び転置インデックスが既に格納されている場合には、省略され得る。
ステップS2において、入力部11が、ユーザからの検索クエリを受け付ける。入力部11が受け付けた検索クエリは、後述するステップS3において、検索部12によって、ステップS1における処理(検索対象データをトークンに分解する処理)と同様にトークンに分解される。
図8は、検索クエリの一例を示す図である。この例では、検索クエリである「ロックの外し方」が、検索Aに対応するトークン(形態素解析後の名詞句)と検索Bに対応するトークン(2-gram)とに分解されている。
ステップS3において、検索部12が、検索クエリとデータ蓄積部10aに蓄積された各検索対象データとの適合度を算出する。一例として、検索A及び検索Bは、適合度の尺度としてtfidfを用いる。本実施形態では、検索Aで分解されたいずれのトークン(「ロック」、「外し方」)も、データ蓄積部10aに記憶された検索A用の転置インデックス(図6参照)に登録されていない。このため、図9に示されるように、検索Aにより算出される全ての検索対象データの適合度は0となる。一方、検索Bで分解されたトークンのうち、「ロッ」及び「ック」の2つのトークンが「ID=2」及び「ID=3」の検索対象データに含まれている。このため、図9に示されるように、検索Bにより算出される「ID=2」及び「ID=3」の検索対象データの適合度は0.796となり、他の検索対象データ(「ID=1,4,5」の検索対象データ)の適合度は0となる。なお、後述するステップS6において管理部16によって提示済みデータとして管理された検索対象データは、ステップS3の処理(適合度算出)の対象から除外される。例えば、検索部12は、提示済みデータに関する適合度を0とみなしてもよい。
ステップS4において、方策決定部14が、ステップS3において算出された各検索対象データの適合度に基づいて、検索A、検索B、クエリ拡張C、及びクエリ拡張Dのいずれの方策を実行するかを決定する。本実施形態では一例として、方策決定部14は、検索A及び検索Bの各々において適合度が上位の検索対象データ(各上位4件の検索対象データ)の適合度を特徴量(8次元ベクトル)とし、当該特徴量を方策決定モデル(詳しくは後述)に入力する。そして、方策決定部14は、方策決定モデルの出力結果(本実施形態では、検索A、検索B、クエリ拡張C,及びクエリ拡張Dのそれぞれの望ましさを示す数値からなる4次元ベクトル)に基づいて、採用する方策を決定する。方策として第1処理(検索A又は検索Bに基づく処理)が決定された場合には、ステップS5が実行される。方策として第2処理(クエリ拡張C又はクエリ拡張Dに基づく処理)が決定された場合には、ステップS9が実行される。
(第1処理が実行される場合)
ステップS5において、提示部15が、ステップS4において決定された検索手法(本実施形態では検索A又は検索B)における適合度上位データをユーザに提示する。提示される適合度上位データの数は、1つでもよいし複数でもよい。
ステップS5において、提示部15が、ステップS4において決定された検索手法(本実施形態では検索A又は検索B)における適合度上位データをユーザに提示する。提示される適合度上位データの数は、1つでもよいし複数でもよい。
ステップS6において、管理部16が、提示部15によりユーザに提示された検索対象データを提示済みデータとして管理する。例えば、管理部16は、データ蓄積部10aに格納された検索対象データに「提示済み」を示すフラグ等を付加する。
ステップS7において、提示部15が、提示済みデータがユーザの意図に合致するデータであるか否かを示すフィードバック情報をユーザから受け付ける。提示済みデータがユーザの意図に合致するデータであることを示すフィードバック情報が得られた場合(ステップS8:YES)、検索装置10は、ステップS2においてユーザから受け付けた検索クエリに基づく一連の検索処理を終了する。一方、提示済みデータがユーザの意図に合致するデータでないことを示すフィードバック情報が得られた場合(ステップS8:NO)、ステップS3を再度実行する。すなわち、提示済みデータ(ユーザの所望するデータでないことが判明したデータ)を検索対象データから除外した上で、ステップS3の処理が実行される。
(第2処理が実行される場合)
ステップS9において、クエリ拡張部13が、ステップS4において決定されたクエリ拡張手法(本実施形態ではクエリ拡張C又はクエリ拡張D)により、拡張検索クエリを生成する。図10は、クエリ拡張C及びクエリ拡張Dのそれぞれによって生成された拡張検索クエリの一例を示している。この例では、クエリ拡張Cが実行された場合には、拡張クエリ「SIMロック」が元の検索クエリ「ロックの外し方」に追加されることにより、拡張検索クエリ「ロックの外し方 SIMロック」が生成される。また、クエリ拡張Dが実行された場合には、拡張クエリ「画面」が元の検索クエリ「ロックの外し方」に追加されることにより、拡張検索クエリ「ロックの外し方 画面」が生成される。
ステップS9において、クエリ拡張部13が、ステップS4において決定されたクエリ拡張手法(本実施形態ではクエリ拡張C又はクエリ拡張D)により、拡張検索クエリを生成する。図10は、クエリ拡張C及びクエリ拡張Dのそれぞれによって生成された拡張検索クエリの一例を示している。この例では、クエリ拡張Cが実行された場合には、拡張クエリ「SIMロック」が元の検索クエリ「ロックの外し方」に追加されることにより、拡張検索クエリ「ロックの外し方 SIMロック」が生成される。また、クエリ拡張Dが実行された場合には、拡張クエリ「画面」が元の検索クエリ「ロックの外し方」に追加されることにより、拡張検索クエリ「ロックの外し方 画面」が生成される。
ステップS10において、クエリ拡張部13が、ステップS9において生成された拡張検索クエリ(或いは、図3に示される例のように、追加候補のクエリ(拡張クエリ)のみでもよい)をユーザに提示する。すなわち、クエリ拡張部13は、拡張検索クエリを用いた再検索をユーザに提案する。
ステップS11において、クエリ拡張部13が、ステップS10においてユーザに提示された拡張検索クエリに対する採否を示す採否情報をユーザから受け付ける。拡張検索クエリを採用する旨を示す採否情報が得られた場合(ステップS12:YES)、ステップS3を再度実行する。すなわち、拡張検索クエリを新たな検索クエリとして、ステップS3の処理が実行される。一方、拡張検索クエリを採用する旨を示す採否情報が得られなかった場合(すなわち、ステップS10においてユーザに提示された拡張検索クエリを用いて検索することを拒否した場合)(ステップS12:NO)、一例として、再度ステップS4が実行される。すなわち、方策決定部14が、他の方策を決定する。
次に、図11を参照して、方策決定部14が方策を決定するために利用する方策決定モデル(関数)の一例について説明する。方策決定モデルは、深層強化学習により生成されるモデルである。強化学習においては、状態(現在の状態)、行動、及び報酬が定義される。本実施形態では一例として、方策決定モデルは、検索対象データ毎の適合度を状態とし、各方策(すなわち、第1処理(検索A又は検索Bの適合度上位データの提示)及び第2処理(クエリ拡張C又はクエリ拡張Dにより生成された拡張検索クエリの提示))を行動とし、ユーザの意図に合致するデータ(第1処理の場合には適合度上位データ、第2処理の場合には拡張検索クエリ)が得られることを報酬として強化学習を行うことにより生成されるモデルである。
図11に示されるように、本実施形態では、「状態」は、検索Aにより得られた適合度上位データ(一例として上位4件のデータ)の適合度と検索Bにより得られた適合度上位データ(一例として上位4件のデータ)の各々の適合度を予め定められた順序で結合した8次元のベクトルである。状態は、方策決定モデルに入力される特徴量に相当する。
「行動」は、(1)検索Aの適合度上位データをユーザに提示、(2)検索Bの適合度上位データをユーザに提示、(3)クエリ拡張Cにより生成された拡張検索クエリをユーザに提示、及び(4)クエリ拡張Dにより生成された拡張検索クエリをユーザに提示の4つである。
「報酬」は、上記の「行動」の結果、適切なデータがユーザに提示された場合に「1」をとり、それ以外の場合に「0」をとる値である。上記(1)及び(2)の行動については、ユーザに提示された適合度上位データがユーザの意図に合致するデータであった場合に、報酬「1」が与えられ、それ以外の場合に、報酬「0」が与えられる。上記(3)及び(4)の行動については、ユーザに提示された拡張検索クエリがユーザに採用された場合(すなわち、拡張検索クエリの内容がユーザの意図に合致していた場合)に、報酬「1」が与えられ、それ以外の場合に、報酬「0」が与えられる。
図11に示されるように、方策決定モデルは、入力層、中間層、及び出力層からなる多層ニューラルネットワークを有している。入力層は、特徴量(状態)が入力される部分である。図9の例では、検索Aの上位4件の適合度は「0、0、0、0」であり、検索Bの上位4件の適合度は「0.796、0.796、0、0」である。従って、この例では、これらの2つの結果を連結した8次元ベクトル「0、0、0、0、0.796、0.796、0、0」が入力層に入力される。従って、入力層は、8ユニットによって構成される。
中間層の層数及びユニット数は特に限定されないが、図11に示されるように、中間層は、例えば2層(各層128ユニット)によって構成され得る。
出力層は、方策決定モデルの出力結果を出力する部分である。本実施形態では、出力結果は、4次元ベクトルにより表される。従って、出力層は、4ユニットによって構成される。4次元ベクトルの各値は、上記(1)~(4)の各行動の望ましさの度合いを表す数値である。図11に示されるように、例えば出力結果が「1.3、4、2、3.4」である場合、「検索B>クエリ拡張D>クエリ拡張C>検索A」の順に、方策として望ましいことを表している。換言すれば、上記の順に、ユーザの意図に合致するデータが得られる期待値が高いことを表している。
方策決定モデルの学習を行うための具体的な手法としては、例えばA3C等の公知のアルゴリズムを用いることができる。例えば、図2に示されるステップS3~S12の処理をユーザの意図に合致する検索対象データが最終的にユーザに提示されるまで繰り返し実行しながら、ユーザからのフィードバック情報(ステップS7)及び採否情報(ステップS11)に基づいて各行動の報酬を設定し、A3C等のアルゴリズムを用いて強化学習を行うことにより、方策決定モデル(関数)の内部のパラメータが修正される。このような強化学習を繰り返して当該パラメータを収束させることにより、学習済みモデルとしての方策決定モデルが得られる。
ただし、方策決定モデルは、必ずしも強化学習によって生成されなくてもよい。すなわち、方策決定モデルは、必ずしも多層ニューラルネットワークを有さなくてもよく、何らかの入力Xに対して、いずれの方策を実行すべきかを示す出力Yを射影する関数であればよい。例えば、方策決定モデルは、ルールベースで作成された関数であってもよい。例えば、方策決定モデルは、以下に示される<ルール>に基づいて方策を決定してもよい。
<ルール>
(A)検索Aにおける最大の適合度を有する検索対象データの適合度aが第1閾値(例えば0.5)以上の場合、検索Aを採用する。
(B)上記(A)を満たさず、検索Bにおける最大の適合度を有する検索対象データの適合度bが第2閾値(例えば0.5)以上の場合、検索Bを採用する。
(C)上記(A)及び(B)を満たさず、「適合度a>適合度b」の場合、クエリ拡張Cを採用する。
(D)上記(A)~(C)のいずれも満たさない場合、クエリ拡張Dを採用する。
<ルール>
(A)検索Aにおける最大の適合度を有する検索対象データの適合度aが第1閾値(例えば0.5)以上の場合、検索Aを採用する。
(B)上記(A)を満たさず、検索Bにおける最大の適合度を有する検索対象データの適合度bが第2閾値(例えば0.5)以上の場合、検索Bを採用する。
(C)上記(A)及び(B)を満たさず、「適合度a>適合度b」の場合、クエリ拡張Cを採用する。
(D)上記(A)~(C)のいずれも満たさない場合、クエリ拡張Dを採用する。
図9の例では、検索Aにおける最大の適合度が0(第1閾値未満)であり、検索Bにおける最大の適合度が0.796(第2閾値以上)であるため、上記ルールに基づく方策決定モデルを用いる場合には、検索Bが採用される。
次に、図12及び図13を参照して、クエリ拡張C及びクエリ拡張Dの一例について説明する。図12は、クエリ拡張Cの一例を示す図であり、図13は、クエリ拡張Dの一例を示す図である。
図12に示されるように、クエリ拡張Cは、検索A及び検索Bの適合度の和の上位N個(ここでは一例としてNは3)のデータから、IDF(Inverse Document Frequency)のスコアが最も大きい名詞句の原形を抽出する手法である。図12に示されるように、図9の例では、「ID=1」から「ID=5」までの各検索対象データの適合度の和は、それぞれ、0、0.796、0.796、0、0となる。すなわち、「ID=2,3」の検索対象データが同率で1位であり、「ID=1,4,5」の検索対象データが同率で3位である。これら上位3個の検索対象データに含まれ、IDFのスコアが最も大きい名詞句(頻度が小さい名詞句)は、「頻度=1」である「SIMロック」、「画面ロック」、及び「LINE」である。クエリ拡張Cでは、例えば、これらの名詞句からランダムに1つ選択される。その結果、「SIMロック」が拡張クエリとして選択された場合には、図10に示したように、拡張検索クエリ「ロックの外し方 SIMロック」が生成される。
図13に示されるように、クエリ拡張Dは、クエリと共起する頻度が高い単語を過去の検索クエリから抽出し、クエリの修正を提案する手法である。過去の検索クエリは、例えば、検索ログとして、検索装置10が備えるログデータベース(不図示)に記憶される。この場合、クエリ拡張部13は、ログデータベースを参照することにより、クエリ拡張Dによるクエリ拡張を実行することができる。クエリ拡張Dは、過去の検索クエリを参照し、現時点の検索クエリと共起する頻度が高い単語を1つ選択し、現時点の検索クエリに追加する。図13の例では、過去の検索クエリで「ロックの外し方」を含む「画面 ロックの外し方」の頻度が最大である。このため、図10に示したように、「画面」が拡張クエリとして追加されることにより、拡張検索クエリ「ロックの外し方 画面」が生成される。
以上説明した検索装置10では、検索クエリとの適合度が上位の検索対象データをユーザに提示する第1処理と、クエリ拡張部13により生成される拡張検索クエリを用いた検索部12による再検索をユーザに提案する第2処理と、のいずれの処理を実行するかが、現時点で得られている検索対象データ毎の適合度に基づいて決定される。本実施形態では一例として、方策決定部14は、検索A及び検索Bのそれぞれにおける適合度が上位所定数(本実施形態では4つ)の各検索対象データの適合度に基づいて、方策を決定する。従って、検索装置10によれば、現時点の検索結果をユーザに提示するか、クエリ拡張を行って再検索を行うかを適切に切り換えることで、無駄な処理(例えば、ユーザの意図に合致しない検索結果の提示、不要なクエリ拡張の提案)を抑制し、検索効率を向上させることができる。その結果、ユーザの所望する検索対象データをユーザに提示するまでに必要となるステップ(検索結果の提示又はクエリ拡張)数の期待値をなるべく小さくすることができる。例えば、図2の例では、3回のステップにより、ユーザの所望する検索対象データをユーザに提示することができる。
また、上述したように、方策決定部14は、適合度が上位の予め定められた数の検索対象データの適合度に基づいて、第1処理と第2処理とのいずれの処理を実行するかを決定する。本実施形態では一例として、方策決定部14は、検索Aにおける上位4つの検索対象データの適合度及び検索Bにおける上位4つの検索対象データの適合度に基づいて、第1処理と第2処理とのいずれの処理を実行するかを決定する(図11参照)。このように、適合度が上位の検索対象データの適合度に着目することにより、第1処理によって検索結果をユーザに提示すべきか、或いは第2処理によって拡張検索クエリによる再検索(すなわち、クエリ拡張によって精度を高めた検索を行うこと)を提案すべきかを、より精度良く決定することができる。例えば、適合度が上位の検索対象データの適合度が全体的に低い場合には、当該検索対象データはユーザの所望するデータでない可能性が高いと判断し、第2処理を選択することが可能となる。また、適合度が上位の検索対象データの適合度が全体的に高い場合にも、現時点では、ユーザの所望するデータを絞り切れていない可能性が高いと判断し、第2処理を選択することが可能となる。また、特定の検索対象データの適合度が他の検索対象データよりも高い場合には、当該特定の検索対象データがユーザの所望するデータである可能性が高いと判断し、第1処理を実行すると選択することができる。なお、本実施形態のように強化学習モデルである方策決定モデルを用いる場合は、上記の判断処理を行う部分は、モデル内部のパラメータとしてブラックボックス化されるが、適合度が上位の検索対象データの適合度に着目することにより、上記の判断処理に相当する計算を実行可能なように、パラメータを学習させることが可能になると考えられる。また、強化学習モデルの代わりに上述したようなルールベースで作成された関数を用いる場合、適合度が上位の検索対象データの適合度に着目することにより、上記の判断処理に相当するルールを構築することが可能となる。
また、方策決定部14は、上述した方策決定モデルを用いることにより、第1処理と第2処理とのいずれの処理を実行するかを決定する。ここで、方策決定モデルは、検索対象データ毎の適合度を状態とし、第1処理(検索A又は検索Bにおける適合度上位データの提示)及び第2処理(クエリ拡張C又はクエリ拡張Dにより生成された拡張検索クエリの提示)を行動とし、ユーザの意図に合致するデータが得られることを報酬として強化学習を行うことにより生成されたモデルである。また、方策決定モデルは、検索対象データ毎の適合度を入力して第1処理及び第2処理のいずれを実行すべきかを示す値を出力する。上記のような強化学習モデルとしての方策決定モデルを用いることにより、検索装置10の検索処理を繰り返し実行することで、方策決定の精度を向上させることができる。なお、上述したように、方策決定モデルとして、このような強化学習モデルでなく、ルールベースで作成された関数を用いることもできる。しかし、例えば、第1処理において利用可能な検索手法の数、及び第2処理において利用可能なクエリ拡張手法の数が多くなるにつれて、ルールが複雑化するため、ルールベースで適切な関数を作成することが困難となる。一方、上記のような強化学習モデルを用いた場合には、このようなルールに該当する部分をブラックボックス化できるため、上記の問題を回避することができる。
また、検索部12は、互いに異なる複数の検索手法(本実施形態では一例として、検索A及び検索B)を実行可能に構成されている。そして、方策決定部14は、第1処理を実行すると決定する場合には、複数の検索手法のうちのいずれの手法を実行するかを決定する。上記構成によれば、第1処理を実行する場合において、複数の検索手法の検索結果のうち、ユーザの意図に合致する可能性が高い検索結果をユーザに提示することが可能となる。
また、検索部12は、複数の検索手法の各々について、検索対象データ毎の適合度を算出する。本実施形態では、検索部12は、検索A及び検索Bの各々について、検索対象データ毎の適合度を算出する(図9参照)。そして、方策決定部14は、複数の検索手法の各々についての検索対象データ毎の適合度に基づいて、第1処理と第2処理とのいずれの処理を実行するかを決定する。上記構成によれば、検索部12が複数の検索手法を実行可能な場合において、単一の検索手法の適合度のみを考慮する場合と比較して、より適切な方策を決定することが可能となり、検索効率を効果的に向上させることが期待できる。
また、クエリ拡張部13は、互いに異なる複数のクエリ拡張手法(本実施形態では一例として、クエリ拡張C及びクエリ拡張D)を実行可能に構成されている。そして、方策決定部14は、第2処理を実行すると決定する場合には、複数のクエリ拡張手法のうちのいずれの手法を実行するかを決定する。上記構成によれば、第2処理を実行する場合において、複数のクエリ拡張手法により生成される拡張検索クエリのうち、ユーザの意図に合致する可能性が高い拡張検索クエリをユーザに提案することが可能となる。
また、方策決定部14により第1処理を実行すると決定された場合に、提示部15は、適合度上位データをユーザに提示する。また、管理部16は、提示部15によりユーザに提示された検索対象データ(適合度上位データ)を提示済みデータとして管理する。また、提示部15は、提示済みデータがユーザの意図に合致するデータであるか否かを示すフィードバック情報をユーザから受け付ける。そして、検索部12は、提示済みデータがユーザの意図に合致するデータでないことを示すフィードバック情報を提示部15が受け付けた場合に、複数の検索対象データから提示済みデータを除外して、検索対象データ毎の適合度を算出する。上記構成によれば、ユーザからのフィードバック情報に応じて、ユーザの所望する検索対象データが得られるまで、検索処理(主に、検索部12、クエリ拡張部13、及び方策決定部14による処理)を繰り返し実行することができる。
なお、上記実施形態では、検索部12は、2つの検索手法(検索A、検索B)を実行可能に構成されていたが、検索部12は、1つの検索手法のみを実行可能に構成されてもよいし、3つ以上の検索手法を実行可能に構成されてもよい。また、クエリ拡張部13は、2つのクエリ拡張手法(クエリ拡張C、クエリ拡張D)を実行可能に構成されていたが、クエリ拡張部13は、1つのクエリ拡張手法のみを実行可能に構成されてもよいし、3つ以上のクエリ拡張手法を実行可能に構成されてもよい。
また、第2処理(拡張検索クエリの提案)においては、クエリ拡張部13は、図3で例示したように、複数の拡張検索クエリ(或いは拡張クエリ)のうちから使用する拡張検索クエリをユーザに選択させてもよいし、図10に例示したように、1つの拡張検索クエリ(或いは拡張クエリ)のみをユーザに提示し、当該拡張検索クエリを採用するか否かをユーザに回答させてもよい。
なお、上記実施形態の説明に用いたブロック図は、機能単位のブロックを示している。これらの機能ブロック(構成部)は、ハードウェア及びソフトウェアの少なくとも一方の任意の組み合わせによって実現される。また、各機能ブロックの実現方法は特に限定されない。すなわち、各機能ブロックは、物理的又は論理的に結合した1つの装置を用いて実現されてもよいし、物理的又は論理的に分離した2つ以上の装置を直接的又は間接的に(例えば、有線、無線などを用いて)接続し、これら複数の装置を用いて実現されてもよい。機能ブロックは、上記1つの装置又は上記複数の装置にソフトウェアを組み合わせて実現されてもよい。
機能には、判断、決定、判定、計算、算出、処理、導出、調査、探索、確認、受信、送信、出力、アクセス、解決、選択、選定、確立、比較、想定、期待、見做し、報知(broadcasting)、通知(notifying)、通信(communicating)、転送(forwarding)、構成(configuring)、再構成(reconfiguring)、割り当て(allocating、mapping)、割り振り(assigning)などがあるが、これらに限られない。
例えば、本開示の一実施の形態における検索装置10は、本開示の処理を行うコンピュータとして機能してもよい。図14は、本開示の一実施の形態に係る検索装置10のハードウェア構成の一例を示す図である。上述の検索装置10は、物理的には、プロセッサ1001、メモリ1002、ストレージ1003、通信装置1004、入力装置1005、出力装置1006、バス1007などを含むコンピュータ装置として構成されてもよい。
なお、以下の説明では、「装置」という文言は、回路、デバイス、ユニットなどに読み替えることができる。検索装置10のハードウェア構成は、図1に示した各装置を1つ又は複数含むように構成されてもよいし、一部の装置を含まずに構成されてもよい。
検索装置10における各機能は、プロセッサ1001、メモリ1002などのハードウェア上に所定のソフトウェア(プログラム)を読み込ませることによって、プロセッサ1001が演算を行い、通信装置1004による通信を制御したり、メモリ1002及びストレージ1003におけるデータの読み出し及び書き込みの少なくとも一方を制御したりすることによって実現される。
プロセッサ1001は、例えば、オペレーティングシステムを動作させてコンピュータ全体を制御する。プロセッサ1001は、周辺装置とのインターフェース、制御装置、演算装置、レジスタなどを含む中央処理装置(CPU:Central Processing Unit)によって構成されてもよい。
また、プロセッサ1001は、プログラム(プログラムコード)、ソフトウェアモジュール、データなどを、ストレージ1003及び通信装置1004の少なくとも一方からメモリ1002に読み出し、これらに従って各種の処理を実行する。プログラムとしては、上述の実施の形態において説明した動作の少なくとも一部をコンピュータに実行させるプログラムが用いられる。例えば、方策決定部14は、メモリ1002に格納され、プロセッサ1001において動作する制御プログラムによって実現されてもよく、他の機能ブロックについても同様に実現されてもよい。上述の各種処理は、1つのプロセッサ1001によって実行される旨を説明してきたが、2以上のプロセッサ1001により同時又は逐次に実行されてもよい。プロセッサ1001は、1以上のチップによって実装されてもよい。なお、プログラムは、電気通信回線を介してネットワークから送信されても良い。
メモリ1002は、コンピュータ読み取り可能な記録媒体であり、例えば、ROM(Read Only Memory)、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)、RAM(Random Access Memory)などの少なくとも1つによって構成されてもよい。メモリ1002は、レジスタ、キャッシュ、メインメモリ(主記憶装置)などと呼ばれてもよい。メモリ1002は、本開示の一実施の形態に係る通信制御方法を実施するために実行可能なプログラム(プログラムコード)、ソフトウェアモジュールなどを保存することができる。
ストレージ1003は、コンピュータ読み取り可能な記録媒体であり、例えば、CD-ROM(Compact Disc ROM)などの光ディスク、ハードディスクドライブ、フレキシブルディスク、光磁気ディスク(例えば、コンパクトディスク、デジタル多用途ディスク、Blu-ray(登録商標)ディスク)、スマートカード、フラッシュメモリ(例えば、カード、スティック、キードライブ)、フロッピー(登録商標)ディスク、磁気ストリップなどの少なくとも1つによって構成されてもよい。ストレージ1003は、補助記憶装置と呼ばれてもよい。上述の記憶媒体は、例えば、メモリ1002及びストレージ1003の少なくとも一方を含むデータベース、サーバその他の適切な媒体であってもよい。
通信装置1004は、有線ネットワーク及び無線ネットワークの少なくとも一方を介してコンピュータ間の通信を行うためのハードウェア(送受信デバイス)であり、例えばネットワークデバイス、ネットワークコントローラ、ネットワークカード、通信モジュールなどともいう。
入力装置1005は、外部からの入力を受け付ける入力デバイス(例えば、キーボード、マウス、マイクロフォン、スイッチ、ボタン、センサなど)である。出力装置1006は、外部への出力を実施する出力デバイス(例えば、ディスプレイ、スピーカー、LEDランプなど)である。なお、入力装置1005及び出力装置1006は、一体となった構成(例えば、タッチパネル)であってもよい。
また、プロセッサ1001、メモリ1002などの各装置は、情報を通信するためのバス1007によって接続される。バス1007は、単一のバスを用いて構成されてもよいし、装置間ごとに異なるバスを用いて構成されてもよい。
また、検索装置10は、マイクロプロセッサ、デジタル信号プロセッサ(DSP:Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)、FPGA(Field Programmable Gate Array)などのハードウェアを含んで構成されてもよく、当該ハードウェアにより、各機能ブロックの一部又は全てが実現されてもよい。例えば、プロセッサ1001は、これらのハードウェアの少なくとも1つを用いて実装されてもよい。
以上、本実施形態について詳細に説明したが、当業者にとっては、本実施形態が本明細書中に説明した実施形態に限定されるものではないということは明らかである。本実施形態は、特許請求の範囲の記載により定まる本発明の趣旨及び範囲を逸脱することなく修正及び変更態様として実施することができる。したがって、本明細書の記載は、例示説明を目的とするものであり、本実施形態に対して何ら制限的な意味を有するものではない。
本開示において説明した各態様/実施形態の処理手順、シーケンス、フローチャートなどは、矛盾の無い限り、順序を入れ替えてもよい。例えば、本開示において説明した方法については、例示的な順序を用いて様々なステップの要素を提示しており、提示した特定の順序に限定されない。
入出力された情報等は特定の場所(例えば、メモリ)に保存されてもよいし、管理テーブルを用いて管理してもよい。入出力される情報等は、上書き、更新、又は追記され得る。出力された情報等は削除されてもよい。入力された情報等は他の装置へ送信されてもよい。
判定は、1ビットで表される値(0か1か)によって行われてもよいし、真偽値(Boolean:true又はfalse)によって行われてもよいし、数値の比較(例えば、所定の値との比較)によって行われてもよい。
本開示において説明した各態様/実施形態は単独で用いてもよいし、組み合わせて用いてもよいし、実行に伴って切り替えて用いてもよい。また、所定の情報の通知(例えば、「Xであること」の通知)は、明示的に行うものに限られず、暗黙的(例えば、当該所定の情報の通知を行わない)ことによって行われてもよい。
ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、他の名称で呼ばれるかを問わず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行スレッド、手順、機能などを意味するよう広く解釈されるべきである。
また、ソフトウェア、命令、情報などは、伝送媒体を介して送受信されてもよい。例えば、ソフトウェアが、有線技術(同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL:Digital Subscriber Line)など)及び無線技術(赤外線、マイクロ波など)の少なくとも一方を使用してウェブサイト、サーバ、又は他のリモートソースから送信される場合、これらの有線技術及び無線技術の少なくとも一方は、伝送媒体の定義内に含まれる。
本開示において説明した情報、信号などは、様々な異なる技術のいずれかを使用して表されてもよい。例えば、上記の説明全体に渡って言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、チップなどは、電圧、電流、電磁波、磁界若しくは磁性粒子、光場若しくは光子、又はこれらの任意の組み合わせによって表されてもよい。
また、本開示において説明した情報、パラメータなどは、絶対値を用いて表されてもよいし、所定の値からの相対値を用いて表されてもよいし、対応する別の情報を用いて表されてもよい。
上述したパラメータに使用する名称はいかなる点においても限定的な名称ではない。さらに、これらのパラメータを使用する数式等は、本開示で明示的に開示したものと異なる場合もある。様々な情報要素は、あらゆる好適な名称によって識別できるので、これらの様々な情報要素に割り当てている様々な名称は、いかなる点においても限定的な名称ではない。
本開示において使用する「に基づいて」という記載は、別段に明記されていない限り、「のみに基づいて」を意味しない。言い換えれば、「に基づいて」という記載は、「のみに基づいて」と「に少なくとも基づいて」の両方を意味する。
本開示において使用する「第1の」、「第2の」などの呼称を使用した要素へのいかなる参照も、それらの要素の量又は順序を全般的に限定しない。これらの呼称は、2つ以上の要素間を区別する便利な方法として本開示において使用され得る。したがって、第1及び第2の要素への参照は、2つの要素のみが採用され得ること、又は何らかの形で第1の要素が第2の要素に先行しなければならないことを意味しない。
本開示において、「含む(include)」、「含んでいる(including)」及びそれらの変形が使用されている場合、これらの用語は、用語「備える(comprising)」と同様に、包括的であることが意図される。さらに、本開示において使用されている用語「又は(or)」は、排他的論理和ではないことが意図される。
本開示において、例えば、英語でのa, an及びtheのように、翻訳により冠詞が追加された場合、本開示は、これらの冠詞の後に続く名詞が複数形であることを含んでもよい。
本開示において、「AとBが異なる」という用語は、「AとBが互いに異なる」ことを意味してもよい。なお、当該用語は、「AとBがそれぞれCと異なる」ことを意味してもよい。「離れる」、「結合される」などの用語も、「異なる」と同様に解釈されてもよい。
10…検索装置、10a…データ蓄積部、11…入力部、12…検索部、13…クエリ拡張部、14…方策決定部、15…提示部(受付部)、16…管理部。
Claims (7)
- ユーザから検索クエリを受け付ける入力部と、
前記検索クエリと予め用意された複数の検索対象データの各々との適合度を算出する検索部と、
前記検索クエリに関連する拡張クエリを前記検索クエリに追加することにより拡張検索クエリを生成するクエリ拡張部と、
前記適合度が上位の前記検索対象データを前記ユーザに提示する第1処理と、前記拡張検索クエリを新たな検索クエリとして前記検索対象データ毎の前記適合度を前記検索部に算出させることを前記ユーザに提案する第2処理と、のいずれの処理を実行するかを、前記検索部により算出された前記検索対象データ毎の前記適合度に基づいて決定する方策決定部と、
を備える検索装置。 - 前記方策決定部は、前記適合度が上位の予め定められた数の前記検索対象データの前記適合度に基づいて、前記第1処理と前記第2処理とのいずれの処理を実行するかを決定する、請求項1に記載の検索装置。
- 前記方策決定部は、前記検索対象データ毎の前記適合度を状態とし、前記第1処理及び前記第2処理を行動とし、前記ユーザの意図に合致するデータが得られることを報酬として強化学習を行うことにより生成された方策決定モデルであって、前記検索対象データ毎の前記適合度を入力して前記第1処理及び前記第2処理のいずれを実行すべきかを示す値を出力する前記方策決定モデルを用いることにより、前記第1処理と前記第2処理とのいずれの処理を実行するかを決定する、請求項1又は2に記載の検索装置。
- 前記検索部は、互いに異なる複数の検索手法を実行可能に構成されており、
前記方策決定部は、前記第1処理を実行すると決定する場合には、前記複数の検索手法のうちのいずれの手法を実行するかを決定する、請求項1~3のいずれか一項に記載の検索装置。 - 前記検索部は、前記複数の検索手法の各々について、前記検索対象データ毎の前記適合度を算出し、
前記方策決定部は、前記複数の検索手法の各々についての前記検索対象データ毎の前記適合度に基づいて、前記第1処理と前記第2処理とのいずれの処理を実行するかを決定する、請求項4に記載の検索装置。 - 前記クエリ拡張部は、互いに異なる複数のクエリ拡張手法を実行可能に構成されており、
前記方策決定部は、前記第2処理を実行すると決定する場合には、前記複数のクエリ拡張手法のうちのいずれの手法を実行するかを決定する、請求項1~5のいずれか一項に記載の検索装置。 - 前記方策決定部により前記第1処理を実行すると決定された場合に、前記適合度が上位の前記検索対象データを前記ユーザに提示する提示部と、
前記提示部により前記ユーザに提示された前記検索対象データを提示済みデータとして管理する管理部と、
前記提示済みデータが前記ユーザの意図に合致するデータであるか否かを示すフィードバック情報を前記ユーザから受け付ける受付部と、を更に備え、
前記検索部は、前記提示済みデータが前記ユーザの意図に合致するデータでないことを示す前記フィードバック情報を前記受付部が受け付けた場合に、前記複数の検索対象データから前記提示済みデータを除外して、前記検索対象データ毎の前記適合度を算出する、請求項1~6のいずれか一項に記載の検索装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021562498A JP7490670B2 (ja) | 2019-12-03 | 2020-10-27 | 検索装置 |
US17/777,680 US20230015324A1 (en) | 2019-12-03 | 2020-10-27 | Retrieval device |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019218779 | 2019-12-03 | ||
JP2019-218779 | 2019-12-03 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021111769A1 true WO2021111769A1 (ja) | 2021-06-10 |
Family
ID=76221202
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2020/040298 WO2021111769A1 (ja) | 2019-12-03 | 2020-10-27 | 検索装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230015324A1 (ja) |
JP (1) | JP7490670B2 (ja) |
WO (1) | WO2021111769A1 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000231569A (ja) * | 1999-02-09 | 2000-08-22 | Just Syst Corp | インターネット情報検索装置、インターネット情報検索方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP2007219722A (ja) * | 2006-02-15 | 2007-08-30 | Just Syst Corp | 文書検索サーバおよび文書検索方法 |
WO2013021696A1 (ja) * | 2011-08-05 | 2013-02-14 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 情報検索システム、方法、及びプログラム |
-
2020
- 2020-10-27 US US17/777,680 patent/US20230015324A1/en not_active Abandoned
- 2020-10-27 JP JP2021562498A patent/JP7490670B2/ja active Active
- 2020-10-27 WO PCT/JP2020/040298 patent/WO2021111769A1/ja active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000231569A (ja) * | 1999-02-09 | 2000-08-22 | Just Syst Corp | インターネット情報検索装置、インターネット情報検索方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP2007219722A (ja) * | 2006-02-15 | 2007-08-30 | Just Syst Corp | 文書検索サーバおよび文書検索方法 |
WO2013021696A1 (ja) * | 2011-08-05 | 2013-02-14 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 情報検索システム、方法、及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
JPWO2021111769A1 (ja) | 2021-06-10 |
US20230015324A1 (en) | 2023-01-19 |
JP7490670B2 (ja) | 2024-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11200252B2 (en) | Process and apparatus for selecting an item from a database | |
US6499030B1 (en) | Apparatus and method for information retrieval, and storage medium storing program therefor | |
US7769771B2 (en) | Searching a document using relevance feedback | |
US7096218B2 (en) | Search refinement graphical user interface | |
US10691655B2 (en) | Generating tables based upon data extracted from tree-structured documents | |
US8812297B2 (en) | Method and system for interactively finding synonyms using positive and negative feedback | |
US20120259615A1 (en) | Text prediction | |
EP2523126A2 (en) | Information processing apparatus, information processing method, program, and information processing system | |
JP7252914B2 (ja) | 検索提案を提供する方法、装置、機器及び媒体 | |
JP4746439B2 (ja) | 文書検索サーバおよび文書検索方法 | |
WO2021111769A1 (ja) | 検索装置 | |
JP6212639B2 (ja) | 検索方法 | |
JP6549173B2 (ja) | 計算機システム及び文章データの検索方法 | |
JP6895580B2 (ja) | 対話システム | |
WO2020235135A1 (ja) | 対話システム | |
JP2021179665A (ja) | 文章作成装置 | |
JPH06251076A (ja) | データ・ベース検索装置および方法 | |
JP2939841B2 (ja) | データベース検索装置 | |
WO2022044923A1 (ja) | 情報処理装置 | |
RU2679967C1 (ru) | Устройство отыскания информации по ключевым словам | |
KR102351264B1 (ko) | 사용자 맞춤형 신간 도서 정보의 제공 방법 및 그 시스템 | |
WO2021238691A1 (zh) | 用于管理存储设备的用户界面显示的方法和装置 | |
JP2021096761A (ja) | 検索支援装置 | |
JP7548569B2 (ja) | 文書処理プログラム、情報処理装置及び文書処理方法 | |
JP2009003731A (ja) | 特許検索システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20895062 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2021562498 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20895062 Country of ref document: EP Kind code of ref document: A1 |