(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-25
(45)【発行日】2024-01-09
(54)【発明の名称】情報処理装置、情報処理方法及び情報処理プログラム
(51)【国際特許分類】
G06Q 30/0251 20230101AFI20231226BHJP
G06Q 10/087 20230101ALI20231226BHJP
G06Q 30/0241 20230101ALI20231226BHJP
G16Y 10/45 20200101ALI20231226BHJP
G16Y 20/40 20200101ALI20231226BHJP
G16Y 20/20 20200101ALI20231226BHJP
G16Y 40/20 20200101ALI20231226BHJP
G16Y 40/30 20200101ALI20231226BHJP
【FI】
G06Q30/0251
G06Q10/087
G06Q30/0241 446
G16Y10/45
G16Y20/40
G16Y20/20
G16Y40/20
G16Y40/30
(21)【出願番号】P 2021142672
(22)【出願日】2021-09-01
【審査請求日】2022-09-16
(73)【特許権者】
【識別番号】500257300
【氏名又は名称】LINEヤフー株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】平澤 謙章
【審査官】石坂 博明
(56)【参考文献】
【文献】特開2002-288322(JP,A)
【文献】特開2017-004375(JP,A)
【文献】特開2005-276205(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
G16Y 10/00-40/60
(57)【特許請求の範囲】
【請求項1】
推定対象となるキャンペーンである第1キャンペーンに対して指定された第1配信期間の条件を含む第1条件を受け付ける受付部と、
前記第1配信期間に前記第1キャンペーンのコンテンツの配信先になり得るリクエストを示す予定在庫を示す情報と、前記第1キャンペーンとは異なる第2キャンペーンに対して指定された第2配信期間あって、前記第1配信期間に重なる第2配信期間の条件を含む第2条件とを取得する取得部と、
前記第1条件と前記第2条件との重複に基づいて、前記予定在庫のうち、前記第1キャンペーンに対して割当可能な在庫である残在庫の数を推定する推定処理を実行する推定部と、
前記予定在庫のうち、前記第2条件に該当する在庫に前記第2キャンペーンを割り当てる集計処理を実行する集計部と、
を備え
、
前記取得部は、
前記集計処理後に追加された前記第2キャンペーンである未反映キャンペーンの前記第2条件である未反映条件を取得し、
前記推定部は、
前記第1条件と前記未反映条件との重複割合を推定し、推定した前記重複割合と前記予定在庫の数とを乗算した値を用いて、前記残在庫の数を推定する
ことを特徴とする情報処理装置。
【請求項2】
前記受付部は、
前記第1キャンペーンの配信先の属性に関する条件を含む前記第1条件を受け付ける
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記受付部は、
前記配信先となるユーザの年齢に関する条件を含む前記第1条件を受け付ける
ことを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記受付部は、
前記配信先となるユーザの性別に関する条件を含む前記第1条件を受け付ける
ことを特徴とする請求項2または請求項3に記載の情報処理装置。
【請求項5】
前記取得部は、
前記第2キャンペーンの配信先の属性に関する条件を含む前記第2条件を取得する
ことを特徴とする請求項1~4のいずれか1項に記載の情報処理装置。
【請求項6】
前記取得部は、
前記配信先となるユーザの年齢に関する条件を含む条件を含む前記第2条件を取得する
ことを特徴とする請求項5に記載の情報処理装置。
【請求項7】
前記取得部は、
前記配信先となるユーザの性別に関する条件を含む条件を含む前記第2条件を取得する
ことを特徴とする請求項5または請求項6に記載の情報処理装置。
【請求項8】
前記取得部は、
前記推定処理以前のコンテンツの配信ログから生成される前記予定在庫を示す情報を取得する
ことを特徴とする請求項1~7のいずれか1項に記載の情報処理装置。
【請求項9】
前記取得部は、
前記配信ログの日付を前記第1配信期間に含まれる日付に変更した未来ログである前記予定在庫を示す情報を取得する
ことを特徴とする請求項8に記載の情報処理装置。
【請求項10】
前記推定部は、前記第2キャンペーンが割り当てられた在庫である割当済在庫の数を用いて、前記残在庫の数を推定する
ことを特徴とする請求項1~9のいずれか1項に記載の情報処理装置。
【請求項11】
前記推定部は、
前記予定在庫から前記割当済在庫を除外することにより、前記残在庫の数を推定する
ことを特徴とする請求項10に記載の情報処理装置。
【請求項12】
前記推定部は、
前記予定在庫の数から前記割当済在庫の数を減算した値を用いて、前記残在庫の数を推定する
ことを特徴とする請求項10または請求項11に記載の情報処理装置。
【請求項13】
前記推定部は、
前記予定在庫の数から前記重複割合と前記予定在庫の数とを乗算した値を減算した値を用いて、前記残在庫の数を推定する
ことを特徴とする請求項
1~12のいずれか1項に記載の情報処理装置。
【請求項14】
前記推定部は、
重なり数推定に関する手法を用いて前記重複割合を推定する
ことを特徴とする請求項
1~13のいずれか1項に記載の情報処理装置。
【請求項15】
前記推定部は、
前記予定在庫の各リクエストが所定のハッシュ法により変換されたハッシュ値を用いて、前記重複割合を推定する
ことを特徴とする請求項
1~
14のいずれか1項に記載の情報処理装置。
【請求項16】
前記残在庫の数を示す情報を提供する提供部、
をさらに備えることを特徴とする請求項1~
15のいずれか1項に記載の情報処理装置。
【請求項17】
コンピュータが実行する情報処理方法であって、
推定対象となるキャンペーンである第1キャンペーンに対して指定された第1配信期間の条件を含む第1条件を受け付ける受付工程と、
前記第1配信期間に前記第1キャンペーンのコンテンツの配信先になり得るリクエストを示す予定在庫を示す情報と、前記第1キャンペーンとは異なる第2キャンペーンに対して指定された第2配信期間あって、前記第1配信期間に重なる第2配信期間の条件を含む第2条件とを取得する取得工程と、
前記第1条件と前記第2条件との重複に基づいて、前記予定在庫のうち、前記第1キャンペーンに対して割当可能な在庫である残在庫の数を推定する推定処理を実行する推定工程と、
前記予定在庫のうち、前記第2条件に該当する在庫に前記第2キャンペーンを割り当てる集計処理を実行する集計工程と、
を含
み、
前記取得工程は、
前記集計処理後に追加された前記第2キャンペーンである未反映キャンペーンの前記第2条件である未反映条件を取得し、
前記推定工程は、
前記第1条件と前記未反映条件との重複割合を推定し、推定した前記重複割合と前記予定在庫の数とを乗算した値を用いて、前記残在庫の数を推定する
ことを特徴とする情報処理方法。
【請求項18】
推定対象となるキャンペーンである第1キャンペーンに対して指定された第1配信期間の条件を含む第1条件を受け付ける受付手順と、
前記第1配信期間に前記第1キャンペーンのコンテンツの配信先になり得るリクエストを示す予定在庫を示す情報と、前記第1キャンペーンとは異なる第2キャンペーンに対して指定された第2配信期間あって、前記第1配信期間に重なる第2配信期間の条件を含む第2条件とを取得する取得手順と、
前記第1条件と前記第2条件との重複に基づいて、前記予定在庫のうち、前記第1キャンペーンに対して割当可能な在庫である残在庫の数を推定する推定処理を実行する推定手順と、
前記予定在庫のうち、前記第2条件に該当する在庫に前記第2キャンペーンを割り当てる集計処理を実行する集計手順と、
をコンピュータに実行させ
、
前記取得手順は、
前記集計処理後に追加された前記第2キャンペーンである未反映キャンペーンの前記第2条件である未反映条件を取得し、
前記推定手順は、
前記第1条件と前記未反映条件との重複割合を推定し、推定した前記重複割合と前記予定在庫の数とを乗算した値を用いて、前記残在庫の数を推定する
ことを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【0002】
近年、広告等のコンテンツの配信に関する様々な技術が提供されている。例えば、予算、期間、配信対象(ターゲット)などの条件を基に広告を配信する広告キャンペーン(予約型広告)に関する技術が提案されている(例えば特許文献1等)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記の従来技術には、改善の余地がある。上記の従来技術では、キャンペーンに関する成果を予測するものはあるが、キャンペーンに関する広告(コンテンツ)を配信可能な在庫(リクエスト)に関する推定を行うものではない。そのため、キャンペーンのコンテンツを配信可能な在庫(リクエスト)の数を適切に推定することが難しく、コンテンツの配信に関する情報を適切に推定することが望まれている。
【0005】
本願は、上記に鑑みてなされたものであって、コンテンツの配信に関する情報を適切に推定することができる情報処理装置、情報処理方法及び情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本願にかかる情報処理装置は、推定対象となるキャンペーンである第1キャンペーンに対して指定された第1配信期間の条件を含む第1条件を受け付ける受付部と、前記第1配信期間に前記第1キャンペーンのコンテンツの配信先になり得るリクエストを示す予定在庫を示す情報と、前記第1キャンペーンとは異なる第2キャンペーンに対して指定された第2配信期間あって、前記第1配信期間に重なる第2配信期間の条件を含む第2条件とを取得する取得部と、前記第1条件と前記第2条件との重複に基づいて、前記予定在庫のうち、前記第1キャンペーンに対して割当可能な在庫である残在庫の数を推定する推定処理を実行する推定部と、を備えたことを特徴とする。
【発明の効果】
【0007】
実施形態の一態様によれば、コンテンツの配信に関する情報を適切に推定することができるといった効果を奏する。
【図面の簡単な説明】
【0008】
【
図1】
図1は、実施形態に係る情報処理の一例を示す図である。
【
図2】
図2は、実施形態に係る情報処理システムの構成例を示す図である。
【
図3】
図3は、実施形態に係る情報処理装置の構成例を示す図である。
【
図4】
図4は、実施形態に係る配信ログ情報記憶部の一例を示す図である。
【
図5】
図5は、実施形態に係る割当済ログ情報記憶部の一例を示す図である。
【
図6】
図6は、実施形態に係るキャンペーン情報記憶部の一例を示す図である。
【
図7】
図7は、実施形態に係る重複割合情報記憶部の一例を示す図である。
【
図8】
図8は、実施形態に係る情報処理の一例を示すフローチャートである。
【
図9】
図9は、異なり数の推定に関する処理を示す概念図である。
【
図10】
図10は、重複割合の推定に関する一例を示す図である。
【
図11】
図11は、重複割合の推定に関する具体例を示す図である。
【
図12】
図12は、情報処理装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
【発明を実施するための形態】
【0009】
以下に、本願に係る情報処理装置、情報処理方法、情報処理プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る情報処理装置、情報処理方法、情報処理プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【0010】
(実施形態)
〔1.情報処理〕
まず、
図1を用いて、実施形態に係る情報処理の一例について説明する。
図1は、実施形態に係る情報処理の一例を示す図である。
図1では、情報処理システム1(
図2参照)が広告コンテンツ(単に「広告」ともいう)を配信する広告キャンペーン(単に「キャンペーン」ともいう)を対象として情報処理を行う場合を示す。なお、対象とするコンテンツは広告に限らず、以下に示す処理が適用可能なコンテンツであればどのようなコンテンツであってもよい。
【0011】
まず、
図1に示す各構成について簡単に説明する。配信サーバ20は、ウェブページや広告などのコンテンツを配信するサーバ装置である。配信サーバ20は、配信期間、配信先(ターゲット)となるユーザの属性(性別、年齢等)が指定されたキャンペーンに関する予約を受け付ける。例えばキャンペーンは予約型広告とも称される。なお、「性別」及び「年齢」は、ユーザの属性の一例に過ぎず、ユーザの属性は、年齢、性別以外にも居住地等のデモグラフィック属性であってもよく、興味・関心等のサイコグラフィック属性等の様々な属性であってもよい。配信サーバ20は、予約を受け付けたキャンペーン(予約済みキャンペーン)に関する広告を、予約済みキャンペーンが指定する配信期間に配信先の条件を満たすユーザに配信する。配信サーバ20は、ユーザへのコンテンツの配信に関する履歴を配信ログとして収集し、システムSYへ提供する。
【0012】
広告主端末30は、広告主ATによって利用されるコンピュータである。広告主端末30は、推定対象となるキャンペーン(「第1キャンペーン」ともいう)についてのシミュレーションをシステムSYに要求する。広告主端末30は、予約前のキャンペーンについてのシミュレーションをシステムSYに要求する。広告主端末30は、予約前のキャンペーンに割合可能な残在庫の数の推定をシステムSYに要求する。例えば、広告主端末30は、予約前のキャンペーンである第1キャンペーンの配信期間、配信先(ターゲット)となるユーザの属性(性別、年齢等)の条件を含む第1条件を、システムSYに送信し、送信した第1条件件を基に、第1キャンペーンに割合可能な残在庫の数の推定をシステムSYに要求する。
【0013】
推定処理を実行するシミュレーションシステムであるシステムSYは、配信期間を含む条件が重なるキャンペーン間の条件の重複に基づいて、キャンペーンに対して割当可能な残在庫の数を推定する。システムSYは、広告主端末30から第1キャンペーンの第1条件を受信し、受信した第1条件を基に第1キャンペーンに割合可能な残在庫の数を推定する。なお、以下ではシステムSYが情報処理装置100(
図3参照)により実現される場合を一例として説明する。なお、
図1の説明における情報処理装置100はシステムSYと読み替えてもよい。システムSYの機能が実現可能であれば任意の装置構成が採用可能であり、複数の装置により実現されてもよく、例えば、システムSY中のシミュレータSM、検索エンジンSE、及び予約データベースRDBは各々が異なる装置により実現されてもよい。この場合、情報処理装置100がシミュレータSMであり、情報処理装置100が検索エンジンSEの装置及び予約データベースRDBの装置との間で情報を送受信することにより
図1に示す処理を行ってもよい。
【0014】
以下、
図1を用いて、情報処理の一例を説明する。
図1では、第1キャンペーンがキャンペーンAであり、処理時点が2020年8月14日である場合を示す。
【0015】
情報処理装置100は、配信サーバ20から配信ログと予約済みキャンペーン情報を取得する(ステップS1)。配信サーバ20は、処理時点以前の配信ログを情報処理装置100に送信する。例えば、配信サーバ20は、情報処理装置100から指定された期間における配信の配信ログを情報処理装置100に送信する。
図1では、配信サーバ20は、処理時点(2020年8月14日)までに収集された配信ログ(例えば直近1カ月の配信ログ等)を情報処理装置100に送信する。これにより、情報処理装置100は、
図4中の配信ログ情報記憶部121に示すような配信ログを配信サーバ20から取得する。
【0016】
また、配信サーバ20は、既に予約を受け付けたキャンペーンに関する情報を予約済みキャンペーン情報として情報処理装置100に送信する。例えば、配信サーバ20は、既に予約を受け付けたキャンペーンである第2キャンペーンに関する情報を予約済みキャンペーン情報として情報処理装置100に送信する。例えば、配信サーバ20は、第2キャンペーンに指定された配信期間(「第2配信期間」ともいう)等を含む条件(「第2条件」ともいう)に関する情報を情報処理装置100に送信する。
図1では、配信サーバ20は、予約済みキャンペーンであるキャンペーンXの条件(第2条件)を示す情報を情報処理装置100に送信する。キャンペーンXの第2条件は、第2配信期間が2020年8月16日-21日であり、配信先の条件が20代女性であるものとする。なお、第2条件には、例えば予約数(配信回数)に関する情報等が含まれる。情報処理装置100は、配信サーバ20から受信した予約済みキャンペーン情報を記憶部120に記憶する。
【0017】
そして、情報処理装置100は、集計処理TBにより、配信ログから未来ログを生成し、生成した未来ログに対して予約済みキャンペーンを割り当てることにより、割当済ログ(キャンペーン割当済みvimpログ)を生成する(ステップS2)。情報処理装置100は、割当済ログを、割当済ログ情報記憶部122(
図5参照)に登録する。情報処理装置100は、
図5中の割当済ログ情報記憶部122に示すように、各ログの日付を未来の日付に変更した未来日付を各配信ログに対応付けて登録する。情報処理装置100は、日付を2週間(14日)先に変更した未来日付を各配信ログに対応付け、各配信ログをその未来日付に行われるリクエストとする。
【0018】
そして、情報処理装置100は、割当済ログ情報記憶部122に示す未来日付に行われるリクエスト(未来在庫)を対象として、第2条件に該当する在庫に第2キャンペーンを割り当てる集計処理を実行する。
図1では、情報処理装置100は、
図5中の割当済ログ情報記憶部122に示すように、未来日付「2020年8月16日」に行われるリクエスト(未来在庫)を対象として、キャンペーンXの第2条件「20代女性」に該当する在庫(vimp2)にキャンペーンXを割り当てる。情報処理装置100は、割当済ログ(history-index)を用いた検索処理により検索エンジンSEとして機能するが詳細は後述する。
【0019】
このように、情報処理装置100は、キャンペーンのような予約型の在庫管理において、各配信ログに未来の日付を対応付け、対応するキャンペーンを割り当てる(紐付ける)集計を行う。なお、
図1では処理の流れを説明するために、1つのキャンペーンXのみを予約済みキャンペーンとして説明するが、複数の予約済みキャンペーンがある場合、情報処理装置100は、任意の方法により各予約済みキャンペーンを配信ログに割り当てる集計処理を実行してもよい。例えば、情報処理装置100は、各予約済みキャンペーンの条件(第2条件)を基に、複数の予約済みキャンペーンの配信ログへの割り当ての組合せの最適解を求める集計処理を実行してもよい。例えば、情報処理装置100は、予約が早い方から順に予約済みキャンペーンをその第2条件に該当する配信ログに割り当てることにより、複数の予約済みキャンペーンの配信ログへの割り当てを行ってもよい。
【0020】
なお、上記は一例に過ぎず、情報処理装置100は、組合せ最適化の手法等、任意の方法を適宜用いて予約済みキャンペーンを配信ログに割り当ててもよい。情報処理装置100は、集計結果をあらかじめ割当済ログ情報記憶部122に格納しておき、シミュレーション時に指定された条件に応じてリアルタイムで検索処理を実行することで、全体がどれだけか、残りがどれだけかが計算できる。
【0021】
また、情報処理装置100は、広告主ATが利用する広告主端末30からは、シミュレーション条件を受け付ける(ステップS3)。
図1では、広告主端末30は、広告主ATの操作に応じて、推定対象となる第1キャンペーンであるキャンペーンAについて、広告主ATが指定を予定している配信期間(「第1配信期間」ともいう)等を含む条件(「第1条件」ともいう)を情報処理装置100に送信する。キャンペーンAの第1条件は、第1配信期間が2020年8月15日-20日であり、配信先の条件が女性であるものとする。なお、第1条件には、例えば予約数(配信回数)に関する情報等が含まれる。これにより、情報処理装置100は、キャンペーンAについての第1条件をシミュレーション条件として受け付ける。情報処理装置100は、受け付けたシミュレーション条件を用いてシミュレータSMとしての処理を実行する。
【0022】
情報処理装置100は、キャンペーンAについての第1条件をシミュレーション条件として、検索エンジンSEの検索処理を実行する(ステップS4)。そして、情報処理装置100は、割当済ログのうちキャンペーンAの第1条件に該当する配信ログを、シミュレーション用中間集計結果として抽出する(ステップS5)。例えば、情報処理装置100は、割当済ログ情報記憶部122中の配信ログのうち、未来日付が第1配信期間に該当し、且つ性別及び年齢が第1条件の配信先の条件に該当する配信ログを抽出する。
図1では、情報処理装置100は、割当済ログのうち未来日付が2020年8月15日-20日の期間内であり、且つ性別が女性である配信ログを抽出する。例えば、情報処理装置100は、割当済ログ情報記憶部122の配信ログのうち、第1条件のうちvimp1、vimp2等の配信ログを抽出する。情報処理装置100は、割当済ログのうち未来日付が2020年8月15日-20日の期間内であり、且つ性別が女性である配信ログを、キャンペーンAの配信先になり得るリクエストを示す予定在庫(単に「在庫」ともいう)として抽出する。
【0023】
情報処理装置100は、抽出した配信ログを用いて、各種情報を算出する。情報処理装置100は、第1条件に該当するとして抽出した配信ログ(予定在庫)をカウントし、予定在庫(「総在庫」ともいう)の数を算出する。例えば、情報処理装置100は、キャンペーンAのの配信先になり得る総在庫の数を「100000」と算出する。また、情報処理装置100は、第1条件に該当するとして抽出した配信ログ(予定在庫)のうち、割り当てられたキャンペーンが無い在庫ををカウントし、その在庫(「残在庫」ともいう)の数を算出する。例えば、
図5では、vimp2はキャンペーンAに割当可能な在庫であるが、既にキャンペーンXに割当済みである。
【0024】
そのため、情報処理装置100は、vimp2等のようにキャンペーンAに割当可能な在庫であっても既にキャンペーンXに割当済みである在庫については、キャンペーンAに対して割当可能な在庫からは除外する。以下、vimp2等のように第1キャンペーンに割当可能な在庫であるが、既に第2キャンペーンに割当済みである在庫を「割当済み在庫」ともいう。例えば、情報処理装置100は、割当済み在庫の数を「20000」と算出する。この場合、情報処理装置100は、総在庫の数「100000」から割当済み在庫の数「20000」を減算することにより、キャンペーンAに対する残在庫の数を「80000(=100000-20000)」であると推定する。
【0025】
これにより、情報処理装置100は、第1条件と前記第2条件との重複に基づいて、予定在庫のうち、第1キャンペーンに対して割当可能な在庫である残在庫の数を推定することができる。
【0026】
ここで、全てのログに対し、予約済みキャンペーンのどれが配信できるかを判定する処理や、予約した量に応じて適切に割り当てる処理が重いため、集計処理の頻度を上げることは難しい場合がある。このような場合、集計処理を実行する間隔は例えば日に一回等となり、直近予約されたキャンペーンが集計処理の対象となっておらず、その情報は含まれていない場合がある。このような場合、集計処理後、第1キャンペーンについてのシミュレーションを行う前に、他のキャンペーン(第2キャンペーン)が予約された場合、この第2キャンペーン(以下「未反映キャンペーン」)の情報も反映して処理を行うことにより、より精度を高めることが可能となる。そのため、情報処理装置100は、以下の処理を実行する。例えば、情報処理装置100は、集計処理とは別に、予約した内容を即時に反映させるための処理を実行する。
【0027】
なお、以下の処理(ステップS6以降の処理)の説明では、上記の処理(ステップS5迄の処理)で推定した残在庫を「仮残在庫」と記載する場合がある。また、
図1では、ステップS2の集計処理後にキャンペーンB~Dの3つのキャンペーンが予約された場合を示し、説明のためにキャンペーンAの第1条件と条件が重複する未反映キャンペーンがキャンペーンBのみである場合を一例として説明する。なお、ステップS6~ステップS8の処理を「予約状況即時反映処理」ともいう。
【0028】
まず、情報処理装置100は、未反映キャンペーンのキャンペーン情報を予約データベースRDBに要求し(ステップS6)、予約データベースRDBから直近の予約済みキャンペーンのキャンペーン情報を取得する(ステップS7)。例えば、情報処理装置100は、予約データベースRDB中の未反映キャンペーンのうち、条件がキャンペーンAの第1条件と重複するキャンペーンのキャンペーン情報を取得する。
図1では、情報処理装置100は、キャンペーンAの第1条件と条件が重複する未反映キャンペーンがキャンペーンBのキャンペーン情報を取得する。情報処理装置100は、予約データベースRDBとしてキャンペーン情報記憶部123(
図6参照)を用い、キャンペーン情報記憶部123からキャンペーンBのキャンペーン情報を取得する。なお、情報処理装置100は、キャンペーン情報記憶部123に記憶する情報を配信サーバ20から受信し、キャンペーン情報記憶部123に登録してもよい。このように、情報処理装置100は、直近の予約済みキャンペーンを保持する予約データベースRDBの情報を用いることで、集計経由のデータで足りない部分を補うことができる。
【0029】
情報処理装置100は、未反映キャンペーンを反映したキャンペーンAに対する残在庫の数を推定する(ステップS8)。
図1では、情報処理装置100は、キャンペーンBを反映したキャンペーンAに対する残在庫の数を推定する。例えば、情報処理装置100は、キャンペーンAの条件(第1条件)と、キャンペーンBの条件(未反映条件)との重複割合を推定する。例えば、情報処理装置100は、各リクエスト(在庫)が所定のハッシュ法によりハッシュ(ハッシュ値)に変換し、重なり数推定に関する手法を用いて重複割合を推定する。なお、この処理の詳細については後述する。例えば、情報処理装置100は、推定した重複割合と総在庫の数とを乗算することにより値(「除外在庫数」ともいう)を算出する。そして、情報処理装置100は、除外在庫数を仮残在庫から減算することにより、残在庫の数を推定する。
図1では、情報処理装置100は、キャンペーンAの条件(第1条件)と、キャンペーンBの条件(未反映条件)との重複割合を用いて、除外在庫数を例えば「10000」と算出する。そして、情報処理装置100は、仮残在庫の数「80000」から除外在庫数「10000」を減算することにより、キャンペーンAに対する残在庫の数を「70000(=80000-10000)」であると推定する。
【0030】
なお、
図1では処理の流れを説明するために、1つのキャンペーンBのみを未反映キャンペーンとして説明するが、複数の未反映キャンペーンがある場合、情報処理装置100は、複数の未反映キャンペーンについてキャンペーンAとの重複割合を算出し、算出した複数の重複割合の合計値と総在庫の数とを乗算した値を除外在庫数として用いてもよい。
【0031】
また、上述したような重なり数推定を用いた処理は一例に過ぎず、情報処理装置100は、任意の方法により未反映キャンペーンの情報を加味して第1キャンペーンに対する残在庫を推定してもよい。例えば、情報処理装置100は、未反映キャンペーンについても配信ログに割り当てることにより、第1キャンペーンに対する残在庫を推定してもよい。この場合、情報処理装置100は、仮残在庫のうち、未反映キャンペーンの条件を満たす在庫に、その未反映キャンペーンを割り当ててもよい。
図1では、情報処理装置100は、仮残在庫のうち、キャンペーンBの条件を満たす在庫に、キャンペーンBを割り当ててもよい。そして、情報処理装置100は、未反映キャンペーンを割り当てた在庫の数を残在庫の数から減算することにより、第1キャンペーンに対する残在庫を推定してもよい。
図1では、キャンペーンBを割り当てた在庫の数が「10000」である場合、情報処理装置100は、仮残在庫の数「80000」からキャンペーンBを割り当てた在庫の数「10000」を減算することにより、キャンペーンAに対する残在庫の数を「70000(=80000-10000)」であると推定する。
【0032】
そして、情報処理装置100は、推定したキャンペーンAに対する残在庫の情報を広告主ATに提供する(ステップS9)。例えば、情報処理装置100は、キャンペーンAに対する残在庫の数が「70000」であることを示す情報を広告主ATが利用する広告主端末30に送信する。
【0033】
上述したように、情報処理装置100は、集計処理後に追加された第2キャンペーンについては未反映キャンペーンとして、第1キャンペーンとの重複割合を求め、その重複割合を基に第1キャンペーンへ割合可能な残在庫を推定する。これにより、情報処理装置100は、コンテンツの配信に関する情報を適切に推定することができる。
【0034】
〔2.情報処理システムの構成〕
次に、
図2を用いて、情報処理システム1の構成について説明する。
図2は、実施形態に係る情報処理システムの構成例を示す図である。
図2に例示するように、実施形態にかかる情報処理システム1には、ユーザ端末10と、配信サーバ20と、広告主端末30と、情報処理装置100とが含まれる。これらの各種装置は、ネットワークN(例えば、インターネット)を介して、有線又は無線により通信可能に接続される。なお、
図2に示した情報処理システム1には、複数台のユーザ端末10や、複数台の配信サーバ20や、複数台の広告主端末30が含まれてもよい。
【0035】
ユーザ端末10は、ユーザによって利用される端末装置である。例えば、ユーザ端末10は、タブレット型端末、PC(Personal Computer)、携帯電話機、PDA(Personal Digital Assistant)等である。例えば、ユーザ端末10は、所定のウェブサーバにアクセスすることで、所定のウェブサーバからウェブページを取得し、取得したウェブページを表示画面に表示する。
【0036】
また、ユーザ端末10は、ウェブページに広告枠が含まれる場合には、配信サーバ20にアクセスすることで、配信サーバ20から広告を取得し、取得した広告を広告枠に表示する。
【0037】
配信サーバ20は、広告主端末30から入稿された広告を配信するサーバ装置である。配信サーバ20は、広告主端末30から配信期間、配信先(ターゲット)となるユーザの属性(性別、年齢等)が指定されたキャンペーンに関する予約を受け付ける。
【0038】
配信サーバ20は、ウェブページや広告などのコンテンツの配信ログやユーザの行動履歴等の様々な履歴情報を保持する。配信サーバ20は、配信した広告の配信ログを保持する。配信サーバ20は、配信したウェブページまたは広告等、過去にユーザに配信したコンテンツに関する履歴である配信ログを情報処理装置100へ提供する。例えば、配信サーバ20は、広告がユーザの視認領域に表示された配信(ビューアブルインプレッション)を対象に、そのユーザの属性等に関する情報を配信ログとして収集する。
【0039】
配信サーバ20は、ビューアブルインプレッションとなった配信におけるユーザの属性等を示す配信ログを情報処理装置100へ送信する。また、配信サーバ20は、ユーザの検索クエリやユーザの訪問ページといったアクセスログを保持してもよい。配信サーバ20は、ユーザのアクセスログを情報処理装置100へ送信してもよい。
【0040】
広告主端末30は、広告主によって利用される端末装置である。例えば、広告主端末30は、タブレット型端末、PC、携帯電話機、PDA等である。また、広告主端末30は、広告主の操作に従って、広告を配信サーバ20に入稿する。広告主端末30は、配信期間、配信先(ターゲット)となるユーザの属性(性別、年齢等)等を指定したキャンペーンを配信サーバ20に入稿(送信)することにより、キャンペーンの予約を行う。例えば、広告主端末30は、キャンペーンの広告を配信サーバ20に入稿する。
【0041】
例えば、広告主端末30は、静止画像、動画像、テキストデータ等に該当する広告を配信サーバ20に入稿する。また、例えば、広告主端末30は、広告が選択操作(例えば、クリックやタップ)された場合に、遷移させる遷移先コンテンツのURL(Uniform Resource Locator)に該当する広告を配信サーバ20に入稿してもよい。
【0042】
また、広告主端末30は、キャンペーンに関して推定した情報の提供を情報処理装置100に要求する。例えば、広告主端末30は、予約前のキャンペーンについてのシミュレーションを情報処理装置100に要求する。広告主端末30は、予約前のキャンペーンに割合可能な残在庫の数の推定を情報処理装置100に要求する。例えば、広告主端末30は、予約前のキャンペーンの配信期間、配信先(ターゲット)となるユーザの属性(性別、年齢等)等を示す情報を、情報処理装置100に送信し、送信した条件を基に、予約前のキャンペーンに割合可能な残在庫の数の推定を情報処理装置100に要求する。
【0043】
情報処理装置100は、配信期間を含む条件が重なるキャンペーン間の条件の重複に基づいて、キャンペーンに対して割当可能な残在庫の数を推定する推定処理を実行するサーバ装置(コンピュータ)である。情報処理装置100は、広告主端末30からの要求に応じて、予約前のキャンペーンを対象に推定処理を実行する。情報処理装置100は、配信サーバ20から受信した推定処理を実行する。
【0044】
なお、
図2に示す情報処理システム1の装置構成は一例に過ぎず、情報処理システム1は、
図1に示す情報処理を実現可能であれば、どのような装置構成であってもよい。例えば、情報処理装置100は、配信サーバ20と一体であってもよい。すなわち、情報処理装置100は、コンテンツを配信するサーバとしての機能を有してもよい。
【0045】
〔3.情報処理装置の構成〕
次に、
図3を用いて、情報処理装置の一例である情報処理装置100について説明する。
図3は、実施形態に係る情報処理装置の構成例を示す図である。
図3に示すように、情報処理装置100は、通信部110と、記憶部120と、制御部130とを有する。
【0046】
(通信部110)
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部110は、ネットワークNと有線または無線で接続され、例えば、ユーザ端末10、配信サーバ20との間で情報の送受信を行う。
【0047】
(記憶部120)
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部120は、
図3に示すように、配信ログ情報記憶部121と、割当済ログ情報記憶部122と、キャンペーン情報記憶部123と、重複割合情報記憶部124とを有する。なお、記憶部120は、上記に限らず様々な情報を記憶してもよい。
【0048】
記憶部120は、ハッシュに関する情報を記憶する。記憶部120は、ハッシュ関数を記憶する。例えば、記憶部120は、リクエストをハッシュ値に変換するために用いるハッシュ関数を記憶する。
【0049】
(配信ログ情報記憶部121)
配信ログ情報記憶部121は、配信ログに関する各種情報を記憶する。
図4は、実施形態に係る配信ログ情報記憶部の一例を示す図である。
図4では、配信ログ情報記憶部121は、「ログID」、「日付」、「性別」、「年齢」といった項目を有する。
【0050】
「ログID」は、広告(コンテンツ)配信の履歴を識別するための識別情報を示す。「日付」は、配信日時を示す。なお、
図4では日付のみを図示するが、日付には配信の時分秒を含む情報が記憶されてもよい。
【0051】
「性別」は、配信先となったユーザの性別を示す。また、「年齢」は、配信先となったユーザの年齢を示す。なお、「性別」及び「年齢」は、ユーザの属性の一例に過ぎず、ユーザの属性は、年齢、性別以外にも居住地等のデモグラフィック属性であってもよく、興味・関心等のサイコグラフィック属性等であってもよい。
【0052】
図4では、ログID「vimp1」により識別されるログ(ログvimp1)は、2020年8月1日における配信の履歴であり、30代女性のユーザを配信先とする配信であることを示す。
【0053】
なお、配信ログ情報記憶部121は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、配信ログ情報記憶部121は、配信時のユーザの位置等を各ログに対応付けて記憶する。
【0054】
(割当済ログ情報記憶部122)
割当済ログ情報記憶部122は、未来日付が対応付けられた配信ログに関する各種情報を記憶する。
図5は、実施形態に係る割当済ログ情報記憶部の一例を示す図である。
図5では、割当済ログ情報記憶部122は、「ログID」、「元日付」、「未来日付」、「割当」、「ハッシュ」、「性別」、「年齢」といった項目を有する。
【0055】
なお、割当済ログ情報記憶部122中の「ログID」、「元日付」、「性別」及び「年齢」の項目の情報は、配信ログ情報記憶部121の「ログID」、「日付」、「性別」及び「年齢」の項目の情報の各々が流用される。例えば、割当済ログ情報記憶部122中の「元日付」の情報は、配信ログ情報記憶部121の「日付」の情報に対応する。
【0056】
「未来日付」は、「元日付」の日時を未来の日付に変更した日時を示す。
図5では、「未来日付」は、「元日付」の日時を2週間(14日)先に変更した日時を示す。なお、
図5では日付のみを図示するが、日付には配信の時分秒を含む情報が記憶されてもよい。
【0057】
「割当」は、その未来日付の配信に対して割り当てられたキャンペーンを示す。例えば、キャンペーンXは、2020年8月16日を配信期間に含むキャンペーンであり、20代女性を配信先の条件として含むキャンペーンである。
【0058】
「ハッシュ」は、対応する配信についてのリクエストがハッシュ値に変換された値を示す。例えば、「ハッシュ」は、配信日時、配信先の属性等、配信のリクエストに関する情報がハッシュ化された値を示す。
【0059】
図5では、ログID「vimp1」により識別されるログ(ログvimp1)は、2020年8月1日における30代女性への配信の履歴の日付が、2020年8月15日に変更された未来ログであることを示す。また、2020年8月15日に変更された未来ログは、未だキャンペーンが割り当てられていないことを示す。
【0060】
また、ログID「vimp2」により識別されるログ(ログvimp2)は、2020年8月2日における20代女性への配信の履歴の日付が、2020年8月16日に変更された未来ログであることを示す。また、2020年8月16日に変更された未来ログは、キャンペーンXに割り当てられることを示す。また、そのリクエストから生成されたハッシュの値は、「332278」であることを示す。
【0061】
なお、割当済ログ情報記憶部122は、上記に限らず、目的に応じて種々の情報を記憶してもよい。
【0062】
(キャンペーン情報記憶部123)
実施形態に係るキャンペーン情報記憶部123は、キャンペーンに関する情報を記憶する。
図6は、実施形態に係るキャンペーン情報記憶部の一例を示す図である。
図6では、キャンペーン情報記憶部123は、「キャンペーン」、「配信開始」、「配信終了」、「sov」、「性別」、「年齢」、「ハッシュ」といった項目が含まれる。
【0063】
「キャンペーン」は、キャンペーンを示す。なお、「キャンペーン」には、キャンペーンを識別するための識別情報(キャンペーンID等)が記憶されてもよい。
【0064】
「配信開始」及び「配信終了」は、キャンペーンの配信期間に関する情報を示す。なお、
図6では日付のみを図示するが、日付には時分秒を含む情報が記憶されてもよい。「配信開始」は、キャンペーンの配信開始の日時を示す。「配信終了」は、キャンペーンの配信終了の日時を示す。「sov」は、重複割合を推定するために用いる情報(値)を示す。
【0065】
「性別」は、配信対象とするユーザの性別に関する条件を示す。また、「年齢」は、配信対象とするユーザの年齢に関するを示す。なお、「性別」及び「年齢」は、配信先に関する条件の一例に過ぎず、配信先に関する条件は、年齢、性別以外にも居住地等のデモグラフィック属性であってもよく、興味・関心等のサイコグラフィック属性等であってもよい。
【0066】
「ハッシュ」は、対応するキャンペーンに割り当てられた各リクエストのハッシュ値を示す。「ハッシュ」は、対応するキャンペーンに割り当てられたリクエストのハッシュ値の一覧を示す。
【0067】
図6では、キャンペーンBは、2010年8月10日から16日までを配信期間とするキャンペーンであることを示す。また、キャンペーンBは、sovが「0.1」であり、性別に関する条件として「女性」が指定され、年齢に関する条件は指定されていないことを示す。また、キャンペーンBは、ハッシュ値が「123456」であるリクエスト等が割り当てられていることを示す。
【0068】
なお、キャンペーン情報記憶部123は、上記に限らず、目的に応じて種々の情報を記憶してもよい。
【0069】
(重複割合情報記憶部124)
実施形態に係る重複割合情報記憶部124は、重複割合に関する各種の情報を記憶する。
図7は、実施形態に係る重複割合情報記憶部の一例を示す図である。
図7では、重複割合情報記憶部124は、「重複割合ID」、「推定対象」、「重複割合」といった項目が含まれる。
【0070】
「重複割合ID」は、重複割合を識別するための識別情報を示す。「推定対象」は、重複割合を推定する対象となったキャンペーンの組合せを示す。「重複割合」は、推定した重複割合の値を示す。
【0071】
図7では、重複割合ID「PD1」により識別され重複割合は、キャンペーンAとキャンペーンBとの重複割合であることを示す。また、重複割合ID「PD1」により識別され重複割合は、値が「0.33…」であることを示す。
【0072】
なお、重複割合情報記憶部124は、上記に限らず、目的に応じて種々の情報を記憶してもよい。
【0073】
(制御部130)
図3の説明に戻って、制御部130は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、情報処理装置100内部の記憶装置に記憶されている各種プログラム(算出プログラム、予測プログラム等の各種の情報処理プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。また、制御部130は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
【0074】
図3に示すように、制御部130は、受付部131と、取得部132と、集計部133と、推定部134と、提供部135とを有し、以下に説明する情報処理の作用を実現または実行する。なお、制御部130の内部構成は、
図3に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
【0075】
(受付部131)
受付部131は、各種情報を受け付ける。受付部131は、外部の情報処理装置から各種要求を受け付ける。受付部131は、通信部110を介して、外部の情報処理装置から各種要求を示す情報を受信する。例えば、受付部131は、広告主端末30から要求を受け付ける。また、受付部131は、ユーザ端末10または配信サーバ20から要求を受け付けてもよい。
【0076】
受付部131は、推定対象となるキャンペーンである第1キャンペーンに対して指定された第1配信期間の条件を含む第1条件を受け付ける。受付部131は、第1キャンペーンの配信先の属性に関する条件を含む第1条件を受け付ける。受付部131は、配信先となるユーザの年齢(年代等)に関する条件を含む第1条件を受け付ける。受付部131は、配信先となるユーザの性別等に関する条件を含む第1条件を受け付ける。
【0077】
(取得部132)
取得部132は、各種情報を取得する。取得部132は、通信部110を介して、外部の情報処理装置から各種情報を受信する。取得部132は、外部の情報処理装置から受信した情報を、記憶部120に格納する。取得部132は、ユーザ端末10から各種情報を受信する。取得部132は、配信サーバ20から各種情報を受信する。取得部132は、広告主端末30から各種情報を受信する。
【0078】
取得部132は、記憶部120から各種情報を取得する。取得部132は、配信ログ情報記憶部121や割当済ログ情報記憶部122やキャンペーン情報記憶部123や重複割合情報記憶部124から各種情報を取得する。
【0079】
取得部132は、第1配信期間に第1キャンペーンのコンテンツの配信先になり得るリクエストを示す予定在庫を示す情報を取得する。取得部132は、第1キャンペーンとは異なる第2キャンペーンに対して指定された第2配信期間あって、第1配信期間に重なる第2配信期間の条件を含む第2条件を取得する。
【0080】
取得部132は、第2キャンペーンの配信先の属性に関する条件を含む第2条件を取得する。取得部132は、配信先となるユーザの年齢に関する条件を含む条件を含む第2条件を取得する。取得部132は、配信先となるユーザの性別に関する条件を含む条件を含む第2条件を取得する。
【0081】
取得部132は、推定処理以前のコンテンツの配信ログから生成される予定在庫を示す情報を取得する。取得部132は、配信ログの日付を第1配信期間に含まれる日付に変更した未来ログである予定在庫を示す情報を取得する。取得部132は、集計処理後に追加された第2キャンペーンである未反映キャンペーンの第2条件である未反映条件を取得する。
【0082】
(集計部133)
集計部133は、各種情報を集計する集計処理を実行する。集計部133は、記憶部120に記憶された情報を用いて、集計処理を実行する。集計部133は、受付部131により受け付けられた情報を用いて、集計処理を実行する。集計部133は、取得部132により取得された情報を用いて、集計処理を実行する。集計部133は、各種情報を抽出する抽出処理を実行する。集計部133は、記憶部120から情報を抽出する。集計部133は、各種情報を算出する算出処理を実行する。集計部133は、抽出した情報を用いて算出処理を実行する。
【0083】
集計部133は、予定在庫のうち、第2条件に該当する在庫に第2キャンペーンを割り当てる集計処理を実行する。集計部133は、各種の情報を生成する。集計部133は、集計処理に用いる情報を生成する。集計部133は、生成した情報を用いて集計処理を実行する。
【0084】
集計部133は、第1配信期間に第1キャンペーンのコンテンツの配信先になり得るリクエストを示す予定在庫を示す情報を生成する。集計部133は、推定処理以前のコンテンツの配信ログから予定在庫を示す情報を生成する。集計部133は、配信ログの日付を第1配信期間に含まれる日付に変更することにより、未来ログを、予定在庫を示す情報として生成する。集計部133は、配信ログの日付を第1配信期間に含まれる日付に変更した未来日付を、配信ログに対応付けて割当済ログ情報記憶部122に登録する。集計部133は、配信ログの日付を元日付とし、変更後の日付を未来日付として、配信ログに対応付けて割当済ログ情報記憶部122に登録する。
【0085】
集計部133は、未来ログを対象として集計処理を実行する。集計部133は、第2キャンペーンの第2条件が該当するログに、その第2キャンペーンを割り当てることにより、集計処理を実行する。集計部133は、第2キャンペーンの第2条件が該当するログに、その第2キャンペーンを対応付けて割当済ログ情報記憶部122に登録する。
【0086】
(推定部134)
推定部134は、種々の情報を推定する推定処理を実行する。推定部134は、外部の情報処理装置から受信された各種情報に基づいて、推定処理を実行する。推定部134は、ユーザ端末10、配信サーバ20、または広告主端末30から受信された各種情報に基づいて、推定処理を実行する。
【0087】
推定部134は、記憶部120に記憶された各種情報に基づいて、推定処理を実行する。例えば、推定部134は、集計部133により集計された情報に基づいて、推定処理を実行する。
【0088】
推定部134は、第1条件と第2条件との重複に基づいて、予定在庫のうち、第1キャンペーンに対して割当可能な在庫である残在庫の数を推定する推定処理を実行する。推定部134は、第2キャンペーンが割り当てられた在庫である割当済在庫の数を用いて、残在庫の数を推定する。推定部134は、予定在庫から割当済在庫を除外することにより、残在庫の数を推定する。推定部134は、予定在庫の数から割当済在庫の数を減算した値を用いて、残在庫の数を推定する。
【0089】
推定部134は、第1条件と未反映条件との重複割合を推定し、推定した重複割合と予定在庫の数とを乗算した値を用いて、残在庫の数を推定する。推定部134は、予定在庫の数から重複割合と予定在庫の数とを乗算した値を減算した値を用いて、残在庫の数を推定する。推定部134は、重なり数推定に関する手法を用いて重複割合を推定する。推定部134は、予定在庫の各リクエストが所定のハッシュ法により変換されたハッシュ値を用いて、重複割合を推定する。
【0090】
(提供部135)
提供部135は、各種情報を提供する。提供部135は、通信部110を介して、外部の情報処理装へ各種情報を送信する。提供部135は、ユーザ端末10へ各種情報を送信する。提供部135は、配信サーバ20へ各種情報を送信する。提供部135は、広告主端末30へ各種情報を送信する。提供部135は、集計部133による集計処理の結果を提供する。提供部135は、推定部134による推定処理の結果を提供する。
【0091】
提供部135は、残在庫の数を示す情報を提供する。提供部135は、残在庫の数を示す情報を広告主端末30へ送信する。
【0092】
〔4.処理フロー〕
次に、
図8を用いて、実施形態に係る情報処理システム1による情報処理の手順について説明する。
図8は、実施形態に係る情報処理の一例を示すフローチャートである。
【0093】
図8に示すように、情報処理装置100は、推定対象となるキャンペーンである第1キャンペーンに対して指定された第1配信期間の条件を含む第1条件を受け付ける(ステップS101)。また、情報処理装置100は、第1配信期間に第1キャンペーンのコンテンツの配信先になり得るリクエストを示す予定在庫を示す情報を取得する(ステップS102)。
【0094】
また、情報処理装置100は、第1キャンペーンとは異なる第2キャンペーンに対して指定された第2配信期間あって、第1配信期間に重なる第2配信期間の条件を含む第2条件を取得する(ステップS103)。そして、情報処理装置100は、第1条件と第2条件との重複に基づいて、予定在庫のうち、第1キャンペーンに対して割当可能な在庫である残在庫の数を推定する推定処理を実行する(ステップS104)。
【0095】
〔5.予約状況即時反映処理〕
ここで、
図1でのステップS6~ステップS8に対応する予約状況即時反映処理について、異なり数推定を用いた場合の処理例について、
図9~
図11を用いて説明する。
図9は、異なり数の推定に関する処理を示す概念図である。
図10は、重複割合の推定に関する一例を示す図である。
図11は、重複割合の推定に関する具体例を示す図である。
【0096】
〔5-1.重なり数推定〕
まず、
図9を用いて異なり数の推定に関する処理について説明する。例えば残在庫を求めるにあたり、シミュレーション・予約しようとしているキャンペーンと予約済みのキャンペーンの配信対象の被り具合を出す必要があるが、予約済みキャンペーンは複数存在するため、愚直に検索処理をすると処理負荷の増大を抑制することが難しい。そこで、情報処理装置100は、異なり数推定の手法を用いて推定処理を実行する。
【0097】
例えば、情報処理装置100は、下記の文献に開示されている異なり数推定関する技術を用いて、重なり具合を推定する。
・On Synopses for Distinct-Value Estimation Under Multiset Operations, Kevin Beyer et al. <http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.230.7008&rep=rep1&type=pdf>
【0098】
図9には異なり数の推定に関する処理を示す概念図を示し、1~Mまでの値(ハッシュ値)を示す。すなわち、Mはハッシュが取り得る値の範囲とするハッシュ関数により生成されるハッシュ値を示す。例えば、情報処理装置100は、各在庫(リクエスト)のハッシュ(値)をリクエストID(ログID)から求める。例えば、情報処理装置100は、各在庫(リクエスト)のログID等の情報をハッシュ関数に入力し、ハッシュ関数が出力したハッシュ値をその在庫(リクエスト)の値として用いる。例えば、ハッシュ関数は、出力が一様になるような関数であればどのようなハッシュ関数であってもよい。
【0099】
例えば、x_1、x_2、…x_Nのうち、異なる値の数を求めたいとする。例えばx_1、x_2、…x_N等は、各在庫(リクエスト)に対応する値であるものとする。この場合、情報処理装置100は、ハッシュ関数h(x)を用いて、h(x_1)、h(x_2)、…h(x_N)等のハッシュ値を求める。ハッシュの値域は1~Mとする。情報処理装置100は、求めたh(x_i)のうち、k番目に小さい値を求め、その値Hとする。
【0100】
この場合、情報処理装置100は、異なる値の数を「(k-1)*M/H」であると推定する。情報処理装置100は、ハッシュをリクエストID(ログID)から求めて、上述した手法を利用することで、配信対象の重なり具合を高速に計算することができる。
【0101】
〔5-2.ハッシュの付与〕
情報処理システム1は、上記の手法を行うために、各配信ログに対して、リクエストIDを元に作成されたハッシュを付与し、検索エンジンSE等に格納しておく。例えば、情報処理装置100は、
図5の割当済ログ情報記憶部122に示すように、各配信ログに対して、生成したハッシュ値を対応付けて記憶する。
【0102】
〔5-3.予約内容の保存〕
情報処理システム1は、予約実行の際、sov及び予約重複率算出のためのハッシュの情報を予約データベースRDBに保存する。例えば、情報処理装置100は、
図6のキャンペーン情報記憶部123に示すように、各キャンペーンに対して、sov及びハッシュの情報を対応付けて記憶する。なお、実際は一つのテーブルに保存されているわけではないが、
図6では簡単のため一つの表として図示する。
【0103】
例えば、sovは、「予約vimps/配信可能vimps」により算出される。例えば、予約vimpsは、キャンペーン作成時に指定される予約数(配信回数)を示す。例えば、配信可能vimpsは、そのキャンペーンの総在庫の数を示し、そのキャンペーンのターゲット、配信期間等の条件に該当するリクエスト(配信ログ)の量を示す。例えば、sovは、キャンペーンについての契約時の予約数を、契約時の総在庫の数で割った値である。
【0104】
図5の割当済ログ情報記憶部122に示すように、各キャンペーンには、ハッシュ値が対応付けられる。なお、情報処理装置100は、種々の情報を適宜用いて、各キャンペーンにハッシュ値を対応付ける。例えば、各キャンペーンに対応付けられるハッシュは、
図5の割当済ログ情報記憶部122中の割当済ログで、割当が「なし」である配信ログ(未割当リクエスト)のうち、そのキャンペーンの条件に該当するリクエスト(対象リクエスト)のハッシュ値であってもよい。例えば、情報処理装置100は、キャンペーンについて未割当リクエストから対象リクエストを抽出し、ハッシュ値が小さい方からそのキャンペーンの予約数分のハッシュ値をそのキャンペーンに対応付けてもよい。なお、情報処理装置100は、キャンペーンAについても同様にハッシュ値を対応付けてもよい。
【0105】
〔5-4.重複割合の計算〕
情報処理システム1は、シミュレーション・予約対象のキャンペーンと予約済みのキャンペーンの配信対象がどれだけ重なっているかを、以下の式(1)により算出することができる。
【0106】
重複割合 = sov×ハッシュにより推定される重複割合 … (1)
【0107】
上述したように、式(1)中の「sov」は予約済みキャンペーンが、配信対象全体に対してどれだけ予約しているかの比率(全て予約していれば1となる)である。また、情報処理システム1は、式(1)中の「ハッシュにより推定される重複割合」を、次の手順#1~手順#3のように異なり数推定の手法を用いて計算する。
【0108】
(手順#1)
情報処理システム1は、シミュレーション対象のキャンペーンAの配信対象vimp(A)のうち、最小k個(例えばk=4000とする)のハッシュ値を検索エンジンSEから取得する。例えば、情報処理装置100は、割当済ログ情報記憶部122からキャンペーンAの条件に該当するk個のハッシュ値を取得する。
【0109】
(手順#2)
情報処理システム1は、予約済みのキャンペーンBの配信対象vimp(B)のうちの最小k個のハッシュ値も予約データベースRDBから取得する。例えば、情報処理装置100は、キャンペーン情報記憶部123からキャンペーンBに対応付けられたk個のハッシュ値を取得する。
【0110】
(手順#3)
情報処理システム1は、手順#1及び手順#1で取得した情報を用いて、キャンペーンAとキャンペーンBとの重複割合を計算する。例えば、情報処理装置100は、関数N(...)で上述の異なり数推定を行うとすると、
図10のように計算できる。情報処理装置100は、
図10に示す式を用いることにより、シミュレーション対象のキャンペーンAと予約済みのキャンペーンBの配信対象がどれだけ重なっているかを推定することができる。
【0111】
図10中のN(A)は、キャンペーンAに対応するビューアブルインプレッション(リクエスト)の数を示す。また、
図10中のN(B)は、キャンペーンBに対応するビューアブルインプレッション(リクエスト)の数を示す。また、
図10中のN(A∪B)は、キャンペーンAまたはキャンペーンBのいずれかが配信対象となるビューアブルインプレッション(リクエスト)の数を示す。また、
図10中のN(A∩B)は、キャンペーンA及びキャンペーンBの両方が配信対象となるビューアブルインプレッション(リクエスト)の数を示す。
【0112】
(手順#4)
なお、情報処理システム1は、キャンペーンの予約時に最小k個のハッシュ値を予約データベースRDBに保存しておく。例えば、情報処理装置100は、割当済ログ情報記憶部122から取得したキャンペーンAの条件に該当するk個のハッシュ値を、キャンペーンAに対応付けてキャンペーン情報記憶部123に登録する。
【0113】
〔5-5.重複割合の具体例〕
次に、
図11を用いて、重複割合の推定の具体例について説明する。なお、
図11では説明の容易化のために数値を簡単にしており、例えばハッシュの値域を1~10000000としている。なお、実際にはハッシュを用いるため、
図11に示すような綺麗な数字が並ぶことはまずないものとなる。
【0114】
図11中のN(A)は、キャンペーンAのビューアブルインプレッション(リクエスト)の数が「99975」であることを示す。また、
図11中のN(B)は、キャンペーンBのビューアブルインプレッション(リクエスト)の数が「66650」であることを示す。また、
図11中のN(A∪B)は、キャンペーンAまたはキャンペーンBのいずれかが配信対象となるビューアブルインプレッション(リクエスト)の数が「133300」であることを示す。
【0115】
また、
図11中のN(A∩B)は、キャンペーンA及びキャンペーンBの両方が配信対象となるビューアブルインプレッション(リクエスト)の数が「33325」であることを示す。ハッシュにより推定される重複割合は、キャンペーンAとキャンペーンBとの重複割合が「0.333333」であることを示す。
【0116】
すなわち、
図11では、Mを1千万とし、kを「4000」とした例を示し、情報処理装置100が第1キャンペーンであるキャンペーンAと、第2キャンペーン(未反映キャンペーン)であるキャンペーンBとの重複割合が「0.333333」と推定した場合を示す。このように、
図11の例は、推定対象の第1キャンペーンであるキャンペーンAの33%(1/3)が、既に予約済みのキャンペーンBの配信対象になっていることを示す。
【0117】
そのため、情報処理装置100は、重複割合に、sovを乗算することにより、どれだけ予約済みキャンペーンに割合済みの在庫にするべきかを推定することができる。
図11では、情報処理装置100は、キャンペーンAとキャンペーンBとの重複割合「0.3333…」、キャンペーンBのsov「0.1」を乗算することにより、キャンペーンAに対する総在庫のうち、キャンペーンBに割合済みの在庫にするべき数(除外在庫数)を推定することができる。
【0118】
情報処理装置100は、上述した処理により、第1キャンペーンの残在庫量を推定することができる。例えば、情報処理装置100は、検索エンジンSE内の情報から総在庫及び仮残在庫を算出する。そして、情報処理装置100は、予約データベースRDBから検索エンジンSEに未反映の予約済みキャンペーンを抽出し、抽出した予約済みキャンペーン全てについて重複割合を計算する。そして、情報処理装置100は、「残在庫=仮残在庫-在庫×(算出した重複割合の総和)」により第1キャンペーンに対する在庫数を推定することができる。
【0119】
なお、上記のキャンペーンのような予約型広告の在庫管理では、総在庫(最大でどれだけ配信できるか)と残在庫(どれだけの配信量を予約させられるか)を求める必要がある。例えば、従来の広告配信での在庫管理では、予め決められた地域(エリア)のセットでの指定や1つのカテゴリ(オーディエンスカテゴリ)のみ指定可能である等の制約があり、配信対象のセグメントごとに全体に対する割合を求め、全体の予測量に対し掛け合わせることで総在庫量を求めていた。
【0120】
しかしながら、このような従来の広告配信の方法では、任意のエリア及び任意のカテゴリを複数指定可能である場合、異なるエリア同士や異なるオーディエンスカテゴリ同士は重複し、各エリア及びカテゴリずつ割合を求めてそれを足し合わせるのでは正しい結果は得ることが難しい。例えば、任意のエリア及び任意のカテゴリを複数指定可能である場合、エリアとカテゴリとの組み合わせの数は非常に大きく、エリアが数千、カテゴリが数百カテゴリある場案等では、全てを事前計算しておくのは困難である。
【0121】
一方で、情報処理装置100は、上述した処理により、集計処理後に追加された第2キャンペーンについては未反映キャンペーンとして、第1キャンペーンとの重複割合を求め、その重複割合を基に第1キャンペーンへ割合可能な残在庫を推定する。これにより、情報処理装置100は、コンテンツの配信に関する情報を適切に推定することができる。
【0122】
なお、上記は一例に過ぎず、情報処理システム1は、様々な情報を適宜用いて第1キャンペーンに対する残在庫を推定してもよい。情報処理システム1は、シミュレーション対象と各予約済みキャンペーンのかぶり具合を推定する、そして、情報処理システム1は、仮想在庫から総在庫に各被り具合を積算した値を減算した値を、推定在庫とする。
【0123】
〔6.効果〕
上述してきたように、実施形態に係る情報処理装置100は、受付部131と、取得部132と、推定部134とを備える。受付部131は、推定対象となるキャンペーンである第1キャンペーンに対して指定された第1配信期間の条件を含む第1条件を受け付ける。取得部132は、第1配信期間に第1キャンペーンのコンテンツの配信先になり得るリクエストを示す予定在庫を示す情報と、第1キャンペーンとは異なる第2キャンペーンに対して指定された第2配信期間あって、第1配信期間に重なる第2配信期間の条件を含む第2条件とを取得する。推定部134は、第1条件と第2条件との重複に基づいて、予定在庫のうち、第1キャンペーンに対して割当可能な在庫である残在庫の数を推定する推定処理を実行する。
【0124】
このように、実施形態に係る情報処理装置100は、配信期間を含む条件が重なるキャンペーン間の条件の重複に基づいて、キャンペーンに対して割当可能な残在庫の数を推定することにより、コンテンツの配信に関する情報を適切に推定することができる。
【0125】
また、実施形態に係る情報処理装置100において、受付部131は、第1キャンペーンの配信先の属性に関する条件を含む第1条件を受け付ける。
【0126】
このように、実施形態に係る情報処理装置100は、配信先の属性に関する条件を含め、キャンペーン間の条件の重複に基づいて、キャンペーンに対して割当可能な残在庫の数を推定することにより、コンテンツの配信に関する情報を適切に推定することができる。
【0127】
また、実施形態に係る情報処理装置100において、受付部131は、配信先となるユーザの年齢に関する条件を含む第1条件を受け付ける。
【0128】
このように、実施形態に係る情報処理装置100は、配信先となるユーザの年齢に関する条件を含め、キャンペーン間の条件の重複に基づいて、キャンペーンに対して割当可能な残在庫の数を推定することにより、コンテンツの配信に関する情報を適切に推定することができる。
【0129】
また、実施形態に係る情報処理装置100において、受付部131は、配信先となるユーザの性別に関する条件を含む第1条件を受け付ける。
【0130】
このように、実施形態に係る情報処理装置100は、配信先となるユーザの性別に関する条件を含め、キャンペーン間の条件の重複に基づいて、キャンペーンに対して割当可能な残在庫の数を推定することにより、コンテンツの配信に関する情報を適切に推定することができる。
【0131】
また、実施形態に係る情報処理装置100において、取得部132は、第2キャンペーンの配信先の属性に関する条件を含む第2条件を取得する。
【0132】
このように、実施形態に係る情報処理装置100は、配信先の属性に関する条件を含め、キャンペーン間の条件の重複に基づいて、キャンペーンに対して割当可能な残在庫の数を推定することにより、コンテンツの配信に関する情報を適切に推定することができる。
【0133】
また、実施形態に係る情報処理装置100において、取得部132は、配信先となるユーザの年齢に関する条件を含む条件を含む第2条件を取得する。
【0134】
このように、実施形態に係る情報処理装置100は、配信先となるユーザの年齢に関する条件を含め、キャンペーン間の条件の重複に基づいて、キャンペーンに対して割当可能な残在庫の数を推定することにより、コンテンツの配信に関する情報を適切に推定することができる。
【0135】
また、実施形態に係る情報処理装置100において、取得部132は、配信先となるユーザの性別に関する条件を含む条件を含む第2条件を取得する。
【0136】
このように、実施形態に係る情報処理装置100は、配信先となるユーザの性別に関する条件を含め、キャンペーン間の条件の重複に基づいて、キャンペーンに対して割当可能な残在庫の数を推定することにより、コンテンツの配信に関する情報を適切に推定することができる。
【0137】
また、実施形態に係る情報処理装置100において、取得部132は、推定処理以前のコンテンツの配信ログから生成される予定在庫を示す情報を取得する。
【0138】
このように、実施形態に係る情報処理装置100は、推定処理以前のコンテンツの配信ログから生成される予定在庫を用いて、キャンペーンに対して割当可能な残在庫の数を推定することにより、コンテンツの配信に関する情報を適切に推定することができる。
【0139】
また、実施形態に係る情報処理装置100において、取得部132は、配信ログの日付を第1配信期間に含まれる日付に変更した未来ログである予定在庫を示す情報を取得する。
【0140】
このように、実施形態に係る情報処理装置100は、配信ログの日付を第1配信期間に含まれる日付に変更した未来ログを用いて、キャンペーンに対して割当可能な残在庫の数を推定することにより、コンテンツの配信に関する情報を適切に推定することができる。
【0141】
また、実施形態に係る情報処理装置100は、集計部133を有する。集計部133は、予定在庫のうち、第2条件に該当する在庫に第2キャンペーンを割り当てる集計処理を実行する。推定部134は、第2キャンペーンが割り当てられた在庫である割当済在庫の数を用いて、残在庫の数を推定する。
【0142】
このように、実施形態に係る情報処理装置100は、予定在庫のうち、第2条件に該当する在庫に第2キャンペーンを割り当てる集計処理を実行し、第2キャンペーンが割り当てられた在庫である割当済在庫の数を用いて、残在庫の数を推定することにより、コンテンツの配信に関する情報を適切に推定することができる。
【0143】
また、実施形態に係る情報処理装置100において、推定部134は、予定在庫から割当済在庫を除外することにより、残在庫の数を推定する。
【0144】
このように、実施形態に係る情報処理装置100は、予定在庫から割当済在庫を除外することにより、残在庫の数を推定することにより、コンテンツの配信に関する情報を適切に推定することができる。
【0145】
また、実施形態に係る情報処理装置100において、推定部134は、予定在庫の数から割当済在庫の数を減算した値を用いて、残在庫の数を推定する。
【0146】
このように、実施形態に係る情報処理装置100は、予定在庫の数から割当済在庫の数を減算した値を用いて、残在庫の数を推定することにより、コンテンツの配信に関する情報を適切に推定することができる。
【0147】
また、実施形態に係る情報処理装置100において、取得部132は、集計処理後に追加された第2キャンペーンである未反映キャンペーンの第2条件である未反映条件を取得する。
【0148】
このように、実施形態に係る情報処理装置100は、集計処理後に追加された未反映キャンペーンがある場合であっても、コンテンツの配信に関する情報を適切に推定することができる。
【0149】
また、実施形態に係る情報処理装置100において、推定部134は、第1条件と未反映条件との重複割合を推定し、推定した重複割合と予定在庫の数とを乗算した値を用いて、残在庫の数を推定する。
【0150】
このように、実施形態に係る情報処理装置100は、第1条件との重複割合を推定し、重複割合と予定在庫の数とを乗算した値を用いて残在庫の数を推定することにより、集計処理後に追加された未反映キャンペーンがある場合であっても、コンテンツの配信に関する情報を適切に推定することができる。
【0151】
また、実施形態に係る情報処理装置100において、推定部134は、予定在庫の数から重複割合と予定在庫の数とを乗算した値を減算した値を用いて、残在庫の数を推定する。
【0152】
このように、実施形態に係る情報処理装置100は、予定在庫の数から重複割合と予定在庫の数とを乗算した値を減算した値を用いて、残在庫の数を推定することにより、集計処理後に追加された未反映キャンペーンがある場合であっても、コンテンツの配信に関する情報を適切に推定することができる。
【0153】
また、実施形態に係る情報処理装置100において、推定部134は、重なり数推定に関する手法を用いて重複割合を推定する。
【0154】
このように、実施形態に係る情報処理装置100は、重なり数推定に関する手法を用いて重複割合を推定することにより、適切に重複割合を推定することができる。
【0155】
また、実施形態に係る情報処理装置100において、推定部134は、予定在庫の各リクエストが所定のハッシュ法により変換されたハッシュ値を用いて、重複割合を推定する。
【0156】
このように、実施形態に係る情報処理装置100は、予定在庫の各リクエストが所定のハッシュ法により変換されたハッシュ値を用いて、重複割合を推定することにより、適切に重複割合を推定することができる。
【0157】
また、実施形態に係る情報処理装置100は、提供部135を有する。提供部135は、残在庫の数を示す情報を提供する。
【0158】
このように、実施形態に係る情報処理装置100は、残在庫の数を示す情報を提供することにより、コンテンツの配信に関して推定した情報を提供することができる。
【0159】
〔7.ハードウェア構成〕
また、上述してきた実施形態に係る情報処理装置100等の情報処理装置は、例えば
図12に示すような構成のコンピュータ1000によって実現される。
図12は、情報処理装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM1300、HDD1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を有する。
【0160】
CPU1100は、ROM1300またはHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
【0161】
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス1500は、所定の通信網を介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータを所定の通信網を介して他の機器へ送信する。
【0162】
CPU1100は、入出力インターフェイス1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、生成したデータを入出力インターフェイス1600を介して出力装置へ出力する。
【0163】
メディアインターフェイス1700は、記録媒体1800に格納されたプログラムまたはデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【0164】
例えば、コンピュータ1000が実施形態に係る情報処理装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムまたはデータ(例えばモデル等)を実行することにより、制御部130の機能を実現する。コンピュータ1000のCPU1100は、これらのプログラムまたはデータを記録媒体1800から読み取って実行するが、他の例として、他の装置から所定の通信網を介してこれらのプログラムまたはデータを取得してもよい。
【0165】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【0166】
〔8.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【0167】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0168】
また、上述してきた実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【0169】
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、受付部は、受付手段や受付回路に読み替えることができる。
【符号の説明】
【0170】
1 情報処理システム
10 ユーザ端末
20 配信サーバ
30 広告主端末
100 情報処理装置
121 配信ログ情報記憶部
122 割当済ログ情報記憶部
123 キャンペーン情報記憶部
124 重複割合情報記憶部
131 受付部
132 取得部
133 集計部
134 推定部
135 提供部