【解決手段】本願に係る抽出装置は、取得部と、演算制御部と、抽出部とを有する。取得部は、送信元に関する情報である送信元情報を含む広告コンテンツの配信要求を取得する。演算制御部は、取得部によって取得された送信元情報に基づき、配信候補である広告コンテンツ群に対して、予め広告コンテンツ毎に設定される配信条件に該当する広告コンテンツであるか否かを判定する判定処理と、送信元情報と広告コンテンツの特徴情報との一致の度合いを示すスコアを算出する算出処理とを1つの広告コンテンツ毎に行う。抽出部は、演算制御部による処理の結果に基づいて、広告コンテンツ群の中から配信要求に対応する広告コンテンツを抽出する。
【発明を実施するための形態】
【0010】
以下に、本願に係る抽出装置、抽出方法及び抽出プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る抽出装置、抽出方法及び抽出プログラムが限定されるものではない。また、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【0011】
〔1.抽出処理の一例〕
まず、
図1を用いて、実施形態に係る抽出処理の一例について説明する。
図1は、実施形態に係る抽出処理の一例を示す図である。
図1では、本願に係る抽出装置に対応する広告装置100によって、ユーザ端末10に配信される広告コンテンツの抽出処理が行われる例を示す。
【0012】
広告装置100は、ユーザ端末10から送信されるクエリに基づいて、配信対象先であるユーザ端末10に対して、適切にマッチングされた広告コンテンツを抽出するサーバ装置である。具体的には、広告装置100は、広告主から入稿された広告コンテンツの中かから、特定のユーザに対して広告効果が高いと想定される広告コンテンツを所定の手法により検索する。そして、広告装置100は、検索された広告コンテンツの中から、実際にユーザに配信される広告コンテンツを抽出し、抽出された広告コンテンツをユーザ端末10に配信する。すなわち、広告主は、広告装置100を利用することにより、広告配信を契機としてユーザから何らかの成果を得ることのできる可能性が高い広告コンテンツや、クリック率が高くなると想定される広告コンテンツ、言い換えれば、広告効果の高い広告コンテンツの配信を実現する。
【0013】
なお、クエリには、ユーザ端末10を操作するユーザの属性(例えば、性別や、年齢層など)や、ユーザの行動属性(例えば、ユーザが興味関心を抱いている趣味や、頻繁に閲覧するウェブページのカテゴリに関する情報など)が含まれる。かかるクエリは、広告コンテンツの配信要求の際にユーザ端末10から広告装置100に送信される。そして、広告装置100は、送信されたクエリに基づいて、ユーザに適する広告コンテンツを抽出する。
【0014】
広告装置100は、配信候補の広告コンテンツに対して異なる2種類の手法によって広告コンテンツを検索することで、配信に適する広告コンテンツを抽出する。一つめの手法として、広告装置100は、論理演算を用いた手法によって検索を行う。すなわち、広告装置100が扱う広告コンテンツには、配信対象とするユーザに関する広告主の指定がなされる。かかる指定は、論理条件として広告コンテンツごとに設定されるものとする。ここでは、論理条件とは、AND、OR、NOT等の論理演算(logical operation、あるいは、boolean operation)で用いられる条件式をいう。具体的には、広告主は、「10代の男性」に広告コンテンツを配信させることを所望する場合には、「(年齢:10代) AND (性別:男性)」といった条件式を広告コンテンツに設定する。広告装置100は、例えば、CNF(Conjunctive Normal Form)やDNF(Disjunctive Normal Form)アルゴリズム、あるいは、intervalアルゴリズム等の公知のアルゴリズムを用いた論理演算を行い、条件式に適合する広告コンテンツか否かを判定する。これにより、広告主は、所望する条件に合致するユーザに広告コンテンツを配信させることができる。なお、上記の論理演算に関するアルゴリズムの詳細については、例えば、下記文献1及び文献2に開示されている。
【0015】
(文献1) Steven Euijong Whang、Hector GarciaMolina、Chad Brower、Jayavel Shanmugasundaram、Sergei Vassilvitskii、Erik Vee、“Indexing Boolean Expressions”[online]、[2015年2月13日検索]、インターネット(http://theory.stanford.edu/~sergei/papers/vldb09-indexing.pdf)
【0016】
(文献2) Marcus Fontoura、Suhas Sadanandan、Jayavel Shanmugasundaram、Sergei Vassilvitski、Erik Vee、Srihari Venkatesan、Jason Zien、“Efficiently Evaluating Complex Boolean Expressions”[online]、[2015年2月18日検索]、インターネット(http://theory.stanford.edu/~sergei/papers/sigmod10-index.pdf)
【0017】
二つめの手法として、広告装置100は、広告コンテンツ毎のスコアを算出し、算出されたスコアの大小に基づいて、配信に適した広告コンテンツを検索する。この場合、広告装置100は、WANDアルゴリズムを用いた手法によって、広告コンテンツの検索を行う。WANDアルゴリズムでは、各広告コンテンツはクエリに対するスコアを有し、インデックスにクエリ毎のスコア最大値が記録される。そして、クエリ毎に設定されたクエリスコアと、インデックスに記録されたスコア最大値とに基づいて、広告コンテンツの検索目標数分の検索結果を得る。すなわち、スコア算出手法においては、WANDアルゴリズムを用いて、検索目標数である検索すべき広告コンテンツの数をk(kは任意の数)と置き、配信候補の広告コンテンツのうち、上位のスコアを有するTop−kの数だけの広告コンテンツを検索する。
【0018】
広告コンテンツの検索における具体的なスコアの算出法として、広告装置100は、広告コンテンツが有する特徴情報を用いる。例えば、広告装置100は、広告コンテンツ毎に設定される特徴情報である特徴量(特徴量は、例えば、キーワードと数値との組み合わせを要素とする)と、クエリとの一致の度合いをスコアとして算出する。具体的には、広告装置100は、広告コンテンツの特徴量と、クエリに設定されたクエリスコアとの積をクエリ毎に算出し、算出された積を加算して、当該広告コンテンツに対するトータルスコアとする。このとき、WANDアルゴリズムでは、インデックスに各広告コンテンツのクエリに対する最大スコアが記録されているので、1つの広告コンテンツに対するトータルスコアが算出されると、そのトータルスコアを閾値として、他の広告コンテンツに対するトータルスコアの算出について、スキップ可能か否かを判定できる。これにより、迅速な広告コンテンツの検索が可能になる。なお、上記のWANDアルゴリズムの詳細については、例えば、下記文献3に開示されている。
【0019】
(文献3) Deepak Agarwal、Maxim Gurevich、”Fast top-k retrieval for model based recommendation”、”WSDM '12 Proceedings of the fifth ACM international conference on Web search and data mining”、アメリカ合衆国、”ACM New York”、2012年2月8日、483頁〜492頁
【0020】
そして、広告装置100は、ユーザ端末10から送信されるクエリに基づいて、広告主が設定した条件に沿うか否かにより広告コンテンツを検索する手法(論理演算を用いた手法)と、ユーザの興味関心と広告コンテンツの内容とのマッチングをスコアにより表現することにより広告コンテンツを検索する手法(スコア算出を用いた手法)とを併用する。このように、広告装置100は、上記の2種類の異なる手法を併用させることで、訴求効果の高い広告コンテンツを迅速に抽出する。以下、広告装置100によって行われる広告コンテンツの抽出処理の一例を流れに沿って説明する。
【0021】
図1に示すように、ユーザ端末10は、広告装置100に広告コンテンツの配信を要求する(ステップS11)。かかる配信要求は、例えば、ユーザ端末10が広告枠の含まれるウェブページを取得した際に、かかる広告枠への広告コンテンツの配信要求がユーザ端末10から送信されることで発生する。
【0022】
なお、ユーザ端末10は、ウェブページを提供するウェブサーバへのアクセスに際して、ウェブブラウザとウェブサーバとの間で送受信される情報であるHTTPクッキー(HyperText Transfer Protocol Cookie:以下、単に「クッキー」と表記する)を送受信する。これにより、ユーザ端末10がインターネットにおいて利用したサービスの内容や、閲覧したウェブページに係る情報などのユーザの情報が記憶される。
【0023】
広告装置100は、例えばクッキーに保持されるユーザの情報に基づき、かかる情報をクエリとして取得する(ステップS12)。
図1の例では、広告装置100は、広告コンテンツの配信を要求するユーザ端末10のユーザから、「2」件分の広告コンテンツの配信を要求する内容のクエリを取得する。また、広告装置100は、クエリを送信しているユーザのユーザ属性が「男性」であり、「30代」であるといった情報をクエリとして取得する。また、広告装置100は、ユーザの興味関心のある行動(行動属性)として、「スポーツジム」や「筋トレ」といった情報をクエリとして取得する。そして、広告装置100は、ユーザの行動属性を示す単語とともに、ユーザの行動(例えば、ウェブページ閲覧の頻度や、ウェブショッピングにおける購買履歴など)に基づいて、「スポーツジム」や「筋トレ」といった単語毎に設定されるクエリスコアを合わせて取得する。
図1の例では、ユーザ端末10を操作するユーザには、「スポーツジム」に「30」というクエリスコアが与えられており、「筋トレ」に「20」というクエリスコアが与えられているものとする。
【0024】
そして、広告装置100は、取得したクエリに基づいて、論理演算による検索手法と、スコア算出による検索手法を組み合わせて、ユーザ端末10に配信する広告コンテンツを抽出する(ステップS13)。まず、広告装置100は、広告コンテンツ毎に予め設定されたスタティックスコア(静的スコア)を降順にソート(整列)させる。そして、広告装置100は、ソートさせた配信候補の広告コンテンツに対して、順に、論理演算とスコア算出の2つの手法により、配信に適した広告コンテンツを検索していく。
図1では、広告装置100が、入稿された広告コンテンツと、かかる広告コンテンツに対する処理結果が示されるデータテーブル50を用いて広告コンテンツを検索する例を示す。
図1に示すように、広告装置100は、まず広告コンテンツC01を処理し(ステップS13−1)、次に、広告コンテンツC02を処理し(ステップS13−2)、次に、広告コンテンツC03を処理する(ステップS13−3)。ここでは、広告コンテンツC01の検索に係る処理について説明する。
【0025】
まず、広告装置100は、広告主から広告コンテンツ毎に設定された条件式をユーザ端末10のユーザが満たすか否かを論理演算し、結果を導出する。
図1の例では、広告装置100は、ユーザが、広告コンテンツC01に設定された条件式である「(男性) AND (NOT:年齢:10代) AND (NOT:年齢:60代以上)」を満たすユーザか否かを演算する。
図1の例では、ユーザは、広告コンテンツC01に係る条件式を満たす。よって、広告装置100は、広告コンテンツC01を配信候補の広告コンテンツとして検索することができる。なお、広告装置100は、上述したintervalアルゴリズムを利用することにより、ソートされた広告コンテンツをソートされた順に論理演算することができる。広告コンテンツC01は、広告装置100により論理条件に適合すると判定されたので、論理条件の項目に「○」が記憶される。
【0026】
また、広告装置100は、上記の論理演算と併用して、広告コンテンツのスタティックスコアと、広告コンテンツの特徴を表したキーワードとクエリとの内積との合計値との和を広告コンテンツのスコアとして算出する。すなわち、広告装置100は、スタティックスコア順にソートされた広告コンテンツに対して、広告コンテンツ毎のスコアを算出していく。言い換えれば、広告装置100は、クエリと広告コンテンツの特徴量との一致の度合いをスコアとして算出し、算出されたスコアに基づいて配信に適する広告コンテンツを検索する。
【0027】
図1の例では、広告コンテンツC01は、クエリに含まれる行動属性のうち、「スポーツジム」と「筋トレ」という単語に一致する特徴量である「スポーツジム」と「筋トレ」を有している。このとき、広告装置100は、データテーブル50における「特徴量」の項目に「○」を記憶する。続いて、広告装置100は、実際に広告コンテンツC01のスコアを算出する。
図1の例では、広告装置100は、広告コンテンツC01に設定されたキーワードである「スポーツジム」と、クエリに含まれる「スポーツジム」との数値の積である「30×10=300」をスコアとして算出する。同様に、広告装置100は、広告コンテンツC01に設定されたキーワードである「筋トレ」と、クエリに含まれる「筋トレ」との数値の積である「20×40=800」をスコアとして算出する。そして、広告装置100は、かかる内積とスタティックスコアとの和である「300+800+90=1190」をユーザに対する広告コンテンツC01のスコアとして算出する。なお、かかる算出には、上述したWANDアルゴリズムが用いられる。このようにして、広告装置100は、高いスコア順に広告コンテンツを検索結果として導出する。
図1での図示は省略しているが、広告コンテンツC02や広告コンテンツC03についても、それぞれスタティックスコアや、論理条件(条件式)や、特徴量が設定されている。そして、広告装置100は、広告コンテンツC02や広告コンテンツC03について、順に、論理演算およびスコア算出を行う。そして、広告装置100は、処理結果をデータテーブル50に記憶する。
【0028】
そして、広告装置100は、広告コンテンツ毎の処理結果に基づいて、ユーザに配信する広告コンテンツを抽出する。例えば、広告装置100は、上述した2つの検索手法により、配信候補の広告コンテンツ群の中から検索された広告コンテンツC01および広告コンテンツC03を、ユーザに配信する広告コンテンツとして抽出する。そして、広告装置100は、抽出された広告コンテンツC01および広告コンテンツC03をユーザ端末10に配信する(ステップS14)。この場合、広告装置100は、クエリに含まれている配信件数を満たす広告コンテンツを抽出し、配信する。例えば、ユーザ端末10が「2」個の広告コンテンツを配信件数として要求していた場合には、広告装置100は、「2」個の広告コンテンツを抽出し、配信する。
【0029】
このように、広告装置100は、広告コンテンツを抽出するためのクエリを取得し、取得されたクエリが、予め広告コンテンツごとに設定されている論理条件を満たすか否かを論理演算し、かつ、クエリと広告コンテンツの特徴量との一致の度合いを示すスコアを算出する。そして、広告装置100は、論理演算およびスコア算出によって求められた各結果を併用することにより、クエリに対応する広告コンテンツを抽出する。
【0030】
すなわち、実施形態に係る広告装置100は、広告主の所望する条件式を満たす広告コンテンツか否かと、ユーザの興味関心に沿った広告コンテンツであるか否かと、2つの観点から評価された広告コンテンツを抽出することができる。これにより、広告装置100は、より広告効果が高いと想定される広告コンテンツをユーザに配信させることができる。具体的には、広告装置100は、コンバージョン(Conversion)に至る可能性の高いユーザや、CTR(Click Through Rate)が高くなる可能性の高いユーザに対して、適切な広告コンテンツを配信することができる。また、広告装置100は、上述の論理演算に係るアルゴリズムや、スコア算出に係るWANDアルゴリズムを用いることにより、配信候補である広告コンテンツを順番に処理することができるので、配信件数であるk個の広告コンテンツを迅速に抽出することができる。結果として、広告装置100によれば、訴求効果の高い広告コンテンツを迅速に抽出することができる。
【0031】
〔2.抽出処理システムの構成〕
次に、
図2を用いて、実施形態に係る広告装置100が含まれる抽出処理システム1の構成について説明する。
図2は、実施形態に係る抽出処理システム1の構成例を示す図である。
図2に例示するように、実施形態に係る抽出処理システム1には、ユーザ端末10と、広告主端末20と、ウェブサーバ30と、広告装置100とが含まれる。これらの各種装置は、ネットワークN(例えば、インターネット等の通信ネットワーク)を介して、有線又は無線により通信可能に接続される。なお、抽出処理システム1を構成する各種装置の数は、
図2に例示したものに限られない。例えば、
図2に示した抽出処理システム1には、複数台のユーザ端末10や、複数台の広告主端末20や、複数台のウェブサーバ30が含まれてもよい。
【0032】
ユーザ端末10は、例えば、デスクトップ型PC(Personal Computer)や、ノート型PCや、タブレット型端末や、携帯電話機、PDA(Personal Digital Assistant)等の情報処理装置である。例えば、ユーザ端末10は、ウェブサーバ30にアクセスすることで、ウェブサーバ30から提供されるウェブページを取得し、取得したウェブページを表示装置(例えば、液晶ディスプレイ)に表示する。そして、ユーザ端末10は、ウェブページ内の広告枠に表示される広告コンテンツを配信させるため、広告コンテンツの配信要求であるクエリを広告装置100に送信する。
【0033】
広告主端末20は、広告装置100に広告配信を依頼する広告主によって利用される情報処理装置である。広告主端末20は、広告主による操作に従って、広告装置100に広告コンテンツを入稿する。また、広告主端末20は、適切な配信対象に広告コンテンツを配信させるために、広告コンテンツに対して条件式を設定する。
【0034】
なお、広告主は、広告主端末20を用いて、広告装置100に広告コンテンツを入稿したり、広告コンテンツに対してカテゴリを設定したりせずに、かかる入稿等を代理店に依頼する場合もある。この場合、広告装置100に広告コンテンツを入稿等するのは代理店となる。以下では、「広告主」といった表記は、広告主だけでなく代理店を含む概念であり、「広告主端末」といった表記は、広告主端末だけでなく代理店によって利用される代理店装置を含む概念であるものとする。
【0035】
ウェブサーバ30は、ユーザ端末10からアクセスされた場合に、各種ウェブページを提供するサーバ装置である。ウェブサーバ30は、例えば、ニュースサイト、天気予報サイト、ショッピングサイト、ファイナンス(株価)サイト、路線検索サイト、地図提供サイト、旅行サイト、飲食店紹介サイト、ウェブブログなどに関する各種ウェブページを提供する。
【0036】
なお、上述のように、ウェブサーバ30によって配信されるウェブページには、広告コンテンツを表示するための広告枠が含まれる。そして、広告枠を含むウェブページには、広告枠に表示する広告コンテンツを取得するための広告取得命令が含まれる。例えば、ウェブページを形成するHTML(HyperText Markup Language)ファイル等には、広告装置100のURL等が広告取得命令として記述される。この場合、ユーザ端末10は、HTMLファイル等に記述されているURLにアクセスすることで、広告装置100から広告コンテンツの配信を受ける。
【0037】
広告装置100は、上述のように、広告配信の要求を行うユーザから送信されるクエリに基づいて、広告効果が高いと想定される広告コンテンツを抽出し、抽出された広告コンテンツの配信を行うサーバ装置である。
【0038】
なお、広告装置100は、広告コンテンツの配信にあたって、ユーザ端末10を識別し、広告コンテンツを配信するユーザ端末10を特定する。具体的には、ユーザの識別は、ユーザ端末10のウェブブラウザと広告装置100との間でやり取りされるクッキーにユーザ識別情報を含めることによって行うことができる。ただし、ユーザを識別する手法は上記に限られない。例えば、ユーザ端末10に専用のプログラムを設定し、かかる専用プログラムからユーザ識別情報を広告装置100に送信させてもよい。
【0039】
〔3.広告装置の構成〕
次に、
図3を用いて、実施形態に係る広告装置100の構成について説明する。
図3は、実施形態に係る広告装置100の構成例を示す図である。
図3に示すように、広告装置100は、通信部110と、記憶部120と、制御部130とを有する。なお、広告装置100は、広告装置100を利用する管理者等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を表示するための表示部(例えば、液晶ディスプレイ等)を有してもよい。
【0040】
(通信部110について)
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。かかる通信部110は、ネットワークNと有線又は無線で接続され、ネットワークNを介して、ユーザ端末10や、広告主端末20や、ウェブサーバ30との間で情報の送受信を行う。
【0041】
(記憶部120について)
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。
図3に示すように、記憶部120は、広告情報記憶部121と、ユーザ情報記憶部122と、演算テーブル123とを有する。
【0042】
(広告情報記憶部121について)
広告情報記憶部121は、広告主端末20から入稿された広告コンテンツに関する情報を記憶する。また、広告情報記憶部121は、入稿された広告コンテンツに対応付けて、広告主から設定される条件式を記憶する。また、広告情報記憶部121は、広告コンテンツごとに設定される特徴量(例えば、広告コンテンツの内容を示すキーワードにより表される)を記憶する。ここで、
図4に、実施形態に係る広告情報記憶部121の一例を示す。
図4は、実施形態に係る広告情報記憶部121の一例を示す図である。
図4に示した例では、広告情報記憶部121は、「広告コンテンツID」、「スタティックスコア」、「論理条件」、「特徴量」といった項目を有する。
【0043】
「広告コンテンツID」は、広告主から広告装置100に入稿された広告コンテンツを識別するための識別情報を示す。なお、実際にユーザ端末10に配信される広告コンテンツのデータは、広告装置100とは別に備えられた所定の広告配信サーバに記憶されてもよい。この場合、広告装置100は、広告情報記憶部121に記憶された広告コンテンツIDに基づいて、外部の広告配信サーバに記憶された広告コンテンツを特定する。そして、広告装置100は、広告配信サーバに対して、特定された広告コンテンツをユーザ端末10に対して配信するよう制御する。
【0044】
また、以下では、
図4に示した広告コンテンツIDに記憶されている識別情報を広告コンテンツの参照符号として用いる場合がある。例えば、広告コンテンツID「C11」によって識別される広告コンテンツを「広告コンテンツC11」と表記する場合がある。
【0045】
「スタティックスコア」は、広告コンテンツに設定されたスタティックスコアの値を示す。スタティックスコアは、広告コンテンツ毎に予め与えられるスコアであって、例えば、広告入札額などに基づいて設定される。なお、スタティックスコアは、広告装置100の管理者等によって人為的に設定されてもよい。
【0046】
「論理条件」は、広告コンテンツ毎に設定される、論理式を用いた条件式を示す。広告主は、広告コンテンツを入稿する際に論理条件を設定する。これにより、広告主は、広告コンテンツを配信させるユーザを選択したり、特定の属性を有するユーザのみに広告コンテンツを配信させるよう配信対象を絞り込んだりすることができる。
【0047】
「特徴量」は、単語(キーワード)と数値の組み合わせによって、広告コンテンツの特徴を示す情報である。特徴量に係るキーワードは、広告コンテンツの内容を説明する単語であり、例えば、広告コンテンツが配信対象として抽出される際に参照される。また、特徴量に係る数値は、例えば、クエリスコアと掛け合わされることにより、広告コンテンツの抽出の際のスコアを形成する要素として用いられる。すなわち、特徴量に係る数値が高いほど、広告コンテンツの特徴を強く表すものといえる。特徴量は、入稿された広告コンテンツに含まれるテキストや画像が示す宣伝内容等に基づいて、自動的に設定される。例えば、特徴量は、広告コンテンツに含まれるテキストデータを形態素解析することによって得られる。なお、特徴量は、広告主や広告装置100の管理者等によって人為的に設定されてもよい。
【0048】
すなわち、
図4では、広告コンテンツID「C11」によって識別される広告コンテンツは、スタティックスコアが「80」であり、設定されている論理条件が「(年齢:10代or20代or30代) AND (性別:男性)」であり、特徴量は「サーフィン:10」と「海:5」で表されていることを示している。
【0049】
(ユーザ情報記憶部122について)
ユーザ情報記憶部122は、ユーザに関する情報を記憶する。具体的には、ユーザ情報記憶部122は、広告装置100に広告コンテンツの配信を要求するユーザ属性や、行動属性に関する情報を記憶する。
【0050】
ここで、
図5に、実施形態に係るユーザ情報記憶部122の一例を示す。
図5は、実施形態に係るユーザ情報記憶部122の一例を示す図である。
図5に示した例では、ユーザ情報記憶部122は、「ユーザID」、「ユーザ属性」、「行動属性」といった項目を有する。
【0051】
「ユーザID」は、ユーザ端末10、及びユーザ端末10を操作するユーザを識別する識別情報である。
図5において、ユーザIDは、「U11」と表記される。これは、ユーザ端末10がユーザID「U11」により識別されていることを示すとともに、ユーザ端末10は「ユーザU11」によって操作されていることを示すものとする。
【0052】
「ユーザ属性」は、ユーザの属性情報を示す。ユーザ属性は、例えば、ユーザの性別や、年齢や、嗜好などに関する情報が含まれる。かかるユーザ属性は、広告装置100による論理演算の要素として用いられる場合がある。
【0053】
「行動属性」は、ユーザ(すなわち、ユーザ端末10)の行動属性を示す。行動属性は、例えば、ネットワーク上で取得される情報に基づいて、ユーザの行動の特徴を示したものである。例えば、行動属性は、クッキー等に基づいてユーザの行動が分析された結果、かかるユーザの興味関心を示すと想定される情報であり、例えば、行動の内容と数値(スコア)によって示される。かかる行動属性がクエリとして用いられる場合、行動属性に含まれる行動の内容と、広告コンテンツが有する特徴量との一致が判定され、また、両者の数値の積が広告コンテンツのスコアとして算出される。なお、行動属性に係る行動内容と数値は、ユーザの行動履歴によって自動的に決定されるのみならず、人為的に設定されてもよい。また、行動属性に係る行動内容と数値は、広告コンテンツの配信が要求された際に、かかる広告枠を含むウェブページの特性などにより調整されてもよい。例えば、スポーツジムに関係するウェブページに表示する広告コンテンツが配信される場合には、ユーザから送信されるクエリに含まれる「スポーツジム」の数値が通常よりも上昇するなどの調整が行われてもよい。
【0054】
すなわち、
図5では、ユーザID「U11」によって識別されるユーザ端末10は、ユーザ属性が「男性」、「30代」、「趣味:筋トレ」であり、行動属性が「スポーツジム:30」、「筋トレ:20」であることを示している。
【0055】
なお、
図5では図示することを省略したが、ユーザ情報記憶部122には、ユーザ端末10自体を識別する情報であるデバイスID等を記憶してもよい。デバイスIDは、ユーザIDと異なり、端末装置自体に記録されている識別情報を示す。また、ユーザ情報記憶部122は、広告装置100の内部に存在せず、例えば外部に接続された所定のログ記憶サーバなどであってもよい。この場合、後述する取得部132は、ネットワークNを介して、所定のログ記憶サーバに記憶されているログを取得することができる。
【0056】
(演算テーブル123について)
演算テーブル123は、広告コンテンツの抽出に用いられるデータテーブルである。演算テーブル123は、例えば、広告情報記憶部121に記憶されている広告コンテンツを、スタティックスコアの降順にソート(整列)させて形成される。また、演算テーブル123は、後述する論理演算部135や、スコア算出部136による処理の結果についても記憶する。ここで、
図6に、実施形態に係る演算テーブル123の一例を示す。
図6は、実施形態に係る演算テーブル123の一例を示す図である。
図6に示した例では、演算テーブル123は、「広告コンテンツID」、「スタティックスコア」、「論理条件ヒット」、「特徴量ヒット」、「抽出対象」といった項目を有する。
【0057】
「広告コンテンツID」および「スタティックスコア」は、
図4で説明した同項目に対応する。
【0058】
「論理条件ヒット」は、論理演算部135による論理演算の結果、広告コンテンツがクエリを満たしているか否かという結果を示す。例えば、広告コンテンツに設定された論理条件が、ユーザから送信されたクエリに含まれるユーザ属性を満たしている場合には、「論理条件ヒット」の項目には「○」が記憶される。一方、広告コンテンツに設定された論理条件が、ユーザから送信されたクエリに含まれるユーザ属性を満たしていない場合には、「論理条件ヒット」の項目には「×」が記憶される。
【0059】
「特徴量ヒット」は、スコア算出部136による算出に際して、スコア算出部136による算出をスキップするか否か、という結果を示す。例えば、広告コンテンツを示す特徴量を示すキーワードがユーザから送信されたクエリに含まれており、かつ、スコア算出がスキップされない場合には、「特徴量ヒット」の項目には「○」が記憶される。一方、広告コンテンツを示す特徴量を示すキーワードがユーザから送信されたクエリに含まれていなかったり、WANDアルゴリズムを用いることにより、すでに上位のスコアを超えるスコアが算出されないことが自明であったりする場合、言い換えれば、スコア算出がスキップされる場合には、「特徴量ヒット」の項目には「×」が記憶される。
【0060】
「抽出対象」は、広告コンテンツが抽出対象であるか否かを示す。広告コンテンツが抽出対象となるか否かについては、例えば、後述する抽出部137によって任意に設定されてよい。例えば、抽出部137が、「論理条件ヒット」を最低限の抽出対象とすると設定した場合には、「論理条件ヒット」の項目が「×」の広告コンテンツは、抽出対象とならないため、「×」が記憶される。なお、詳しくは後述するが、「抽出対象」の項目は、ユーザ端末10に配信される広告コンテンツの数によっても、抽出対象とされるか否かが変化する場合がある。
【0061】
すなわち、
図6では、広告コンテンツID「C13」によって識別される広告コンテンツは、スタティックスコアが「100」であり、論理条件ヒットが「○」であり、特徴量ヒットが「○」であり、かかる処理結果を受けて、抽出対象として「○」であることを示している。
【0062】
(制御部130について)
制御部130は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、広告装置100内部の記憶装置に記憶されている各種プログラム(抽出プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。また、制御部130は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
【0063】
図3に示すように、制御部130は、入稿受付部131と、取得部132と、整列部133と、演算制御部134と、抽出部137と、配信部138とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部130の内部構成は、
図3に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、制御部130が有する各処理部の接続関係は、
図3に示した接続関係に限られず、他の接続関係であってもよい。
【0064】
(入稿受付部131について)
入稿受付部131は、広告主端末20から広告コンテンツの入稿を受け付ける。このとき、入稿受付部131は、広告コンテンツ毎に設定される条件式を広告コンテンツと対応付けて受け付ける。そして、入稿受付部131は、入稿される広告コンテンツを識別する広告コンテンツIDを設定したうえで、入稿される広告コンテンツに関する情報を広告情報記憶部121に記憶する。
【0065】
なお、入稿受付部131は、広告コンテンツに設定される条件式について、必ずしも広告コンテンツの入稿と同時に受け付けることを要しない。すなわち、入稿受付部131は、広告コンテンツの入稿の後に条件式の設定を受け付けてもよいし、条件式の設定を受け付けた後に、条件式の内容の変更を受け付けてもよい。
【0066】
(取得部132について)
取得部132は、送信元に関する情報である送信元情報を含む広告コンテンツの配信要求を取得する。具体的には、取得部132は、送信元情報として、配信要求の送信元であるユーザに関する情報や、ユーザ端末10に保持される情報や、配信された広告コンテンツが表示されるウェブページに関する情報等を含む広告コンテンツの配信要求であるクエリをユーザ端末10から取得する。より具体的には、取得部132は、クエリとして、ユーザが配信を希望する広告コンテンツの数や、ユーザの属性情報や、ユーザの行動属性に関する情報などを取得する。
【0067】
また、取得部132は、取得した送信元情報をユーザ情報記憶部122に記憶する。すなわち、取得部132は、広告コンテンツの抽出に要する全ての情報をクエリとしてユーザ端末10から取得するのでなく、予め記憶されていたユーザ情報をユーザ情報記憶部122から取得してもよい。例えば、取得部132は、送信されたクエリにユーザ属性に係る情報がない場合であっても、ユーザID等を参照することにより、過去に記憶されていたユーザ情報をユーザ情報記憶部122内で特定することにより、クエリを送信したユーザのユーザ属性を取得することができる。この場合、取得部132は、ウェブサーバ30やウェブサーバ30を管理する管理装置などと連携し、ユーザ端末10に関する情報を逐次取得するようにしてもよい。具体的には、取得部132は、ユーザ端末10がウェブサーバ30にアクセスした際にやり取りされるクッキー等の情報を適宜取得してもよい。取得部132は、例えばユーザ情報として、ユーザの年齢や、性別や、興味や、居住地域等の情報を取得する。なお、広告装置100は、広告コンテンツの配信要求を取得したものの、かかる配信要求から上記の送信元情報のようなクエリが取得できなかったり、取得したクエリが抽出処理を行うのに十分でなかったりする場合には、下記で説明する抽出処理を行わず、広告コンテンツを配信してもよい。この場合、広告装置100は、特定のユーザにターゲディングしていない、任意のユーザに配信可能な広告コンテンツ広告を配信する。
【0068】
(整列部133について)
整列部133は、配信候補である広告コンテンツ群に含まれる広告コンテンツを、予め広告コンテンツ毎に設定される所定の評価値順に整列(ソート)させる。具体的には、整列部133は、広告コンテンツ毎に設定される評価値であるスタティックスコアに基づいて、スタティックスコアの降順に広告コンテンツを整列させる。そして、整列部133は、スタティックスコアの降順に広告コンテンツを整列させることで形成されるデータテーブルを演算テーブル123として記憶する。
【0069】
(演算制御部134について)
演算制御部134は、広告コンテンツに対して所定の演算処理を行う。例えば、演算制御部134は、取得部132によって取得された送信元情報に基づき、配信候補である広告コンテンツ群に対して、予め広告コンテンツ毎に設定される配信条件に該当する広告コンテンツであるか否かを判定する判定処理と、送信元情報と広告コンテンツの特徴量との一致の度合いを示すスコアを算出する算出処理とを1つの広告コンテンツ毎に行う。
図3に示すように、演算制御部134は、論理演算部135と、スコア算出部136とを含む。
【0070】
(論理演算部135について)
論理演算部135は、取得部132によって取得された送信元情報に基づき、配信候補である広告コンテンツ群に含まれる1つの広告コンテンツに対して、予め広告コンテンツ毎に設定される配信条件に該当する広告コンテンツであるか否かを判定する判定処理を行う。例えば、論理演算部135は、判定処理として、予め広告コンテンツ毎に設定される論理演算の条件式によって表される配信条件に対する論理演算を行う。すなわち、論理演算部135は、取得部132によって取得されたクエリが、予め広告コンテンツごとに設定される論理条件を満たすか否かを論理演算する。より具体的には、論理演算部135は、広告コンテンツに対して広告主が設定する論理条件である条件式に対して、ユーザ端末10から送信されたクエリが適合するか否かを論理演算する。
【0071】
このとき、論理演算部135は、広告コンテンツがユーザに配信される対象から除外されるための除外条件(NOTで示される演算式)を含む配信条件を用いて、判定処理を行うことができる。このように、論理演算部135は、広告主から指定されるカテゴリなどの単純な条件指定ではなく、除外条件である「NOT」のような、複雑な処理を要する論理演算を広告コンテンツに対して行うことができる。これにより、論理演算部135によれば、広告主の所望するユーザに対して適切に広告コンテンツを抽出させることができる。
【0072】
また、論理演算部135は、整列部133によって整列された抽出対象候補である複数の広告コンテンツに対して、整列順に論理条件を満たすか否かを論理演算する。すなわち、論理演算部135は、スタティックスコアが高い広告コンテンツほど優先的に論理演算を行うことになるため、広告コンテンツの抽出処理を迅速に行うことができる。
【0073】
ここで、論理演算部135は、広告コンテンツ群に対して、所定の整列順に配信条件を満たすか否かを論理演算することが可能な論理演算アルゴリズムを用いて論理演算を行う。例えば、論理演算部135は、所定の整列順として、スタティックスコアの昇順、または降順に整列された複数の広告コンテンツに対して論理演算することが可能な論理演算アルゴリズムを用いる。例えば、論理演算部135は、上述したintervalアルゴリズムを用いて論理演算を行う。intervalアルゴリズムによれば、複雑な論理条件が記載された条件式に対しても、ソートされた順に論理演算を行うことができるため、迅速な処理が可能となる。
【0074】
(スコア算出部136について)
スコア算出部136は、取得部132によって取得された送信元情報に基づき、配信候補である広告コンテンツ群に対して、送信元情報と広告コンテンツの特徴情報との一致の度合いを示すスコアを算出する算出処理を行う。例えば、スコア算出部136は、ユーザ端末10から送信されたクエリと、特徴情報である広告コンテンツの特徴量との一致の度合いを示すスコアを算出する。より具体的には、スコア算出部136は、クエリに含まれるユーザの行動属性に係る単語と、広告コンテンツに設定された特徴量に係るキーワードとが一致する場合に、クエリスコアであるユーザの行動属性に係る数値と、特徴量に係る数値との積を求めることにより、スコアを算出する。さらに、スコア算出部136は、求めた積と、広告コンテンツのスタティックスコアとの和を求めることで、広告コンテンツに係るトータルスコアを算出する。
【0075】
また、スコア算出部136は、論理演算部135が整列部133によって整列された広告コンテンツに対して演算を行った場合、論理演算部135によって論理条件を満たすか否かを論理演算された広告コンテンツに対して、整列順にスコアを算出する。すなわち、スコア算出部136は、論理演算部135が論理演算を行うのと並行して、スタティックスコアの降順にソートされた広告コンテンツに対してスコアを算出する。かかる処理では、スコア算出部136は、上述のように、WANDアルゴリズムを用いることにより、整列された広告コンテンツの中から、スコアの算出対象とする広告コンテンツを効率的に選出する。例えば、スコア算出部136は、広告コンテンツの特徴情報の要素(ここでは、特徴量を形成する各単語と数値、また、インデックスに記憶されている各単語に対応する数値の最大値等が含まれる)に基づいて、処理対象となる広告コンテンツのスコアが、抽出候補として確保されている広告コンテンツのスコアの最小値を超えるか否かを判定し、かかる最小値を超えないと判定される場合には、スコアの算出をスキップする。具体的には、スコア算出部136は、1つの広告コンテンツ毎に処理を行う過程において、配信件数分の広告コンテンツを抽出候補として確保した時点において、抽出候補として確保されている広告コンテンツのスコアの最小値を閾値として、次に処理対象となる広告コンテンツのスコアが閾値を超えるか否かを判定し、閾値を超えないと判定される場合には、スコアの算出をスキップすることができる。これにより、スコア算出部136は、詳細なスコアを算出するまでもなく広告コンテンツの抽出処理を進めることができるので、迅速な抽出処理に資することができる。
【0076】
また、スコア算出部136は、論理演算部135による論理演算の結果、論理条件を満たさないと判定された広告コンテンツに対して、スコアの算出をスキップすることができる。論理条件を満たさないと判定された広告コンテンツはユーザへの配信対象から除外されることが想定されるため、スコア算出部136は、かかるスキップ処理を行うことで処理工程を減らし、迅速な抽出処理に資することができる。なお、上記のようなスキップ処理が行われた場合には、演算制御部134は、処理対象を次の広告コンテンツに移行させる。
【0077】
(抽出部137について)
抽出部137は、演算制御部134による処理の結果に基づいて、広告コンテンツ群の中から配信要求に対応する広告コンテンツを抽出する。すなわち、抽出部137は、論理演算部135およびスコア算出部136によって求められた各結果に基づいて、ユーザ端末10から送信される配信要求であるクエリに対応する広告コンテンツを抽出する。例えば、抽出部137は、論理演算部135による論理演算の結果、広告主から設定された条件式を満たしていると判定された広告コンテンツであり、かつ、スコア算出部136によって算出されたトータルスコアが高い広告コンテンツを抽出する。このとき、抽出部137は、クエリに含まれる配信件数を参照し、ユーザ端末10が所望する数の広告コンテンツを抽出する。
【0078】
また、抽出部137は、演算制御部134によって広告コンテンツ毎に算出されたスコアの高い順に、配信要求により要求された数の広告コンテンツを抽出候補(キュー)として確保し、演算制御部134による処理が終了した時点において、抽出候補として確保されている広告コンテンツを配信要求に対応する広告コンテンツとして抽出する。この場合、演算制御部134による処理の終了とは、演算制御部134が広告コンテンツ群の全てを処理した場合に限られず、例えば、処理のために与えられる所定の時間が経過した場合や、予め設定された所定数の広告コンテンツを演算制御部134が処理し終えた時点などであってもよい。
【0079】
ここで、
図6に示した演算テーブル123を用いて、具体的な広告コンテンツの抽出処理について説明する。なお、以下では、
図5に示すユーザU11が、クエリとして、「配信件数」が「2」であり、ユーザ属性「男性、30代、趣味:筋トレ」と、行動属性「スポーツジム:30」と「筋トレ:20」といった情報を広告装置100に送信したものとする。また、広告装置100は、WANDアルゴリズムによる算出を行うため、演算テーブル123において、広告コンテンツが有する特徴量の各要素の最大値をインデックスに記憶している。以下の例では、「スポーツジム」の最大値は「30」であり、「筋トレ」の最大値は「20」であるものと仮定する。
【0080】
まず、論理演算部135は、広告コンテンツがスタティックスコアの降順にソートされた演算テーブル123において、データの先頭である広告コンテンツC13に対して論理演算を行う。すなわち、論理演算部135は、クエリに含まれるユーザ属性「男性、30代、趣味:筋トレ」が、広告コンテンツC13の条件式である「(年齢:20代or30代) AND (性別:男性)」を満たすか否かを判定する。この場合、クエリは条件式を満たすので、論理演算部135は、演算テーブル123の「論理条件ヒット」の項目に「○」を記憶させる。
【0081】
続いて、スコア算出部136は、広告コンテンツC13のスコアを算出する。具体的には、スコア算出部136は、クエリに含まれる行動属性「スポーツジム」と「筋トレ」と、広告コンテンツC13の特徴量である「スポーツジム」と「筋トレ」との一致を判定する。そして、スコア算出部136は、演算テーブル123の「特徴量ヒット」の項目に「○」を記憶させる。
【0082】
そして、スコア算出部136は、クエリの行動属性「スポーツジム:30」と、広告コンテンツC13の特徴量「スポーツジム:10」との積を求める。また、スコア算出部136は、クエリの行動属性「筋トレ:20」と、広告コンテンツC13の特徴量「筋トレ:10」との積を求める。そして、スコア算出部136は、求めた積と、スタティックスコア「100」との和を求める。すなわち、スコア算出部136は、広告コンテンツC13のトータルスコアとして、「300+200+100=600」を算出する。そして、スコア算出部136は、「600」というスコアを閾値として記憶する。
【0083】
続いて、抽出部137は、論理演算部135およびスコア算出部136によって求められた各結果を併用することにより、広告コンテンツC13が抽出対象の候補であるか否かを判定する。抽出部137は、広告コンテンツC13が論理条件と特徴量がともにヒットしたことを受けて、演算テーブル123の「抽出対象」の項目に「○」を記憶させる。これは、抽出部137が、広告コンテンツC13をユーザに配信させる広告コンテンツの候補としていることを意味する。そして、広告装置100は、広告コンテンツC13の次にソートされている広告コンテンツC12の処理に移行する。
【0084】
論理演算部135は、広告コンテンツC12について論理演算を行う。すなわち、論理演算部135は、クエリに含まれるユーザ属性「男性、30代、趣味:筋トレ」が、広告コンテンツC12の条件式である「(年齢:10代) AND (趣味:スポーツ)」を満たすか否かを判定する。この場合、クエリは条件式を満たさないので、論理演算部135は、演算テーブル123の「論理条件ヒット」の項目に「×」を記憶させる。
【0085】
この場合、スコア算出部136は、クエリと広告コンテンツC12の特徴量との一致を判定し、「特徴量ヒット」の項目に「○」を記憶させるものの、スコアの算出はスキップすることができる。これは、「論理条件ヒット」の項目に「×」が記憶されていることによる。この場合、抽出部137は、演算テーブル123の「抽出対象」の項目に「×」を記憶させる。そして、広告装置100は、広告コンテンツC12の次にソートされている広告コンテンツC11の処理に移行する。
【0086】
論理演算部135は、広告コンテンツC11について論理演算を行う。すなわち、論理演算部135は、クエリに含まれるユーザ属性「男性、30代、趣味:筋トレ」が、広告コンテンツC11の条件式である「(年齢:10代or20代or30代) AND (性別:男性)」を満たすか否かを判定する。この場合、クエリは条件式を満たすので、論理演算部135は、演算テーブル123の「論理条件ヒット」の項目に「○」を記憶させる。
【0087】
そして、スコア算出部136は、クエリと広告コンテンツC11の特徴量との一致を判定する。この場合、広告コンテンツC11の特徴量は「サーフィン」と「海」であり、クエリとの一致がないため、スコア算出部136は、「特徴量ヒット」の項目に「×」を記憶させる。
【0088】
なお、抽出部137が、広告コンテンツの抽出の最低条件として「論理条件ヒット」を設定している場合、この時点では、演算テーブル123の「抽出対象」の項目に「○」が記憶されてもよい。すなわち、抽出部137は、特徴量ヒットしていない広告コンテンツであっても、論理条件がヒットする広告コンテンツについては、算出処理をスキップさせることなく、少なくとも配信件数「2」を満たすまでは、抽出対象(キュー)として確保する。抽出部137は、この時点で、暫定的にトータルスコア「0」を閾値とする。これは、スコア算出部136は、広告コンテンツC11に対してスコアの算出ができず(特徴量が一致しない場合には、スコア算出部136は、スタティックスコアとの和を求めなくてもよい)、かつ、広告コンテンツC11が抽出候補として確保されたことによる。すなわち、抽出部137は、その後の処理において、トータルスコアが「0」より大きい広告コンテンツが抽出候補として確保された場合には、広告コンテンツC11を抽出候補から除外する。言い換えれば、抽出部137は、その後の処理において、特徴量がヒットする広告コンテンツがあった場合には、トータルスコアが「0」としてキューに確保されている広告コンテンツC11を抽出候補から除外することができる。
【0089】
続いて、広告装置100は、広告コンテンツC11の次にソートされている広告コンテンツC15の処理に移行する。
【0090】
論理演算部135は、広告コンテンツC15について論理演算を行う。すなわち、論理演算部135は、クエリに含まれるユーザ属性「男性、30代、趣味:筋トレ」が、広告コンテンツC15の条件式である「年齢:30代」を満たすか否かを判定する。この場合、クエリは条件式を満たすので、論理演算部135は、演算テーブル123の「論理条件ヒット」の項目に「○」を記憶させる。
【0091】
そして、スコア算出部136は、クエリと広告コンテンツC15の特徴量との一致を判定する。この場合、広告コンテンツC15の特徴量は「トレーニング」と「マラソン」であり、クエリとの一致がないため、スコア算出部136は、「特徴量ヒット」の項目に「×」を記憶させる。
【0092】
この場合、抽出部137は、広告コンテンツC15は「論理条件ヒット」を満たすものの、「抽出対象」の項目に「×」を記憶する。これは、以下の条件が満たされたことによる。まず、この時点において、抽出部137は、既に配信件数「2」の広告コンテンツを確保している。そして、演算制御部134による処理は、スタティックスコアの降順にソートされた広告コンテンツに対して順に実施されている。すなわち、広告コンテンツC15が広告コンテンツC11のスコアを超えることはないと考えられる。ゆえに、抽出部137は、広告コンテンツC15がユーザU11へ配信される対象となりえないと判定し、「抽出対象」の項目に「×」を記憶する。そして、広告装置100は、広告コンテンツC15の次にソートされている広告コンテンツC16の処理に移行する。
【0093】
論理演算部135は、広告コンテンツC16について論理演算を行う。すなわち、論理演算部135は、クエリに含まれるユーザ属性「男性、30代、趣味:筋トレ」が、広告コンテンツC16の条件式である「趣味:筋トレ」を満たすか否かを判定する。この場合、クエリは条件式を満たすので、論理演算部135は、演算テーブル123の「論理条件ヒット」の項目に「○」を記憶させる。
【0094】
そして、スコア算出部136は、クエリと広告コンテンツC16の特徴量との一致を判定する。この場合、広告コンテンツC16の特徴量は「スポーツジム」と「筋トレ」であり、クエリと一致するため、スコア算出部136は、「特徴量ヒット」の項目に「○」を記憶させる。この場合、スコア算出部136は、現時点でのトータルスコアの閾値である「0」を超えるスコアが算出されると判定可能なため、広告コンテンツC16に対するスコアの算出処理を行う。
【0095】
スコア算出部136は、クエリの行動属性「スポーツジム:30」と、広告コンテンツC16の特徴量「スポーツジム:8」との積を求める。また、スコア算出部136は、クエリの行動属性「筋トレ:20」と、広告コンテンツC16の特徴量「筋トレ:10」との積を求める。そして、スコア算出部136は、求めた積と、スタティックスコア「65」との和を求める。すなわち、スコア算出部136は、広告コンテンツC16のトータルスコアとして、「240+200+65=505」を算出する。そして、スコア算出部136は、トータルスコアが現時点での「600」よりも小さいため、抽出候補の広告コンテンツのスコアのうち最小値である「505」を新たな閾値として記憶する。
【0096】
そして、抽出部137は、広告コンテンツC16が論理条件と特徴量がともにヒットしたことを受けて、演算テーブル123の「抽出対象」の項目に「○」を記憶させる。すなわち、抽出部137は、配信件数「2」を確保した以降の処理では、論理条件と特徴量がともにヒットした広告コンテンツのみを抽出対象とすればよいことになる。また、抽出部137は、この時点において、広告コンテンツC11を抽出候補から除外し、演算テーブル123の「抽出対象」の項目を「×」に更新する。そして、広告装置100は、広告コンテンツC16の次にソートされている広告コンテンツC14の処理に移行する。
【0097】
論理演算部135は、広告コンテンツC14について論理演算を行う。すなわち、論理演算部135は、クエリに含まれるユーザ属性「男性、30代、趣味:筋トレ」が、広告コンテンツC14の条件式である「性別:男性」を満たすか否かを判定する。この場合、クエリは条件式を満たすので、論理演算部135は、演算テーブル123の「論理条件ヒット」の項目に「○」を記憶させる。
【0098】
そして、スコア算出部136は、クエリと広告コンテンツC14の特徴量との一致を判定する。この場合、広告コンテンツC14の特徴量は「スポーツジム」と「筋トレ」であり、クエリと一致するため、スコア算出部136は、「特徴量ヒット」の項目に「○」を記憶させる。
【0099】
ここで、スコア算出部136は、現時点でのトータルスコアの閾値である「505」を広告コンテンツC14のトータルスコアが超える可能性があるかを判定する。この場合、クエリと特徴量とは2つの項目で一致しており、かつ、インデックスに記憶されている「スポーツジム」の最大値は「30」であり、「筋トレ」の最大値は「20」であることから、スコア算出部136は、広告コンテンツC14のトータルスコアが「500」を超える可能性があると判定する。この場合、スコア算出部136は、広告コンテンツC14のトータルスコアの算出処理に移行する。
【0100】
なお、スコア算出部136は、クエリと広告コンテンツC14の特徴量とが「筋トレ」のみで一致していたと仮定した場合には、WANDアルゴリズムを用いることにより、スコアの算出処理をスキップすることができる。これは、予めインデックスに記憶されている「筋トレ」の最大値は「20」であることがわかっているので、たとえスコア算出部136が広告コンテンツC14のトータルスコアを算出したとしても、閾値「505」を超えることができないことが自明であることによる。具体的には、たとえ広告コンテンツC14の特徴量が「筋トレ:20」という最大値であったとしても、スコア算出部136は、クエリスコア「筋トレ:20」と、広告コンテンツC14の特徴量「筋トレ:20」との積である「400」と、スタティックスコア「60」との和である「460」を算出することになる。すなわち、広告コンテンツC14の特徴量「筋トレ」の数値がどのような値であっても、閾値「505」を超えることはないことが自明であり、算出をスキップしてよいことになる。なお、仮に算出処理がスキップされた場合には、抽出部137は、かかる広告コンテンツについては抽出候補として確保しない。
【0101】
図6の例では、スコア算出部136は、閾値「505」を超える可能性があると判定しているため、広告コンテンツC14のトータルスコアを算出する。スコア算出部136は、クエリの行動属性「スポーツジム:30」と、広告コンテンツC14の特徴量「スポーツジム:30」との積を求める。また、スコア算出部136は、クエリの行動属性「筋トレ:20」と、広告コンテンツC14の特徴量「筋トレ:10」との積を求める。そして、スコア算出部136は、求めた積と、スタティックスコア「60」との和を求める。すなわち、スコア算出部136は、広告コンテンツC14のトータルスコアとして、「900+200+60=1160」を算出する。そして、スコア算出部136は、トータルスコアが現時点での「505」という閾値を超えたため、現時点での最小値である「600」を新たな閾値として記憶する。
【0102】
抽出部137は、トータルスコアの高い広告コンテンツほど、優先的にユーザU11に配信される広告コンテンツとして適しているものと判定する。例えば、この時点で演算制御部134による処理が終了したと仮定した場合、抽出部137は、抽出候補として確保されている広告コンテンツC14(トータルスコア:1160)および広告コンテンツC13(トータルスコア:600)をユーザU11が送信したクエリに対応する広告コンテンツとして抽出する。また、抽出部137は、この時点において、広告コンテンツC16を抽出候補から除外し、演算テーブル123の「抽出対象」の項目を「×」に更新する。
【0103】
このように、広告装置100は、入稿された広告コンテンツについて、スタティックスコアに基づき整列させたうえで、順に抽出処理を行う。このため、広告装置100は、1つの広告コンテンツ毎に、順に抽出対象を導出することができるので、不要な処理をスキップさせつつ、適した広告コンテンツを抽出できる。これにより、広告装置100は、訴求効果の高い広告コンテンツを迅速に抽出することができる。
【0104】
(配信部138について)
配信部138は、取得部132によって取得された広告コンテンツの配信要求であるクエリを送信したユーザ端末10に、抽出部137によって抽出された広告コンテンツを配信する。
【0105】
なお、実際にユーザ端末10に配信される広告コンテンツのデータ自体は、広告装置100に係る記憶部120内に記憶されていなくてもよい。例えば、配信部138は、外部に備えられた所定の広告配信サーバに広告配信の制御命令を送信することで、抽出部137が抽出した広告コンテンツをユーザ端末10に配信させてもよい。
【0107】
次に、
図7を用いて、実施形態に係る広告装置100による抽出処理の手順について説明する。
図7は、実施形態に係る広告装置100による抽出処理手順を示すフローチャートである。
【0108】
図7に示すように、取得部132は、ユーザ端末10から広告コンテンツの配信要求を受け付ける(ステップS101)。そして、取得部132は、配信要求とともに、送信元情報が含まれるクエリを取得したか否かを判定する(ステップS102)。ここで、クエリを取得した場合には(ステップS102;Yes)、取得部132は、取得したクエリを整列部133に送り、広告コンテンツの抽出処理を開始させる。そして、整列部133は、スタティックスコアの降順に広告コンテンツを整列させる(ステップS103)。
【0109】
続いて、演算制御部134は、整列された広告コンテンツに対して、順に、論理演算とスコア算出を実施する(ステップS104)。そして、抽出部137は、演算制御部134による各処理の結果に基づいて、広告コンテンツを抽出する(ステップS105)。続いて、配信部138は、抽出部137によって抽出された広告コンテンツを、クエリを送信したユーザ端末10に配信する(ステップS106)。
【0110】
一方、ステップS102において、クエリ(送信元情報)を取得しない場合には(ステップS102;No)、配信部138は、特定のユーザにターゲティングされないような、任意のユーザに配信可能な広告コンテンツを配信する(ステップS107)。なお、クエリが取得されない場合とは、クエリに係る情報の全てが取得されない場合のみならず、送信元情報の一部が取得されたものの、他の情報が不足することにより、実施形態に係る処理が実現されない場合等を含む。以上により、広告装置100による抽出処理は完了する。
【0111】
〔5.変形例〕
上述した広告装置100は、上記実施形態以外にも種々の異なる形態にて実施されてよい。そこで、以下では、広告装置100の他の実施形態について説明する。
【0112】
〔5−1.一斉処理〕
上述した実施形態では、広告装置100は、予めスタティックスコアの降順にソートされた広告コンテンツに対して処理を行う例を示した。しかし、広告装置100は、入稿された広告コンテンツ群に対して、一斉に論理演算を行い、かかる結果を受けて、スコア算出をおこなってもよい。
【0113】
すなわち、広告装置100は、広告主から設定された条件式を満たすことを抽出の最低条件とする場合において、入稿された広告コンテンツ群に対して論理演算を実施する。この場合、広告装置100は、整列された広告コンテンツに対して論理演算を行うことを要しないので、上述したintervalアルゴリズムによらず、例えば、CNFや、DNFアルゴリズムを用いて論理演算を行うことができる。そして、広告装置100は、かかる結果を受け、条件式を満たす広告コンテンツに対して、スコア算出処理を実施する。
【0114】
このように、広告装置100は、送信元に関する情報である送信元情報を含む広告コンテンツの配信要求を取得する取得部132と、取得部132によって取得された送信元情報に基づき、配信候補である広告コンテンツ群に対して、予め広告コンテンツ毎に設定される配信条件に該当する広告コンテンツであるか否かを判定する判定部(ここでは、論理演算部135が対応する)と、判定部によって配信条件に該当する広告コンテンツであると判定された広告コンテンツに対して、送信元情報と広告コンテンツの特徴量との一致の度合いを示すスコアを算出するスコア算出部136と、判定部およびスコア算出部136によって求められた各結果を併用することにより、配信要求に対応する広告コンテンツを抽出する抽出部137とを含む。
【0115】
これにより、広告装置100は、intervalアルゴリズムのような、整列された処理対象に対して迅速に論理演算を行うことのできるアルゴリズムに限らず、種々の論理演算アルゴリズムを用いることができる。そして、広告装置100は、かかる手法によっても、所定の広告コンテンツについて、論理演算とスコア算出という2種の判定を行うことができるので、広告効果の高い広告コンテンツをユーザに配信させることができる。なお、かかる手法では、CNF等の論理演算アルゴリズムを用いることによって処理時間を短縮することができるので、2種の判定を行った場合でも、処理の迅速性が確保できる。
【0116】
〔5−2.論理条件〕
上述した実施形態では、広告装置100は、広告主から設定された条件式を満たす広告コンテンツを抽出することを最低条件とする例を示した。しかしながら、広告装置100は、条件式を満たす広告コンテンツを抽出の条件としなくてもよい。かかる条件は任意に取り決め可能であり、広告装置100は、条件式を満たさない広告コンテンツであっても、抽出対象とすることができる。
【0117】
また、上述した実施形態では、広告装置100は、条件式を完全に満たした場合に、広告コンテンツを抽出対象とする例を示した。しかし、広告装置100は、条件式を完全に満たさない広告コンテンツであっても、抽出対象としてもよい。例えば、広告装置100は、条件式に3つの条件が設けられている場合に、3つ全てを満たす広告コンテンツでなくとも、条件式に含まれる2つの条件を満たすことで、当該広告コンテンツは条件式を満たしていると判定してもよい。
【0118】
また、広告装置100は、広告主から受け付けた配信条件に関して、適宜、変換処理を行ってもよい。例えば、広告装置100は、広告主から「(年齢:10代or20代or30代or40代)」といった条件式を受け付けた場合には、かかる条件式を変換し、「NOT(年齢:50代以上)」といった条件式に変換してもよい。このように、広告装置100は、実際に広告主が設定した条件式と比較して、処理を効率化することができる場合や、より条件式として適切な指定が想定できる場合には、広告主が設定した条件式を変換することができる。これにより、広告装置100は、より迅速な処理を行うことができる。また、広告主にとっては、複雑な条件式を導出する手間をかけずに、所望するユーザに最適化した条件式によって広告コンテンツを配信させることができる。
【0119】
〔5−3.特徴量〕
上述した実施形態では、広告装置100は、広告コンテンツに設定される特徴量と、クエリとが一致することを特徴量ヒットの条件とした。しかし、広告装置100は、特徴量とクエリとが完全に一致することを特徴量ヒットの条件としなくてもよい。
【0120】
例えば、広告装置100は、「トレーニング」と「スポーツジム」とは類似する関係にある単語であるとして、「トレーニング」と「スポーツジム」という単語がクエリと特徴量に含まれる場合には、特徴量ヒットの項目に「○」が記憶されるようにしてもよい。すなわち、広告装置100は、単語の完全な一致ではなく、類語など、概念が共通する単語同士であれば特徴量がヒットしたものと推定するなど、柔軟に対応するようにしてもよい。なお、かかる対応は、論理演算における条件式に用いられる単語等についても共通する。
【0121】
〔5−4.スタティックスコア〕
上述した実施形態では、広告装置100は、広告コンテンツに予めスタティックスコアを設定する例を示した。しかし、広告装置100は、広告コンテンツに予めスタティックスコアを設定することを要さない。すなわち、広告装置100は、スタティックスコアの降順に広告コンテンツを整列させなくとも、所定の順に広告コンテンツを整列させることで、WANDアルゴリズムを用いた処理を実現することが可能となる。
【0122】
〔5−5.広告主から受け付ける条件〕
上述した実施形態では、入稿受付部131は、広告主から設定される条件式とともに広告コンテンツを受け付ける例を示した。しかし、入稿受付部131は、さらに異なる情報とともに広告コンテンツの入稿を受け付けてもよい。
【0123】
例えば、入稿受付部131は、広告主から、広告コンテンツの配信希望数や、1回あたりの広告コンテンツの配信金額や、CPA(Cost Per Acquisition)の指定を受け付けてもよい。CPAは、広告コンテンツによってコンバージョンにつながった(新規顧客を獲得した)場合における、新規顧客の獲得人数あたりの費用を示す。CPAは、広告費用をコンバージョン数で除算することで求められ、CPAの値が低いほど、広告の効率がよいことを意味している。
【0124】
〔6.ハードウェア構成〕
また、上述してきた実施形態に係る広告装置100は、例えば
図8に示すような構成のコンピュータ1000によって実現される。以下、広告装置100を例に挙げて説明する。
図8は、広告装置100の機能を実現するコンピュータ1000の一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM1300、HDD1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を有する。
【0125】
CPU1100は、ROM1300又はHDD1400に記憶されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を記憶する。
【0126】
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を記憶する。通信インターフェイス1500は、通信網500(
図2に示したネットワークNに対応する)を介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータを、通信網500を介して他の機器へ送信する。
【0127】
CPU1100は、入出力インターフェイス1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、入出力インターフェイス1600を介して生成したデータを出力装置へ出力する。
【0128】
メディアインターフェイス1700は、記録媒体1800に記憶されたプログラム又はデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【0129】
例えば、コンピュータ1000が実施形態に係る広告装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、制御部130の機能を実現する。また、HDD1400には、記憶部120内のデータが記憶される。コンピュータ1000のCPU1100は、これらのプログラムを記録媒体1800から読み取って実行するが、他の例として、他の装置から通信網500を介してこれらのプログラムを取得してもよい。
【0130】
〔7.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【0131】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、
図3に示した入稿受付部131と、取得部132とは統合されてもよい。また、例えば、記憶部120に記憶される情報は、ネットワークNを介して、外部に備えられた記憶装置に記憶されてもよい。
【0132】
また、例えば、上記実施形態では、広告装置100が、広告コンテンツの入稿やクエリを受け付ける受付処理と、配信される広告コンテンツを抽出する抽出処理と、広告コンテンツを配信する配信処理とを行う例を示した。しかし、上述した広告装置100は、受付処理を行う受付装置と、抽出処理を行う抽出装置と、配信処理を行う配信装置とに分離されてもよい。この場合、受付装置は、少なくとも、入稿受付部131と、取得部132とを有する。また、抽出装置は、少なくとも、整列部133と、論理演算部135と、スコア算出部136と、抽出部137とを有する。また、配信装置は、少なくとも、配信部138を有する。
【0133】
また、上述してきた各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【0134】
〔8.効果〕
上述してきたように、実施形態に係る広告装置100は、取得部132と、演算制御部134と、抽出部137とを有する。取得部132は、送信元に関する情報である送信元情報を含む広告コンテンツの配信要求を取得する。演算制御部134は、取得部132によって取得された送信元情報に基づき、配信候補である広告コンテンツ群に対して、予め広告コンテンツ毎に設定される配信条件に該当する広告コンテンツであるか否かを判定する判定処理と、送信元情報と広告コンテンツの特徴情報との一致の度合いを示すスコアを算出する算出処理とを1つの広告コンテンツ毎に行う。抽出部137は、演算制御部134による処理の結果に基づいて、広告コンテンツ群の中から配信要求に対応する広告コンテンツを抽出する。
【0135】
このように、実施形態に係る広告装置100は、広告主が指定する配信条件を判定する処理と、広告コンテンツの特徴情報などに示されるユーザとのマッチング処理との、2つの処理を広告コンテンツ毎に行い、処理結果に基づき広告コンテンツを抽出する。このため、広告装置100は、単独の処理を経て抽出された広告コンテンツと比較し、より広告効果が高くなると想定される広告コンテンツを抽出できる。また、広告装置100は、配信候補の広告コンテンツ群のうち1つの広告コンテンツ毎に上記処理を行うことにより、広告コンテンツ群の全てを検索するといった処理負荷をかけずに、広告コンテンツを抽出できる。すなわち、広告装置100によれば、訴求効果の高い広告コンテンツを迅速に抽出することができる。
【0136】
また、抽出部137は、演算制御部134によって広告コンテンツ毎に算出されたスコアの高い順に、配信要求により要求された数の広告コンテンツを抽出候補として確保し、演算制御部134による処理が終了した時点において、抽出候補として確保されている広告コンテンツを配信要求に対応する広告コンテンツとして抽出する。
【0137】
このように、実施形態に係る広告装置100は、広告コンテンツ群に含まれる広告コンテンツを処理する過程において、その時点で抽出候補となりうる広告コンテンツを確保しつつ処理を進めることができる。これにより、広告装置100は、例えば、抽出処理のために確保される時間が比較的短い場合であっても、より適切な広告コンテンツを抽出することが可能となる。
【0138】
また、演算制御部134は、広告コンテンツの特徴情報の要素に基づいて、処理対象となる広告コンテンツのスコアが、抽出候補として確保されている広告コンテンツのスコアの最小値を超えるか否かを判定し、かかる最小値を超えないと判定される場合には、スコアの算出をスキップする。そして、抽出部137は、演算制御部134によってスキップされた広告コンテンツについては抽出候補として確保しない。
【0139】
このように、実施形態に係る広告装置100は、広告コンテンツ群に含まれる広告コンテンツを処理する過程において、その時点でキューとして確保されている広告コンテンツのスコアの最小値を閾値として記憶し、閾値と比較しつつ抽出処理を進める。これにより、広告装置100は、閾値を超えるか否かを判定することのみにより、スコア算出といった詳細な処理をスキップさせることができるため、迅速な抽出処理を行うことができる。
【0140】
また、演算制御部134は、判定処理の結果、配信条件を満たさないと判定された広告コンテンツについては算出処理をスキップする。そして、抽出部137は、演算制御部134によって算出処理がスキップされた広告コンテンツについては抽出候補として確保しない。
【0141】
このように、実施形態に係る広告装置100は、広告主から指定された条件を満たさない広告コンテンツについてはスコア算出をスキップさせることができるため、迅速な抽出処理を行うことができる。
【0142】
また、実施形態に係る広告装置100は、広告コンテンツ群に含まれる広告コンテンツを、予め広告コンテンツ毎に設定される所定の評価値順に整列させる整列部133をさらに有する。そして、演算制御部134は、整列部133によって整列された順に、判定処理および算出処理を行う。そして、抽出部137は、所定の評価値を含めて算出された広告コンテンツ毎のスコアに基づいて、配信要求に対応する広告コンテンツを抽出する。
【0143】
このように、実施形態に係る広告装置100は、予め広告コンテンツ毎に設定される所定の評価値であるスタティックスコアを用いてソートさせた広告コンテンツについて処理を行うことができる。これにより、広告装置100は、より効果が高いと想定される広告コンテンツを優先的に処理することができるので、訴求効果の高い広告コンテンツを迅速に抽出することができる。
【0144】
また、演算制御部134は、判定処理として、予め広告コンテンツ毎に設定される論理演算の条件式によって表される配信条件に対する論理演算を行う。
【0145】
このように、実施形態に係る広告装置100は、広告主が指定する配信条件を論理演算における条件式として受け付け、かかる条件式に対する論理演算を行うことにより、広告コンテンツを抽出する。このため、広告装置100は、広告主の詳細な指定に応えた広告コンテンツの抽出をすることができる。
【0146】
また、演算制御部134は、広告コンテンツ群に対して、所定の整列順に配信条件を満たすか否かを論理演算することが可能な論理演算アルゴリズムを用いて論理演算を行う。
【0147】
このように、実施形態に係る広告装置100は、広告コンテンツ群全体ではなく、整列された広告コンテンツの1つずつに対して論理演算を可能とするアルゴリズムを用いる。これにより、広告装置100は、迅速に、かつ、広告主の詳細な指定に応えた広告コンテンツの抽出をすることができる。
【0148】
また、演算制御部134は、広告コンテンツがユーザに配信される対象から除外されるための除外条件を含む配信条件を用いて、判定処理を行う。
【0149】
このように、実施形態に係る広告装置100は、論理演算の中でも複雑な処理を行うことを要する除外条件(NOT演算)を含んだ配信条件の指定を受けることができる。これにより、広告主は、より詳細に配信を所望するユーザを指定することができる。
【0150】
また、実施形態に係る広告装置100は、取得部132と、論理演算部135(ここでは、判定処理を行う判定部に対応する)と、スコア算出部136と、抽出部137とを有する。取得部132は、送信元に関する情報である送信元情報を含む広告コンテンツの配信要求を取得する。論理演算部135は、取得部132によって取得された送信元情報に基づき、配信候補である広告コンテンツ群に対して、予め広告コンテンツ毎に設定される配信条件に該当する広告コンテンツであるか否かを判定する。スコア算出部136は、論理演算部135によって配信条件に該当する広告コンテンツであると判定された広告コンテンツに対して、送信元情報と広告コンテンツの特徴情報との一致の度合いを示すスコアを算出する。抽出部137は、論理演算部135およびスコア算出部136によって求められた各結果を併用することにより、配信要求に対応する広告コンテンツを抽出する。
【0151】
このように、実施形態に係る広告装置100は、広告コンテンツ群に対して論理演算を行い、条件式に適合した広告コンテンツのみのスコアを算出することで広告コンテンツを抽出してもよい。かかる処理では、広告装置100は、整列された広告コンテンツの1つずつに対して論理演算を可能とするアルゴリズムの他に、CNF等のアルゴリズムを用いることにより、迅速に処理を進めることができる。また、広告装置100は、論理演算とスコア算出という2種の手法によって広告コンテンツの適性を評価するので、広告効果の高い広告コンテンツを抽出することができる。
【0152】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【0153】
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。