JP6560843B1 - 検索システム、検索方法、及びプログラム - Google Patents

検索システム、検索方法、及びプログラム Download PDF

Info

Publication number
JP6560843B1
JP6560843B1 JP2019515557A JP2019515557A JP6560843B1 JP 6560843 B1 JP6560843 B1 JP 6560843B1 JP 2019515557 A JP2019515557 A JP 2019515557A JP 2019515557 A JP2019515557 A JP 2019515557A JP 6560843 B1 JP6560843 B1 JP 6560843B1
Authority
JP
Japan
Prior art keywords
user
data item
search
index
product
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019515557A
Other languages
English (en)
Other versions
JPWO2019176102A1 (ja
Inventor
ヴィジャイ ドルタニ
ヴィジャイ ドルタニ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Rakuten Group Inc
Original Assignee
Rakuten Inc
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 Rakuten Inc filed Critical Rakuten Inc
Application granted granted Critical
Publication of JP6560843B1 publication Critical patent/JP6560843B1/ja
Publication of JPWO2019176102A1 publication Critical patent/JPWO2019176102A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9035Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/906Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9532Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9538Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

検索システム(1)の検索手段(101)は、ユーザにより入力された文字情報をクエリとして、複数のデータ項目が格納されたデータベースを検索する。提供手段(102)は、検索手段(101)により取得された検索結果のうち、ユーザにより選択されたデータ項目をユーザに提供する。学習手段(104)は、ユーザにより選択されたデータ項目の項目情報と、クエリとして用いられた文字情報と、の関係を学習機に学習させる。取得手段(106)は、処理対象のデータ項目の項目情報を学習機に入力し、処理対象のデータ項目の特徴情報を学習機から取得する。登録手段(107)は、特徴情報を、処理対象のデータ項目に関連付けてデータベースに登録する。

Description

本発明は、検索システム、検索方法、及びプログラムに関する。
従来、ユーザが入力した文字情報をクエリとして、複数のデータ項目が格納されたデータベースを検索する技術が知られている。例えば、特許文献1には、データ項目の一例であるコンテンツからキーワード群を抽出してインデックス化しておき、ユーザがクエリとして入力したキーワードと、インデックス化されたキーワード群と、に基づいてコンテンツの検索を実行し、各コンテンツに対し、キーワード群に対応するメタデータを付与することが記載されている。
特開2003−228569号公報
上記に類する技術としては、検索時に使用されたクエリと、検索結果の中から選択されたコンテンツと、の関係を学習機に学習させ、ユーザが入力したクエリを学習機に入力し、選択される蓋然性の高いコンテンツを学習機から取得して検索結果に含めることも考えられる(想定技術)。しかしながら、この場合、過去に選択されたコンテンツしか学習機に学習されないので、まだユーザによって選択されていないコンテンツ(例えば、新たに追加されたコンテンツ)を検索結果に含ませることができないから、ユーザによって選択されていないコンテンツの検索を、学習機を用いて補助することはできない。
本発明は上記課題に鑑みてなされたものであって、その目的は、ユーザによって選択されていないデータ項目であっても、その検索を学習機により補助し、検索精度を高めることが可能な検索システム、検索方法、及びプログラムを提供することである。
上記課題を解決するために、本発明に係る検索システムは、ユーザにより入力された文字情報をクエリとして、複数のデータ項目が格納されたデータベースを検索する検索手段と、前記検索手段により取得された検索結果のうち、前記ユーザにより選択されたデータ項目を前記ユーザに提供する提供手段と、前記ユーザにより選択されたデータ項目の項目情報と、クエリとして用いられた文字情報と、の関係を学習機に学習させる学習手段と、処理対象のデータ項目の項目情報を前記学習機に入力し、前記処理対象のデータ項目の特徴情報を前記学習機から取得する取得手段と、前記特徴情報を、前記処理対象のデータ項目に関連付けて前記データベースに登録する登録手段と、を含むことを特徴とする。
本発明に係る検索方法は、ユーザにより入力された文字情報をクエリとして、複数のデータ項目が格納されたデータベースを検索する検索ステップと、前記検索ステップにより取得された検索結果のうち、前記ユーザにより選択されたデータ項目を前記ユーザに提供する提供ステップと、前記ユーザにより選択されたデータ項目の項目情報と、クエリとして用いられた文字情報と、の関係を学習機に学習させる学習ステップと、処理対象のデータ項目の項目情報を前記学習機に入力し、前記処理対象のデータ項目の特徴情報を前記学習機から取得する取得ステップと、前記特徴情報を、前記処理対象のデータ項目に関連付けて前記データベースに登録する登録ステップと、を含むことを特徴とする。
本発明に係るプログラムは、ユーザにより入力された文字情報をクエリとして、複数のデータ項目が格納されたデータベースを検索する検索手段、前記検索手段により取得された検索結果のうち、前記ユーザにより選択されたデータ項目を前記ユーザに提供する提供手段、前記ユーザにより選択されたデータ項目の項目情報と、クエリとして用いられた文字情報と、の関係を学習機に学習させる学習手段、処理対象のデータ項目の項目情報を前記学習機に入力し、前記処理対象のデータ項目の特徴情報を前記学習機から取得する取得手段、前記特徴情報を、前記処理対象のデータ項目に関連付けて前記データベースに登録する登録手段、としてコンピュータを機能させる。
また、本発明に係る情報記憶媒体は、上記のプログラムが記憶されたコンピュータ読み取り可能な情報記憶媒体である。
また、本発明の一態様では、前記取得手段は、前記特徴情報として文字情報を取得し、前記登録手段は、前記学習機から取得された文字情報を、前記処理対象のデータ項目のインデックスとして前記データベースに登録する、ことを特徴とする。
また、本発明の一態様では、前記項目情報は、第1のインデックスとして定められた文字情報であり、前記学習手段は、前記ユーザにより選択されたデータ項目の第1のインデックスと、クエリとして用いられた文字情報と、の関係を前記学習機に学習させ、前記取得手段は、前記処理対象のデータ項目の第1のインデックスを前記学習機に入力し、前記特徴情報としての文字情報を前記学習機から取得し、前記登録手段は、前記学習機から取得された文字情報を、前記処理対象のデータ項目の第2のインデックスとして前記データベースに登録する、ことを特徴とする。
また、本発明の一態様では、前記検索システムは、前記ユーザにより選択されたデータ項目の項目情報と、クエリとして用いられた文字情報と、の組み合わせを記録する記録手段を更に含み、前記学習手段は、所定のタイミングが訪れた場合に、前記記録手段により記録された組み合わせに基づいて、前記関係を学習機に学習させる、ことを特徴とする。
また、本発明の一態様では、前記学習手段は、前記ユーザによりデータ項目が選択されるたびに、前記関係を前記学習機に学習させる、ことを特徴とする。
また、本発明の一態様では、前記学習手段は、再帰型ニューラルネットワークモデル、長・短期記憶モデル、又はシーケンス変換モデルに基づく前記学習機を生成する、ことを特徴とする。
また、本発明の一態様では、前記検索システムは、前記データベースに新たなデータ項目を追加する追加手段を更に含み、前記取得手段は、前記新たなデータ項目の項目情報を前記学習機に入力し、前記新たなデータ項目の特徴情報を前記学習機から取得し、前記登録手段は、前記特徴情報を、前記新たなデータ項目に関連付けて前記データベースに登録する、ことを特徴とする。
また、本発明の一態様では、前記データベースには、データ項目ごとに、第1のインデックスと、前記登録手段により登録された第2のインデックスと、が登録されており、前記検索手段は、前記第1のインデックスに基づいて第1の検索結果を前記ユーザに提供し、前記第2のインデックスに基づいて第2の検索結果を前記ユーザに提供する、ことを特徴とする。
また、本発明の一態様では、前記データ項目は、商品又はサービスに関するデータ項目であり、前記検索手段は、前記第1のインデックスに基づいて、商品又はサービスのページを表示させるための第1の検索結果を前記ユーザに提供し、前記第2のインデックスに基づいて、商品又はサービスのクーポンを付与するための第2の検索結果を前記ユーザに提供する、ことを特徴とする。
本発明によれば、ユーザによって選択されていないデータ項目であっても、その検索を学習機により補助し、検索精度を高めることが可能になる。
検索システムの全体構成を示す図である。 サーバの物理的構成を示す図である。 オンラインショッピングモールのトップページの一例を示す図である。 検索結果ページの一例を示す図である。 商品ページの一例を示す図である。 検索システムで実現される機能の一例を示す機能ブロック図である。 商品データベースの一例を示す図である。 教師データの一例を示す図である。 商品登録ページの一例を示す図である。 学習機から特徴情報が取得される様子を示す図である。 教師データ生成処理の一例を示すフロー図である。 教師データ生成処理の一例を示すフロー図である。 インデックス登録処理の一例を示すフロー図である。
[1.検索システムの全体構成]
以下、本発明に関わる検索システムの実施形態の例を説明する。図1は、検索システムの全体構成を示す図である。図1に示すように、検索システム1は、サーバ10、ユーザ端末20、及び店舗端末30を含み、これらはネットワークNを介してデータ送受信可能に接続される。なお、図1では、サーバ10、ユーザ端末20、及び店舗端末30の各々を1台ずつ示しているが、これらは複数台あってもよい。
図2は、サーバ10の物理的構成を示す図である。図2に示すように、サーバ10は、サーバコンピュータであり、例えば、CPU11、メモリ12、及び通信インタフェース13を含み、これらはバス14で接続されている。CPU11は、メモリ12に記憶されたプログラムやデータに従って処理を実行する。なお、図2では、CPU11を1つとしているが、サーバ10は、少なくとも1つのプロセッサを含めばよく、2つ以上のCPU11を含んでもよい。メモリ12は、主記憶部及び補助記憶部を含む。例えば、主記憶部はRAMなどの揮発性メモリであり、補助記憶部は、ハードディスクやフラッシュメモリなどの不揮発性メモリである。通信インタフェース13は、有線通信又は無線通信用の通信インタフェースであり、例えば、ネットワークを介してデータ通信を行う。
ユーザ端末20は、ユーザが操作するコンピュータであり、例えば、パーソナルコンピュータ、携帯情報端末(タブレット型コンピュータを含む)、又は携帯電話機(スマートフォンを含む)等である。
店舗端末30は、店舗の担当者が操作するコンピュータであり、例えば、パーソナルコンピュータ、携帯情報端末(タブレット型コンピュータを含む)、又は携帯電話機(スマートフォンを含む)等である。
なお、メモリ12に記憶されるものとして説明するプログラム及びデータは、ネットワークを介してサーバ10に供給されるようにしてもよい。また、サーバ10のハードウェア構成は、上記の例に限られず、種々のハードウェアを適用可能である。例えば、サーバ10は、コンピュータ読み取り可能な情報記憶媒体を読み取る読取装置(例えば、光ディスクドライブやメモリカードスロット)や外部機器と直接的に接続するための入出力インタフェース(例えば、USB端子)を含んでもよいし、スピーカなどの音声出力装置を含んでもよい。情報記憶媒体に記憶されたプログラムやデータが読取装置又は入出力インタフェースを介して、サーバ10に供給されるようにしてもよい。
[2.検索システムの概要]
検索システム1は、ユーザがユーザ端末20から入力した文字情報をクエリとして、複数のデータ項目が格納されたデータベースを検索する。
ユーザ端末20から入力される文字情報は、少なくとも1つの文字を含む情報である。この文字情報は、クエリとして用いられるので、キーワード又は検索文字列と呼ばれることもある。例えば、文字情報は、1つの単語(検索語)だけを含んでもよいし、複数の単語を含んでもよい。文字情報が複数の単語を含む場合には、複数の単語がスペースで区切られてもよい。この場合、複数の単語は、AND条件で用いられてもよいし、OR条件で用いられてもよい。また例えば、文字情報は、単語に限られず、文章であってもよいし、文章の一部であってもよい。
データ項目は、検索の対象となるデータの単位であり、例えば、データベースの個々のレコードである。データ項目は、任意の種類のデータであってよく、例えば、ウェブページ、電子書籍、動画、楽曲、又はアプリケーションといったコンテンツであってもよいし、文書ファイル、テキストファイル、画像ファイル、又は音声ファイルといったファイルであってもよい。
本実施形態では、検索システム1をオンラインショッピングモールに適用する場合を説明し、データ項目の一例として、店舗が取り扱う商品の商品ページを説明する。このため、本実施形態で商品ページと記載した箇所は、データ項目と読み替えることができる。例えば、検索システム1は、ユーザがユーザ端末20から入力した文字情報をクエリとして、種々の商品ページが格納されたデータベースを検索する。
図3は、オンラインショッピングモールのトップページの一例を示す図である。図3に示すように、例えば、ユーザ端末20がサーバ10にアクセスすると、オンラインショッピングモールのトップページP1がユーザ端末20に表示される。トップページP1では、文字情報、ジャンル(カテゴリ)、又は商品の属性(例えば、色、サイズ)といったクエリを指定可能である。
例えば、ユーザは、トップページP1の入力フォームF10から文字情報を入力し、所望の商品ページを検索する。例えば、ユーザが「腕時計 ABC-Watch」といった文字情報を入力して検索すると、検索結果を示す検索結果ページがユーザ端末20に表示される。
図4は、検索結果ページの一例を示す図である。図4に示すように、検索結果ページP2の入力フォームF20には、クエリとして用いられた文字情報が表示される。本実施形態では、当該文字情報に基づいて、商品ページのリストL21を表示させるための検索と、商品のクーポン情報I22を表示させるための検索と、の2種類の検索が実行される
例えば、リストL21には、検索でヒットした商品ページへのリンク情報が所定順に並んで表示される。リンク情報は、商品ページの識別情報(例えば、URL)を含み、例えば、商品画像、店舗名、商品タイトル、及び価格といった情報がリストL21に表示される。
商品タイトルは、インターネットショッピングモールにおける店舗が付けた商品名である。商品タイトルは、製品メーカが付けた製品名や型番などであってもよいが、本実施形態では、店舗が自由に商品タイトルを入力できるものとする。このため、同じ製品であったとしても、当該製品を商品として取り扱う店舗によって、商品タイトルの付け方が異なる。
商品タイトルは、少なくとも1つの単語を含み、例えば、複数の単語がスペースで区切られていてもよいし、文章形式で記述されていてもよい。例えば、商品タイトルは、単語、文章、及びカッコなどの記号の組み合わせであってもよい。例えば、商品タイトルは、製品名、型番、ジャンル(カテゴリ)、及び属性(例えば、色、サイズ、産地、素材)といった商品に関する情報を含んでもよいし、「送料無料」、「ポイントアップ」といった店舗のサービスに関する情報を含んでもよい。
クーポン情報I22は、検索でヒットしたクーポンの情報であり、例えば、商品画像、店舗名、商品タイトル、及びクーポンの内容と言った情報が表示される。クーポンは、所定の特典を付与するための情報であればよく、例えば、商品を割引価格で購入するための情報であってもよいし、おまけを獲得するための情報であってもよい。ユーザがクーポン情報I22を選択すると、クーポンを獲得することができる。一方、ユーザがリストL21内の何れかのリンク情報を選択すると、リンク先の商品ページが表示される。
図5は、商品ページの一例を示す図である。図5に示すように、商品ページP3は、商品を購入するためのページであり、例えば、店舗名、商品画像、商品タイトル、価格、及び商品説明が表示される。例えば、ユーザは、商品ページP3から商品を買い物かごに入れて購入することもできる。また例えば、ユーザは、再び検索結果ページP2に戻って別のリンク情報を選択したり、検索条件を変えて再度検索したりすることもできる。
本実施形態の検索システム1は、複数のユーザの各々の行動を学習機に学習させ、検索結果の一例であるリストL21やクーポン情報I22の精度を向上させるようにしている。この点に関し、上述の想定技術は、検索時にクエリとして用いられた文字情報を入力とし、検索結果から選択された商品ページを出力とする学習機であったため、ユーザがまだ選択していないデータ項目の検索を補助することができないという問題が本来的に発生した。これに対し、本実施形態では、この入力−出力の関係を反対にすることで、この想定技術における問題点を解決しているとともに、ユーザによる検索の際に学習機を用いる必要がないため、検索が高速であり、情報処理負荷が極めて小さく、学習機を実現するための性能コストや電力消費が低い有利な特徴を有する。
例えば、ユーザは、所望する商品ページの商品タイトルに含まれている単語を、そのままクエリとして入力するとは限らない。このため、ユーザが入力するクエリは、不正確なクエリといえる。本実施形態の学習機は、ユーザが不正確なクエリを入力しても、所望の商品ページを精度よく検索するために、その不正確なクエリを、現実に使用されたクエリによる結果に基づいて、精度よく予測して出力する。例えば、検索システム1は、商品ページの商品タイトルだけではなく、学習機の出力結果もインデックスとして用いるようにして、ユーザが所望する情報(例えば、クーポン情報I22)を提供するようにしている。以降、検索システム1の詳細を説明する。
[3.検索システムで実現される機能]
図6は、検索システム1で実現される機能の一例を示す機能ブロック図である。図6に示すように、検索システム1では、データ記憶部100、検索部101、提供部102、記録部103、学習部104、学習機105、追加部106、取得部107、及び登録部108が実現される。本実施形態では、これら各機能がサーバ10により実現される場合を説明する。
[3−1.データ記憶部]
データ記憶部100は、メモリ12を主として実現される。データ記憶部100は、商品ページの検索に必要なデータを記憶する。ここでは、データ記憶部100が記憶するデータの一例として、商品データベースDBと、教師データDTと、について説明する。
図7は、商品データベースDBの一例を示す図である。図7に示すように、商品データベースDBには、検索対象となる商品ページに関する種々の情報が格納される。商品データベースDBは、本発明に係るデータベースの一例である。データベースとしては、データ項目の種類に応じたデータベースを用意すればよく、例えば、データ項目が電子書籍であれば電子書籍のデータベースを用意すればよいし、データ項目が動画であれば動画のデータベースを用意すればよい。
例えば、商品データベースDBには、店舗を一意に識別する店舗ID、商品を一意に識別する商品ID、商品ページのURL、及び商品情報が格納される。商品情報は、商品の内容に関する情報であり、例えば、商品ページに表示させる情報であってもよいし、商品ページの検索時のインデックスとして用いられる情報であってもよい。例えば、商品情報は、商品タイトル、特徴情報、価格、商品説明、商品画像、及びクーポン情報を含む。
図7のデータ格納例では、商品タイトルは、複数の単語がスペースで区切られた形式となっている。例えば、商品タイトルは、インデックスとして用いられる。特徴情報は、登録部108により登録された情報であり、詳細は後述する。本実施形態では、特徴情報もインデックスとして用いられる。このため、商品データベースDBには、商品ページごとに、第1のインデックス(商品タイトル)と、登録部108により登録された第2のインデックス(特徴情報)と、が登録されていることになる。
商品説明は、商品の説明文であり、例えば、商品タイトルよりも情報量(文字数)が多い。例えば、商品タイトルは単語の羅列で記載し、商品説明は文章で記載するといったように、商品タイトルと商品説明の記載形式が予め定められているようにしてもよい。商品説明は、テキストに限られず、例えば、表、動画、音声といった情報を含んでもよい。商品説明は、インデックスとして用いられてもよい。商品画像は、商品の撮影画像であってもよいし、撮影画像を加工した画像であってもよい。なお、商品情報に含まれる情報は、上記の例に限られず、例えば、商品の管理用番号、キャッチコピー、送料、ジャンル、及び属性といった情報が含まれていてもよい。
図8は、教師データDTの一例を示す図である。図8に示すように、教師データDTは、入力された情報に対して適切な回答を出力できるように学習機105を訓練するためのデータである。本実施形態の学習機105は、商品タイトルを入力とし、特徴情報を出力とするので、教師データDTには、これら入力と出力の関係が示されている。
先述したように、学習機105は、ユーザが入力する不正確なクエリを予測して出力する。学習機105が出力する特徴情報は、第2のインデックスとなり、クエリに対する検索で用いられる予測クエリ又は想定クエリということができる。例えば、後述する記録部103によって、商品タイトルと、現実に使用されたクエリである文字情報と、の組み合わせが教師データDTに記録され、後述する学習部104によって、教師データDTを用いた学習機105の学習が行われる。教師データDTは、設問と回答が1対1ではない非対称なデータであってよい。
なお、データ記憶部100に記憶されるデータは、上記の例に限られない。データ記憶部100は、検索に必要なデータを記憶すればよく、例えば、店舗IDや店舗名などが格納される店舗データベースを記憶してもよい。また例えば、データ記憶部100は、ユーザの基本情報や獲得したクーポンが格納されるユーザデータベースを記憶してもよい。また例えば、データ記憶部100は、クエリやインデックス等で用いられる単語を格納した辞書データベースを記憶してもよい。辞書データベースには、インデックス番号と、単語と、が対応付けられて格納される。
[3−2.検索部]
検索部101は、CPU11を主として実現される。検索部101は、ユーザにより入力された文字情報をクエリとして、複数の商品ページが格納された商品データベースDBを検索する。
クエリは、データベースから情報を取り出すための条件である。クエリは、検索条件と呼ばれることもある。本実施形態では、クエリの一例として文字情報を説明するが、クエリは、文字情報に限られず、例えば、ジャンルや属性といった情報がクエリになってもよいし、これらの組み合わせがクエリになってもよい。
例えば、検索部101は、ユーザがクエリとして入力した文字情報と、商品データベースDBに格納されたインデックスと、に基づいて、商品データベースDBを検索する。クエリとインデックスを用いた検索方法自体は、公知の種々の手法を適用可能であり、例えば、クエリと完全一致又は部分一致するインデックスを検索してもよいし、あいまい検索を利用してもよい。あいまい検索自体は、公知の種々のアルゴリズムを適用可能であり、例えば、Bitapアルゴリズムを利用してもよい。
例えば、検索部101は、ユーザがクエリとして入力した文字情報と、各商品ページのインデックスと、を所定の計算式に入力して、当該商品ページのスコアを計算する。スコアは、検索の蓋然性を示す値であり、クエリとインデックスの一致度を示す値である。スコアの計算式は、任意に定めてよく、例えば、クエリの特徴ベクトルとインデックスの特徴ベクトルとの距離を利用してもよい。なお、特徴ベクトルは、文字としての特徴量であり、例えば、Word2vecを利用して取得される。検索部101は、上記距離が短いほどスコアを高く計算し、上記距離が長いほどスコアを小さく計算してもよい。
例えば、検索部101は、各商品ページのスコアに基づいて、検索結果を取得する。検索部101は、スコアが高い順に所定数の商品ページを検索結果にヒットさせてもよいし、スコアが閾値以上の商品ページの全てを検索結果にヒットさせてもよい。
本実施形態の商品ページには、第1のインデックスである商品タイトルと、第2のインデックスである特徴情報と、が用意されているので、検索部101は、第1のインデックスと第2のインデックスに基づいて、検索を実行する。即ち、検索部101は、第1のインデックスと第2のインデックスとの両方を用いて検索結果を取得する。例えば、検索部101は、第1のインデックスに基づいて第1の検索結果をユーザに提供し、第2のインデックスに基づいて第2の検索結果をユーザに提供してもよい。
例えば、検索部101は、第1のインデックスである商品タイトルに基づいて、商品ページを検索し、第1の検索結果であるリストL21をユーザに提供する。即ち、検索部101は、第1のインデックスに基づいて、商品ページを表示させるための第1の検索結果をユーザに提供する。
また例えば、検索部101は、第2のインデックスである特徴情報に基づいて、商品のクーポンを検索し、第2の検索結果であるクーポン情報I22をユーザに提供する。即ち、検索部101は、第2のインデックスに基づいて、商品又はサービスのクーポンを付与するための第2の検索結果をユーザに提供する。
なお、検索部101は、第1のインデックスと第2のインデックスの両方に基づいて、リストL21を表示させるための検索を実行してもよい。同様に、検索部101は、第1のインデックスと第2のインデックスの両方に基づいて、クーポン情報I22を表示させるための検索を実行してもよい。即ち、検索部101は、第1のインデックスと第2のインデックスとで異なる検索を実行するのではなく、第1のインデックスと第2のインデックスの両方に基づいて、1つの検索を実行してもよい。
[3−3.提供部]
提供部102は、CPU11を主として実現される。提供部102は、検索部101により取得された検索結果のうち、ユーザにより選択された商品ページをユーザに提供する。ここでの提供とは、例えば、ユーザ端末20における画像の表示、ユーザ端末20からの音声の出力、又はユーザ端末20に対するデータの送信などである。
本実施形態では、データ項目の一例として商品ページを説明するので、提供部102は、当該商品ページを表示させるためのデータをユーザ端末20に送信することによって、商品ページを提供する。このデータとしては、商品ページのHTMLデータであってもよいし、商品ページのフレームにはめ込む画像やテキストであってもよい。また例えば、商品ページが動画や音声を含むものであれば、当該データは、商品ページ内の動画や音声であってもよい。
例えば、提供部102は、ユーザにより選択された商品ページの識別情報(例えば、URL)をユーザ端末20から受信し、ユーザにより選択された商品ページを特定する。提供部102は、商品データベースDBを参照し、当該特定した商品ページを表示させるためのデータをユーザ端末20に送信することになる。
[3−4.記録部]
記録部103は、CPU11を主として実現される。記録部103は、ユーザにより選択された商品ページの商品情報と、クエリとして用いられた文字情報と、の組み合わせを記録する。当該組み合わせは、データ記憶部100に記憶されてもよいし、サーバ10以外のコンピュータ(外部ストレージ)に記憶されてもよい。記録部103により記録される商品情報は、本発明に係る項目情報の一例である。
項目情報は、データ項目の内容又は特徴を示す情報である。本実施形態では、商品ページがデータ項目の一例なので、項目情報の一例として商品情報を説明するが、項目情報は、データ項目の種類に応じた情報であればよい。例えば、データ項目が電子書籍であれば、書籍のタイトル、作者、ジャンル、又は要約といった情報であってもよい。また例えば、データ項目が動画であれば、動画のタイトル、制作者、ジャンル、又は概略といった情報であってもよい。なお、項目情報は、インデックスとして用いられる情報であってもよいし、特にインデックスとして用いられない情報であってもよい。
本実施形態では、商品情報に含まれる情報のうち、商品タイトルを項目情報の一例として説明する。このため、本実施形態で商品タイトルと記載した箇所は、項目情報と読み替えることができる。
例えば、記録部103は、ユーザにより選択された商品ページの商品タイトルと、クエリとして用いられた文字情報と、の組み合わせを教師データDTに記録する。なお、記録部103は、これらの組み合わせを任意のデータに記録すればよく、教師データDT以外のデータに記録してもよい。この場合、当該データに基づいて教師データDTが生成されることになる。
なお、組み合わせを記録するとは、複数の情報を関連付けて格納することであり、同じレコードに複数の情報を格納することである。また、記録部103は、商品タイトル以外の情報を項目情報として記録してもよく、例えば、商品説明やキャッチコピーなどの情報を項目情報として記録してもよい。記録部103が記録する情報は、学習機105に入力させる情報と、学習機105から出力される情報と、の組み合わせに基づいて定めればよい。
[3−5.学習部,学習機]
学習部104は、CPU11を主として実現される。学習部104は、ユーザにより選択された商品ページの商品タイトルと、クエリとして用いられた文字情報と、の関係を学習機105に学習させる。本実施形態では、図8のような教師データDTが用意されているので、学習部104は、教師データDTに基づいて学習機105を学習させる。
本実施形態の学習機105は、不定長の入力となる商品タイトルに対して、不定長の出力となる特徴情報を出力するため、機械学習アルゴリズムとして、再帰型ニューラルネットワークを利用している。本実施形態では、再帰型ニューラルネットワークの中でも、長・短期記憶セルを用いたシーケンス変換モデルを採用している。このため、学習部104は、再帰型ニューラルネットワークモデル、長・短期記憶モデル、又はシーケンス変換モデルに基づく学習機105を生成することになる。なお、機械学習アルゴリズムは、同等の機能が実現できるモデルであれば他のモデルであってもよく、例えば、GRU(Gated Recurrent Unit)モデル等であってもよい。
本実施形態では、商品タイトルを項目情報の一例として説明し、商品タイトルは、商品ページを検索するための第1のインデックスとして定められた文字情報なので、学習部104は、ユーザにより選択された商品ページの第1のインデックスと、クエリとして用いられた文字情報と、の関係を学習機105に学習させることになる。学習機105の学習方法自体は、公知の種々の手法を適用可能であり、例えば、BPTT(Back−Propagation Through Time)法を利用してもよいし、RTRL(Real−Time Recurrent Learning)法を利用してもよい。
なお、学習機105を学習させるタイミングは任意であってよく、学習部104は、所定のタイミングが訪れた場合に、記録部103により記録された組み合わせに基づいて、上記関係を学習機105に学習させる。所定のタイミングは、検索システム1の管理者がサーバ10に対し所定の要求を送信したタイミングであってもよいし、バッチファイル等に定められた所定日時が到来することであってもよい。学習部104は、管理者からの所定の要求を受信したか否かを判定したり、所定日時が到来したか否かを判定したりすることによって、所定のタイミングが訪れたか否かを判定すればよい。
[3−6.追加部]
追加部106は、CPU11を主として実現される。追加部106は、商品データベースDBに新たな商品ページを追加する。本実施形態では、店舗端末30において所定の登録操作が行われた場合に、追加部106は、商品データベースDBに新たな商品ページを追加する。例えば、登録操作は、店舗端末30に表示される商品登録ページから行われる。
図9は、商品登録ページの一例を示す図である。図9に示すように、商品登録ページP4には、商品タイトルを入力するための入力フォームF40、価格を入力するための入力フォームF41、商品の説明文を入力するための入力フォームF42、及び商品画像を入力するための入力フォームF43が表示される。
なお、商品登録ページP4から入力される情報は、これらに限られず、商品ページのURL、クーポン情報、商品の管理用番号、キャッチコピー、送料、ジャンル、及び属性といった情報を入力可能であってよい。
例えば、店舗の担当者が、店舗端末30を操作して商品ページに関する種々の情報を入力してボタンB44を選択すると、店舗端末30からサーバ10に対し、当該情報が送信される。追加部106は、受信した当該情報を商品データベースDBに格納することによって、新たな商品ページを追加する。
[3−7.取得部]
取得部107は、CPU11を主として実現される。取得部107は、処理対象の商品ページの項目情報(本実施形態では、商品タイトル)を学習機105に入力し、処理対象の商品ページの特徴情報を学習機105から取得する。
処理対象の商品ページとは、特徴情報の取得対象となる商品ページであり、学習機105に項目情報が入力される商品ページである。処理対象の商品ページは、自動的に決定されてもよいし、管理者の操作に基づいて決定されてもよい。例えば、商品データベースDBに登録された商品ページのうち、まだ特徴情報が登録されていない商品ページが処理対象の商品ページとなってもよいが、本実施形態では、追加部106により追加される新たな商品ページが処理対象の商品ページに相当する場合を説明する。
特徴情報は、データ項目の特徴を示す情報である。例えば、特徴情報は、インデックスとして用いられる情報であってもよいし、特にインデックスとして用いられない情報であってもよい。また例えば、学習機105から出力される文字情報を特徴情報としてもよいし、学習機105の内部計算で得られる情報を特徴情報としてもよい。
本実施形態では、取得部107は、特徴情報として、学習機105から出力される文字情報を取得する場合を説明する。学習機105から出力される文字情報は、単語(1又は複数の文字)そのものであってもよいし、単語に関する情報であってもよい。単語に関する情報とは、単語を特定可能な情報であり、単語と1対1で対応付けられた情報である。例えば、単語に関する情報は、単語に割り当てられたインデックス番号であってもよいし、単語の特徴を示す特徴量であってもよい。インデックス番号は、種々の単語を格納した辞書データベースにおいて単語を一意に識別する番号である。特徴量は、単語の特徴を示す数値であり、例えば、Word2vecにおけるベクトル情報である。学習機105から出力される文字情報は、現実に用いられたクエリから予測した情報なので、文字情報は、学習機105から出力される予測クエリリスト又は想定クエリリストということもできる。
図10は、学習機105から特徴情報が取得される様子を示す図である。図10に示すように、ここでは、再帰型ニューラルネットワークを例に挙げて説明する。本実施形態の学習機105は、長・短期記憶セルによる再帰型ニューラルネットワークを用いたシーケンス変換モデルであり、長・短期記憶セルは、エンコーダEとデコーダDが用意されている。
なお、長・短期記憶セル自体の構成は公知のため、その詳細の説明は省略する。また、図10では、長・短期記憶セルを単ブロックとして記載しているが、長・短期記憶セルは多層の構成としてもよい。層数は多いほど出力精度は向上するが計算量が増大するので、実用上十分な精度が得られる程度の総数とするために、例えば、2〜8層程度であってもよい。
図10では、学習機105を単方向ネットワークとして構築しているが、これを双方向ネットワークとしてもよい。学習機105は、公知の計算機プログラミングライブラリ、例えばGoogle社から提供される「TensorFlow」や、Preferred Networks社から提供される「Chainer」を利用して構築してよい。
図10における水平方向は、時間ステップを意味しており、左方向から右方向へと手順が進行していることを意味している。本実施形態では、商品タイトルは複数の単語を含むので、取得部107は、商品タイトルを個々の単語に分割し、エンコーダEに対して、各単語を1つずつ入力する。なお、商品タイトルは、スペースの位置で個々の単語に分割されるようにすればよい。
例えば、学習機105に対し、商品タイトル「腕時計 ABC-Watch ABC メンズ ブラック a1234567」が入力されたとすると、取得部107は、「腕時計」、「ABC-Watch」、「ABC」、「メンズ」、「ブラック」、「a1234567」の6つの単語に分割し、これら6つの単語を順番に入力する。例えば、取得部107は、エンコーダEに対し、各単語の特徴量(例えば、先述した特徴ベクトル)を入力する。
例えば、学習機105は、エンコーダEに入力された単語に基づいて、内部ベクトルcを計算して順番に記録する。内部ベクトルcは、エンコーダEの隠れ層における内部状態を示す。内部ベクトルcの次数は、任意であり、長・短期記憶セルの層数にも依存するが、100〜1000次元程度としてよい。学習機105は、単語の入力ごとに次のステップへと内部ベクトルcを受け渡し、商品タイトルに含まれる全ての単語の入力が終わった時点で、内部ベクトルcが得られる。
学習機105は、内部ベクトルcをデコーダDへと受け渡し、デコーダDに対し、特別な予約語である入力<go>を入力する。この予約語は、デコーダDによる出力の開始を指示するものであり、固定値が割り当てられている。入力<go>が入力されると、デコーダDは単語を出力し、内部ベクトルは、cn+1へと変化する。出力された単語は、次のステップにおけるデコーダDへの入力に用いられ、内部ベクトルcn+1は次のステップにおけるデコーダDの内部状態として使用される。
図10の例では、入力<go>が入力されたデコーダDは、「腕時計」という単語を出力し、内部ベクトルは、cn+1へと変化する。出力された「腕時計」という単語は、次のステップにおけるデコーダDへの入力に用いられる。当該次のステップにおけるデコーダDは、「腕時計メンズ」という単語を出力し、内部ベクトルは、cn+2へと変化する。このようにして、学習機105は、単語の出力及び内部ベクトルcを順次次のステップに受け渡していきながら、デコーダDが特別な予約語である出力<eos>を出力するまで繰り返し実行する。この予約語は、デコーダDによる出力の終了を意味するものであり、固定値が割り当てられている。
以上のようにして得られる少なくとも1つの単語が最終的な学習機105の出力結果となる。取得部107は、学習機105から出力された当該少なくとも1つの単語を特徴情報として取得する。例えば、取得部107は、デコーダDが出力した複数の単語をスペースでつないで特徴情報としてもよいし、複数の単語をリスト状にしたものを特徴情報としてもよい。
学習機105の動作は以上の通りであり、学習部104が学習機105に機械学習をさせる際には、教師データDTを用いて、エンコーダE及びデコーダDの内部パラメータを変更する。例えば、学習部104は、商品タイトルを入力とし、クエリとして用いられた文字情報を出力として、出力の前に予約語<go>を、後に予約語<eos>を付加して、BPTT法等によりエンコーダE及びデコーダDの内部パラメータを変更する。この機械学習法の詳細については公知であるため、その詳細は本明細書では割愛する。
なお、以上の説明では、学習機105は、長・短期記憶セルを用いたモデルを用いているが、これ以外のセル、例えば、GRUセル等を用いるものであってもよい。また例えば、BeamSearchのような探索アルゴリズムを利用して特徴情報が取得されてもよい。また例えば、長・短期記憶セルの構造は公知の任意のものでよく、ピープホールメカニズムやアテンションベクトルの有無は任意である。また、フォーゲットゲートも必須の構成ではないが、フォーゲットゲートを備えたモデルの方が精度の高い結果が得られるようである。また、上記の説明では省略したが、学習機105は、単語とともに、蓋然性を示すスコアを出力してもよい。更に、取得部107は、スコアが閾値以上の単語のみを特徴情報として取得してもよい。
本実施形態では、学習機105に入力される商品タイトルは第1のインデックスとして用いられるので、取得部107は、処理対象の商品ページの第1のインデックスを学習機105に入力し、特徴情報としての文字情報を学習機105から取得することになる。
また例えば、本実施形態では、商品ページが新たに追加される場合に特徴情報が取得されるので、取得部107は、新たな商品ページの項目情報を学習機105に入力し、新たな商品ページの特徴情報を学習機105から取得することになる。
なお、特徴情報は、商品ページが新たに追加される場合ではなく、トレンド変化に対応するために、定期的に更新されるようにしてもよい。例えば、ユーザがどのようなクエリを入力するかは、時期によって変わることがあり、商品ページに関連付けられた特徴情報が古くなると、最新のトレンドに適合しないものとなる可能性がある。このため、取得部107は、既に特徴情報が関連付けられた商品ページであったとしても、定期的に、当該特徴情報を更新してもよい。
例えば、商品データベースDBに、特徴情報が関連付けられた日時を格納しておき、取得部107は、当該日時から一定期間が経過した商品ページについては、最新の学習機105から特徴情報を取得しなおして、特徴情報が更新されてもよい。また例えば、特徴情報が関連付けられた日時を格納しておくのではなく、取得部107は、一定期間が経過するたびに、全商品ページについて、最新の学習機105から特徴情報を取得しなおして、特徴情報が更新されてもよい。また例えば、特徴情報は、不定期的に更新されてもよく、例えば、システム管理者の指示を受け付けた場合に、取得部107は、最新の学習機105から特徴情報を取得しなおして、特徴情報が更新されてもよい。また例えば、店舗の担当者が商品ページの商品タイトルを修正することも考えられるので、取得部107は、商品タイトルが修正された場合に、最新の学習機105から特徴情報を取得しなおして、特徴情報が更新されてもよい。
[3−8.登録部]
登録部108は、CPU11を主として実現される。登録部108は、特徴情報を、処理対象の商品ページに関連付けて商品データベースDBに登録する。登録部108は、商品データベースDBのうち、処理対象の商品ページのレコードに、取得部107により取得された特徴情報を格納する。
本実施形態では、特徴情報はインデックスとして用いられるので、登録部108は、学習機105から取得された文字情報を、処理対象の商品ページのインデックス(例えば、第2のインデックス)としてデータベースに登録することになる。また例えば、本実施形態では、新たな商品ページが処理対象の商品ページの一例である場合を説明するので、登録部108は、特徴情報を、新たな商品ページに関連付けてデータベースに登録することになる。
[4.検索システムで実行される処理]
次に、検索システム1で実行される処理について説明する。ここでは、処理の一例として、ユーザの行動をもとに教師データDTを生成する教師データ生成処理と、学習機105を利用して商品ページのインデックスを登録するインデックス登録処理と、を説明する。
[4−1.教師データ生成処理]
図11−図12は、教師データ生成処理の一例を示すフロー図である。図11−図12に示す処理は、CPU11がメモリ12に記憶されたプログラムに従って動作し、ユーザ端末20が自身に記憶されたプログラムに従って動作することによって実行される。下記に説明する処理は、図6に示す機能ブロックにより実行される処理の一例である。
図11に示すように、まず、ユーザ端末20は、サーバ10に対し、トップページP1の表示要求を送信する(S101)。例えば、トップページP1の表示要求は、トップページP1のURLが選択されたり、所定のアプリケーションが起動したりした場合に送信される。
サーバ10においては、表示要求を受信すると、CPU11は、トップページP1の表示データをユーザ端末20に送信する(S102)。なお、トップページP1の表示データは、メモリ12に予め記憶されているものとする。表示データとしては、HTMLデータであってもよいし、フレームにはめ込む画像やテキストであってもよい。この点は、以降の説明で表示データと記載した箇所についても同様である。
ユーザ端末20は、表示データを受信すると、トップページP1を表示させる(S103)。以降、ユーザは、ユーザ端末20から、好きな検索条件を入力することができる。ここでは、ユーザが、入力フォームF10にクエリとして用いられる文字情報を入力する場合を説明する。
ユーザ端末20は、入力フォームF10に入力された文字情報をクエリとする検索要求を送信する(S104)。S104においては、ユーザ端末20は、ユーザが入力した文字情報を入力フォームF10に反映し、検索の実行を指示するための所定の操作が行われた場合に検索要求を送信する。検索要求には、入力フォームF10にユーザが入力した文字情報が含まれるものとする。
サーバ10においては、検索要求を受信すると、CPU11は、ユーザが入力した文字情報をクエリとし、商品タイトルをインデックスとして、商品データベースDBを検索する(S105)。S105においては、CPU11は、先述したようなあいまい検索を実行し、検索結果を取得する。
CPU11は、商品データベースDBに基づいて、S105の検索でヒットした商品ページのリンク情報を取得する(S106)。S106においては、CPU11は、検索結果にヒットした商品ページの店舗名、商品タイトル、価格、商品画像、及びURLといった情報に基づいて、リストL21に埋め込むリンク情報を取得する。
CPU11は、ユーザが入力した文字情報をクエリとし、特徴情報をインデックスとして、商品データベースDBを検索する(S107)。S107における検索方法自体は、S105と同じであってよいが、インデックスとして特徴情報が用いられる点でS105とは異なる。
CPU11は、商品データベースDBに基づいて、S107の検索でヒットした商品のクーポン情報I22を取得する(S108)。S108においては、CPU11は、検索結果にヒットした商品の店舗ID、商品ID、店舗名、商品タイトル、商品画像、及びクーポンの内容に基づいて、クーポン情報I22を取得する。
CPU11は、S106で取得したリンク情報と、S108で取得したクーポン情報I22と、に基づいて、検索結果ページP2の表示データをユーザ端末20に送信する(S109)。
ユーザ端末20は、表示データを受信すると、検索結果ページP2を表示させる(S110)。検索結果ページP2が表示されると、ユーザは、リストL21内のリンク情報を選択する操作、又は、クーポン情報I22を選択する操作をすることができる。
図12に移り、ユーザ端末20は、ユーザの操作を特定する(S111)。ユーザがリストL21内のリンク情報を選択した場合(S111;リンク情報)、CPU11は、サーバ10に対し、ユーザにより選択されたリンク情報が示す商品ページの表示要求を送信する(S112)。表示要求には、表示させる商品ページの識別情報(例えば、URL)が含まれるものとする。
サーバ10においては、表示要求を受信すると、CPU11は、商品データベースDBに基づいて、商品ページP3の表示データをユーザ端末20に送信する(S113)。S113においては、CPU11は、表示要求に含まれる識別情報が示す商品ページP3のHTMLデータ等を送信する。
CPU11は、ユーザにより選択された商品ページの商品タイトルと、ユーザにより入力されたクエリと、の組み合わせを教師データDTに記録する(S114)。S114においては、CPU11は、商品データベースDBを参照し、ユーザにより選択された商品ページの商品タイトルを特定する。そして、CPU11は、当該特定した商品タイトルと、S105において受信したクエリの文字情報と、の組み合わせを教師データDTに記録する。
ユーザ端末20は、表示データを受信すると、商品ページP3を表示させ(S115)、本処理は終了する。なお、ユーザがトップページP1に戻る操作をした場合には、S101に戻り、ユーザが検索結果ページP2に戻る操作をした場合には、S111の処理に戻る。
一方、S111において、ユーザがクーポン情報I22を選択した場合(S111;クーポン情報)、CPU11は、サーバ10に対し、ユーザにより選択されたクーポン情報I22の獲得要求を送信する(S116)。獲得要求には、獲得対象のクーポンの識別情報(例えば、商品ID)が含まれるものとする。
サーバ10においては、取得要求を受信すると、CPU11は、ユーザがクーポンを獲得する処理を実行する(S117)。S117においては、ユーザが選択したクーポン情報I22の識別情報を、ユーザIDに関連付けることによって、ユーザにクーポンを獲得させる。
CPU11は、学習機105を学習させる所定のタイミングが訪れたか否かを判定する(S118)。S118においては、例えば、CPU11は、検索システム1の管理者からの所定の要求を受信したか否かを判定したり、所定の日時が訪れたか否かを判定したりする。
所定のタイミングが訪れたと判定された場合(S118;Y)、CPU11は、教師データDTに基づいて学習機105を学習させる(S119)。S119においては、CPU11は、BPTT法等を利用して、学習機105のエンコーダE及びデコーダDの内部パラメータを変更する。一方、所定のタイミングが訪れたと判定されない場合(S118;N)、本処理は終了する。
[4−2.インデックス登録処理]
図13は、インデックス登録処理の一例を示すフロー図である。図13に示す処理は、CPU11がメモリ12に記憶されたプログラムに従って動作し、店舗端末30が自身に記憶されたプログラムに従って動作することによって実行される。下記に説明する処理は、図6に示す機能ブロックにより実行される処理の一例である。
図13に示すように、まず、店舗端末30は、サーバ10に対し、商品登録ページP4の表示要求を送信する(S201)。例えば、商品登録ページP4の表示要求は、所定のログイン処理が実行された後に、店舗の担当者が商品登録ページP4のリンクを選択する操作をした場合に送信される。
サーバ10においては、表示要求を受信すると、CPU11は、商品登録ページP4の表示データをユーザ端末20に送信する(S202)。商品登録ページP4のHTMLデータ等は、予めメモリ12に記憶されているものとする。
店舗端末30は、表示データを受信すると、商品登録ページP4を表示させる(S203)。商品登録ページP4が表示されると、ユーザは、入力フォームF40〜F44等から商品情報やURLなどの情報を入力したり、ボタンB45の選択をしたりすることができる。
店舗端末30は、入力フォームF40〜F44等に入力された商品情報等の登録要求を送信する(S204)。登録要求には、商品登録ページP4に入力された情報が含まれるものとする。
サーバ10においては、登録要求を受信すると、CPU11は、受信した情報に基づいて、商品ページを商品データベースDBに追加する(S205)。S205においては、CPU11は、商品データベースDBに新たなレコードを生成し、当該レコードに商品情報やURLなどを格納する。
CPU11は、入力フォームF40に入力された商品タイトルを学習機105に入力する(S206)。S206においては、CPU11は、商品タイトルを複数の単語に分割し、各単語を順番に学習に入力する。この流れは、図10を参照して説明した通りである。
CPU11は、学習機105から出力された特徴情報を取得して商品データベースDBに登録し(S207)、本処理は終了する。S207においては、CPU11は、学習機105から出力された複数の単語を特徴情報として商品データベースDBに登録する。以降、当該登録された特徴情報は、検索時にインデックスとして用いられることになる。
以上説明した検索システム1によれば、商品ページの商品タイトルを学習機105に入力すると、過去にクエリとして使用された文字情報が出力され、当該文字情報が商品ページに関連付けられて登録されるので、まだ選択されていない商品ページであっても、その検索を学習機105により補助し、検索精度を高めることができる。また例えば、従来技術として説明したクエリに対して商品ページを返す学習機105は、検索のたびに学習機105の処理を実行する必要があるので、サーバ10による高速な応答が困難であるが、検索システム1は、事前に特徴情報が登録されており、検索のたびに学習機105の処理を実行する必要がなく、検索結果を返す処理を高速化することができる。
また、学習機105から出力された文字情報をインデックスとして利用することで、検索の精度を高めることができる。例えば、実施形態のように、店舗が商品タイトルを自由に入力する場合には、適切なインデックスが商品ページに登録されない可能性がある。この点、検索システム1は、過去にユーザが実際に入力した文字情報(クエリリスト)がインデックスとして登録されるので、適切なインデックスを登録することができる。
また、第1のインデックスとして利用される商品タイトルを学習機105に入力し、学習機105から取得された文字情報を第2のインデックスとすることで、商品ページのインデックスのバリエーションを増やすことができ、検索の精度を効果的に高めることができる。
また、ユーザにより選択された商品ページの商品タイトルと、クエリとして用いられた文字情報と、の組み合わせを教師データDTに記録しておき、所定のタイミングが訪れた場合に教師データDTに基づく学習機105の学習が行われることで、サーバ10の処理負荷を軽減することができる。
また、再帰型ニューラルネットワークモデル、長・短期記憶モデル、又はシーケンス変換モデルに基づく学習機105を利用することで、不定長の商品タイトルが入力されたとしても、不定長の特徴情報を出力することができる。また、語順に応じた特徴情報を出力することができる。
また、新たな商品ページが追加される場合に、当該新たな商品ページが学習機105に入力されるので、新たな商品ページに対して、学習機105から出力された文字情報を関連付けて登録することができる。
また、商品ページの第1のインデックスである商品タイトルに基づいて第1の検索結果を提供し、第2のインデックスである特徴情報に基づいて第2の検索結果を提供することで、ユーザに多様な情報を提供することができる。
また、商品ページの第1のインデックスである商品タイトルに基づいて、商品ページを表示させるためのリストL21を提供し、第2のインデックスである特徴情報に基づいてクーポン情報I22を提供することで、ユーザに多様な情報を提供することができる。
[5.変形例]
なお、本発明は、以上に説明した実施形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
例えば、実施形態では、所定のタイミングが訪れた場合に学習機105の学習が実行される場合を説明したが、学習部104は、ユーザにより商品ページが選択されるたびに、実施形態で説明した関係を学習機105に学習させてもよい。この場合、ユーザが選択した商品ページの商品タイトルと、クエリとして用いられた文字情報と、の組み合わせを蓄積しておいて一度に学習させるのではなく、学習部104は、ユーザにより商品ページが選択された場合に、その都度、学習機105の学習を実行してもよい。
上記変形例によれば、ユーザにより商品ページが選択されるたびに、随時学習機105に学習させることで、学習機105の精度を高めることができる。
また例えば、実施形態では、データ項目が商品に関する商品ページである場合を説明したが、データ項目はサービスに関するページであってもよい。この場合、検索部101は、サービスに関するページを表示させるための検索結果をユーザに提供してもよいし、サービスのクーポンを付与するための検索結果をユーザに提供してもよい。サービスは、任意の内容であってよく、例えば、旅行予約サービス、保険申し込みサービス、又は金融サービスと言った任意のサービスに関するページを表示させる場合に、実施形態で説明したような処理が行われてもよい。
また例えば、実施形態では、登録部108により登録された特徴情報がインデックスとして利用される場合を説明したが、特徴情報は、特にインデックスとして利用されなくてもよい。例えば、類似する商品ページ同士を関連付けるために特徴情報が利用されてもよい。この場合、例えば、特徴情報が示す文字情報が似ている商品ページ同士を関連付けておき、ユーザが選択した商品ページを表示させる場合に、似た商品ページへのリンクをリコメンドとして表示させてもよい。また例えば、学習機105から出力される蓋然性を特徴情報として利用し、蓋然性の値が近い商品ページ同士を関連付けておいてもよい。
また例えば、検索システム1の各機能のうち、検索部101、提供部102、学習部104、取得部107、及び登録部108以外の機能は省略してもよい。例えば、データ100は、検索システム1に含まれている必要はなく、データベースサーバによって実現されてもよい。また例えば、サーバ10で実現されるものとして説明した機能は、ユーザ端末20と店舗端末30との間で分担されるようにしてもよい。

Claims (9)

  1. ユーザにより入力された文字情報をクエリとして、複数のデータ項目が格納されたデータベースを検索する検索手段と、
    前記検索手段により取得された検索結果のうち、前記ユーザにより選択されたデータ項目を前記ユーザに提供する提供手段と、
    前記ユーザにより選択されたデータ項目の第1のインデックスとして定められた文字情報と、クエリとして用いられた文字情報と、の関係を学習機に学習させる学習手段と、
    処理対象のデータ項目の第1のインデックスを前記学習機に入力し、前記処理対象のデータ項目の文字情報を前記学習機から取得する取得手段と、
    前記学習機から取得された文字情報を、前記処理対象のデータ項目の第2のインデックスとして前記データベースに登録する登録手段と、
    を含むことを特徴とする検索システム。
  2. 前記検索システムは、前記ユーザにより選択されたデータ項目の第1のインデックスと、クエリとして用いられた文字情報と、の組み合わせを記録する記録手段を更に含み、
    前記学習手段は、所定のタイミングが訪れた場合に、前記記録手段により記録された組み合わせに基づいて、前記関係を学習機に学習させる、
    ことを特徴とする請求項1に記載の検索システム。
  3. 前記学習手段は、前記ユーザによりデータ項目が選択されるたびに、前記関係を前記学習機に学習させる、
    ことを特徴とする請求項1又は4に記載の検索システム。
  4. 前記学習手段は、再帰型ニューラルネットワークモデル、長・短期記憶モデル、又はシーケンス変換モデルに基づく前記学習機を生成する、
    ことを特徴とする請求項1、4、又は5に記載の検索システム。
  5. 前記検索システムは、前記データベースに新たなデータ項目を追加する追加手段を更に含み、
    前記取得手段は、前記新たなデータ項目の第1のインデックスを前記学習機に入力し、前記新たなデータ項目の文字情報を前記学習機から取得し、
    前記登録手段は、前記学習機から取得された文字情報を、前記新たなデータ項目に関連付けて前記データベースに登録する、
    ことを特徴とする請求項1、4、5、又は6に記載の検索システム。
  6. 前記データベースには、データ項目ごとに、第1のインデックスと、前記登録手段により登録された第2のインデックスと、が登録されており、
    前記検索手段は、前記第1のインデックスに基づいて第1の検索結果を前記ユーザに提供し、前記第2のインデックスに基づいて第2の検索結果を前記ユーザに提供する、
    ことを特徴とする請求項1、4、5、6、又は7に記載の検索システム。
  7. 前記データ項目は、商品又はサービスに関するデータ項目であり、
    前記検索手段は、前記第1のインデックスに基づいて、商品又はサービスのページを表示させるための第1の検索結果を前記ユーザに提供し、前記第2のインデックスに基づいて、商品又はサービスのクーポンを付与するための第2の検索結果を前記ユーザに提供する、
    ことを特徴とする請求項8に記載の検索システム。
  8. ユーザにより入力された文字情報をクエリとして、複数のデータ項目が格納されたデータベースを検索する検索ステップと、
    前記検索ステップにより取得された検索結果のうち、前記ユーザにより選択されたデータ項目を前記ユーザに提供する提供ステップと、
    前記ユーザにより選択されたデータ項目の第1のインデックスとして定められた文字情報と、クエリとして用いられた文字情報と、の関係を学習機に学習させる学習ステップと、
    処理対象のデータ項目の第1のインデックスを前記学習機に入力し、前記処理対象のデータ項目の文字情報を前記学習機から取得する取得ステップと、
    前記学習機から取得された文字情報を、前記処理対象のデータ項目の第2のインデックスとして前記データベースに登録する登録ステップと、
    を含むことを特徴とする検索方法。
  9. ユーザにより入力された文字情報をクエリとして、複数のデータ項目が格納されたデータベースを検索する検索手段、
    前記検索手段により取得された検索結果のうち、前記ユーザにより選択されたデータ項目を前記ユーザに提供する提供手段、
    前記ユーザにより選択されたデータ項目の第1のインデックスとして定められた文字情報と、クエリとして用いられた文字情報と、の関係を学習機に学習させる学習手段、
    処理対象のデータ項目の第1のインデックスを前記学習機に入力し、前記処理対象のデータ項目の文字情報を前記学習機から取得する取得手段、
    前記学習機から取得された文字情報を、前記処理対象のデータ項目の第2のインデックスとして前記データベースに登録する登録手段、
    としてコンピュータを機能させるためのプログラム。
JP2019515557A 2018-03-16 2018-03-16 検索システム、検索方法、及びプログラム Active JP6560843B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/010554 WO2019176102A1 (ja) 2018-03-16 2018-03-16 検索システム、検索方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP6560843B1 true JP6560843B1 (ja) 2019-08-14
JPWO2019176102A1 JPWO2019176102A1 (ja) 2020-04-16

Family

ID=67614875

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019515557A Active JP6560843B1 (ja) 2018-03-16 2018-03-16 検索システム、検索方法、及びプログラム

Country Status (4)

Country Link
US (1) US20210056149A1 (ja)
EP (1) EP3731108A4 (ja)
JP (1) JP6560843B1 (ja)
WO (1) WO2019176102A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102638265B1 (ko) * 2023-09-25 2024-02-20 주식회사 로이드케이 인공신경망을 이용한 컴퓨팅 환경 기반의 검색 엔진 구축 방법 및 장치

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115952175B (zh) * 2023-03-14 2023-05-30 乐山师范学院 一种数据库索引构建方法、装置、计算机设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009026195A (ja) * 2007-07-23 2009-02-05 Yokohama National Univ 商品分類装置、商品分類方法及びプログラム
JP2009157442A (ja) * 2007-12-25 2009-07-16 Toshiba Corp データ検索装置および方法
JP2010271903A (ja) * 2009-05-21 2010-12-02 Seiko Epson Corp 画像処理方法及び装置、並びに、そのためのコンピュータープログラム
WO2015140922A1 (ja) * 2014-03-18 2015-09-24 楽天株式会社 情報処理システム、情報処理方法、および情報処理プログラム
JP2018032304A (ja) * 2016-08-26 2018-03-01 ヤフー株式会社 情報解析装置、情報解析方法、および情報解析プログラム

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6871198B2 (en) * 2001-12-21 2005-03-22 Requisite Technology, Inc. Composing and cataloging item configuration data
US7237187B2 (en) * 2002-01-31 2007-06-26 Requisite Technology, Inc. Interactively comparing records in a database
JP2003228569A (ja) 2002-02-04 2003-08-15 Nippon Telegraph & Telephone East Corp メタデータ付与方法およびメタデータ付与装置
US7555490B1 (en) * 2002-06-17 2009-06-30 Click Commerce, Inc. Text-based searches of numeric data
US7243099B2 (en) * 2003-12-23 2007-07-10 Proclarity Corporation Computer-implemented method, system, apparatus for generating user's insight selection by showing an indication of popularity, displaying one or more materialized insight associated with specified item class within the database that potentially match the search
US7685510B2 (en) * 2004-12-23 2010-03-23 Sap Ag System and method for grouping data
US7779011B2 (en) * 2005-08-26 2010-08-17 Veveo, Inc. Method and system for dynamically processing ambiguous, reduced text search queries and highlighting results thereof
US20070208730A1 (en) * 2006-03-02 2007-09-06 Microsoft Corporation Mining web search user behavior to enhance web search relevance
US20090248633A1 (en) * 2008-03-31 2009-10-01 Erik Ojakaar System and method for direct display of coupons within search result sets
WO2011019444A1 (en) * 2009-06-11 2011-02-17 Chacha Search, Inc. Method and system of providing a search tool
US20110082734A1 (en) * 2009-10-02 2011-04-07 Haining Zhang Locating bundled items
US20110106600A1 (en) * 2009-10-30 2011-05-05 Raza Ali Malik Methods and systems for contextual coupon display and selection
US8494901B2 (en) * 2010-02-17 2013-07-23 Ebay Inc. Methods and systems for multi-merchant couponing
US8352468B2 (en) * 2010-04-07 2013-01-08 Apple Inc. Top search hits based on learned user preferences
US10204163B2 (en) * 2010-04-19 2019-02-12 Microsoft Technology Licensing, Llc Active prediction of diverse search intent based upon user browsing behavior
US20120010996A1 (en) * 2010-07-07 2012-01-12 Microsoft Corporation Recommendations and targeted advertising based upon directions requests activity and data
US20120084248A1 (en) * 2010-09-30 2012-04-05 Microsoft Corporation Providing suggestions based on user intent
US20120269116A1 (en) * 2011-04-25 2012-10-25 Bo Xing Context-aware mobile search based on user activities
US20120284107A1 (en) * 2011-05-03 2012-11-08 Russell Gernaat Digital coupon clearinghouse
US9087048B2 (en) * 2011-06-10 2015-07-21 Linkedin Corporation Method of and system for validating a fact checking system
US20130254176A1 (en) * 2012-03-21 2013-09-26 Apple Inc. Systems and Methods for Generating Search Queries
US20140280339A1 (en) * 2013-03-13 2014-09-18 Microsoft Corporation Integrating offers
US9595048B2 (en) * 2014-05-30 2017-03-14 Excalibur Ip, Llc Systems and methods for advertising using sponsored verbs and contexts
US20160048875A1 (en) * 2014-08-12 2016-02-18 Yahoo! Inc. Entity based search advertising within a modular search object framework
US10289961B2 (en) * 2014-11-24 2019-05-14 International Business Machines Corporation Presenting anticipated user search query results prompted by a trigger
US20180052824A1 (en) * 2016-08-19 2018-02-22 Microsoft Technology Licensing, Llc Task identification and completion based on natural language query
US20180113919A1 (en) * 2016-10-24 2018-04-26 Google Llc Graphical user interface rendering predicted query results to unstructured queries
US10747761B2 (en) * 2017-05-18 2020-08-18 Salesforce.Com, Inc. Neural network based translation of natural language queries to database queries
US10614061B2 (en) * 2017-06-28 2020-04-07 Salesforce.Com, Inc. Predicting user intent based on entity-type search indexes
US10860674B2 (en) * 2017-07-25 2020-12-08 Cake Technologies, Inc. Page compete
US11544374B2 (en) * 2018-05-07 2023-01-03 Micro Focus Llc Machine learning-based security threat investigation guidance

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009026195A (ja) * 2007-07-23 2009-02-05 Yokohama National Univ 商品分類装置、商品分類方法及びプログラム
JP2009157442A (ja) * 2007-12-25 2009-07-16 Toshiba Corp データ検索装置および方法
JP2010271903A (ja) * 2009-05-21 2010-12-02 Seiko Epson Corp 画像処理方法及び装置、並びに、そのためのコンピュータープログラム
WO2015140922A1 (ja) * 2014-03-18 2015-09-24 楽天株式会社 情報処理システム、情報処理方法、および情報処理プログラム
JP2018032304A (ja) * 2016-08-26 2018-03-01 ヤフー株式会社 情報解析装置、情報解析方法、および情報解析プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102638265B1 (ko) * 2023-09-25 2024-02-20 주식회사 로이드케이 인공신경망을 이용한 컴퓨팅 환경 기반의 검색 엔진 구축 방법 및 장치

Also Published As

Publication number Publication date
EP3731108A1 (en) 2020-10-28
EP3731108A4 (en) 2020-11-18
US20210056149A1 (en) 2021-02-25
WO2019176102A1 (ja) 2019-09-19
JPWO2019176102A1 (ja) 2020-04-16

Similar Documents

Publication Publication Date Title
US10728203B2 (en) Method and system for classifying a question
JP6246259B2 (ja) デジタル・ソーシャル・ネットワーク上でセマンティック操作を実行するためのシステム及び方法
US10180979B2 (en) System and method for generating suggestions by a search engine in response to search queries
TWI557664B (zh) Product information publishing method and device
TWI471737B (zh) 具搜尋結果之蹤跡識別系統與方法
WO2022142519A1 (zh) 信息推荐方法、装置、电子设备和存储介质
US20160344828A1 (en) Enhanced online user-interaction tracking
WO2023108980A1 (zh) 基于文本对抗样例的信息推送方法及装置
US20160299951A1 (en) Processing a search query and retrieving targeted records from a networked database system
WO2021129122A1 (zh) 书籍查询页面的展示方法、电子设备及计算机存储介质
US20140214548A1 (en) User Profiling Using Submitted Review Content
US11392589B2 (en) Multi-vertical entity-based search system
CN111612588A (zh) 商品呈现方法及装置、计算设备、计算机可读存储介质
JP6560843B1 (ja) 検索システム、検索方法、及びプログラム
US10997254B1 (en) 1307458USCON1 search engine optimization in social question and answer systems
Talha et al. Deep learning in news recommender systems: A comprehensive survey, challenges and future trends
JP2021056591A (ja) 教師データ生成システム、教師データ生成方法、及びプログラム
KR102451020B1 (ko) 웹 크롤링 기능을 이용한 기업용 지능형 콘텐츠 큐레이션 방법
JP6320465B2 (ja) 1人以上のユーザに関心ある情報を提供する方法及び装置
CN112418333A (zh) 酒类数据推送方法、装置、计算机设备和存储介质
Kalou et al. Semantic web rules and ontologies for developing personalised mashups
CN112949852B (zh) 训练模型的方法、装置、电子设备及可读存储介质
KR102298407B1 (ko) 전문가 상담 서비스 시스템과 방법 및 이를 위한 컴퓨터 프로그램
JP7037778B2 (ja) 検索装置および方法
WO2023079703A1 (ja) 処理実行システム、処理実行方法、及びプログラム

Legal Events

Date Code Title Description
A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A527

Effective date: 20190319

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190319

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20190319

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20190708

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190716

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190719

R150 Certificate of patent or registration of utility model

Ref document number: 6560843

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250