注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Koala++'s blog

计算广告学 RTB

 
 
 

日志

 
 

广告展示中的用户选择模型(Retrieval Models for Audience Selection in Display Advertising译文)  

2012-03-06 08:30:32|  分类: 搜索引擎 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

这篇论文在工程方面有一定指导作用,但是理论性太弱,在实现上应该是属于比较容易的,我个人认为在SNS广告系统中应该是值得尝试的,也不用写多少代码,并且每步都还是可以验证的。

Latex源码,粗校一次。

\def\CTeXPreproc{Created by ctex v0.2.9, don't edit!}\documentclass[10pt,a4paper]{article}
\usepackage{CJK}
\usepackage{amsmath}
\usepackage{amssymb,amsfonts}
\usepackage{indentfirst}
\setlength{\parindent}{0.7cm}
\usepackage{fancyhdr}
\usepackage{a4wide}
\usepackage{calc}
\usepackage[dvips]{graphicx}
\usepackage{picins}
\usepackage{subfigure}
\usepackage{comment}
\usepackage{algorithm}
\usepackage{algorithmic}
\usepackage{setspace}
\usepackage{multirow}
\usepackage{xcolor}
\usepackage{mathrsfs}

%\numberwithin{equation}{section}
\setlength{\textwidth}{\paperwidth-2in}
\setlength{\textheight}{\paperheight-2in}
\newlength \mymargin
\setlength{\mymargin}{(\paperwidth-\textwidth)/2}
\setlength{\oddsidemargin}{\mymargin-1in}
\setlength{\evensidemargin}{\mymargin-1in}
\setlength{\topmargin}{-0.5in}
\newcommand{\sanhao}{\fontsize{16pt}{24pt}\selectfont}
\renewcommand{\baselinestretch}{2}
\thispagestyle{empty} %\pagestyle{myheadings}
\usepackage{calc}

\begin{document}
\begin{CJK}{GBK}{song}
\CJKtilde \pagestyle{fancy}
 \pagestyle{plain}
\renewcommand{\baselinestretch}{1}
\begin{center}
{\huge{Retrieval Models for Audience Selection in Display Advertising}}%\\\vspace{0.5cm} \hspace{0.5cm}

{\large 译者:Koala++/屈伟}

\end{center}

\renewcommand{\baselinestretch}{2}

\section{Introduction}
"我花在广告上的钱一半都浪费了,问题是我不知道是哪一半浪费了。" -- John Wanamaker

广告展示是指在页面原有内容上放置一些图片广告。在广告展示中,
定向通常是通过用户的网上行为将用户划分到预定义的标准类目下(比如:汽车,健康)。
但是这种这种预定义的类目可能太广,或是难以表达对广告主所得要的广告受众划分。
这种方式的缺点引发了以广告主为中心(advertiser-centric)的对用户进行划分的研究。
广告主常用的一种方式是:提供一个现有客户的种子集合(seed set),即在广告活动中成功转化的用户,用这个集合来找出与这个种子集合相似(similar)的潜在客户。
这个问题被称为audience selection。

有多种找出与种子集合相似用户的广告的方法。其一可能的方法是K-Nearest Neighbors(KNN)模型,
但是KNN在高维空间中很低效。另一可能的方法是用协同过滤(Collaborative Filtering)技术,
但是协同过滤需要足够多的用户-广告历史记录。而在我们的场景中,我们只有少量的先前用户与广告的交互的记录,
以及更少的购买或是转化记录。且在协同过滤问题中,用户的兴趣通常是固定的(比如,倾向于看动作电影),
而在线广告的用户的兴趣是随时间改变的。

本文中我们将audience selection问题视为一个检索问题,我们用用户全部的网上行为建立细致的用户画像,
并受语言模型和空间向量模型的启发研究了两种检索模型。大致方法是:通过对于广告主是正例用户的种子集合,
我们构造一个查询(query),在所有用户的索引中搜索这个查询。这个方法在搜索大量用户时可以有效地选择出潜在的客户。

我们的搜索与传统的检索有几点不同,第一,传统的索引系统索引的文档通常只有一个主题(或是几个相关的主题)。
而用户的网上行为是通过大量的通常不相关的行为组成的,而且,我们观察到用户的行为(比如,Web搜索,网页浏览,广告点击)
都是混杂不清的并有着大量的信息,所以对用户进行一个唯一的画像是一个重要的研究任务。
此外,用户的兴趣是随时间改变的,他们的兴趣变化可能是个人的(比如,正在计划一次旅行),或是外部的(比如:一部热映电影)因素而引起的。
最后,与传统信息检索相比,传统检索主要是返回最相关的文档,而我们是关注如何最大化转化率,
即有多少用户买了做广告的产品或是服务。

\section{Methodology}

给定一个在以往广告活动中转化的用户种子集合$U=\{s_1, s_2, ..., s_3\}$,我们的目标是将所有用户按他们转化的潜力排序。
这个问题也是在信息检索范畴之内的,我们设计两种索引用户的方法,第一,我们考虑语言模型(Language Modeling LM),
它是通过对文档集合进行最大似然估计的产生模型(generative model)。我们将用户表示成他们行为的一个序列。
这样我们就可以通过一个行为序列来估计一个用户的一些行为概率。第二种方法是基于空间向量模型,
它将文档和查询映射到特征空间中。

\subsection{User representation}

我们将一个用户表示为行为的集合$u=\{e_1, e_2 ... e_n\}$,
这些行为即是他在一段时间内的网上行为,每个行为都是一个三元组$e_i=<type_i, int_i, c_i>$,$type_i$表示行为类型(type),
$int_i$是时间间隔(interval),$c_i$是行为内容(content)。

一个行为的类型表示行为的本质,比如网页浏览,广告点击,等等。一个行为发生必然发生在一个明确的时间,
并且事件可以被划分到一个时间间隔里,时间间隔是可变的,区间从一天到一个月。时间间隔是不相互覆盖的,
并且合起来可以覆盖用户行为的全部时间。不同的时间间隔有不同的权重,这样可以降低一些老的行为的影响。
最后行为内容是包含用户看到的信息,通常是文本或是数字形式的。比如,被查看的广告ID,被搜索的文本。

研究的一个重要问题就是如何将不同的行为整合(比如,两周前用户用的一个查询词和前一分钟点击的广告)到一个模型中。
每个行为都可以提供一个有价值的信号,但行为的混杂性和大量的用户行为,如果将它们统一表达会使得表现很粗糙。
所以,我们将用户用一个模型两维数组来表达,我们对于每个时间间隔和行为类型组合建立一个模型(语言模型或是向量空间模型)。
比如,如果我们的时间间隔是一周,那么每周就会对一个用户的浏览建立一个模型,也会对他每周查询建立一个模型。
这个两维数组中的每个元素都包含一个模型,这个模型以一个时期内所有相同类型行为的内容建立的。
我们通过学习权重来建立一个单一的用户模型,作为两维模型中的不同元素。

\section{Language modeling for audience selection}

语言模型在文本信息检索中被成功地用来表达文档和查询词。语言模型因为它的高效,清晰的表达和概率的表达而受到欢迎。

\textbf{\large{User Model}}

语言模型是产生模型,在这个模型中用户被赋了产生的概率。这个概率是通过已观察到的用户行为序列估计出来的。
如果假设事件之间是独立的,那么就可以简化这个问题,将其转换成单个行为的乘积。
现在,我们假设模型服从多项式分布$p(u)=p(e_1, e_2 ... e_n)=p(e_1)p(e_2|e_1)p(e_3|e_2 e_1)...p(e_n|e_1 e_2 ... e_{n-1})\sim\prod_{i\in1..n}p(e_i)$。

一种降低文档检索模型中独立性假设的方法是定义综合特征或是N-Grams。类似的,
我们这里定义一些基于常见的行为的综合行为。比如,在搜索一个关键词后,浏览前几个搜索结果。

我们在模型中还考虑了行为的结构,行为的时间间隔,类型,内容:
$p(u)=\prod_{i\in1...n}p(e_i)\sim\prod_{i\in1...n}\{p(int_i)\cdot p(type_i|int_i)\cdot p(c_i|int_i, type_i)$。

每个行为的概率由三个元素估计:(1)在给定时间间隔观察到一个行为的概率是$p(int_i)$,
(2)在指定时间间隔看到一个指定类型的概率是$p(type_i|int_i)$,
(3)在指定时间和类型下看到一个特定行为内容的概率是$p(c_i|int_i, type_i)$。

这里我们通过假设用户的行为是固定频率的来简化这个模型。即$p(int_i)$是与时间间隔的长度成比例的,
且$\sum_{int\in T}p(int)=1$,其中$T$是整个历史时间。
可以更一步假设行为类型不依赖于时间间隔$p(type|int)\sim p(type)$,
即,网页浏览,查询,和其它的行为比例都是固定的。尽管这个假设可能通常不成立,
但我们的时间间隔通常很长(几天),所以我们的假设在实践中不会影响太大。
(译注:这一段是想消除三个因素中的前两个,因为$p(int_i)$和$p(type_i|int_i)$可以认为是常数了)

要计算$p(c_i|int_i, type_i)$,我们用标准的建模技术来产生行为的内容。
一个行为的文本内容的概率是基于单个词的概率:$p(c_i|int_i, type_i)=\prod_{w\in c_i}p(w|int_i, type_i)$,
其中$w$表示行为内容中的一个词,并且$\sum_w p(w|int_i, type_i)=1$。
对于一个给定时间间隔和类型组合,基于这个组合下的所有行为,可以用最大似然估计出这个词的概率(译注:简单的统计不就行了吗?至于最大似然估计吗?)。
我们用Laplace平滑。

\textbf{\large{Query construction}}

Audience selection的查询(query)与标准的检索任务的查询非常不同。在标准的文档检索中,
查询通常是一段文本。在audience selection任务中查询是通过一个种子用户集合而创建的,
查询会包含可能比单个用户多的行为。为得到一个充分的查询表现方式,我们用了相关反馈方法。
即查询是通过合并几个文档(在我们的例子中是用户),概念上,我们把种子用户当成是广告主的相关反馈。
查询是通过找一个与用户种子集合中的用户的模型近,而又与其它用户远的语言模型$\theta^q$(collection background模型):
$p(w|\theta^q)=exp(\frac{1}{1-\mu}\frac{1}{n} \sum_{i=1}^n log p(w|\theta^i)-\frac{1}{1-\mu}log p(w|C))$,
其中$\theta^i$是种子集合中第$i$个用户的模型,$C$是所有其它用户的模型,$\mu$是通过验证集合学习得到的。
通过上面公式的被减数,我们是想强调查询中的词或行为将正例用户与其它用户分开,
注意这个方法与Rocchio方法类似。

\textbf{\large{Scoring functions}}

我们用两种语言打分模型,第一,如在标准的语言模型中,我们基于查询相似度对用户打分,
查询的概率是用用户的语言模型产生的:$p(q|u)\sim\prod_{w\in q}p(w|\theta^u)$,
其中$\theta^u$是用户的语言模型。为计算$\theta^u$,我们分别分析对于某个时间的某个行为类型的行为内容。
更准确地讲我们维持一个模型数组,$\theta_{int,type}^u$。不同时间间隔和不同和行为类型组合会得到许多模型,
用户模型是结合这些模型得到的:$p(w|\theta^u)=\sum_{int,type}\lambda_{int}\cdot\lambda_{type}\cdot p(w|\theta^u_{int,type})$。
为了让这个模型更简单,我们选择减少参数的数量,
对于每个时间间隔和行为类型(分别是$\lambda_{int}$和$\lambda_{type}$),我们从验证集合中学习一个参数。
图1展示了查询模型和用户模型是如何比较的,这两个模型如图所示都是一个两维的语言模型数组。

在第2种打分方式下,我们用模型比较方法,我们这次用KL-Divergence来比较查询模型和用户模型:
$KL(\theta^u, \theta^q)=\sum_{w\in u \cup q}p(w|\theta^q)\cdot log\frac{p(w|\theta^q)}{p(w|\theta^u)}$。
注意当模型不需要平滑时对数似然是KL-divergence的一种特殊情况,但在我们的情况下两种方法代表了不同的测量方法。
我们如第1种方法一样,还是比较模型数组,如图1所示。

\section{Vector space models for audience selection}
在我们的框架中,用户是以他的一系列行为来表示的,每个行为是一个三元组,时间间隔,类型,内容。
所以,我们首先将所有相同时间间隔的相同类型的所有行为内容合起来形成一个元文档。
我们就可以将这个元文档用bag-of-word来表示成一个TFIDF向量。
每个用户的画像都由用这种向量加权表示,权重是在一个验证集合上学习到的:
$\sum_{int,type}\varphi_{int}\cdot\varphi_{type}\cdot VSM_{int,type}$.
同样为了让这个模型更简单,我们减少参数的数量,对每个时间间隔和每种类型($\varphi_{int}$和$\varphi_{type}$)学习一个参数。
为了计算$VSM_{int,type}$,我们用几种TF和IDF公式实验,并用点积作为比较查询和用户向量的距离衡量公式。

\textbf{\large{Query construction using the Rocchio algorithm}}

我们用Rocchio方法来综合伪相关反馈来组成我们的向量空间模型。
作为第一个近似,我们从两个集合构造查询,第一个是正例种子集合$U$,即广告活动中转化的用户,
和负例$V'$,即其它没有转化的用户:$\vec{q}=\rho\cdot\frac{1}{|U|}\cdot\sum_{\vec{u}\in U}\vec{u}-\tau\cdot\frac{1}{|V'|}\cdot\sum_{\vec{u'}\in V'\in\bar{U}}\vec{u'}$。

因为通常转换率都很低,转化的用户量很小,这就会导致在大量特征空间中数据极稀疏。
我们还使用了另外一个伪正例用户集合$U^{click}$,是那种点击了广告但没有转化的用户。
这个方法背后的假设是那些点击了广告的用户发现广告至少在某种程度上是相关的,
这些用户也许在以后会转化:$\vec{q}=\rho\cdot\frac{1}{|U|}\cdot\sum_{\vec{u}\in U}\vec{u} +
\sigma\cdot\frac{1}{|U^{click}|}\cdot\sum_{\vec{v'}\in U^{click}}\vec{u'} -
\tau\cdot\frac{1}{|V''|}\cdot\sum_{\vec{u''}\in V''\subset\bar{U\cup U^{click}}}\vec{u''}$,
其中$V''\subset\bar{U\cup U^{click}}$。

在两个公式中,参数$\rho$,$\sigma$,$\tau$都由验证集合估计得到。


\end{CJK}
\end{document}

  评论这张
 
阅读(1879)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017