以下、本開示の実施のための具体的な内容を添付図面に基づいて詳細に説明する。ただし、
以下の説明では、本開示の要旨を不要に不明瞭にする恐れがある場合、公知の機能や構成に関する具体的な説明は省略する。
添付図面において、同一又は対応する構成要素には同一の参照符号が付与される。また、以下の実施例の説明において、同一又は対応する構成要素の重複記述は省略され得る。しかしながら、構成要素に関する記述が省略されても、そのような構成要素がある実施例に含まれないものと意図してはならない。
開示の実施例の利点及び特徴、そしてそれらを達成する方法は、添付図面に基づいて後述する実施例を参照すれば明確になる。しかしながら、本開示は、以下で開示される実施例に限定されず、互いに異なる多様な形態で具現化され得る。ただ、本実施例は、本開示が完全になるようにし、本開示が通常の技術者に発明のカテゴリを正確に認識させるために提供されるだけである。
本明細書で使用される用語について簡略に説明し、開示の実施例について具体的に説明する。本明細書で使用される用語は、本開示での機能を考慮しつつ、可能な限り現在広く使用される一般的な用語を選択したが、これは関連分野に従事する技術者の意図又は判例、新技術の出現などにより変化し得る。また、特定の場合は出願人が任意で選定した用語もあり得るが、これらの意味は当該発明の説明の部分において詳細に記載する。よって、本開示で使用される用語は、単純な用語の名称ではなく、その用語が持つ意味と本開示の全般にわたった内容に基づいて定義されるべきである。
本明細書では、文脈上において明確に特定しない限り、単数の表現は複数の表現を含み、複数の表現は単数の表現を含むことができる。
明細書の全般に渡り、ある部分がある構成要素を‘含む’とする際、これは特に反対の記載がない限り、他の構成要素を除くものではなく、他の構成要素をさらに含むこともできることを意味する。
また、明細書で使用される‘モジュール’又は‘部(ユニット)’という用語は、ソフトウェアやハードウェア構成要素を意味し、‘モジュール’又は‘部’はある役割を遂行する。しかしながら、‘モジュール’又は‘部’はソフトウェアやハードウェアに限定される意味ではない。‘モジュール’又は‘部’は、アドレッシング(addressing:アドレス指定)可能な保存媒体にあるように構成してもよく、一つ又はそれ以上のプロセッサを再生させるように構成してもよい。したがって、一例として、‘モジュール’又は‘部’は、ソフトウェア構成要素、オブジェクト指向ソフトウェア構成要素、クラス構成要素、タスク構成要素のような構成要素、並びに、プロセス、関数、カテゴリ、プロシージャー、サブルーチン、プログラムコードのセグメント、ドライバー、ファームウェア、マイクロコード、回路、データ、データベース、データ構造、テーブル、アレイ又は変数のうちで少なくとも一つを含むことができる。構成要素と‘モジュール’又は‘部’は、内部で提供される機能がさらに小さい数の構成要素及び‘モジュール’又は‘部’で結合されたり、追加的な構成要素と‘モジュール’又は‘部’にさらに分離されたりできる。
本開示の一実施例によれば、‘モジュール’又は‘部’はプロセッサ及びメモリで具現化され得る。‘プロセッサ’は汎用プロセッサ、中央処理装置(CPU)、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、制御器、マイクロ制御器、状態マシンなどを含むように広く解釈されるべきである。いくつかの環境では、‘プロセッサ’は特定用途向け半導体(ASIC)、プログラム可能なロジックデバイス(PLD)、フィールドプログラム可能なゲートアレイ(FPGA)等を称することもできる。‘プロセッサ’は、例えば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサの組合せ、DSPコアと結合した一つ以上のマイクロプロセッサの組合せ、若しくは、任意の他のそのような構成等の組合せのような処理デバイスの組合せを称することもできる。また、‘メモリ’は電子情報を保存可能な任意の電子コンポーネントを含むように広く解釈されるべきである。‘メモリ’は、RAM(Random Access Memory)、ROM(Read Only Memory)、NVRAM(Non-Volatile Random Access Memory)、PROM(Programmable Read-Only Memory)、EPROM(Erasable Programmable Read-Only Memory)、EEPROM(Electrically Erasable Programmable Reda-Only Memory)、フラッシュメモリ、磁気又は光学データ保存装置、レジスタなどのようなプロセッサ−読み取り可能な媒体の多様な類型を称することもできる。プロセッサがメモリから情報を読み取り/読み取ったりメモリに情報を記録できる場合、メモリはプロセッサと電子通信状態にあると言われる。プロセッサに集積されたメモリはプロセッサと電子通信状態にある。
本開示において、‘ユーザクエリ’は、検索エンジンを用いて入力及び検索できるテキスト(例えば、単語、文句、文章等)を含むことのできるが、これに限定されるものではない。例えば、ユーザクエリは、ユーザがウェブブラウザ、検索アプリケーション又はショッピングアプリケーションのような検索プログラムの入力UIを介して入力するテキストを含んだり、ユーザが検索プログラムで提供するクエリリストからクリックにより選択できるテキストを含んだりできる。他の例において、ユーザクエリは、テキストに限定されず、イメージ、映像、音声、声などのようなマルチメディアコンテンツから抽出できるテキスト又は情報を含むことができる。
本開示において、‘商品カテゴリ’は、商品を分類するために決定された種類、類型、カテゴリ又はこれと類似な商品情報を示すことができる。商品カテゴリは、商品が属するカテゴリの大きさによって大分類、中分類、中小分類及び小分類などのように段階別に分けられる。また、商品カテゴリのうち、大分類は一つ以上の中分類を含むことができ、中分類は一つ以上の中小分類又は小分類を含むことができる。例えば、ファッション商品の大分類である‘ファッション’は‘メンズファッション’、‘レディースファッション’などのような中分類を含むことができ、その中分類のうち、‘レディースファッション’は‘ワンピース’、‘ニット/セーター’などのような中小分類を含むことができる。商品検索のためのユーザクエリが、前述した段階別商品カテゴリのうちでどれと関連するか決定され、当該段階別商品カテゴリに属する商品を検索すれば、ユーザクエリに含まれたユーザの意図に近い商品検索結果が導出できる。
本開示において、‘統計基盤分類モデル’は、公知のラベル付き(labeling)データに対する関連性(relevance)に基づき、ラベル付きにならない新しい情報を分類するように学習さされた分類器(classifier)又は分類モデルを一般的に示すことができる。例えば、統計基盤分類モデルは、言語モデル(language model)、SVM(support vector machine)、最大エントロピーモデル(maximum entropy model)、CRFモデル(conditional random field model)、FFNN(feed-forward neural network)、RNN(recurrent neural network)、GRU(gated recurrent unit)、LSTM(long short-term memory)、トランスフォーマーモデル(transformer model)、BERTモデル(bidirectional encoder representations from transformers model)などのような多様な機械学習又は人工ニューラルネットワーク(neural network)モデルの何れか一つであり得る。
本開示において、‘埋め込み(embedding)’は、カテゴリ変数又は離散変数(categorical or discrete variable)を連続ベクトル(continuous vector)に変換する技法を示すことができる。埋め込みは、ユーザクエリのようなカテゴリ変数を連続ベクトルに変換することにより、その情報の次元を縮小し、意味を導出するのに使用できる。また、ユーザクエリが埋め込みベクトル空間でベクトルとして表現される場合、そのベクトル空間上における近所の(空間的に近い)ベクトル等は類似又は関連した特性を共有できる。例えば、ユーザクエリをベクトル空間に埋め込む方法は、人工ニューラルネットワークの学習により具現化できる。
図1は、本開示の一実施例に係るショッピング検索のための商品カテゴリ抽出方法によりユーザクエリ110から抽出された商品カテゴリ120を反映した検索結果130を表示する画面を例示する図である。同図に示すように、ユーザがショッピングサイトの検索窓にユーザクエリ110を入力する場合、当該ユーザクエリ110から抽出した商品カテゴリ120を反映した検索結果130が出力され得る。検索結果130には、検索の商品を示すイメージや名称132、136及び商品カテゴリ134、138などが含まれる。例えば、ユーザが‘ニットワンピース’を検索クエリとして入力した場合、当該クエリに含まれた商品である‘ワンピース’の商品カテゴリ120(例えば、大分類であるファッション、中分類であるレディースファッション、小分類であるワンピース)と関連する商品132、136が、検索結果130の上部に表示されるように検索順位が調整され得る。すなわち、検索結果130には、多様な商品のレディースファッションのうち、ワンピース商品に該当する‘ワンピース1’及び‘ワンピース2’である商品132、136が、検索結果130の上部に優先的に表示され得る。したがって、ユーザは、検索結果130を介して、本人が入力した商品検索クエリから抽出できる商品カテゴリ120と関連する商品132、136の情報を容易且つ迅速に確認できる。また、ユーザは、必要に応じて、当該商品132、136の何れか一つを選択又はクリックすることで、選択の商品に関するより具体的な情報を取得したり、オンライン購買を実行したりできる。
一実施例において、商品カテゴリ120は、大分類、中分類、中小分類及び小分類などのように既定の数の段階に分割されたカテゴリ群122、124、126を含むことができる。例えば、図1に示すように 第1の段階カテゴリ群であるカテゴリ1(122)は広い範囲の商品を示す‘ファッション’、‘マタニティ/育児’などを含むことができる。また、第1の段階カテゴリ群より狭い範囲の商品を示す第2の段階カテゴリ群であるカテゴリ2(124)は‘レディースファッション’、‘メンズファッション’などを含むことができる。また、第2の段階カテゴリ群より狭い範囲の商品を示す第3の段階カテゴリ群であるカテゴリ3(126)は‘ワンピース’、‘ブラウス/シャツ’などを含むことができる。このとき、カテゴリ3(126)はカテゴリ2(124)の下位カテゴリ群であり得、カテゴリ2(124)はカテゴリ1(122)の下位カテゴリ群であり得る。
一実施例において、ユーザクエリ110がショッピングサイト又は統合検索サイトの検索窓から入力された場合、商品カテゴリ抽出方法により、当該ユーザクエリ110に対する段階別カテゴリ群122、124、126に含まれた各々の商品カテゴリ(例えば、‘ファッション’、‘マタニティ/育児’、‘レディースファッション’、‘メンズファッション’‘ワンピース’、‘ブラウス/シャツ’など)の関連性又は関連確率を算出できる。商品カテゴリ抽出方法は、ユーザクエリ110が‘ニットワンピース’である場合、ファッションに関連する複数の商品カテゴリだけでなく、家電製品、ファッション雑貨、生活健康用品などのような他の複数の商品カテゴリに対しても関連性を算出できる。ユーザクエリ110が‘ニットワンピース’である場合、ワンピース種類のレディースファッションに関連する大分類、中分類及び小分類のカテゴリ(例えば、‘ファッション’、‘レディースファッション’、‘ワンピース’)に対する関連性が最も高く算出されるが、ファッションの他の商品カテゴリや他の種類の商品に関連する商品カテゴリに対する関連性は低く算出されることができる。
一方、ユーザクエリ110に対する商品検索結果130を商品データベースから得られる。ユーザクエリ110による商品検索は、商品データベースに保存された商品情報のうち、ユーザクエリ110と関連性の高い商品情報を抽出することにより実行できる。このように抽出された商品検索結果130には、ユーザクエリ110との関連性の高い商品情報の方が、関連性の低い商品情報よりも上位に表示され得る。また、前述したように算出されたユーザクエリ110に対する商品カテゴリの関連性(又は関連点数)に基づいて商品検索結果130による商品検索順位を調整できる。これによれば、ユーザクエリ110が‘ニットワンピース’である場合、商品検索結果130にはレディースファッションと関連する商品カテゴリに属する商品132、136の情報が上位に表示され得る。
一実施例によれば、ユーザクエリ110及び段階別カテゴリ群122、124、126に含まれた各々の商品カテゴリの関連性は関連点数を算出して決定され得る。ユーザクエリ110及び商品カテゴリの関連点数は当該ユーザクエリ110が当該商品カテゴリと関連する確率値であり得る。例えば、ユーザクエリ110として‘ニットワンピース’が入力された場合、‘ニットワンピース’及びカテゴリ1(122)に含まれる商品カテゴリである‘ファッション’の関連点数は‘0.4’であり得、‘ニットワンピース’及び商品カテゴリである‘マタニティ/育児’の関連点数は‘0.1’であり得る。これにより、カテゴリ1(122)の商品カテゴリのうち、関連点数が最も高い‘ファッション’カテゴリに属する商品が検索結果130に表示され得る。
他の実施例において、段階別カテゴリ群122、124、126に含まれた各々の商品カテゴリのうち、ユーザクエリ110と最も関連性の高い商品カテゴリに全部属する商品が検索結果130に表示され得る。例えば、ユーザクエリ110として‘ニットワンピース’が受信された場合、カテゴリ1(122)に含まれた商品カテゴリのうち、最も関連点数が高い‘ファッション’カテゴリと、カテゴリ2(124)に含まれた商品カテゴリのうち、最も関連点数が高い‘レディースファッション’カテゴリと、カテゴリ3(126)に含まれた商品カテゴリのうち、最も関連点数が高い‘ワンピース’カテゴリとに全部該当する商品が検索結果130に表示され得る。前記のような構成により、受信されたユーザクエリ110からユーザが所望するカテゴリの商品を推定して、検索結果130の上部に表示することで、検索結果クリック率を向上させることができる。
また、ユーザクエリ110に対する商品カテゴリ抽出方法によれば、ユーザクエリ110を音節(syllable)及び/又は形態素(morpheme)の単位に分割して分析することで、ユーザクエリ110に対する複数の商品カテゴリ120の関連点数を算出できる。一実施例において、商品カテゴリ抽出方法は、ユーザクエリ110を音節の単位に分割して分析することで、ユーザクエリ110に対する複数の商品カテゴリ120の関連点数を算出できる。また、商品カテゴリ抽出方法は、ユーザクエリ110を形態素の単位に分割して分析することで、ユーザクエリ110に対する複数の商品カテゴリ120の関連点数を算出できる。以上のように抽出された2つの関連点数は、合算又は結合により最終の関連点数として用いられる。
ユーザクエリ110に対する商品カテゴリ抽出方法は、統計基盤分類モデルにより商品カテゴリ120の関連点数を算出できる。統計基盤分類モデルは、ユーザクエリ110が複数の商品カテゴリ120と関連する確率を算出するように学習できる。一実施例において、統計基盤分類モデルは、音節及び/又は形態素の単位に分割されたユーザクエリ110を入力として、可能な全ての商品カテゴリ120と関連する確率(又は関連点数)を算出するように学習できる。例えば、ユーザクエリ110として‘ニットワンピース’が入力された場合、これと関連する大分類、中分類及び小分類カテゴリである‘ファッション’、‘レディースファッション’及び‘ワンピース’に該当する確率値が、他の商品カテゴリに該当する確率値よりも大きく算出され得る。
以上で説明した方法により、統計基盤分類モデルにより算出された商品カテゴリ120の関連点数に基づき、検索結果130に含まれた商品132、136の検索順位を調整できる。商品検索順位(又は商品検索順位点数)は、ユーザクエリ110に対する商品名又は商品カテゴリの語彙類似度、商品に対するユーザ人気度等に基づいて決定され得る。このとき、各商品132、136の検索順位点数と商品カテゴリの関連点数とが合算又は加重値として適用されて、最終の商品132、136の検索順位点数が決定され得る。一実施例において、ユーザクエリ110に対して算出された商品カテゴリ120の関連点数のうち、最も高い関連点数に基づいて商品132、136の検索順位を調整できる。代案として、ユーザクエリ110に対して算出された商品カテゴリ120の関連点数のうち、上位n個(nは1より大きい整数)の関連点数に基づいて商品132、136の検索順位を調整できる。
他の実施例において、ユーザクエリ110に対する商品カテゴリ抽出方法は、商品データベースから商品情報の商品カテゴリを生成又はアップデートするのに使用される。例えば、商品カテゴリ抽出方法は、商品データベースに保存された商品情報の商品名に基づき、可能な全ての商品カテゴリの関連点数を算出し、最も高い関連点数と関連する商品カテゴリを当該商品情報の商品カテゴリとして保存又はアップデートできる。
図1に示す例は、本開示のショッピング検索のための商品カテゴリ抽出方法によって決定された商品検索結果130又は商品検索順位が、商品検索又はショッピングのためのウェブサイトやアプリケーションを介して提供されることを示しているが、これに限定されるものではない。本開示の多様な実施例による方法は、統合検索サイトの検索サービス又はユーザ端末により実行される検索アプリケーションを介して提供されることもできる。また、図1では、商品カテゴリ120が3つの段階別カテゴリ群122、124、126を含むものと示したが、これに限定されるものではない。商品カテゴリ120は4つ以上の段階別カテゴリ群を含むことができる。また、商品類型別に関連するカテゴリの数が異になり得る。例えば、‘ワンピース’と関連する商品は、大分類である‘ファッション’、中分類である‘レディースファッション’及び小分類である‘ワンピース’の総3つのカテゴリと関連付けられ、‘タブレットPC’と関連する商品は、大分類である‘デジタル/家電’及び小分類である‘タブレットPC’の総2つのカテゴリと関連付けられる。
図2は、本開示の一実施例に係るショッピング検索のための商品カテゴリ抽出方法により算出されたユーザクエリに対する商品カテゴリの関連点数に基づいて調整された商品212、214の検索順位を表示する画面を例示する図である。一実施例において、ユーザクエリが入力された場合、入力されたユーザクエリと関連性がある商品カテゴリに属する商品212、214の検索順位が調整された検索結果220が表示されることができる。同図に示すように、商品212の大分類、中分類及び小分類のカテゴリは、各々‘ファッション’、‘レディース下着/パジャマ’及び‘パジャマ/部屋着’であり得、他の商品214の大分類、中分類及び小分類のカテゴリは、各々‘ファッション’、‘レディースファッション’及び‘ワンピース’であり得る。このとき、カテゴリ関連点数を反映しない既存の検索結果210において、ユーザクエリと同一又は類似の語彙を含む商品212が、他の商品214より上部に表示されることができる。
一方、受信されたユーザクエリの‘ニットワンピース’と段階別カテゴリ群に含まれた商品カテゴリのうち、最も関連点数が高い商品カテゴリは、‘ファッション’、‘レディースファッション’及び‘ワンピース’であり得る。このとき、算出された関連点数に基づき、商品212、214の検索順位を調整する場合、関連点数が高い3つの商品カテゴリに全部属する商品214が、関連点数が高い1つの商品カテゴリ(例えば、‘ファッション’)のみに属する商品212よりも上部に表示されるように、商品検索順位を調整できる。
一実施例において、上位段階のカテゴリ1(例えば、図1の122)に含まれた商品カテゴリのうち、関連点数が最も高い商品カテゴリ(例えば、‘ファッション’)に属する商品212、214が商品検索結果で上部に表示されるように、商品検索順位を調整できる。追加又は代案として、中間段階のカテゴリ2(例えば、図1の124)に含まれた商品カテゴリのうち、関連点数が最も高い商品カテゴリ(例えば、‘レディースファッション’)に属する商品214が他の商品212よりも上位に表示されるように、商品検索順位を調整できる。このように、既定の数の段階別カテゴリ群の一つ以上に含まれた商品カテゴリのうち、関連点数が最も高い一つ以上の商品カテゴリに属する商品が、商品検索結果で上部に表示されるように、商品検索順位を調整できる。
一実施例において、商品212、214の検索順位は、ユーザクエリに対して算出された商品カテゴリの関連点数及び各関連点数の重要性を決定する商品カテゴリ加重値により調整できる。具体的に、ユーザクエリ及び商品名間の語彙類似度、商品212、14に対するユーザ人気度などの要素を考慮して算出された商品適合度点数(又は商品検索順位点数)に、これに基づいて算出された商品カテゴリの関連点数及び商品カテゴリ加重値を乗算した値を加算して、最終の商品検索順位点数を算出できる。例えば、商品214のユーザクエリ及び特定商品名の語彙類似度などを考慮して算出された商品適合度点数は‘0.6’であり、算出されたカテゴリ関連点数は‘0.5’であり、商品カテゴリ加重値が‘0.3’である場合、最終の商品検索順位点数は‘0.6+(0.5×0.3)=0.75’になり得る。このように算出された最終の商品検索順位点数によって商品212、214の検索順位を調整できる。
図3は、本開示の一実施例に係るショッピング検索のための商品カテゴリ抽出サービスを提供するために、複数のユーザ端末310_1、310_2、310_3及び商品カテゴリ抽出サーバ330が通信可能に連結したシステム300を示す概要図である。同図に示すように、システム300は、ショッピング検索のための商品カテゴリ抽出サービスを提供する商品カテゴリ抽出サーバ330と、商品カテゴリ抽出サーバ330にネットワーク320を介して連結した複数のユーザ端末310_1、310_2、310_3と、検索ログデータベース340とを含むことができる。一実施例によれば、商品カテゴリ抽出サーバ330は、商品カテゴリ抽出サービスを提供するためのコンピュータ実行可能なプログラム(例えば、ダウンロード可能なアプリケーション)や、データを保存、提供及び実行できる一つ以上のサーバ装置及び/又はデータベースや、クラウドコンピューティング(cloud computing)サービス基盤の一つ以上の分散コンピュータ装置及び/又は分散データベースを含むことができる。商品カテゴリ抽出サーバ330により提供される商品カテゴリ抽出サービスは、複数のユーザ端末310_1、310_2、310_3の各々に設置された検索アプリケーション又はウェブブラウザを介してユーザに提供され得る。
複数のユーザ端末310_1、310_2、310_3は、ネットワーク320を介して商品カテゴリ抽出サーバ330と通信できる。ネットワーク320は、複数のユーザ端末310及び商品カテゴリ抽出サーバ330間の通信が可能であるように構成できる。ネットワーク320は、設置環境に応じて、例えば、イーサネット(Ethernet)、PLC(Power Line Communication)、電話線通信装置及びRS−serial通信などのような有線ネットワーク、移動通信網、WLAN(Wireless LAN)、Wi−Fi(登録商標)、Bluetooth(登録商標)及びZigBee(登録商標)などのような無線ネットワーク又はその組合せからなることができる。通信方式は制限されず、ネットワーク320を含むことができる通信網(例えば、移動通信網、有線インターネット、無線インターネット、放送網、衛星網等)を活用する通信方式だけでなく、ユーザ端末310_1、310_2、310_3の間の近距離無線通信も含まれる。例えば、ネットワーク320は、PAN(personal area network)、LAN(local area network)、CAN(campus area network)、MAN(metropolitan area network)、WAN(wide area network)、BBN(broadband network)、インターネットなどのネットワークの何れか一つ以上を含むことができる。また、ネットワーク320は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター−バスネットワーク、ツリー又は階層ネットワークなどを含むネットワークトポロジー(network topology)の何れかの一つ以上を含むことができるが、これに制限されるものではない。
図3では、携帯電話やスマートフォン310_1、タブレットコンピュータ310_2及びラップトップ又はデスクトップコンピュータ310_3をユーザ端末の例として示したが、これに限定されず、ユーザ端末310_1、310_2、310_3は、有線及び/又は無線通信が可能であり、検索アプリケーション、モバイルブラウザアプリケーション又はウェブブラウザが設置されて実行できる任意のコンピュータ装置であり得る。例えば、ユーザ端末310は、スマートフォン、携帯電話、ナビゲーション端末機、デスクトップコンピュータ、ラップトップコンピュータ、デジタル放送用端末機、PDA(Personal Digital Assistants)、PMP(Portable Multimedia Player)、タブレットコンピュータ、ゲームコンソール(game console)、ウェアラブルデバイス(wearable device)、IoT(internet of things)デバイス、VR(virtual reality)デバイス及びAR(augmented reality)デバイスなどを含むことができる。また、図2では、3つのユーザ端末310_1、310_2、310_3がネットワーク320を介して商品カテゴリ抽出サーバ330と通信するものと示したが、これに限定されず、異なる数のユーザ端末がネットワーク320を介して商品カテゴリ抽出サーバ330と通信するように構成されることもできる。
一実施例によれば、商品カテゴリ抽出サーバ330は、複数のユーザ端末310_1、310_2、310_3から入力された一つ以上のユーザクエリを受信できる。一実施例によれば、商品カテゴリ抽出サーバ330は、複数のデスクトップ又はラップトップコンピュータ310_3で実行中であるウェブブラウザにより表示された検索サイトの検索エンジンに入力されたユーザクエリを受信できる。他の実施例によれば、商品カテゴリ抽出サーバ330は、複数の携帯電話やスマートフォン及びタブレットコンピュータ310_1、310_2で実行中であるモバイルブラウザアプリケーションにより表示された検索サイトの検索エンジンに入力されたユーザクエリを受信できる。他の実施例によれば、商品カテゴリ抽出サーバ330は、商品を販売するオンラインショッピングサイトの検索エンジンに入力されたユーザクエリを受信できる。
また、商品カテゴリ抽出サーバ330は、受信したユーザクエリに対する複数の商品カテゴリの関連点数を算出できる。一実施例において、商品カテゴリ抽出サーバ330は、商品カテゴリの関連点数を算出するように学習された統計基盤分類モデルを含むことができる。商品カテゴリ抽出サーバ330は、受信したユーザクエリを音節及び/又は形態素の単位に分割し、分割した音節及び/又は形態素の単位のユーザクエリを、関連点数を算出する統計基盤分類モデルの入力として使用できる。また、商品カテゴリ抽出サーバ330は、ネットワーク320を介して連結した検索ログデータベース340から統計基盤分類モデルを学習するための学習データを受信できる。例えば、検索ログデータベース240から受信された学習データは、ユーザクエリ及び当該ユーザクエリに対する商品検索結果のうち、ユーザが選択した商品情報(例えば、特定商品のカテゴリ情報)の対(pair)を含むことができる。
商品カテゴリ抽出サーバ330は、複数の商品カテゴリの一つ以上の上位関連点数と関連する商品カテゴリを抽出し、商品データベース(図示せず)から当該商品カテゴリに属する商品情報を検索できる。このように検索された商品情報の順位は、商品カテゴリの関連点数に基づいて再調整できる。また、商品カテゴリ抽出サーバ330は、上位関連点数と関連する商品カテゴリの重要度を決定する商品カテゴリ加重値及び当該関連点数に基づいて商品検索順位を調整できる。ここで、商品カテゴリ加重値は、商品検索結果に対するユーザの応答(例えば、上位商品検索結果に対するユーザの選択回数)によって変更できる。
図4は、本開示の一実施例に係るユーザ端末310及び商品カテゴリ抽出サーバ330の内部構成を示すブロック図である。ユーザ端末310は、ウェブブラウザ又はアプリケーションが実行可能であり、有/無線通信が可能な任意のコンピュータ装置を示すことができ、例えば、ユーザ端末310は、図3に示す携帯電話やスマートフォン310_1、タブレットコンピュータ310_2、ラップトップ又はデスクトップコンピュータ310_3などを含むことができる。図4に示すように、ユーザ端末310は、メモリ412、プロセッサ414、通信モジュール416及び入出力インタフェース418を含むことができる。これと同様に、商品カテゴリ抽出サーバ330は、メモリ432、プロセッサ434、通信モジュール436及び入出力インタフェース438を含むことができる。図4に示すように、ユーザ端末310及び商品カテゴリ抽出サーバ330は、各々の通信モジュール416、436を用いて、ネットワーク320を介して情報及び/又はデータが通信できるように構成できる。また、入出力装置420は、入出力インタフェース418を介して、ユーザ端末310に情報及び/又はデータを入力したり、ユーザ端末310から生成された情報及び/又はデータを出力したりするように構成できる。
メモリ412、432は、非一時的な任意のコンピュータ可読記録媒体を含むことができる。一実施例によれば、メモリ412、432は、RAM(random access memory)、ROM(read only memory)、ディスクドライブ、SSD(solid state drive)及びフラッシュメモリ(flash memory)などのような永久的な大容量記憶装置(permanent mass storage device)を含むことができる。他の例として、ROM、SSD、フラッシュメモリ及びディスクドライブなどのような永久的な大容量保存装置は、メモリ412、432とは区分される別途の永久保存装置としてユーザ端末310又は商品カテゴリ抽出サーバ330に含まれることができる。また、メモリ412、432には、運営体制と少なくとも一つのプログラムコード(例えば、ユーザ端末310又は商品カテゴリ抽出サーバ330に設置されて駆動される商品カテゴリ抽出方法を実行するためのコード)が保存され得る。
このようなソフトウェア構成要素は、メモリ412、432とは別途のコンピュータ可読記録媒体からローディングできる。このような別途のコンピュータ可読記録媒体は、このようなユーザ端末310及び商品カテゴリ抽出サーバ330に直接連結可能な記録媒体を含むことのできるが、例えば、フロッピードライブ、ディスク、テープ、DVD/CD−ROMドライブ及びメモリカードなどのようなコンピュータ可読記録媒体を含むことができる。他の例として、ソフトウェア構成要素等は、コンピュータ可読記録媒体でない、通信モジュール416、436を介してメモリ412、432にローディングできる。例えば、少なくとも一つのプログラムは、開発者又はアプリケーションの設置ファイルを配信するファイル配信システムが、ネットワーク320を介して提供するファイルにより設置されるコンピュータプログラム(例えば、ショッピング検索のための商品カテゴリ抽出サービスを提供するアプリケーション)に基づいてメモリ412、432にローディングできる。
プロセッサ414、434は、基本的な算術、ロジック及び入出力演算を遂行することで、コンピュータプログラムの命令を処理するように構成できる。命令は、メモリ412、432又は通信モジュール416、436によりプロセッサ414、434に提供され得る。例えば、プロセッサ414、434は、メモリ412、432のような記録装置に保存されたプログラムコードによって受信される命令を実行するように構成できる。
通信モジュール416、436は、ネットワーク320を介して、ユーザ端末310と商品カテゴリ抽出サーバ330とが互いに通信するための構成や機能を提供でき、ユーザ端末310及び/又は商品カテゴリ抽出サーバ330が、他のユーザ端末又は他のシステム(例えば、別途の検索エンジンシステム等)と通信するための構成や機能を提供できる。一例として、ユーザ端末310のプロセッサ414がメモリ412などのような記録装置に保存されたプログラムコードによって生成した要請やデータ(例えば、ユーザクエリに対する商品カテゴリを考慮した検索結果出力要請)は、通信モジュール416の制御により、ネットワーク320を介して商品カテゴリ抽出サーバ330に伝達され得る。反対に、商品カテゴリ抽出サーバ330のプロセッサ434の制御により提供される制御信号や命令が、通信モジュール436及びネットワーク320を経て、ユーザ端末310の通信モジュール416を介してユーザ端末310に受信され得る。例えば、ユーザ端末310は、商品カテゴリ抽出サーバ330から通信モジュール416を介してユーザクエリに対する商品検索結果、複数の商品カテゴリの関連点数、算出された関連点数が反映された商品検索結果などを受信できる。
入出力インタフェース418は、入出力装置420とのインタフェースのための手段であり得る。一例として、入力装置はイメージセンサを含むカメラ、キーボード、マイクロホン、マウスなどのような装置を含み、出力装置はディスプレイ、スピーカ、ハプティックフィードバックデバイス(haptic feedback device)などのような装置を含むことができる。他の例として、入出力インタフェース418は、タッチスクリーンなどのように入力及び出力を遂行するための構成及び機能が一つに統合された装置とのインタフェースのための手段であり得る。例えば、ユーザ端末310のプロセッサ414がメモリ412にローディングされたコンピュータプログラムの命令を処理する際に、商品カテゴリ抽出サーバ330や他のユーザ端末310が提供する情報及び/又はデータを用いて構成されるサービス画面や商品検索結果が、入出力インタフェース418を介してディスプレイに表示され得る。図4では、入出力装置420がユーザ端末310に含まれないように示したが、これに限定されず、ユーザ端末310と一体に構成することもできる。また、商品カテゴリ抽出サーバ330の入出力インタフェース438は、商品カテゴリ抽出サーバ330と連結するか、又は、商品カテゴリ抽出サーバ330が含むことができる入力や出力のための装置(図示せず)とのインタフェースのための手段であり得る。図4では、入出力インタフェース418、438をプロセッサ414、434と別途に構成された要素として示したが、これに限定されず、入出力インタフェース418、438をプロセッサ414、434に含まれるように構成することもできる。
ユーザ端末310及び商品カテゴリ抽出サーバ330は、図4に示す構成要素よりも多くの構成要素を含むことができる。しかしながら、大部分の従来技術的構成要素を明確に示す必要はない。一実施例によれば、ユーザ端末310は、前述した入出力装置420の少なくとも一部を含むように具現化できる。また、ユーザ端末310は、トランシーバー(transceiver)、GPS(Global Positioning system)モジュール、カメラ、各種センサ及びデータベースなどのような他の構成要素をさらに含むことができる。例えば、ユーザ端末310がスマートフォンである場合、一般にスマートフォンが持つ構成要素を含むことができ、例えば、加速度センサ、ジャイロセンサ、カメラモジュール、各種物理的なボタン、タッチパネルを用いたボタン、入出力ポート及び振動のための振動器などのような多様な構成要素がユーザ端末310にさらに含まれるように具現化できる。
一実施例によれば、ユーザ端末310のプロセッサ414は、商品検索又はショッピングサイトに接続可能な検索アプリケーション、モバイルブラウザアプリケーション又はウェブブラウザが動作するように構成できる。このとき、当該アプリケーション又はウェブブラウザと関連するプログラムコードがユーザ端末310のメモリ412にローディングできる。
ユーザ端末310のプロセッサ414は、入出力装置420から提供された情報及び/又はデータを入出力インタフェース418を介して受信したり、通信モジュール416を介して商品カテゴリ抽出サーバ330から情報及び/又はデータを受信したりでき、受信された情報及び/又はデータを処理してメモリ412に保存できる。また、このような情報及び/又はデータは、通信モジュール416を介して商品カテゴリ抽出サーバ330に提供できる。
一実施例によれば、プロセッサ414は、入出力インタフェース418と連結したタッチスクリーンやキーボードなどのような入出力装置420により入力されたり、選択されたテキスト、イメージ及び動作などを受信したりできる。受信されたテキスト、イメージ及び/又は動作をメモリ412に保存したり、通信モジュール416及びネットワーク320を介して商品カテゴリ抽出サーバ330に提供したりできる。例えば、プロセッサ414は、タッチスクリーンやキーボードなどのような入出力装置により、一つ以上のユーザクエリ及び/又はユーザクエリに対応する商品カテゴリなどを受信でき、受信されたユーザクエリ及び/又は商品カテゴリに対する入力などは、通信モジュール416及びネットワーク320を介して商品カテゴリ抽出サーバ330に提供できる。
一実施例によれば、プロセッサ414は、入力装置により受信されたユーザクエリ又はユーザクエリに対する検索結果要請を、ネットワーク320及び通信モジュール416を介して商品カテゴリ抽出サーバ330に提供できる。ユーザクエリを受信した商品カテゴリ抽出サーバ330は、ユーザクエリから複数の商品カテゴリの関連点数を算出できる。また、商品カテゴリ抽出サーバ330は、算出された商品カテゴリの関連点数が反映された商品検索結果又は商品検索順位に関する情報を提供できる。
他の実施例によれば、プロセッサ414は、入力装置により受信されたユーザクエリ又はユーザクエリに対する検索結果要請を、ネットワーク320及び通信モジュール416を介して商品カテゴリ抽出サーバ330に提供できる。また、プロセッサ414は、ネットワーク320及び通信モジュール416を介して、商品カテゴリ抽出サーバ330又は商品データベースからユーザクエリと関連する商品検索結果を受信できる。プロセッサ434は、ユーザクエリ又はユーザクエリに対する検索結果要請に応じて、ユーザクエリに対する複数の商品カテゴリの関連点数を算出し、算出された関連点数を商品検索結果に適用して商品検索順位を調整できる。
他の実施例によれば、商品カテゴリ抽出サーバ330は、ユーザ端末310からユーザクエリ及びユーザにより選択された商品カテゴリを、ネットワーク320及び通信モジュール416を介して受信できる。代案として、商品カテゴリ抽出サーバ330は、検索ログデータベース(図3の340)からユーザクエリ及びユーザにより選択された商品カテゴリのデータ対を、ネットワーク320を介して受信できる。商品カテゴリ抽出サーバ330は、受信したユーザクエリ及び商品カテゴリのデータ対から学習データを生成し、生成された学習データを用いて、ユーザクエリ及び商品カテゴリの関連点数を算出するための統計基盤分類モデルを学習させることができる。
図5は、本開示の一実施例に係る統計基盤分類モデル520を用いてユーザクエリ510に対する商品カテゴリ530、540、550、560の関連点数532、542、552、562を算出する構成を示す図である。統計基盤分類モデル520は、図3及び図4に示す商品カテゴリ抽出サーバ330又はユーザ端末310により生成、保存又は実行され得る。図5に示すように、統計基盤分類モデル520は、ユーザクエリ510を入力として、複数の商品カテゴリ530、540、550、560に対する関連点数532、542、552、562を出力できる。関連点数532、542、552、562は、ユーザクエリ510が複数の商品カテゴリ530、540、550、560の各々に関連する確率値であり得る。例えば、ユーザクエリ510として‘ニットワンピース’が入力された場合、‘ニットワンピース’が大分類であるカテゴリ1に含まれた‘ファッション’の商品カテゴリ530と関連する確率値は‘0.4’であり得、‘マタニティ/育児 ’の商品カテゴリ540と関連する確率値は‘0.1’であり得る。また、‘ニットワンピース’が中分類であるカテゴリ2に含まれた‘レディースファッション’の商品カテゴリ550と関連する確率値は‘0.5’であり得、‘メンズファッション’の商品カテゴリ560と関連する確率値は‘0.1’であり得る。
各々の商品カテゴリ530、540、550、560に対する関連点数532、542、552、562は、統計基盤分類モデル520により算出できる。統計基盤分類モデル520は、入力されたユーザクエリ510から複数の商品カテゴリと関連する確率値を算出するように学習できる。この場合、商品カテゴリ抽出サーバ又はユーザ端末は、検索ログデータベース(例えば、図3の340)から統計基盤分類モデル520を学習するための学習データを受信できる。例えば、検索ログデータベースから受信された学習データは、ユーザクエリ510及び当該ユーザクエリ510に対する商品検索結果のうち、ユーザが選択した商品情報(例えば、特定商品のカテゴリ情報)の対を含むことができる。また、統計基盤分類モデル520は、ユーザクエリ510に対する複数の商品カテゴリの関連性を決定するための機械学習又は人工ニューラルネットワークモデルであり得る。
図5では、1つの統計基盤分類モデル520を用いて、ユーザクエリ510に対する4つの商品カテゴリ530、540、550、560の関連点数532、542、552、562が算出されることを示したが、これに限定されるものではない。多様な具現化方式により、統計基盤分類モデル520は、ユーザクエリ510に対して4つ未満又は5つ以上の商品カテゴリの関連点数が算出されるように構成できる。また、ユーザクエリ510を前処理又は分析する方法により、2つ以上の統計基盤分類モデルが使用できる。一実施例において、ユーザクエリ510は、より小さな単位の複数のデータ(例えば、形態素及び/又は音節の単位のデータ)に分割され、分割されたデータは、対応する複数の統計基盤分類モデルに入力され得る。この場合、複数の統計基盤分類モデルから算出された関連点数を合算又は結合して、最終の関連点数を算出できる。
図6は、本開示の一実施例に係る前処理器610及び統計基盤分類モデを含む分類器620を用いて関連点数632、642、652、662を算出する構成を示す図である。前処理器610及び分類器620は、図3及び図4に示す商品カテゴリ抽出サーバ330又はユーザ端末310により生成、保存又は実行できる。図6に示すように、商品カテゴリ抽出サーバ又はユーザ端末は、ユーザクエリ510を分析して統計基盤分類モデル622、624の入力データを生成する前処理器610と、前処理器610から生成された入力データを用いて複数の商品カテゴリに対する関連点数を算出する分類器620とを含むことができる。
前処理器610は、ユーザクエリ510を音節の単位に分割する音節単位分割部612と、ユーザクエリ510を形態素の単位に分割する形態素単位分割部614とを含むことができる。一実施例において、音節単位分割部612及び形態素単位分割部614は、ユーザクエリ510のテキストを各々音節埋め込みベクトル及び形態素埋め込みベクトルに変換できる。音節単位分割部612及び形態素単位分割部614の各々は、ユーザクエリ510を連続ベクトル空間に埋め込むように学習された人工ニューラルネットワークで具現化できる。
また、分類器620は、音節の単位に分割されたユーザクエリ510を入力とする第1の統計基盤分類モデル622と、形態素の単位に分割されたユーザクエリ510を入力とする第2の統計基盤分類モデル624と、各々の統計基盤分類モデル622、624から算出された関連点数を合算又は結合して、最終の関連点数632、642、652、662を算出する結合部626とを含むことができる。
一実施例において、商品カテゴリ抽出サーバ又はユーザ端末は、音節の単位に分割されたユーザクエリ510を入力とする第1の統計基盤分類モデル622と、形態素の単位に分割されたユーザクエリ510を入力とする第2の統計基盤分類モデル624とを用いて、関連点数632、642、652、662を算出できる。
分類器620に含まれた統計基盤分類モデル622、624は、音節及び形態素の単位に分割されたユーザクエリ510を入力として、複数の商品カテゴリ630、640、650、660に対する関連点数632、642、652、662を算出できる。統計基盤分類モデル622、624の各々は、検索ログデータベースから抽出された学習データを用いて、ユーザクエリ510に対する複数の商品カテゴリ630、640、650、660の関連点数632、642、652、662を算出するように学習できる。検索ログデータベースから抽出された学習データは、ユーザクエリ及び当該ユーザクエリに対する商品検索結果のうち、ユーザが選択した商品情報(例えば、特定商品のカテゴリ情報)の対を含むことができる。
統計基盤分類モデル622、624は、ユーザクエリ510を構成するテキスト(例えば、文章、文句、単語等)をそのまま使用することなく、音節又は形態素の単位に分割して使用することで、ユーザクエリ510に誤字脱字が含まれた場合や、ユーザクエリ510が学習データになくて見慣れない場合にも対応できる。例えば、ユーザクエリ510が‘ニットワンピース’である場合、‘ニットワンピース’を音節の単位に分割した‘ニッ’、‘ト’、‘ワン’、‘ピー’、‘ス’を統計基盤分類モデル622の入力として算出された関連点数と、ユーザクエリ510が‘ニットオピース’のように誤字脱字を含む場合、音節の単位に分割した‘ニッ’、‘ト’、‘オ’、‘ピー’、‘ス’を統計基盤分類モデル622の入力として算出された関連点数とは、同一又は類似する。他の例として、ユーザクエリ510が‘ニットワンピース’である場合、‘ニットワンピース’を形態素の単位に分割した‘ニット’、‘ワンピース’を統計基盤分類モデル624の入力として算出された関連点数と、ユーザクエリ510が‘ワンピースニット’のように形態素の順序が変更された場合、形態素の単位に分割した‘ワンピース’、‘ニット’を統計基盤分類モデル622の入力として算出された関連点数とは、同一又は類似する。
統計基盤分類モデル622、624により算出された関連点数は、結合部626により合算又は結合できる。その結果、1つの統計基盤分類モデルを使用した場合よりも、正確度が高い最終の関連点数632、642、652、662を算出できる。前記のような構成により、統計基盤分類モデル622、624により使用される学習データのマッチングカバレッジを極大化し、ユーザクエリ及び複数の商品カテゴリの関連点数の算出の正確度を向上させることができる。
図7は、本開示の一実施例に係る多様な検索結果から商品カテゴリ抽出のための統計基盤分類モデルの学習データを生成する例を示す図である。統計基盤分類モデルの学習のために使用される学習データは、検索ログデータベース780から抽出され得る。検索ログデータベース780は、例えば、ユーザがショッピング検索サービスを使用しながら入力したユーザクエリ(例えば、検索対象の商品名が含まれた文章、文句、単語等)、当該ユーザクエリによるショッピング検索結果(例えば、商品名や商品カテゴリなどが含まれた検索結果)、及び、ショッピング検索結果に対するユーザの応答(例えば、特定の商品名や商品カテゴリなどに対するユーザのクリック可否又は回数等)を保存できる。統計基盤分類モデルの学習データは、検索ログデータベース780から抽出されたユーザクエリ及び当該ユーザクエリと関連する商品カテゴリの対を含むことができる。
同図に示すように、例えば、ユーザがショッピング検索サイト又は統合検索サイトの検索窓にユーザクエリ710を入力した場合、入力されたユーザクエリ710と関連する検索結果が出力され得る。検索結果130は、ユーザクエリ710を含む検索窓と、商品カテゴリをフィルタリングするためのユーザインタフェース720と、検索の商品730、740と、検索の商品730、740と関連する商品カテゴリ732、734等とを含むことができる。
一実施例において、ユーザクエリ710を入力したユーザが、ユーザインタフェース720に含まれた商品カテゴリ722をクリックする場合、当該ユーザクエリ710及びクリックされた商品カテゴリ722の対の学習データ750を検索ログデータベース780に保存できる。商品カテゴリ抽出サーバのプロセッサは、このようなユーザクエリ710及びクリックログ情報が保存された検索ログデータベース780からユーザクエリ710及び商品カテゴリの対を含む学習データを抽出できる。例えば、ユーザが‘ニットワンピース’をユーザクエリ710として入力し、ユーザインタフェース720を介して商品カテゴリのうちで‘ファッション’をクリックして検索ログデータが生成された場合、‘ニットワンピース−ファッション’の対の学習データ750を生成できる。
他の実施例として、ユーザクエリ710を入力したユーザが、検索結果130として出力された商品730、740をクリックする場合、当該ユーザクエリ710及び当該商品730、740と関連する商品カテゴリ732、734の対の学習データ750、760、770が検索ログデータベース780に保存され得る。例えば、ユーザが‘ニットワンピース’をユーザクエリ710として入力した後、検索結果130のうちで商品730、740をクリックした場合、クリックされた商品730、740と関連する大分類の商品カテゴリである‘ファッション’及びユーザクエリ710の対の学習データ750と、中分類の商品カテゴリである‘レディースファッション’及びユーザクエリ710の対の学習データ760と、小分類の商品カテゴリである‘ワンピース’及びユーザクエリ710の対の学習データ770とを含む総3つの学習データが生成され得る。追加又は代案として、ユーザクエリ710を入力したユーザが、商品と関連する商品カテゴリ732、734をクリックする場合、クリックされた商品カテゴリ732、734に含まれた全ての商品カテゴリ及びユーザクエリ710の対の学習データ750、760、770が生成され得る。
図8は、本開示の一実施例に係る商品カテゴリ抽出サーバにより遂行されるショッピング検索のための商品カテゴリ抽出方法800を示すフローチャートである。一実施例において、ショッピング検索のための商品カテゴリ抽出方法800は、ユーザクエリの受信により開始できる(S810)。一実施例において、ユーザクエリは、ユーザ端末に表示されるショッピングサイト又は統合検索サイトの検索窓から受信され、商品カテゴリ抽出サーバのプロセッサに転送できる。
受信されたユーザクエリに基づき、商品データベースからユーザクエリに対する商品検索結果が抽出される(S820)。一実施例において、商品カテゴリ抽出サーバのプロセッサは、商品データベースからユーザクエリに対する商品検索結果を抽出できる。このとき、商品検索結果は、ユーザクエリ及び商品データベースに保存された商品名の語彙類似度や商品のユーザ人気度などの情報に基づいて決定された商品検索順位情報を含むことができる。例えば、ユーザクエリが‘ニットワンピース’である場合、‘ニットワンピース’の少なくとも一部を含む商品名を持つ商品のうち、ユーザによる購買率が高い商品、若しくは、ユーザによるクリック率が高い商品が、高順位を持つ商品検索結果として抽出できる。
ユーザクエリは音節及び/又は形態素の単位に分割できる(S830)。一実施例において、商品カテゴリ抽出サーバのプロセッサは、ユーザクエリを音節及び/又は形態素の単位に分割して統計基盤分類モデルに入力できる。例えば、ユーザクエリは、音節埋め込みベクトル及び/又は形態素埋め込みベクトルに変換されて統計基盤分類モデルに入力できる。
また、統計基盤分類モデルにより、ユーザクエリに対する複数の商品カテゴリの関連点数を算出できる(S840)。商品カテゴリは、既定の数のステップに分割された複数のカテゴリ群を含むことができ、プロセッサは、ユーザクエリ及び各々のカテゴリ群に含まれた商品カテゴリの関連点数を算出できる。ユーザクエリが音節又は形態素の単位に分割された場合、統計基盤分類モデルは、音節又は形態素の単位に分割されたユーザクエリが複数の商品カテゴリと関連する確率値を算出できる。
他の実施例において、商品カテゴリ抽出サーバのプロセッサは、ユーザクエリを音節及び形態素の単位に各々分割できる。プロセッサは、第1の統計基盤分類モデルを用いて、音節の単位に分割されたユーザクエリが複数の商品カテゴリと関連する第1の確率を算出し、第2の統計基盤分類モデルを用いて、形態素の単位に分割されたユーザクエリが商品カテゴリと関連する第2の確率を算出できる。その後、プロセッサは、第1の確率及び第2の確率を合算又は結合して、最終の商品カテゴリの関連点数として算出できる。前述したように、ユーザクエリを音節及び/又は形態素の単位に分割して統計基盤分類モデルにより商品カテゴリに対する関連点数を算出することで、タイプミスまたは学習データにないユーザクエリに対応しても、商品カテゴリの関連点数算出の正確性を向上させることができる。
算出された関連点数に基づき、ユーザクエリに対する商品検索結果による商品検索順位を調整できる(S850)。一実施例において、商品カテゴリ抽出サーバのプロセッサは、算出された一つ以上の関連点数を、商品検索結果のうち、対応する商品カテゴリに属する商品検索結果の加重値として適用して商品検索順位を調整できる。これにより、関連点数の高い商品カテゴリを含む商品が検索結果の上部に表示され得る。ユーザクエリと関連する商品カテゴリを持つ商品を検索結果の上部に表示することで、当該商品に対するユーザらのクリック率及び購買率を向上させることができる。
図9は、本開示の一実施例に係るショッピング検索のための商品検索順位調整方法900を示すフローチャートである。一実施例において、商品検索順位調整方法900は、ユーザクエリに対する複数の商品カテゴリの関連点数の算出により開始できる(S910)。ユーザクエリに対する複数の商品カテゴリの関連点数を算出する方法は、図8に基づいて説明した方法と同様に遂行できる。
次に、商品カテゴリの関連点数を、商品検索結果のうち、対応する商品カテゴリに属する標品検索結果の加重値として適用して商品検索順位を調整できる(S920)。代案として、算出された関連点数のうち、関連点数が既定の閾値以上である一つ以上の関連点数を抽出し、一つ以上の上位関連点数を、商品検索結果のうち、対応する商品カテゴリに属する標品検索結果の加重値として適用して商品検索順位を調整できる。
複数の商品カテゴリの重要度を決定する商品カテゴリ加重値を決定できる(S930)。商品カテゴリ加重値は、抽出された商品カテゴリがこれと関連する商品の検索順位の調整に及ぼす影響の程度を示すことができる。一実施例において、商品カテゴリ加重値は商品カテゴリ別に既定の値であり得る。代案として、商品カテゴリ加重値は、商品検索結果に対するユーザの応答によって動的に変動できる。具体的に、プロセッサは、商品検索順位の調整により検索結果画面を出力し、出力された商品検索結果画面において商品情報に対するクリック数を受信できる。商品情報に対するクリック数が既定の閾値以上である場合、商品カテゴリの加重値を変更できる。
複数の商品カテゴリの加重値を決定する商品カテゴリ加重値及び関連点数に基づいて商品検索順位を調整できる(S940)。商品検索順位が調整された結果、抽出された商品カテゴリと関連する商品の方が、抽出された商品カテゴリと関連しない他の商品よりも上部に表示され得る。これにより、ユーザクエリに基づいてユーザの意図した商品カテゴリが反映された検索結果をユーザ端末に出力できる。
図10は、本開示の一実施例に係るユーザ端末により遂行されるショッピング検索のための商品カテゴリ抽出方法1000を示すフローチャートである。一実施例において、ユーザ端末により遂行されるショッピング検索のための商品カテゴリ抽出方法1000は、ユーザ端末のプロセッサがユーザクエリを受信することにより開始できる(S1010)。ユーザクエリは、ユーザ端末に表示されたショッピングサイト又は統合検索サイトの検索窓から受信できる。
ユーザ端末のプロセッサは、統計基盤分類モデルにより、ユーザクエリ及び複数の商品カテゴリの関連点数を受信できる(S1020)。商品カテゴリは、既定の数のステップに分割された複数のカテゴリ群を含むことができる。このとき、統計基盤分類モデルは、ユーザクエリに対する複数の商品カテゴリの関連点数を算出するように予め学習できる。また、正確度の高い関連点数を算出するために、統計基盤分類モデルは、音節及び/又は形態素の単位に分割されたユーザクエリを受信して商品カテゴリの関連点数を算出する2つ以上の統計基盤分類モデルを含むことができる。
ユーザ端末のプロセッサは、算出された関連点数に基づいてユーザクエリに対する商品検索順位を調整できる(S1030)。具体的に、プロセッサは、商品カテゴリの関連点数を、商品検索結果のうち、対応する商品カテゴリに属する商品検索結果の加重値として適用して商品検索順位を調整できる。追加又は代案として、プロセッサは、複数のカテゴリ群の各々に属する商品カテゴリの関連点数を、商品検索結果のうち、対応する商品カテゴリに属する商品検索結果の加重値として適用して商品検索順位を調整できる。
図11は、本開示の一実施例に係る商品カテゴリ抽出のための統計基盤分類モデルの学習方法1100を示すフローチャートである。同図に示すように、学習方法1100は、プロセッサが複数の第1のユーザクエリ及び複数の第1のユーザクエリと関連する複数の第1の商品カテゴリを含む第1の学習データを生成するステップ(S1110)により開始できる。プロセッサは、複数の第1のユーザクエリと関連する検索ログデータベースから複数の第1の商品カテゴリを抽出できる。検索ログデータベースは、ユーザクエリ及びこれにより抽出された商品検索結果からユーザが選択又はクリックした商品カテゴリ情報を含むことができる。例えば、プロセッサは、統合検索ログデータベース、ショッピング又は商品検索ログデータベースの少なくとも一つから複数のユーザクエリと関連する商品カテゴリを抽出できる。前記構成により、学習データは、ユーザが入力したユーザクエリ及びユーザクエリによって抽出された商品検索結果に対するユーザの動作(例えば、商品カテゴリのフィルタリング、商品や商品カテゴリの選択又はクリック等)によって生成された検索ログデータベースから得られるので、統計基盤分類モデルの学習データを効率よく確保できる。
プロセッサは、複数の第1の学習データに基づき、第2のユーザクエリに対応する一つ以上の商品カテゴリの関連点数を算出するように統計基盤分類モデルを学習できる(S1120)。一実施例において、プロセッサは、複数の第1のユーザクエリを形態素の単位に分割して統計基盤分類モデルを学習できる。具体的に、プロセッサは、形態素の単位に分割された複数の第1のユーザクエリに基づき、ユーザクエリに対応する一つ以上の商品カテゴリの関連点数を算出するように統計基盤分類モデルを学習できる。追加又は代案として、プロセッサは、複数の第1のユーザクエリを音節の単位に分割して統計基盤分類モデルを学習できる。プロセッサは、音節の単位に分割された複数の第1のユーザクエリに基づき、ユーザクエリに対応する一つ以上の商品カテゴリの関連点数を算出するように統計基盤分類モデルを学習できる。
他の実施例において、プロセッサは、複数の第1のユーザクエリを音節及び形態素の単位に分割して統計基盤分類モデルを学習できる。具体的に、プロセッサは、複数の第1のユーザクエリを形態素及び音節の単位に分割できる。その後、プロセッサは、形態素の単位に分割された複数の第1のユーザクエリに基づき、ユーザクエリに対応する一つ以上の商品カテゴリの関連点数を算出するように第1の統計基盤分類モデルを学習できる。また、プロセッサは、音節の単位に分割された複数の第1のユーザクエリに基づき、ユーザクエリに対応する一つ以上の商品カテゴリの関連点数を算出するように第2の統計基盤分類モデルを学習できる。前述したように、プロセッサは、ユーザクエリを分割する方式によって2つ以上の統計基盤分類モデルを使用することで、ユーザクエリ及び商品カテゴリの関連点数をより正確に算出できる。
前述したショッピング検索のための商品カテゴリ抽出方法及び商品カテゴリ抽出の学習方法は、コンピュータ可読記録媒体にコンピュータが読み取り可能なコードとして具現化されることもできる。記録媒体は、コンピュータで実行可能なプログラムを継続的に保存したり、実行又はダウンロードのために一時保存したりするものであり得る。また、媒体は、単一又は多数のハードウェアが結合された形態の多様な記録手段又は保存手段であり得るが、あるコンピュータシステムに直接接続される媒体に限定されず、ネットワーク上に分散存在するものであってよい。媒体の例としては、ハードディスク、フロッピーディスク及び磁気テープのような磁気媒体、CD−ROMやDVDのような光記録媒体、フロプティカルディスク(floptical disk)のような磁気−光媒体(magneto-optical medium)、及び、ROM、RAM、フラッシュメモリなどを含み、プログラム命令語が保存されるように構成されたものが挙げられる。また、他の媒体の例としては、アプリケーションを流通するアプリストアやその他の多様なソフトウェアを供給乃至流通するサイト、サーバなどで管理する記録媒体乃至保存媒体も挙げられる。
本開示の方法、動作又は技法は多様な手段により具現化できる。例えば、このような技法は、ハードウェア、ファームウェア、ソフトウェア、若しくはこれらの組合せで具現化できる。本願の開示により説明された多様な例示的な論理的ブロック、モジュール、回路及びアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、若しくは両方の組合せで具現化できることを、通常の技術者であれば理解できるはずである。ハードウェア及びソフトウェアのこのような相互の代替を明確に説明するために、多様な例示的な構成要素、ブロック、モジュール、回路及びステップが、それらの機能的観点から一般的に前述された。そのような機能が、ハードウェアとして具現化されるか、若しくは、ソフトウェアとして具現化されるかは、特定アプリケーション及び全体システムに付加される設計要求事項によって変化する。通常の技術者は、各々の特定アプリケーションのために多様な方式により説明された機能を具現化することもできるが、そのような具現化は本開示の範囲から逸脱するものと解釈してはならない。
ハードウェアの具現化において、技法の遂行に利用されるプロセッシングユニットは、一つ以上のASIC、DSP、デジタル信号処理デバイス(digital signal processing devices ; DSPD)、プログラム可能な論理デバイス(programmable logic devices ; PLD)、フィールドプログラム可能なゲートアレイ(field programmable gate arrays ; FPGA)、プロセッサ、制御器、マイクロ制御器、マイクロプロセッサ、電子デバイス、本開示に説明された機能を遂行するように設計された他の電子ユニット、コンピュータ、若しくはこれらの組合せ内で具現化されることもできる。
したがって、本開示により説明された多様な例示的な論理ブロック、モジュール及び回路は、汎用プロセッサ、DSP、ASIC、FPGAや他のプログラム可能な論理デバイス、離散ゲートやトランジスタロジック、離散ハードウェアコンポーネント、若しくは、本願に説明された機能を遂行するように設計されたもの等の任意の組合せで具現化又は遂行されることもできる。汎用プロセッサはマイクロプロセッサであり得るが、代案として、プロセッサは、任意の従来のプロセッサ、制御器、マイクロ制御器、若しくは状態マシンであり得る。プロセッサは、また、コンピューティングデバイスの組合せ、例えば、DSPとマイクロプロセッサ、複数のマイクロプロセッサ、DSPコアと関連する一つ以上のマイクロプロセッサ、若しくは任意の他の構成の組合せで具現化されることもできる。
ファームウェア及び/又はソフトウェアの具現化において、技法は、RAM(random access memory)、ROM(read-only memory)、NVRAM(non-volatile random access memory)、PROM(programmable read-only memory)、EPROM(erasable programmable read-only memory)、EEPROM(electrically erasable PROM)、フラッシュメモリ、CD(compact disc)、磁気又は光学データストレージデバイスなどのようなコンピュータ読み取り可能な媒体上に保存された命令で具現化できる。命令は、一つ以上のプロセッサによって実行可能であり得、プロセッサが本開示に説明された機能の特定様態を遂行するようにできる。
ソフトウェアで具現化される場合、前記技法は、一つ以上の命令又はコードとしてコンピュータ読み取り可能な媒体上に保存されたり、コンピュータ読み取り可能な媒体を介して転送されたりできる。コンピュータ読み取り可能な媒体は、ある場所から他の場所にコンピュータプログラムの転送を容易にする任意の媒体を含み、コンピュータ保存媒体及び通信媒体の両方を含む。保存媒体は、コンピュータによってアクセスできる任意の利用可能な媒体であり得る。非制限的な例として、このようなコンピュータ読み取り可能な媒体は、RAM、ROM、EEPROM、CD−ROMや他の光学ディスクストレージ、磁気ディスクストレージや他の磁気ストレージデバイス、若しくは、所望のプログラムコードを命令又はデータ構造の形態に移送又は保存するために使用されることができ、コンピュータによってアクセスできる任意の他の媒体を含むことができる。また、任意の接続がコンピュータ読み取り可能な媒体として適切に称することができる。
例えば、ソフトウェアが同軸ケーブル、光ファイバケーブル、鉛線、デジタル加入者回線(DSL)、又は、赤外線、無線及びマイクロ波のような無線技術を用いて、ウェブサイト、サーバ又は他の遠隔ソースから転送される場合、同軸ケーブル、光ファイバケーブル、鉛線、デジタル加入者回線、又は、赤外線、無線及びマイクロ波のような無線技術は、媒体の定義内に含まれる。本願で使用されたディスク(disk)及びディスク(disc)は、CD、レーザーディスク、光ディスク、DVD(digital versatile disc)、フロッピーディスク及びブルーレイディスクを含み、ここで、通常、ディスク(disk)は磁気的にデータを再生するのに対し、ディスク(disc)はレーザーを用いて光学的にデータを再生する。前記組合せ等も、コンピュータ読み取り可能な媒体等の範囲内に含まれなければならない。
ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、移動式ディスク、CD−ROM、又は、公知の任意の異なる形態の保存媒体内に常駐することもできる。例示的な保存媒体は、プロセッサが保存媒体から情報を読み取る、或いは、保存媒体に情報を書き込むように、プロセッサに連結することができる。代案として、保存媒体はプロセッサに統合されることもできる。プロセッサ及び保存媒体はASIC内に存在することもできる。ASICはユーザ端末内に存在することもできる。代案として、プロセッサ及び保存媒体はユーザ端末で個別構成要素として存在することもできる。
前述した実施例が一つ以上の独立型コンピュータシステムで現在開示された主題の様態を活用するものとして記述しているが、本開示はこれに限定されず、ネットワークや分散コンピューティング環境のような任意のコンピューティング環境によって具現化できる。さらには、本開示における主題の様態は複数のプロセッシングチップや装置で具現化されることもでき、ストレージは複数の装置に亘って同様に影響を受ける場合もある。このような装置は、PC、ネットワークサーバ及び携帯用装置を含むこともできる。
本明細書では、本開示が一部の実施例によって説明されたが、本開示の発明が属する技術分野における通常の技術者が理解し得る本開示から逸脱しない範囲内で多様な変形や変更が可能である。また、そのような変形や変更は、本明細書に添付された特許請求の範囲内に属するものと理解されるべきである。