(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0011】
以下、本発明の好適な実施形態につき説明する。
【0012】
<構成>
図1は本発明の一実施形態にかかるシステムの構成例を示す図である。
【0013】
図1において、システムは、ユーザが操作する複数の端末装置1と、端末装置1を使用するユーザに対して情報提供サービス等を提供する複数のサービスサーバ装置3と、端末装置1を使用するユーザに対してソーシャルネットワークサービスを提供する複数のSNS(Social Networking Service)サーバ装置4と、サービスサーバ装置3のサービス提供に際して広告等のコンテンツを配信するコンテンツ配信サーバ装置5とが、インターネット等のネットワーク2に接続されている。なお、コンテンツ配信サーバ装置5は、サービスサーバ装置3やSNSサーバ装置4と直接もしくは間接(オフラインによるデータ授受を含む)に接続される経路を有してもよい。
【0014】
端末装置1、サービスサーバ装置3、SNSサーバ装置4、コンテンツ配信サーバ装置5は、一般的なコンピュータ装置のハードウェア構成を有している。
【0015】
コンテンツ配信サーバ装置5は、主にソフトウェア(コンピュータプログラム)により実現される機能部として、閲覧ログ取得部501、実績CTRデータ計算部503、アフィニティデータ計算部505、シミラリティデータ計算部508、インタレストグラフデータ計算部510、ソーシャルグラフデータ取得部512、予測CTR計算部514、コンテンツ決定部516、コンテンツ配信部517を備えている。
【0016】
閲覧ログ取得部501は、サービスサーバ装置3からユーザの閲覧行動の履歴である閲覧ログをオンラインもしくはオフラインにより取得し、閲覧ログ502としてコンテンツ配信サーバ装置5内部の記憶領域に保持する機能を有している。
【0017】
図2は閲覧ログ502のデータ構造例を示す図であり、「タイムスタンプ」「ユーザID」「閲覧したコンテンツのコンテンツID」「閲覧したコンテンツに対応するカテゴリ」「レコメンドしたコンテンツのコンテンツID」等の項目を有している。なお、ユーザIDは、会員登録されたユーザID(その取得のためには事前のログインが必要)のほか、アクセスしてきた端末装置1を識別するID(bcookie、webcookieとも呼ばれる)等のユーザをある程度特定できるものであれば用いることができる。
【0018】
図1に戻り、実績CTRデータ計算部503は、閲覧ログ502からユーザのコンテンツ毎のクリック率をユーザIDとコンテンツIDに対応付けた実績CTRデータを算出し、実績CTRデータ504としてコンテンツ配信サーバ装置5内部の記憶領域に保持する機能を有している。なお、実績CTRデータ504をサービスサーバ装置3からオンラインもしくはオフラインにより取得できる場合には、実績CTRデータ計算部503を省略することができる。
【0019】
図3は実績CTRデータ504のデータ構造例を示す図であり、ユーザID毎に当該ユーザIDのユーザが閲覧したコンテンツのコンテンツID毎の実績CTR値が記録されている。実績CTRデータ504の算出の詳細については後述する。
【0020】
図1に戻り、アフィニティデータ計算部505は、閲覧ログ502から2つのコンテンツが同時期に閲覧される可能性を示すアフィニティデータを算出し、アフィニティデータ506としてコンテンツ配信サーバ装置5内部の記憶領域に保持する機能を有している。なお、アフィニティデータ506をサービスサーバ装置3からオンラインもしくはオフラインにより取得できる場合には、アフィニティデータ計算部505を省略することができる。
【0021】
図4はアフィニティデータ506のデータ構造例を示す図であり、コンテンツID毎に当該コンテンツIDのコンテンツと他のコンテンツ(同じコンテンツを含む)との関連度(連続して閲覧された程度を示す共起度等)が記録されている。アフィニティデータ506の算出の詳細については後述する。
【0022】
図1に戻り、シミラリティデータ計算部508は、コンテンツ配信サーバ装置5内部の記憶領域に保持されたコンテンツの種々の属性を示すコンテンツリスト507から、2つのコンテンツの類似性を示すシミラリティデータを算出し、シミラリティデータ509としてコンテンツ配信サーバ装置5内部の記憶領域に保持する機能を有している。なお、シミラリティデータ509をサービスサーバ装置3からオンラインもしくはオフラインにより取得できる場合には、コンテンツリスト507およびシミラリティデータ計算部508を省略することができる。
【0023】
図5はコンテンツリスト507のデータ構造例を示す図であり、コンテンツID毎に当該コンテンツIDのコンテンツのコンテンツ名、カテゴリ、画像等が記録されている。
【0024】
図6はシミラリティデータ509のデータ構造例を示す図であり、コンテンツID毎に当該コンテンツIDのコンテンツと他のコンテンツ(同じコンテンツを含む)との関連度(名称、カテゴリ、画像等の属性の類似度等)が記録されている。シミラリティデータ509の算出の詳細については後述する。
【0025】
図1に戻り、インタレストグラフデータ計算部510は、閲覧ログ502から2人のユーザが閲覧するコンテンツの共通性を示すインタレストグラフデータを算出し、インタレストグラフデータ511としてコンテンツ配信サーバ装置5内部の記憶領域に保持する機能を有している。なお、インタレストグラフデータ511をサービスサーバ装置3やSNSサーバ装置4からオンラインもしくはオフラインにより取得できる場合には、インタレストグラフデータ計算部510を省略することができる。
【0026】
図7はインタレストグラフデータ511のデータ構造例を示す図であり、ユーザID毎に当該ユーザIDのユーザと他のユーザ(同じユーザを含む)との関連度(閲覧するコンテンツのカテゴリの共通度等)が記録されている。インタレストグラフデータ511の算出の詳細については後述する。
【0027】
図1に戻り、ソーシャルグラフデータ取得部512は、SNSサーバ装置4から2人のユーザの交流性を示すインタレストグラフデータをオンラインもしくはオフラインにより取得し、ソーシャルグラフデータ513としてコンテンツ配信サーバ装置5内部の記憶領域に保持する機能を有している。
【0028】
図8はソーシャルグラフデータ513のデータ構造例を示す図であり、ユーザID毎に当該ユーザIDのユーザと他のユーザ(同じユーザを含む)との関連度が記録されている。
【0029】
図1に戻り、予測CTR計算部514は、実績CTRデータ504とアフィニティデータ506とシミラリティデータ509とインタレストグラフデータ511とソーシャルグラフデータ513とから、予測CTRデータを算出し、予測CTRデータ515としてコンテンツ配信サーバ装置5内部の記憶領域に保持する機能を有している。算出の詳細については後述する。
【0030】
図9は予測CTRデータ515のデータ構造例を示す図であり、ユーザID毎に当該ユーザIDのユーザが閲覧したコンテンツのコンテンツID毎の予測CTR値が記録されている。
【0031】
図1に戻り、コンテンツ決定部516は、サービスサーバ装置3からユーザIDを特定したコンテンツ配信要求があった場合に、予測CTRデータ515に基づいて、指定されたユーザIDのユーザによるクリック率が最も高いと予想されるコンテンツ(コンテンツID)を決定する機能を有している。処理の詳細については後述する。
【0032】
コンテンツ配信部517は、コンテンツ決定部516により決定されたコンテンツの取得用のURLもしくはコンテンツデータ自体をコンテンツデータベース518から取得し、要求元のサービスサーバ装置3に配信する機能を有している。サービスサーバ装置3がWebページにコンテンツの取得用のURLを埋め込む場合、当該Webページを端末装置1において表示する際に、ブラウザがコンテンツの取得用のURLにコンテンツデータの取得を要求する。
【0033】
図10はコンテンツデータベース518のデータ構造例を示す図であり、コンテンツID毎に当該コンテンツIDのコンテンツのURL、コンテンツデータ等が記録されている。
【0034】
<動作>
図11は上記の実施形態における予測CTRデータの生成に関する処理例を示すフローチャートである。
【0035】
図11において、処理を開始すると(ステップS101)、閲覧ログ取得部501は、サービスサーバ装置3から閲覧ログを取得し(ステップS102)、閲覧ログ502として保持する(ステップS103)。
【0036】
次いで、実績CTRデータ計算部503は、閲覧ログ502からCTRを集計して実績CTRデータを生成し(ステップS104)、実績CTRデータ504として保持する(ステップS105)。
図2の閲覧ログ502から
図3の実績CTRデータ504を算出する場合、ユーザIDと閲覧したコンテンツのコンテンツID毎に集計し、レコメンドした回数に対する閲覧した回数の比率を実績CTRとする。
【0037】
次いで、
図11に戻り、アフィニティデータ計算部505は、閲覧ログ502から対数オッズ等によりアフィニティデータを生成し(ステップS106)、アフィニティデータ506として保持する(ステップS107)。
【0038】
図12は対数オッズによるアフィニティデータ506の計算例を示す図である。
【0039】
図12(a)のベン図で示すXは全コンテンツの閲覧数、AはコンテンツAの閲覧数、BはコンテンツBの閲覧数、A∩BはコンテンツAに続いて同時期にコンテンツBが閲覧された場合の閲覧数である。ここで、次式
score =[log((A∩B)+α)+log(X+(A∩B)-A-B+β)-log(A-A∩B+β)-log(B-A∩B+α)]/log(10)
によりスコアscoreを計算し、それをコンテンツAに対するコンテンツBの関連度とすることで、アフィニティデータ506を生成することができる。なお、α、βは運用により決定する定数である。
【0040】
この場合、
図12(b)に示すように、コンテンツAの閲覧数とA∩Bの値がほぼ同じであっても、パターン#1のようにコンテンツBの閲覧数が多い場合よりも、パターン#2のようにコンテンツBの閲覧数が小さい場合の方がスコアscoreが大きくなり、関連度が高いものと評価される。
【0041】
一方、
図11に戻り、シミラリティデータ計算部508は、内部的に保持あるいは外部から取得したコンテンツリスト507からコサイン類似度等によりシミラリティデータを生成し(ステップS108)、シミラリティデータ509として保持する(ステップS109)。
図5のコンテンツリスト507から
図6のシミラリティデータ509を算出する場合、2つのコンテンツIDのコンテンツのコンテンツ名、カテゴリ、画像等の相互間の類似度(コンテンツ名やカテゴリであれば文字列の一致度、カテゴリであれば親子関係・兄弟関係、画像であれば画像内容の一致度等)をコサイン類似度等により計算する。
【0042】
一方、
図11に戻り、インタレストグラフデータ計算部510は、閲覧ログ502からユーザ間で共通のカテゴリを閲覧した数等からインタレストグラフデータを生成し(ステップS110)、インタレストグラフデータ511として保持する(ステップS111)。
図2の閲覧ログ502から
図7のインタレストグラフデータ511を算出する場合、例えば、所定数(例えば、8個)以上の共通するカテゴリの閲覧履歴を持つ2人のユーザにつき、関連度を「1」とする(デフォルトは「0」)。また、「1」「0」だけの値とせずに、共通するカテゴリの閲覧履歴の数に応じた数値としてもよい。
【0043】
一方、
図11に戻り、ソーシャルグラフデータ取得部512は、SNSサーバ装置4からソーシャルグラフデータを取得し(ステップS112)、ソーシャルグラフデータ513として保持する(ステップS113)。
【0044】
次いで、予測CTR計算部514は、実績CTRデータ504とアフィニティデータ506とシミラリティデータ509とインタレストグラフデータ511とソーシャルグラフデータ513とを入力し、実績CTRデータ504についてはそのままユーザ×コンテンツ行列データとして扱う。
【0045】
アフィニティデータ506とシミラリティデータ509については、両者から一方を選択するか両者を平均化する等によりコンテンツ×コンテンツ行列データ(コンテンツ間の関連度を2軸のコンテンツIDに対応付けた行列データ)を生成する(ステップS114)。インタレストグラフデータ511とソーシャルグラフデータ513については、両者から一方を選択するか両者を平均化する等によりユーザ×ユーザ行列データ(ユーザ間の関連度を2軸のユーザIDに対応付けた行列データ)を生成する(ステップS115)。
【0046】
次いで、予測CTR計算部514は、実績CTRデータのユーザ×コンテンツ行列データと、コンテンツ×コンテンツ行列データと、ユーザ×ユーザ行列データとについて、予測値の行列をそれぞれの行列を分解した行列の積で表わし、実績値と予測値の差異を示すロス関数の値(正則化項も加算)が最小になるよう収束演算を行ない、収束した結果から予測CTRデータ(ユーザ×コンテンツ行列データ)を生成し(ステップS116)、予測CTRデータ515として保持し(ステップS117)、処理を終了する(ステップS118)。
【0047】
図13は予測CTRデータ515の生成の説明図である。
【0048】
図13において、実績CTRデータ504に対応するユーザ×コンテンツ行列データの要素をy
ij、アフィニティデータ506とシミラリティデータ509に対応するコンテンツ×コンテンツ行列データの要素をs
ii'、インタレストグラフデータ511とソーシャルグラフデータ513に対応するユーザ×ユーザ行列データの要素をa
jj'で示している。
【0049】
また、予測CTRデータ515に対応するユーザ×コンテンツ行列データの要素をf
ij、予測値のコンテンツ×コンテンツ行列データの要素をh
ii'、予測値のユーザ×ユーザ行列データの要素をg
jj'で示しており、それぞれを2つの行列の積として表わしている。
【0050】
これらより、
図13の下に示す式の値を計算し、式の値が最小値となるよう、予測値側の行列データに収束演算(行列要素の値を少しずつ変化させ、式の値に変化がなくなった場合に収束したと判断)を行ない、ユーザ×コンテンツ行列データに対応する予測CTRデータ515を取得する。
【0051】
なお、λは運用において決定する定数である。また、l(エル)はロス関数であり、
図14(a)〜(e)に示すような関数を採用することができる。また、正則化項は、分解した行列のノルム(長さ)に依存する値となる。
【0052】
次に、
図15は上記の実施形態におけるコンテンツ配信時の処理例を示すフローチャートである。
【0053】
図15において、コンテンツ配信サーバ装置5がサービスサーバ装置3からユーザIDを伴ったコンテンツ配信要求を受信することで処理を開始する(ステップS201)。
【0054】
コンテンツ配信サーバ装置5のコンテンツ決定部516は、予測CTRデータ515から該当するユーザIDのレコードを参照し、CTR実績値の最も高いコンテンツIDを取得する(ステップS202)。
【0055】
次いで、コンテンツ配信部517は、コンテンツ決定部516が決定したコンテンツIDに基づき、コンテンツデータベース518から該当するコンテンツIDのURLもしくはコンテンツデータを取得し、要求元のサービスサーバ装置3に応答し(ステップS203)、処理を終了する(ステップS204)。
【0056】
URLもしくはコンテンツデータを受け取ったサービスサーバ装置3は、サービス提供のWeb画面の所定位置にURLもしくはコンテンツデータを埋め込み、端末装置1にページデータを提供する。
【0057】
Web画面に埋め込まれた広告等のコンテンツは、端末装置1のユーザが興味を示してクリックし易いと予測されるものであるため、高い確率での閲覧(クリック)が期待される。
【0058】
<総括>
以上説明したように、本実施形態によれば、ユーザのコンテンツ毎のクリック実績とともに、コンテンツ同士の関連度とユーザ同士の関連度といった、複数の指標を同時に考慮することで、配信するコンテンツのレコメンド精度を向上させることができる。
【0059】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。