(57)【要約】【課題】配信対象となる情報の抽出にかかる時間を削減する。【解決手段】本願に係る算出装置は、配信先の属性を示す複数の属性情報を受付けた場合は、属性を示す複数の条件であって、論理積が成立する場合に所定の情報が配信対象となる複数の条件のそれぞれに対し、結合した際に所定の値まで連続する値を構成する連続値と係数とを含むインデックス情報を対応づけて記憶する記憶装置を参照し、各属性情報と各条件とが一致するか否かを判定する判定部と、前記属性情報に一致すると判定された条件に対応付けられたインデックス情報に含まれる連続値が前記所定の値まで連続するか否かに基づいて、前記所定の情報を配信対象とするか否かを決定する決定部と前記属性情報と前記条件とが一致すると判定される度に、当該属性情報と一致すると判定された条件に対応付けられたインデックス情報に含まれる係数を用いて、前記所定の情報を配信する際の優先度を算出する算出部とを有することを特徴とする。【選択図】図１
2018101261.tif 000002
【特許請求の範囲】
【請求項１】
配信先の属性を示す複数の属性情報を受付けた場合は、属性を示す複数の条件であって、論理積が成立する場合に所定の情報が配信対象となる複数の条件のそれぞれに対し、結合した際に所定の値まで連続する値を構成する連続値と係数とを含むインデックス情報を対応づけて記憶する記憶装置を参照し、各属性情報と各条件とが一致するか否かを判定する判定部と、
前記属性情報に一致すると判定された条件に対応付けられたインデックス情報に含まれる連続値が前記所定の値まで連続するか否かに基づいて、前記所定の情報を配信対象とするか否かを決定する決定部と、
前記属性情報と前記条件とが一致すると判定される度に、当該属性情報と一致すると判定された条件に対応付けられたインデックス情報に含まれる係数を用いて、前記所定の情報を配信する際の優先度を算出する算出部と
を有することを特徴とする算出装置。
【請求項２】
前記判定部は、論理積が成立する場合に前記所定の情報が配信対象となる複数の条件の組を複数記憶する記憶装置を参照し、
前記算出部は、前記組ごとに、前記属性情報と一致すると判定された条件に対応付けられたインデックス情報に含まれる係数を用いて、前記所定の情報を配信する際の優先度を算出する
ことを特徴とする請求項１に記載の算出装置。
【請求項３】
前記判定部は、前記組のうち、前記属性情報と一致すると判定された条件と対応する連続値の終端の値が最も小さい組に含まれる条件と、前記属性情報とが一致するか否かを判定する
ことを特徴とする請求項２に記載の算出装置。
【請求項４】
前記算出部は、前記組ごとに、前記属性情報と一致すると判定された条件に対応付けられたインデックス情報に含まれる係数の積を前記優先度として算出する
ことを特徴とする請求項２または３に記載の算出装置。
【請求項５】
前記算出部は、前記属性情報と前記条件とが一致した場合は、当該条件と対応する係数の値と、当該条件を含む組に含まれる条件のうち前記属性情報と一致した条件と対応する係数との積を算出し、算出した積の値が、他の組に含まれる条件のうち前記属性情報と一致した条件と対応する係数の積の値よりも大きい場合は、算出した積の値を前記属性情報と一致した条件を含む組と対応付けて保持し、算出した積の値が、他の組に含まれる条件のうち前記属性情報と一致した条件と対応する係数の積の値以下となる場合は、算出した積の値を破棄する
ことを特徴とする請求項２〜４のうちいずれか１つに記載の算出装置。
【請求項６】
前記算出部は、前記属性情報と前記条件とが一致した場合は、当該条件と対応する係数の値と当該条件を含む組と対応付けられた積の値との積を算出する
ことを特徴とする請求項５に記載の算出装置。
【請求項７】
前記判定部は、それぞれが複数の条件を含む複数の組を含み、各組に含まれる条件の論理和がそれぞれ成立する場合に、前記所定の情報が配信対象となる複数の条件のそれぞれに対して、前記インデックス情報を対応づけて記憶する記憶装置を参照し、
前記算出部は、前記属性情報と前記条件とが一致した場合は、当該条件と対応する係数の値と、当該条件を含む組以外の組に含まれる条件のうち前記属性情報と一致した条件と対応する係数との積を算出し、算出した積の値が、それまでに算出された積の値よりも大きい場合は、算出した積の値を前記属性情報と一致した条件を含む組と対応付けて保持し、算出した積の値が、それまでに算出された積の値以下となる場合は、算出した積の値を破棄する
ことを特徴とする請求項１〜６のうちいずれか１つに記載の算出装置。
【請求項８】
前記算出部は、所定の情報の配信先とはならない配信先の属性を示す条件と前記属性情報とが一致した場合は、当該条件と対応する係数の値の正負を反転させて、前記優先度を算出する
ことを特徴とする請求項１〜７のうちいずれか１つに記載の算出装置。
【請求項９】
前記算出部は、論理積を構成する条件の組に含まれる全ての条件が、所定の情報の配信先とはならない配信先の属性を示す条件であり、全ての条件と前記属性情報とが一致した場合は、前記所定の情報を配信対象から除外する旨のフラグを設定する
ことを特徴とする請求項８に記載の算出装置。
【請求項１０】
前記判定部は、前記インデックス情報として、前記所定の情報を識別するための識別子と、前記連続値と、前記係数とを含む情報であって、演算処理装置が一度のアクセスで読取可能なビット数以下のデータ長を有する情報を記憶する記憶装置を参照する
ことを特徴とする請求項１〜９のうちいずれか１つに記載の算出装置。
【請求項１１】
請求項１〜１０のうちいずれか１つに記載の算出装置が用いるインデックス情報であって、
配信先の属性を示す複数の条件であって、論理積が成立する場合に所定の情報が配信対象となる複数の条件のそれぞれに対し、結合した際に所定の値まで連続する値を構成する連続値と係数と前記所定の情報を示す識別子とを含む
ことを特徴とするインデックス情報。
【請求項１２】
算出装置が実行する算出方法であって、
配信先の属性を示す複数の属性情報を受付けた場合は、配信先の属性を示す複数の条件であって、論理積が成立する場合に所定の情報が配信対象となる複数の条件のそれぞれに対し、結合した際に所定の値まで連続する値を構成する連続値と係数とを含むインデックス情報を対応づけて記憶する記憶装置を参照し、各属性情報と各条件とが一致するか否かを判定する判定工程と、
前記属性情報に一致すると判定された条件に対応付けられたインデックス情報に含まれる連続値が前記所定の値まで連続するか否かに基づいて、前記所定の情報を配信対象とするか否かを決定する決定工程と、
前記属性情報と前記条件とが一致すると判定される度に、当該属性情報と一致すると判定された条件に対応付けられたインデックス情報に含まれる係数を用いて、前記所定の情報を配信する際の優先度を算出する算出工程と
を含むことを特徴とする算出方法。
【請求項１３】
配信先の属性を示す複数の属性情報を受付けた場合は、配信先の属性を示す複数の条件であって、論理積が成立する場合に所定の情報が配信対象となる複数の条件のそれぞれに対し、結合した際に所定の値まで連続する値を構成する連続値と係数とを含むインデックス情報を対応づけて記憶する記憶装置を参照し、各属性情報と各条件とが一致するか否かを判定する判定手順と、
前記属性情報に一致すると判定された条件に対応付けられたインデックス情報に含まれる連続値が前記所定の値まで連続するか否かに基づいて、前記所定の情報を配信対象とするか否かを決定する決定手順と、
前記属性情報と前記条件とが一致すると判定される度に、当該属性情報と一致すると判定された条件に対応付けられたインデックス情報に含まれる係数を用いて、前記所定の情報を配信する際の優先度を算出する算出手順と
をコンピュータに実行させることを特徴とする算出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、算出装置、インデックス情報、算出方法および算出プログラムに関する。
【背景技術】
【０００２】
近年、インターネットの飛躍的な普及に伴い、ネットワークを介して取得される情報に基づいた情報配信が盛んに行われている。例えば、情報の配信先となる利用者の属性を配信先情報として予め登録しておき、配信先となる利用者の属性と対応する情報を選択的に配信するターゲティング配信が行われている。このような情報配信として、配信対象となる情報自体にｂｏｏｌｅａｎ（論理値）条件を付与することで、配信先となる利用者の属性に対応する情報を検索する技術が知られている。また、配信対象となる情報に予め入札額が設定され、配信先となる利用者の属性に対応する情報を入札額に応じた優先度で配信する入札型の情報配信が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−１５３９７２号公報
【非特許文献】
【０００４】
【非特許文献１】Steven  Euijong  Whang、Hector  GarciaMolina、Chad  Brower、Jayavel  Shanmugasundaram、Sergei  Vassilvitskii、Erik  Vee、“Indexing  Boolean  Expressions”［online］、［２０１６年１１月３０日検索］、インターネット（http://theory.stanford.edu/~sergei/papers/vldb09-indexing.pdf）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の従来技術では、配信対象となる情報を迅速に抽出できるとは言えない場合がある。
【０００６】
例えば、ある１つの情報について、配信先となる利用者の属性ごとに異なる入札額を設定したいという要望が考えられる。しかしながら、このような要望を実現する場合、従来技術では、属性と入札額との組ごとに配信先情報が設定されることとなる。この結果、クエリと比較する配信先情報の数が増大する結果、配信対象となる情報を迅速に抽出できない恐れがある。
【０００７】
本願は、上記に鑑みてなされたものであって、配信対象となる情報の抽出にかかる時間を削減することを目的とする。
【課題を解決するための手段】
【０００８】
本願に係る算出装置は、配信先の属性を示す複数の属性情報を受付けた場合は、属性を示す複数の条件であって、論理積が成立する場合に所定の情報が配信対象となる複数の条件のそれぞれに対し、結合した際に所定の値まで連続する値を構成する連続値と係数とを含むインデックス情報を対応づけて記憶する記憶装置を参照し、各属性情報と各条件とが一致するか否かを判定する判定部と、前記属性情報に一致すると判定された条件に対応付けられたインデックス情報に含まれる連続値が前記所定の値まで連続するか否かに基づいて、前記所定の情報を配信対象とするか否かを決定する決定部と、前記属性情報と前記条件とが一致すると判定される度に、当該属性情報と一致すると判定された条件に対応付けられたインデックス情報に含まれる係数を用いて、前記所定の情報を配信する際の優先度を算出する算出部とを有することを特徴とする。
【発明の効果】
【０００９】
実施形態の一態様によれば、配信対象となる情報の抽出にかかる時間を削減できる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施形態に係る情報配信装置が実行する算出処理の一例を示す図である。
【図２】図２は、実施形態に係る情報配信装置の構成例を示す図である。
【図３】図３は、実施形態に係る広告データベースに登録される情報の一例を示す図である。
【図４】図４は、実施形態に係るインデックスデータベースに登録される情報の一例を示す図である。
【図５】図５は、実施形態に係る情報配信装置が係数積を算出する処理の一例を示す図である。
【図６】図６は、実施形態に係る情報配信装置が実行する算出処理の流れの一例を示すフローチャートである。
【図７】図７は、ハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１１】
以下に、本願に係る算出装置、インデックス情報、算出方法および算出プログラムを実施するための形態（以下、「実施形態」と記載する。）について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る算出装置、インデックス情報、算出方法および算出プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略する。
【００１２】
［実施形態］
〔１．情報配信装置の一例〕
まず、図１を用いて、算出処理の一例となる情報配信装置が実行する算出処理の一例について説明する。図１は、実施形態に係る情報配信装置が実行する算出処理の一例を示す図である。
【００１３】
なお、以下の説明では、情報配信装置１０が利用者Ｕ０１が利用する利用者端末２００に広告に係るコンテンツを配信する例について説明するが、実施形態は、これに限定されるものではない。すなわち、情報配信装置１０は、利用者Ｕ０１のデモグラフィック属性やサイコグラフィック属性、利用者Ｕ０１の行動履歴等、利用者Ｕ０１の各種属性に応じたコンテンツを利用者Ｕ０１に配信するのであれば、任意のコンテンツを利用者Ｕ０１に配信してよい。
【００１４】
また、広告に関するコンテンツとは、営利若しくは非営利の広告だけではなく、ボランティアの募集、公共広告、公共に対する通知、その他任意のコンテンツであるものとする。すなわち、コンテンツは、いわゆる広告関連の情報を含むコンテンツのみならず、利用者に興味を抱かせ、コンテンツに含まれる情報、または、コンテンツと関連するコンテンツ（例えば、ランディングページ等）に含まれる情報を広く報知するものであれば、画像、動画像、文字、図形、記号、ハイパーリンク、その他任意のコンテンツがテキストと共に含まれていてよい。また、コンテンツが広告に関するコンテンツである場合、広告の登録を行う情報処理装置（例えば、配信主サーバ３００）は、所謂広告主が使用する情報処理装置のみならず、広告主からの依頼により広告の作成や登録等を行う広告業者が使用する情報処理装置であってもよい。
【００１５】
情報配信装置１０は、インターネット等の所定のネットワークＮを介して、ログサーバ１００、利用者端末２００、および広告の配信を要求する配信主が利用する配信主サーバ３００（例えば、図２を参照）と通信可能な情報処理装置であり、例えば、サーバ装置やクラウドシステム等により実現される。なお、情報配信装置１０は、ネットワークＮを介して、任意の数のログサーバ１００、利用者端末２００、および配信主サーバ３００と通信可能であってよい。
【００１６】
ログサーバ１００は、利用者Ｕ０１に関する各種のログを収集する。例えば、ログサーバ１００は、利用者Ｕ０１の性別、年代、住所等といったデモグラフィック属性や、趣味趣向等のサイコグラフィック属性、利用者Ｕ０１の現在位置、ウェブコンテンツの視聴履歴、電子商取引の対象を購入した購入履歴、検索クエリの履歴等、利用者Ｕ０１に関する任意の情報を利用者Ｕ０１の属性情報として収集する。なお、このような利用者Ｕ０１の属性情報は、例えば、Ｂｃｏｏｋｉｅ等の技術を用いて取得される。
【００１７】
利用者端末２００は、スマートフォンやタブレット等のスマートデバイスであり、３Ｇ（3rd  Generation）やＬＴＥ（Long  Term  Evolution）等の無線通信網を介して任意のサーバ装置と通信を行うことができる携帯端末装置である。なお、利用者端末２００は、スマートデバイスのみならず、デスクトップＰＣやノートＰＣ等の情報処理装置であってもよい。
【００１８】
配信主サーバ３００は、広告の配信主が利用する情報処理装置であり、サーバ装置やＰＣ等により実現される。例えば、配信主サーバ３００は、配信対象となる広告を情報配信装置１０に登録する際、広告の配信先となる利用者の条件を示す条件情報を登録する。より具体的には、配信主サーバ３００は、配信先となる利用者の属性をブール演算式で指定する。例えば、配信主サーバ３００は、「３０代」の「男性」であって「プラモデル」が好きな属性を有する利用者に対して広告＃１を配信したい場合、条件「３０代」、「男性」および「プラモデル」からなるブール演算式「３０代ａｎｄ男性ａｎｄプラモデル」を、広告＃１の条件情報として登録する。
【００１９】
このような場合、配信主サーバ３００は、広告の配信要求を利用者端末２００から受付けると、利用者Ｕ０１の属性情報をログサーバ１００から取得する。そして、配信主サーバ３００は、取得した属性情報が、条件情報「３０代ａｎｄ男性ａｎｄプラモデル」を満たすか否かを判定し、満たす場合には、広告＃１を利用者端末２００へと配信する。すなわち、情報配信装置１０は、ブール演算式を用いたコンテンツのターゲティング検索を実行する。
【００２０】
なお、以下の説明では、配信対象となる広告に対して予め設定された条件情報に含まれる各属性、すなわち、ブール演算式の各要素となる属性を「条件」と総称する。
【００２１】
〔２．広告の配信について〕
ここで、広告に対してあらかじめ設定された入札スコアに基づいて、配信対象となる広告を選択する入札方式の配信技術が知られている。このような入札方式においては、広告に予め入札スコアが設定されており、広告の配信先となる利用者の属性情報に基づいて選択された広告のうち、入札スコアが高い広告が優先的に配信される。
【００２２】
ここで、配信先となる利用者の属性ごとに入札スコアを設定したいという要望が予測される。しかしながら、配信先となる利用者の属性ごとに入札スコアを設定するのは手間がかかる。そこで、入札スコアを広告ごとに設定するとともに、属性ごとに係数を設定するといった技術が考えられる。
【００２３】
例えば、情報配信装置１０では、広告＃１に対し、条件情報「３０代ｏｒプラモデル」、入札スコア「１００」、属性「３０代」と係数「１．５」の組、および属性「プラモデル」と係数「０．８」の組の設定を受付ける。そして、情報配信装置１０は、配信先となる利用者の属性が属性「３０代」である場合は、属性「３０代」に対応付けられた係数「１．５」と入札スコア「１００」との積の値「１５０」を入札スコアの値として、広告＃１を配信する。一方、情報配信装置１０は、配信先となる利用者の属性が属性「プラモデル」である場合は、属性「プラモデル」に対応付けられた係数「０．８」と入札スコア「１００」との積の値「８０」を入札スコアの値として、広告＃１を配信する。
【００２４】
しかしながら、このような技術では、迅速に配信対象となる広告を抽出できない恐れがある。例えば、情報配信装置１０は、広告＃１のインデックスとして、条件情報「３０代」と入札スコア「１５０」との組、および、条件情報「プラモデル」と入札スコア「８０」との組を生成することで、上述した処理を実現可能である。しかしながら、このような手法では、条件情報と係数との組合せごとにインデックスを生成することとなるので、配信先となる利用者の属性と比較するインデックスの数が増大し、配信対象となる広告の検索パフォーマンスが低下する恐れがある。また、条件情報が「（３０代ａｎｄ男性）ｏｒ（プラモデルａｎｄ３０代）」というように、複数の条件の論理積や、複数の条件の論理和を含む場合は、条件の組み合わせがさらに増大する恐れがある。
【００２５】
〔２−１．算出処理について〕
そこで、情報配信装置１０は、インターバルアルゴリズムを用いた論理演算を行うことで、配信先となる利用者の属性条件に適合する条件情報が対応付けられた広告を選択する。このような論理演算を行う際、情報配信装置１０は、配信先となる利用者の属性を示す複数の条件であって、論理積が成立する場合に広告が配信対象となる複数の条件のそれぞれに対し、結合した際に所定の値まで連続する値を構成する連続値を含むインデックスを生成する。そして、情報配信装置１０は、配信先となる利用者の属性と一致する条件のインデックスに含まれる連続値が所定の閾値まで連続するか否かに基づいて、条件の論理積が成立するか否かを判定する。
【００２６】
さらに、情報配信装置１０は、以下の算出処理を行う。まず、情報配信装置１０は、条件と対応するインデックスとして、インターバルアルゴリズムに用いる連続値だけではなく、条件に対して設定された係数を含むインデックスを生成する。そして、情報配信装置１０は、クエリとして、配信先の属性を示す複数の属性情報を受付けた場合は、クエリに含まれる属性情報と、インデックスと対応する各条件とが一致するか否かを判定する。また、情報配信装置１０は、クエリに含まれる属性情報に一致すると判定された条件に対応付けられたインデックスの連続値が、所定の値まで連続するか否かに基づいて、広告を配信対象とするか否かを判定する。ここで、情報配信装置１０は、クエリに含まれる属性情報と条件とが一致すると判定される度に、属性情報と一致すると判定された条件に対応するインデックスに含まれた係数を用いて、広告を配信する際の優先度、すなわち入札スコアを算出する。
【００２７】
より具体的には、情報配信装置１０は、論理積が成立する場合に広告が配信対象となる複数の条件の組、すなわち、論理積を構成する条件の組（以下、「論理積の組」と総称する。）を複数記憶する場合がある。例えば、情報配信装置１０は、「（ＡａｎｄＢ）ｏｒ（ＣａｎｄＤ）ｏｒ（Ｅ）」というように、論理積が成立する場合に広告が配信対象となる条件「Ａ」と「Ｂ」の組、条件「Ｃ」と「Ｄ」の組、および条件「Ｅ」の組を記憶する。このような場合、情報配信装置１０は、論理積の組ごとに、属性情報と一致すると判定された条件に対応付けられたインデックスに含まれる係数の積の値（以下、「係数積」と総称する。）を算出する。
【００２８】
例えば、情報配信装置１０は、条件情報「（ＡａｎｄＢ）ｏｒ（ＣａｎｄＤ）ｏｒ（Ｅ）」である広告について、条件「Ａ」〜「Ｅ」の全てが属性情報と一致する場合、属性「Ａ」の係数と属性「Ｂ」の係数との積、属性「Ｃ」の係数と属性「Ｄ」の係数との積、および属性「Ｅ」の係数のうち最も大きい値を広告の入札スコアとする。また、例えば、情報配信装置１０は、クエリの属性情報と条件「Ａ」、「Ｂ」、「Ｃ」、「Ｅ」が一致する場合は、条件「Ａ」の係数と、条件「Ｂ」の係数との係数積、および条件「Ｅ」の係数のうち、いずれか大きい値を入札スコアとする。
【００２９】
また、情報配信装置１０は、それぞれが複数の条件を含む複数の組を含み、各組に含まれる条件の論理和がそれぞれ成立する場合に、広告が配信対象となる条件情報を記憶する場合がある。例えば、情報配信装置１０は、条件情報「（ＡｏｒＢ）ａｎｄ（ＣｏｒＤ）ａｎｄ（Ｅ）」というように、条件「Ａ」または「Ｂ」が属性情報と一致し、かつ、条件「Ｃ」または「Ｄ」が属性情報と一致し、かつ、条件「Ｅ」が属性情報と一致する場合に、広告を配信する旨を示す属性情報を記憶する場合がある。このような条件情報に対し、情報配信装置１０は、属性「Ａ」〜「Ｅ」の全てが属性情報と一致した場合は、属性「Ａ」、「Ｃ」、「Ｅ」の係数積、属性「Ａ」、「Ｄ」、「Ｅ」の係数積、属性「Ｂ」、「Ｃ」、「Ｅ」の係数積、および属性「Ｂ」、「Ｄ」、「Ｅ」の係数積のうち最も大きい値を広告の入札スコアとする。
【００３０】
すなわち、情報配信装置１０は、「ａｎｄ」や「ｏｒ」で接続される条件や論理積の組、若しくは論理和の組を「特徴」と記載すると、「ａｎｄ」で接続された２つの特徴が属性情報と一致する場合は、属性情報と一致する２つの特徴の係数同士の積を保持する。一方、情報配信装置１０は、「ｏｒ」で接続された２つの特徴が属性情報と一致する場合は、属性情報と一致する２つの特徴の係数のうち、いずれか大きい値の係数を保持する。
【００３１】
〔２−２．動的計画法について〕
ここで、情報配信装置１０は、動的計画法に基づく順番で、属性情報と条件情報に含まれる条件とが一致するか否かを判定する。より具体的には、情報配信装置１０は、論理積の組のうち、属性情報と一致すると判定された条件と対応する連続値の終端の値が最も小さい組に含まれる条件と、属性情報とが一致するか否かを判定する。
【００３２】
例えば、インターバルアルゴリズムにおいては、論理積の組に含まれる複数の条件に対し、所定の値を上限とする連続値が振り分けられている。例えば、情報配信装置１０は、ある広告の条件情報「（ＡａｎｄＢ）ｏｒ（ＣａｎｄＤ）ｏｒ（Ｅ）」を記憶する。このような場合、情報配信装置１０は、連続値の条件を「４０９５」とすると、条件「Ａ」に対して初値「１」と終値「１」とを連続値として割り当て、条件「Ｂ」に対して初値「２」と終値「４０９５」とを連続値として割り当てる。また、情報配信装置１０は、条件「Ｃ」に対して初値「１」と終値「２」とを連続値として割り当て、条件「Ｄ」に対して初値「３」と終値「４０９５」とを連続値として割り当てる。また、また、情報配信装置１０は、条件「Ｅ」に対して初値「１」と終値「４０９５」とを連続値として割り当てる。
【００３３】
このような連続値を割り当てた場合、情報配信装置１０は、属性情報と一致する条件の連続値が「１」から「４０９５」まで連続しているか否かに応じて、論理積が成立しているか否かを判定することができる。例えば、情報配信装置１０は、条件「Ａ」、「Ｃ」、「Ｄ」が属性情報と一致した場合、条件「Ｃ」の初値「１」と終値「２」、および条件「Ｄ」の初値「３」と終値「４０９５」を結合した際に、連続値が「１」から「４０９５」まで連続することとなるので、条件「Ｃ」と条件「Ｄ」との論理積が成立し、広告が配信対象である旨を特定することができる。
【００３４】
このようなインターバルアルゴリズムを実行する際、情報配信装置１０は、条件情報に含まれる論理積の組ごとに、属性情報と一致した条件の連続値の終端の値を参照し、参照した値が最も少ない論理積の組を選択する。そして、情報配信装置１０は、選択した論理積の組に含まれる条件のうち、属性情報と比較していない条件を選択し、選択した条件が属性情報と一致するか否かを判定する。このような処理を継続して実行することで、情報配信装置１０は、各論理積の組に含まれる全ての条件がクエリの属性情報と一致するか否かを判定する。
【００３５】
〔２−３．係数計算の具体的な処理について〕
ここで、動的計画法に基づく順番で、条件が属性情報と一致するかを判定する場合、情報配信装置１０は、論理積の組ごとに、それまでに属性情報と一致した条件の係数積の履歴を保持し、属性情報と条件とが一致する度に、その条件のインデックスに含まれる係数を、その条件を含む論理積の組の係数積の履歴に積算することとなる。すなわち、情報配信装置１０は、属性情報と条件とが一致した場合は、その条件と対応する係数の値とその条件を含む論理積の組の係数積の履歴との積を算出する。
【００３６】
例えば、情報配信装置１０は、属性情報と条件とが一致した場合は、その条件と対応する係数の値と、その条件を含む論理積の組に含まれる条件のうち属性情報と一致した条件と対応する係数との積を算出する。そして、情報配信装置１０は、算出した積の値が、他の論理積の組に含まれる条件のうち属性情報と一致した条件と対応する係数の積の値よりも大きい場合は、算出した積の値を属性情報と一致した条件を含む論理積の組と対応付けて保持する。一方、情報配信装置１０は、算出した積の値が、他の論理積の組に含まれる条件のうち属性情報と一致した条件と対応する係数の積の値以下となる場合は、算出した積の値を破棄する。
【００３７】
また、情報配信装置１０は、それぞれが複数の条件を含む複数の論理和の組を含み、各組に含まれる条件の論理和がそれぞれ成立する場合に、広告が配信対象となる条件情報を記憶する場合がある。このような条件情報について、情報配信装置１０は、属性情報と条件とが一致した場合は、その条件と対応する係数の値と、その条件を含む論理和の組以外の論理和の組に含まれる条件のうち属性情報と一致した条件と対応する係数との積を算出し、算出した積の値が、それまでに算出された積の値よりも大きい場合は、算出した積の値を属性情報と一致した条件を含む組と対応付けて保持する。一方、情報配信装置１０は、算出した積の値が、それまでに算出された積の値以下となる場合は、算出した積の値を破棄する。
【００３８】
なお、数値を用いた係数計算の具体例については、後述する。
【００３９】
〔２−４．ｎｏｔについて〕
ここで、条件情報には、配信先から除外する利用者の属性が条件として含まれる場合がある。例えば、条件情報には、利用者Ｕ０１の属性情報に、属性情報「Ａ」が含まれる場合には、広告を配信しない旨を示す条件情報「ｎｏｔＡ」が含まれる場合がある。このように、情報配信装置１０は、広告の配信先とはならない配信先の属性を示す条件と属性情報とが一致した場合は、その条件と対応する係数の値の正負を反転させて、入札スコアを算出する。例えば、情報配信装置１０は、条件情報が「Ａａｎｄ（ｎｏｔＢ）」であり、条件「Ａ」および条件「Ｂ」について係数「２」が設定されており、クエリの属性情報が「Ａ」、「Ｂ」である場合は、条件「Ａ」の係数「２」と、条件「Ｂ」の係数「２」の正負を判定させた係数「−２」との係数積「−４」を入札スコアとする。
【００４０】
また、情報配信装置１０は、論理積の組に含まれる条件のうち、論理積を構成する条件の組に含まれる全ての条件が、所定の情報の配信先とはならない配信先の属性を示す条件であり、全ての条件と属性情報とが一致した場合は、所定の情報を配信対象から除外する旨のフラグを設定してもよい。
【００４１】
〔２−５．データサイズについて〕
ここで、インデックスを用いた情報検索のレイテンシにおいては、演算処理装置がインデックスを読み込む際に生じるレイテンシの影響が含まれる。このため、インデックスは、演算処理装置が読みやすいデータサイズであることが望ましい。そこで、情報配信装置１０は、インデックスとして、対応する広告を示す識別子である広告ＩＤ（Identifier）と、連続値と、係数とを含む情報であって、演算処理装置が一度のアクセスで読取可能なビット数以下のデータ長を有する情報を記憶する。
【００４２】
例えば、情報配信装置１０は、演算処理装置のコアが一度の処理で６４ビットのデータを読み取り可能な場合、３２ビットの広告ＩＤと、１２ビットの初値と、１２ビットの終値と、８ビットの係数とを含む計６４ビットのインデックスを生成し、記憶してもよい。なお、このようなインデックスのビット数は、演算処理装置のコアが一度の処理で読取可能なデータのビット数に応じて、任意の値が採用可能である。また、インデックスに含まれる各情報のビット数は、広告ＩＤに用いる値の最大値や、連続値の最大値、係数の最大値等に応じて、任意の値が採用可能である。
【００４３】
〔２−６．情報配信装置が実行する算出処理の一例について〕
以下、情報配信装置１０が実行する算出処理の具体的な例について説明する。なお、図１に示す例では、属性情報「Ａ」〜「Ｅ」や条件「Ａ」〜「Ｅ」を「属性Ａ」〜「属性Ｅ」と記載した。まず、情報配信装置１０は、配信対象となる広告と条件情報と係数との登録を受付ける。このような場合、情報配信装置１０は、インターバルアルゴリズムを用いてインデックスを生成するとともに、インデックス内に各条件に対応する係数を登録する（ステップＳ１）。
【００４４】
例えば、情報配信装置１０は、広告のデータと、条件情報「（ＡａｎｄＢ）ｏｒ（ＣａｎｄＤ）ｏｒ（Ｅ）」とを受付ける。また、情報配信装置１０は、条件「Ａ」に対する係数「２」、条件「Ｂ」に対する係数「３」、条件「Ｃ」に対する係数「１」、条件「Ｄ」に対する係数「４」、条件「Ｅ」に対する係数「５」を受付ける。
【００４５】
このような場合、情報配信装置１０は、論理和を構成する複数の特徴に対して、１〜４０９５の連続値のうち同じ範囲を割り当て、論理積を構成する１つまたは複数の特徴に対して、１〜４０９５の連続値を割り当てる。例えば、情報配信装置１０は、条件「Ａ」に対して初値「１」と終値「１」とを連続値として割り当て、条件「Ｂ」に対して初値「２」と終値「４０９５」とを連続値として割り当てる。また、情報配信装置１０は、条件「Ｃ」に対して初値「１」と終値「２」とを連続値として割り当て、条件「Ｄ」に対して初値「３」と終値「４０９５」とを連続値として割り当て、条件「Ｅ」に対して初値「１」と終値「４０９５」とを連続値として割り当てる。そして、情報配信装置１０は、受付けた広告を識別する広告ＩＤ「広告＃１」を生成し、広告ＩＤ、初値、終値、および係数を含む６４ビットのインデックスを生成し、生成したインデックスを記憶する。
【００４６】
一方、ログサーバ１００は、所定のタイミングで、利用者Ｕ０１の属性情報を収集する（ステップＳ２）。例えば、ログサーバ１００は、利用者Ｕ０１の性別、年代、居住地域、検索クエリの履歴、興味や関心を有する事象等を属性情報として収集する。なお、ログサーバ１００は、利用者Ｕ０１の操作や閲覧等に関する各種ログを収集し、収集したログを解析することで、利用者Ｕ０１の属性情報を取得してもよい。
【００４７】
ここで、利用者端末２００は、利用者Ｕ０１の操作に応じて、各種のウェブコンテンツをウェブサーバ（図示は、省略）から取得したものとする（ステップＳ３）。このようなウェブコンテンツには、所定の広告領域が配置されており、かかる広告領域に配置して表示する広告を取得する旨の指示が含まれている。そこで、利用者端末２００は、広告リクエストを情報配信装置１０に対して送信する（ステップＳ４）。
【００４８】
このような場合、情報配信装置１０は、利用者Ｕ０１の属性情報をログサーバ１００に要求する（ステップＳ５）。この結果、ログサーバ１００は、利用者Ｕ０１の属性情報を情報配信装置１０へと提供する（ステップＳ６）。そして、情報配信装置１０は、インターバルアルゴリズムを用いて広告の条件情報と利用者Ｕ０１の属性情報とのマッチングを行うとともに、条件が属性情報と一致する度に、係数積を論理積ごとに算出し、論理積の最大値のみを順次登録する（ステップＳ７）。
【００４９】
例えば、情報配信装置１０は、ログサーバ１００から利用者Ｕ０１の属性情報「Ａ」、「Ｃ」、「Ｄ」、「Ｅ」を受付ける。このような場合、情報配信装置１０は、図１中（Ａ）に示すように、属性情報「Ａ」、「Ｃ」、「Ｄ」、「Ｅ」をクエリとする。そして、情報配信装置１０は、図１中（Ｂ）に示すように、４０９５個の要素を含む判定行列を用いて、広告ＩＤ「広告＃１」が示す広告の条件が属性情報にマッチするか否かを判定する。また、情報配信装置１０は、図１中（Ｃ）に示すように、広告の条件が属性情報と一致する度に、属性情報と一致した条件の係数積を、論理積ごとに算出する。
【００５０】
例えば、図１に示す例では、情報配信装置１０は、各条件の終値を参照し、終値の値が最も小さい条件「Ａ」を選択する。ここで、クエリには、属性「Ａ」が含まれているため、情報配信装置１０は、判定行列に条件「Ａ」の初値「１」および終値「１」に対応する要素に「１」を格納する。また、情報配信装置１０は、図１中（Ｃ）に示すように、条件「Ａ」が含まれる論理積「（ＡａｎｄＢ）」と対応する配列に、条件「Ａ」の係数「２」を格納する。
【００５１】
続いて、情報配信装置１０は、各条件のうちクエリと比較していない条件の終値を参照し、終値の値が最も小さい条件「Ｃ」を選択する。ここで、クエリには、属性「Ｃ」が含まれているため、情報配信装置１０は、判定行列に条件「Ｃ」の初値「１」と対応する要素と終値「２」に対応する要素とに「１」を格納する。また、情報配信装置１０は、条件「Ｃ」が含まれる論理積「（ＣａｎｄＤ）」と対応する配列に、条件「Ｃ」の係数「１」を格納する。
【００５２】
続いて、情報配信装置１０は、各条件のうちクエリと比較していない条件の終値を参照し、終値の値が最も小さい条件「Ｅ」を選択する。ここで、クエリには、属性「Ｅ」が含まれているため、情報配信装置１０は、判定行列に条件「Ｅ」の初値「１」と対応する要素と終値「４０９５」に対応する要素とに「１」を格納する。この結果、判定行列の末尾に「１」が格納されるため、情報配信装置１０は、広告ＩＤ「広告＃１」の条件情報とクエリとが一致したと判定する。また、情報配信装置１０は、条件「Ｅ」と対応する配列に、条件「Ｅ」の係数「５」を格納する。
【００５３】
続いて、情報配信装置１０は、各条件のうちクエリと比較していない条件の終値を参照し、終値の値が最も小さい条件「Ｂ」を選択する。しかしながら、情報配信装置１０は、クエリに属性「Ｂ」が含まれていないため、次に終値の値が最も小さい条件「Ｄ」を選択する。ここで、クエリには、属性「Ｄ」が含まれているため、情報配信装置１０は、判定行列に条件「Ｄ」の初値「３」と対応する要素と終値「４０９５」に対応する要素とに「１」を格納する。この結果、判定行列の末尾に「１」が格納されるため、情報配信装置１０は、広告ＩＤ「広告＃１」の条件情報とクエリとが一致したと判定する。
【００５４】
ここで、条件「Ｄ」と対応する論理積の配列には、係数「１」が登録されている。そこで、情報配信装置１０は、係数「１」と条件「Ｄ」の係数「４」の係数積「４」を算出し、各配列に格納された値よりも大きいか否かを判定する。ここで、図１に示す例では、条件「Ｅ」と対応する配列に係数「５」が登録されている。このため、情報配信装置１０は、係数積「４」を配列に登録せずに破棄する。
【００５５】
そして、情報配信装置１０は、各条件が属性情報と一致するか否かを判定した後に、各配列に登録された値、すなわち、係数積を参照し、最も大きい値を取得する。そして、情報配信装置１０は、取得した値に基づいて、広告ＩＤ「広告＃１」が示す広告の入札スコアを算出する。その後、情報配信装置１０は、算出した入札スコアに応じて、配信対象となる広告を選択し、選択された広告を利用者端末２００へと配信する（ステップＳ８）。
【００５６】
〔３．情報配信装置の構成〕
以下、上記した情報配信装置１０が有する機能構成の一例について説明する。図２は、実施形態に係る情報配信装置の構成例を示す図である。図２に示すように、情報配信装置１０は、通信部２０、記憶部３０、および制御部４０を有する。
【００５７】
通信部２０は、例えば、ＮＩＣ（Network  Interface  Card）等によって実現される。そして、通信部２０は、ネットワークＮと有線または無線で接続され、情報配信装置１０や利用者端末２００との間で情報の送受信を行う。
【００５８】
記憶部３０は、例えば、ＲＡＭ（Random  Access  Memory)、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。また、記憶部３０は、広告データベース３１およびインデックスデータベース３２を記憶する。
【００５９】
広告データベース３１には、配信対象となる広告が登録されている。例えば、図３は、実施形態に係る広告データベースに登録される情報の一例を示す図である。図３に示す例では、広告データベース３１には、「広告ＩＤ」、「コンテンツデータ」、「論理式」、および「入札スコア」といった情報が登録されている。なお、広告データベース３１には、図３に示す情報以外にも、例えば、ＣＴＲ（Click  Through  Rate）やＣＰＭ（Cost  Per  Mille）等、広告に関する任意の情報が登録されていてもよい。
【００６０】
ここで、「広告ＩＤ」とは、広告を識別する識別子である。また、「コンテンツデータ」とは、対応付けられた「広告ＩＤ」が示す広告の画像や文章等、広告として表示するコンテンツのデータである。また、「論理式」とは、対応付けられた「広告ＩＤ」が示す広告の配信先となる利用者の属性を示す論理式、すなわち、配信先の属性の条件を示す論理式である。また、「入札スコア」とは、対応付けられた「広告ＩＤ」が示す広告の入札スコアの値である。
【００６１】
例えば、図３に示す例では、広告データベース３１には、広告ＩＤ「広告＃１」、コンテンツデータ「コンテンツ＃１」、論理式「（ＡａｎｄＢ）ｏｒ（ＣａｎｄＤ）ｏｒＥ」、および入札スコア「１００」が登録されている。このような情報は、広告ＩＤ「広告＃１」が示す広告として表示されるコンテンツのデータが、コンテンツデータ「コンテンツ＃１」であり、論理式「（ＡａｎｄＢ）ｏｒ（ＣａｎｄＤ）ｏｒＥ」が示す属性の配信先をターゲットとし、条件がヒットした際の入札スコアが入札スコア「１００」である旨を示す。
【００６２】
なお、図３に示す例では、「広告＃１」、「コンテンツ＃１」等という概念的な値を記載したが、実際には、広告データベース３１には、広告を識別する数値や文字列、コンテンツを構成する文字や画像のデータ等が登録されることとなる。
【００６３】
図２に戻り、説明を続ける。インデックスデータベース３２には、各広告のインデックスが登録される。例えば、図４は、実施形態に係るインデックスデータベースに登録される情報の一例を示す図である。図４に示す例では、インデックスデータベース３２には、「条件」、「広告ＩＤ（３２ビット）」、「初値（１２ビット）」、「終値（１２ビット）」および「係数（８ビット）」といった項目が登録されている。なお、各項目の括弧内に記載したビット数は、各項目のデータ長を示す情報であり、以下の記載を省略する。
【００６４】
ここで「条件」とは、各項目の論理式に含まれる条件であり、広告の配信先となる利用者の属性を示す情報である。また、「初値」とは、連続値の初値である。また、「終値」とは、連続値の終値である。また、「係数」とは、対応付けられた「広告ＩＤ」が示す広告について、対応付けられた「条件」に対して設定された係数を示す。
【００６５】
例えば、図４に示す例では、条件「属性Ａ」、広告ＩＤ「広告＃１」、初値「１」、終値「１」および係数「２」が対応付けて登録されている。このような情報は、広告ＩＤ「広告＃１」が示す広告について、条件「属性Ａ」（すなわち、条件「Ａ」）に対し、連続値の初値「１」および連続値の終値「１」が設定されており、係数「２」が設定されている旨を示す。
【００６６】
なお、図４に示す情報のうち、「条件」は、インデックス本体とは異なる情報であり、インデックスには、「広告ＩＤ」、「初値」、「終値」、および「係数」からなる６４ビットの情報が含まれる。すなわち、インデックスは、情報配信装置１０において演算処理を行う演算処理装置のコアが、一度のアクセスで読み取り可能なデータ長の情報である。
【００６７】
なお、インデックスデータベース３２におけるデータ構造は、図４に示す構造に限定されるものではない。例えば、インデックスデータベース３２は、設定可能な条件ごとに異なるページを有し、各ページに対応するインデックスが登録されていてもよい。また、図４には、論理式「（ＡａｎｄＢ）ｏｒ（ＣａｎｄＤ）ｏｒＥ」が設定された広告と、論理式「（ＡｏｒＢ）ａｎｄ（ＣｏｒＤ）ａｎｄＥ」が設定された広告とのインデックスの一例について記載した。
【００６８】
このように、インデックスデータベース３２は、配信先の属性を示す複数の条件であって、論理積が成立する場合に広告が配信対象となる複数の条件のそれぞれに対し、結合した際に所定の値まで連続する値を構成する連続値と係数とを含むインデックスを対応づけて記憶する。すなわち、インデックスデータベース３２は、ある広告について、論理積が成立する場合に広告が配信対象となる複数の条件の組を複数記憶する。また、インデックスデータベース３２は、それぞれが複数の条件を含む複数の組を含み、各組に含まれる条件の論理和がそれぞれ成立する場合に、広告が配信対象となる複数の条件のそれぞれに対して、インデックスを対応づけて記憶する。
【００６９】
図２に戻り、説明を続ける。制御部４０は、コントローラ（controller）であり、例えば、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）等のプロセッサによって、情報配信装置１０内部の記憶装置に記憶されている各種プログラムがＲＡＭ等を作業領域として実行されることにより実現される。また、制御部４０は、コントローラ（controller）であり、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現されてもよい。なお、制御部４０は、インデックスの読み込みを行う演算処理装置となる。
【００７０】
図２に示すように、制御部４０は、登録受付部４１、インデックス生成部４２、要求受付部４３、判定部４４、決定部４５、算出部４６、および配信部４７を有する。登録受付部４１は、広告の登録を受付ける。例えば、登録受付部４１は、配信主サーバ３００から、配信対象となる広告のコンテンツデータと、配信先の条件を含む論理式と、入札スコアと、各条件ごとの係数との登録を受付ける。このような場合、登録受付部４１は、広告ＩＤを生成し、広告ＩＤと受付けた各種のデータとをインデックス生成部４２に提供する。
【００７１】
インデックス生成部４２は、広告のインデックスを生成する。例えば、インデックス生成部４２は、受付けた論理式を解析し、論理和を構成する複数の特徴に対して、１〜４０９５の連続値のうち同じ範囲を割り当て、論理積を構成する１つまたは複数の特徴に対して、１〜４０９５の連続値を割り当てることで、各条件に連続値を割り当てる。また、インデックス生成部４２は、条件式が複数の論理積の論理和となる場合、各論理積に含まれる条件に対しては、終値の値が重複しないように連続値を割り当てる。そして、インデックス生成部４２は、広告ＩＤ、連続値の初値、連続値の終値、および係数を対応付けたインデックスを条件ごとに生成し、インデックスデータベース３２に登録する。また、インデックス生成部４２は、広告ＩＤ、コンテンツデータ、論理式および入札スコアを広告データベース３１に登録する。
【００７２】
要求受付部４３は、利用者端末２００から広告リクエストを受付ける。このような場合、要求受付部４３は、利用者端末２００を利用する利用者Ｕ０１の情報をログサーバ１００へと送信し、利用者Ｕ０１の属性情報を取得する。例えば、要求受付部４３は、利用者端末２００を識別する端末識別子を利用者Ｕ０１を示す情報として送信し、利用者Ｕ０１の属性情報を取得する。そして、要求受付部４３は、受付けた属性情報をクエリとして判定部４４に提供する。
【００７３】
判定部４４は、配信先の属性を示す複数の属性情報を受付けた場合は、各属性情報と各条件とが一致するか否かを判定する。例えば、判定部４４は、動的計画法に基づいて、論理積の組のうち、属性情報と一致すると判定された条件と対応する連続値の終端の値が最も小さい組に含まれる条件と、属性情報とが一致するか否かを判定する。
【００７４】
より具体的な例を説明する。なお、以下の説明では、図３、図４に示す情報が各データベース３１、３２に登録されているものとする。例えば、判定部４４は、広告ＩＤ「広告＃１」を含むインデックスの終値を参照し、終値の値が最も小さいインデックスと対応する条件「Ａ」を選択する。ここで、クエリに属性「Ａ」が含まれている場合、判定部４４は、判定行列に条件「Ａ」の初値「１」および終値「１」に対応する要素に「１」を格納する。続いて、判定部４４は、広告ＩＤ「広告＃１」を含むインデックスの終値を参照し、終値の値が最も小さいインデックスと対応する条件「Ｃ」を選択する。ここで、クエリに属性「Ｃ」が含まれている場合、判定部４４は、判定行列に条件「Ｃ」の初値「１」および終値「２」に対応する要素に「１」を格納する。このような処理を再帰的に行うことで、判定部４４は、各広告の各条件がクエリの属性情報と一致するか否かを判定する。
【００７５】
決定部４５は、属性情報に一致すると判定された条件に対応付けられたインデックスに含まれる連続値が所定の値まで連続するか否かに基づいて、広告を配信対象とするか否かを決定する。例えば、決定部４５は、判定部４４によって初値および終値の値が判定行列に登録された結果、判定行列の終端に「１」が登録された場合、すなわち、属性情報と一致した条件に対して、１から所定の値まで連続する連続値が振り分けられていた場合は、対応する広告を配信対象とする。
【００７６】
算出部４６は、属性情報と条件とが一致すると判定される度に、属性情報と一致すると判定された条件に対応付けられたインデックスに含まれる係数を用いて、広告を配信する際の入札スコアを算出する。より具体的には、算出部４６は、論理積の組ごとに、属性情報と一致すると判定された条件に対応付けられたインデックスに含まれる係数の係数積を算出し、算出した係数積を入札スコアとする。
【００７７】
例えば、算出部４６は、属性情報と条件とが一致した場合は、その条件と対応する係数の値と、その条件を含む論理積の組に含まれる条件のうち属性情報と一致した条件と対応する係数との係数積を算出する。そして、算出部４６は、算出した積の値が、他の論理積の組に含まれる条件のうち属性情報と一致した条件と対応する係数の積の値よりも大きい場合は、算出した論理積の値を属性情報と一致した条件を含む論理積の組と対応付けて保持する。一方、算出部４６は、算出した積の値が、他の論理積の組に含まれる条件のうち属性情報と一致した条件と対応する係数の係数積の値以下となる場合は、算出した係数積の値を破棄する。
【００７８】
例えば、算出部４６は、論理積の組ごとに配列を用意し、条件が属性情報と一致した場合は、その条件を含む論理積の組と対応する配列を特定し、特定した配列に値が格納されていない場合は、属性情報と一致した条件の係数を格納する。一方、算出部４６は、属性情報と一致した条件を含む論理積の組と対応する配列を特定し、特定した配列に値が格納されている場合は、かかる値と属性情報と一致した条件の係数との係数積を算出する。そして、算出部４６は、算出した係数積の値が、各配列に格納された値よりも大きいか否かを判定し、大きいと判定した場合にのみ、算出した係数積を特定した配列に登録する。
【００７９】
また、算出部４６は、属性情報と条件とが一致した場合は、その条件と対応する係数の値と、その条件を含む論理和の組以外の論理和の組であって、その条件を含む論理和の組と論理積を構成する論理和の組に含まれる条件のうち、属性情報と一致した条件と対応する係数との積を算出する。そして、算出部４６は、算出した積の値が、それまでに算出された積の値よりも大きい場合は、算出した積の値を属性情報と一致した条件を含む組と対応付けて保持し、算出した積の値が、それまでに算出された積の値以下となる場合は、算出した積の値を破棄する。
【００８０】
例えば、図５は、実施形態に係る情報配信装置が係数積を算出する処理の一例を示す図である。なお、図５に示す例では、クエリとなる属性情報が属性「Ａ」、「Ｃ」、「Ｄ」、「Ｅ」であり、広告の配信先を示す論理式が「（ＡｏｒＢ）ａｎｄ（ＣｏｒＤ）ａｎｄＥ」である例について記載した。また、図５に示す例では、情報配信装置１０は、条件「Ａ」に対する係数「２」、条件「Ｂ」に対する係数「３」、条件「Ｃ」に対する係数「１」、条件「Ｄ」に対する係数「４」、条件「Ｅ」に対する係数「５」を受付けたものとする。
【００８１】
このような場合、例えば、インデックス生成部４２は、条件「Ａ」に対して初値「１」と終値「１」とを連続値として割り当て、条件「Ｂ」に対して初値「１」と終値「１」とを連続値として割り当てる。また、インデックス生成部４２は、条件「Ｃ」に対して初値「２」と終値「２」とを連続値として割り当て、条件「Ｄ」に対して初値「２」と終値「２」とを連続値として割り当て、条件「Ｅ」に対して初値「３」と終値「４０９５」とを連続値として割り当てる。この結果、判定部４４は、条件「Ａ」、「Ｂ」、「Ｃ」、「Ｄ」、「Ｅ」の順で属性情報と一致するか否かを判定する。
【００８２】
ここで、条件「Ａ」は、クエリの属性「Ａ」と一致する。そこで、算出部４６は、条件「Ａ」の係数「２」を、条件「Ａ」を含む論理和の組と対応する配列に格納する。続いて、条件「Ｂ」は、クエリの属性と一致しないため、算出部４６は、処理を待機する。続いて、条件「Ｃ」は、クエリの属性「Ｃ」と一致する。そこで、算出部４６は、条件「Ｃ」の係数「１」と、条件「Ｃ」を含む論理和の組以外の論理和の組において属性情報と一致した条件の係数との積を算出する。例えば、算出部４６は、配列に格納されている条件「Ａ」の係数「２」と、条件「Ｃ」の係数「１」との積「２」を算出し、算出した値「２」を、条件「Ｃ」を含む論理和の組と対応する配列に格納する。
【００８３】
続いて、条件「Ｄ」は、クエリの属性「Ｄ」と一致する。そこで、算出部４６は、条件「Ｄ」の係数「４」と、条件「Ｄ」を含む論理和の組以外の論理和の組において属性情報と一致した条件の係数との積を算出する。例えば、算出部４６は、配列に格納されている条件「Ａ」の係数「２」と、条件「Ｄ」の係数「４」との積「８」を算出し、算出した値「８」が、条件「Ｃ」を含む論理和の組と対応する配列に格納済みの値よりも大きいか否かを判定する。そして、算出部４６は、条件「Ａ」の係数「２」と、条件「Ｄ」の係数「４」との積「８」の方が大きいと判定し、積「８」の値を、条件「Ｄ」と対応する論理和の組と対応する配列に格納する。
【００８４】
続いて、条件「Ｅ」は、クエリの属性「Ｅ」と一致する。そこで、算出部４６は、条件「Ｅ」の係数「５」と、条件「Ｅ」を含む論理和の組以外の論理和の組において属性情報と一致した条件の係数との積を算出する。例えば、算出部４６は、配列に格納されている係数のうち、最も大きい値「８」と条件「Ｅ」の係数「５」との積「４０」を算出する。すなわち、算出部４６は、条件「Ａ」の係数と、条件「Ｄ」の係数と、条件「Ｅ」の係数との積を算出する。そして、算出部４６は、積「４０」の値を、条件「Ｅ」と対応する論理和の組と対応する配列に格納する。この結果、算出部４６は、論理式が成立する際における係数積の値の最大値を配列に格納することができる。
【００８５】
また、算出部４６は、上述した各種の処理によって算出した係数積の最大値を用いて、入札スコアを算出する。例えば、算出部４６は、配信対象として決定した広告の入札スコアの値と、係数積の最大値との積を算出する。すなわち、算出部４６は、配信対象となる広告を配信先となる利用者に提供する際の入札スコアを算出する。なお、算出部４６は、入札スコアを算出する各種の公知技術を組み合わせて、入札スコアの算出を行ってもよい。
【００８６】
なお、算出部４６は、広告の配信先とはならない利用者の属性を示す条件と属性情報とが一致した場合は、その条件と対応する係数の値の正負を反転させて、入札スコアを算出してもよい。例えば、算出部４６は、条件「Ａ」を含む論理式「ｎｏｔＡ」において、クエリが属性「Ａ」であった場合は、条件「Ａ」の係数の正負を反転させて、入札スコアの算出を行ってもよい。
【００８７】
また、算出部４６は、広告の配信先とはならない利用者の属性を示す複数の条件と属性情報とが一致した場合は、その広告を配信対象から除外する旨のフラグを設定してもよい。例えば、算出部４６は、条件「Ａ」、「Ｂ」を含む論理式「（ｎｏｔＡ）ａｎｄ（ｎｏｔＢ）」において、クエリが属性「Ａ」、「Ｂ」であった場合は、その広告を配信対象から除外する旨のフラグを設定することで、その広告を配信対象から除外してもよい。
【００８８】
配信部４７は、クエリとなる属性情報が論理式を満たした広告の中から、入札スコアの値に応じて配信対象となる広告を選択し、選択した広告を配信する。例えば、配信部４７は、クエリとなる属性情報が論理式を満たした広告のうち、算出部４６によって算出された入札スコアの値が高い方から順に所定の数の広告を選択する。そして、配信部４７は、選択した広告のコンテンツデータを、利用者端末２００へと配信する。
【００８９】
〔４．情報配信装置が実行する処理の流れの一例〕
続いて、図６を用いて、情報配信装置１０が実行する算出処理の流れについて説明する。説明する。図６は、実施形態に係る情報配信装置が実行する算出処理の流れの一例を示すフローチャートである。なお、情報配信装置１０は、図６に示す処理を、各広告ごとに並列して実行可能である。
【００９０】
例えば、情報配信装置１０は、クエリとなる属性情報をログサーバ１００から受付ける（ステップＳ１０１）。このような場合、情報配信装置１０は、条件が属性情報と一致するか否かを判定し（ステップＳ１０２）、一致すると判定した場合は（ステップＳ１０２：Ｙｅｓ）、判定行列にその条件の初値と終値とを格納する（ステップＳ１０３）。また、情報配信装置１０は、各論理積に対応する配列に、一致した条件の係数の積の最大値を格納する（ステップＳ１０４）。そして、情報配信装置１０は、判定行列が終端まで到達したか否かを判定し（ステップＳ１０５）、到達した場合は（ステップＳ１０５：Ｙｅｓ）、算出された論理積の最大値に基づき、優先度となる入札スコアを算出する（ステップＳ１０６）。そして、情報配信装置１０は、優先度に応じて広告を配信し（ステップＳ１０７）、処理を終了する。
【００９１】
一方、情報配信装置１０は、判定行列が終端に到達していない場合は（ステップＳ１０５：Ｎｏ）、次の条件を参照し（ステップＳ１０８）、条件が属性情報と一致するかを判定する（ステップＳ１０２）。また、情報配信装置１０は、条件が属性情報と一致しなかった場合も（ステップＳ１０２：Ｎｏ）、ステップＳ１０７を実行する。
【００９２】
〔５．変形例〕
上記では、情報配信装置１０による算出処理の一例について説明した。しかしながら、実施形態は、これに限定されるものではない。以下、情報配信装置１０が実行する算出処理のバリエーションについて説明する。
【００９３】
〔５−１．処理の目的について〕
上述した例では、情報配信装置１０は、配信対象として広告を配信した。しかしながら、実施形態は、これに限定されるものではない。例えば、情報配信装置１０は、画像コンテンツ、音声コンテンツ、動画像コンテンツ、電子書籍、ニュースフィード、マイクロブログの記事等、配信先の属性に応じて配信対象を変更するものであれば、任意の情報を配信対象としてよい。また、情報配信装置１０は、配信先の属性に応じたコンテンツのみならず、例えば、配信先が所望する条件と合致するコンテンツを配信してもよい。
【００９４】
また、情報配信装置１０は、利用者Ｕ０１に対してコンテンツを配信する必要はなく、各種サーバ等に対して配信を行ってもよい。すなわち、上述した算出処理は、配信先の属性や所望等、配信先に応じた条件に基づいて、配信対象とするコンテンツを選択する際に用いる優先度を算出するのであれば、任意の配信先に対し任意の条件に基づいて配信対象となる任意のコンテンツを選択する際に用いる優先度を算出してよい。
【００９５】
〔５−２．係数について〕
上述した例では、情報配信装置１０は、整数の値を有する係数を受付けたが、実施形態は、これに限定されるものではない。例えば、情報配信装置１０は、係数として、「０．０」から「２．０」までの値を「０．１」刻みで受付けてもよい。このような場合、情報配信装置１０は、論理式に含まれる要素の数を「ｎ」とすると、係数積の最大値として、２のｎ乗までの値を受付けることとなる。
【００９６】
ここで、インデックスのデータサイズを考慮すると、係数積の最大値が浮動小数点におけるｄｏｕｂｌｅ型の最大値を超えない値であれば、オーバーフローの対応を不要とすることができる。このため、例えば、論理式に含まれる要素の最大値が「１８」であれば、係数の最大値が「１３１０７２」となるので、ｄｏｕｂｌｅ型の最大値を超えることはない。
【００９７】
〔５−３．装置構成〕
情報配信装置１０は、任意の数の利用者端末２００と通信可能に接続されていてもよい。また、情報配信装置１０は、利用者端末２００や配信主サーバ３００と情報のやり取りを行うフロントエンドサーバと、算出処理を実行するバックエンドサーバとで実現されてもよい。このような場合、フロントエンドサーバには、図２に示す登録受付部４１および配信部４７が配置され、バックエンドサーバには、インデックス生成部４２、要求受付部４３、判定部４４、決定部４５、および算出部４６を有することとなる。また、記憶部３０に登録された各データベース３１、３２は、外部のストレージサーバに保持されていてもよい。
【００９８】
〔５−４．その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、逆に、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【００９９】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０１００】
また、上記してきた各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【０１０１】
〔５−５．プログラム〕
また、上述した実施形態に係る情報配信装置１０は、例えば図７に示すような構成のコンピュータ１０００によって実現される。図７は、ハードウェア構成の一例を示す図である。コンピュータ１０００は、出力装置１０１０、入力装置１０２０と接続され、演算装置１０３０、一次記憶装置１０４０、二次記憶装置１０５０、出力ＩＦ（Interface）１０６０、入力ＩＦ１０７０、ネットワークＩＦ１０８０がバス１０９０により接続された形態を有する。
【０１０２】
演算装置１０３０は、一次記憶装置１０４０や二次記憶装置１０５０に格納されたプログラムや入力装置１０２０から読み出したプログラム等に基づいて動作し、各種の処理を実行する。一次記憶装置１０４０は、ＲＡＭ等、演算装置１０３０が各種の演算に用いるデータを一次的に記憶するメモリ装置である。また、二次記憶装置１０５０は、演算装置１０３０が各種の演算に用いるデータや、各種のデータベースが登録される記憶装置であり、ＲＯＭ(Read  Only  Memory)、ＨＤＤ（Hard  Disk  Drive）、フラッシュメモリ等により実現される。
【０１０３】
出力ＩＦ１０６０は、モニタやプリンタといった各種の情報を出力する出力装置１０１０に対し、出力対象となる情報を送信するためのインタフェースであり、例えば、ＵＳＢ（Universal  Serial  Bus）やＤＶＩ（Digital  Visual  Interface）、ＨＤＭＩ（登録商標）（High  Definition  Multimedia  Interface）といった規格のコネクタにより実現される。また、入力ＩＦ１０７０は、マウス、キーボード、およびスキャナ等といった各種の入力装置１０２０から情報を受信するためのインタフェースであり、例えば、ＵＳＢ等により実現される。
【０１０４】
なお、入力装置１０２０は、例えば、ＣＤ（Compact  Disc）、ＤＶＤ（Digital  Versatile  Disc）、ＰＤ（Phase  change  rewritable  Disk）等の光学記録媒体、ＭＯ（Magneto-Optical  disk）等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等から情報を読み出す装置であってもよい。また、入力装置１０２０は、ＵＳＢメモリ等の外付け記憶媒体であってもよい。
【０１０５】
ネットワークＩＦ１０８０は、ネットワークＮを介して他の機器からデータを受信して演算装置１０３０へ送り、また、ネットワークＮを介して演算装置１０３０が生成したデータを他の機器へ送信する。
【０１０６】
演算装置１０３０は、出力ＩＦ１０６０や入力ＩＦ１０７０を介して、出力装置１０１０や入力装置１０２０の制御を行う。例えば、演算装置１０３０は、入力装置１０２０や二次記憶装置１０５０からプログラムを一次記憶装置１０４０上にロードし、ロードしたプログラムを実行する。
【０１０７】
例えば、コンピュータ１０００が情報配信装置１０として機能する場合、コンピュータ１０００の演算装置１０３０は、一次記憶装置１０４０上にロードされたプログラムを実行することにより、制御部４０の機能を実現する。
【０１０８】
〔６．効果〕
上述したように、情報配信装置１０は、配信先の属性を示す複数の属性情報を受付けた場合は、属性を示す複数の条件であって、論理積が成立する場合に広告等の所定の情報が配信対象となる複数の条件のそれぞれに対し、結合した際に所定の値まで連続する値を構成する連続値と係数とを含むインデックスを対応づけて記憶するインデックスデータベース３２を参照する。そして、情報配信装置１０は、各属性情報と各条件とが一致するか否かを判定する。また、情報配信装置１０は、属性情報に一致すると判定された条件に対応付けられたインデックスに含まれる連続値が所定の値まで連続するか否かに基づいて、所定の情報を配信対象とするか否かを決定する。そして、情報配信装置１０は、属性情報と条件とが一致すると判定される度に、その属性情報と一致すると判定された条件に対応付けられたインデックスに含まれる係数を用いて、所定の情報を配信する際の入札スコアといった優先度を算出する。
【０１０９】
このように、情報配信装置１０は、インターバルアルゴリズムにおける連続値を含み、各条件ごとに設定されるインデックスであって、属性ごとの係数を含むインデックスを参照し、条件と属性情報とが一致する度に、係数を用いた優先度の算出を行う。この結果、情報配信装置１０は、条件と属性情報とが一致するか否かという判定処理と、係数計算とを平行して実効できるので、配信対象となる情報の抽出にかかる時間を削減できる。
【０１１０】
また、情報配信装置１０は、論理積が成立する場合に所定の情報が配信対象となる複数の条件の組である論理積の組ごとに、属性情報と一致すると判定された条件に対応付けられたインデックスに含まれる係数を用いて、所定の情報を配信する際の優先度を算出する。例えば、情報配信装置１０は、論理積の組ごとに、属性情報と一致すると判定された条件に対応付けられたインデックスに含まれる係数の積を優先度として算出する。このため、情報配信装置１０は、属性情報が論理式を満たす場合における優先度を適切に算出することができる。
【０１１１】
また、情報配信装置１０は、論理積の組のうち、属性情報と一致すると判定された条件と対応する連続値の終端の値が最も小さい組に含まれる条件と、属性情報とが一致するか否かを判定する。すなわち、情報配信装置１０は、動的計画法に基づく順番で、各条件と属性情報とが一致するか否かを判定する。このため、情報配信装置１０は、効率的に属性情報が条件を満たすか否かを判定できる。
【０１１２】
また、情報配信装置１０は、属性情報と条件とが一致した場合は、その条件と対応する係数の値と、その条件を含む論理積の組に含まれる条件のうち属性情報と一致した条件と対応する係数との積を算出する。そして、情報配信装置１０は、算出した積の値が、他の論理積の組に含まれる条件のうち属性情報と一致した条件と対応する係数の積の値よりも大きい場合は、算出した積の値を属性情報と一致した条件を含む論理積の組と対応付けて保持する。一方、情報配信装置１０は、算出した積の値が、他の論理積の組に含まれる条件のうち属性情報と一致した条件と対応する係数の積の値以下となる場合は、算出した積の値を破棄する。そして、例えば、情報配信装置１０は、属性情報と条件とが一致した場合は、その条件と対応する係数の値とその条件を含む論理積の組と対応付けられた積の値との積を算出する。このため、情報配信装置１０は、例えば、配列の初期化の回数を最初の１回に収めることができるので、論理和を構成する複数の論理積の組が存在する場合に、優先度の値を効率良く算出することができる。
【０１１３】
また、情報配信装置１０は、それぞれが複数の条件を含む複数の論理和の組を含み、各の論理和の組に含まれる条件の論理和がそれぞれ成立する場合に、所定の情報が配信対象となる複数の条件のそれぞれに対して、インデックスを対応づけて記憶する。そして、情報配信装置１０は、属性情報と条件とが一致した場合は、その条件と対応する係数の値と、その条件を含む論理和の組以外の論理和の組に含まれる条件のうち属性情報と一致した条件と対応する係数との積を算出し、算出した積の値が、それまでに算出された積の値よりも大きい場合は、算出した積の値を属性情報と一致した条件を含む論理和の組と対応付けて保持する。一方、情報配信装置１０は、算出した積の値が、それまでに算出された積の値以下となる場合は、算出した積の値を破棄する。このため、情報配信装置１０は、論理積を構成する複数の論理和の組が存在する場合にも、優先度の値を効率良く算出することができる。
【０１１４】
また、情報配信装置１０は、所定の情報の配信先とはならない配信先の属性を示す条件と属性情報とが一致した場合は、その条件と対応する係数の値の正負を反転させて、優先度を算出する。また、情報配信装置１０は、論理積を構成する条件の組に含まれる全ての条件が、所定の情報の配信先とはならない配信先の属性を示す条件であり、全ての条件と属性情報とが一致した場合は、所定の情報を配信対象から除外する旨のフラグを設定する。このため、情報配信装置１０は、否定論理を含む論理式が設定されている場合にも、適切に優先度の値を算出できる。
【０１１５】
また、情報配信装置１０は、インデックスとして、所定の情報を識別するための識別子と、連続値と、係数とを含む情報であって、演算処理装置が一度のアクセスで読取可能なビット数以下のデータ長を有する情報を記憶するインデックスデータベース３２を参照する。このため、情報配信装置１０は、係数の読み込みに伴うレイテンシを、インデックスの読み込みにおけるレイテンシに含めることができるので、配信対象となる情報の抽出にかかる時間を削減できる。
【０１１６】
また、上述した情報配信装置１０が用いるインデックスは、配信先の属性を示す複数の条件であって、論理積が成立する場合に所定の情報が配信対象となる複数の条件のそれぞれに対し、結合した際に所定の値まで連続する値を構成する連続値と係数と所定の情報を示す識別子とを含む。このため、インデックスは、情報配信装置１０が配信対象となる情報を抽出際に要する時間を削減できる。
【０１１７】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【０１１８】
また、上記してきた「部（section、module、unit）」は、「手段」や「回路」などに読み替えることができる。例えば、配信部は、配信手段や配信回路に読み替えることができる。
【符号の説明】
【０１１９】
１０  情報配信装置
２０  通信部
３０  記憶部
３１  広告データベース
３２  インデックスデータベース
４０  制御部
４１  登録受付部
４２  インデックス生成部
４３  要求受付部
４４  判定部
４５  決定部
４６  算出部
４７  配信部
１００  ログサーバ
２００  利用者端末
３００  配信主サーバ
【図１】
2018101261.tif 000003
【図２】
2018101261.tif 000004
【図３】
2018101261.tif 000005
【図４】
2018101261.tif 000006
【図５】
2018101261.tif 000007
【図６】
2018101261.tif 000008
【図７】
2018101261.tif 000009