背景
之前讲到过,品牌内容发现(content discovery for brands)这一问题被定性为基于内容的排序学习问题。
这种利用品牌的历史post来学习其与品牌的相关性从而对新的post进行排名的任务,主要难点有三:
(1)品牌之间的相似性问题。多个品牌可能使用相同的品牌联想内容,导致本品牌的post与竞争对手使用的post仅有细微差别,难以区分
(2)brand-post之间的稀疏性问题。事实上,几乎不会出现两个不同品牌都转发了某个帖子这样的情况。这也是与推荐场景所不同的地方(通常来讲,推荐任务中每个user可以和多个item有过交互,比如点赞、评论、浏览等),brand-post之间的稀疏交互使得两者的协同信息匮乏。
(3)每个brand的历史post具有多样性。每个brand可以拥有多重属性特征。下图给出的例子,
如每个post右上角标记的颜色属性那样,它们或多或少都在突显出所属品牌的某些属性特征。比如绿色折射的品牌属性为年轻、时髦等;红色折射高质量、别致等这样的品牌属性。事实上,不同的post被用于强化突出不同的品牌属性,同时也是针对了风格各异的受众。
贡献
上一篇提到了用于解决这一问题的个性化内容发现(PCD)框架。这篇文章在将PCD营销领域知识结合概率优化方法,把品牌属性整合进来,提出了新的PCD框架。
原PCD模型总览:
PCD框架结构(PCD加强版)
从图中可以看出,brand和post表示均在原来的基础上,分别通过attributes向量和concepts向量进行concate补充。即最终品牌表示为
b
=
B
r
a
n
d
R
L
(
b
)
=
c
a
t
(
b
x
,
b
a
)
b=BrandRL(b)=cat(b_x,b_a)
b=BrandRL(b)=cat(bx,ba)
b
x
b_x
bx同PCD中计算的通用品牌表示,
b
a
b_a
ba是属性特定的品牌向量(attributes-specific brand vector),通过下式计算得到
b
a
=
σ
(
∅
a
(
a
)
)
b_a = \sigma(\varnothing_a(\bold a))
ba=σ(∅a(a))
其中
σ
\sigma
σ是sigmoid函数,
∅
a
\varnothing_a
∅a是两层感知机。
同样地,对于每个post表示,有
p
=
c
a
t
(
p
x
,
p
c
)
p = cat(p_x,p_c)
p=cat(px,pc)
p
x
p_x
px同PCD中的通用post表示,
p
c
p_c
pc是属性特定的post向量表示。
p
c
=
σ
(
∅
c
(
c
)
)
p_c = \sigma(\varnothing_c(\bold c))
pc=σ(∅c(c))
c
\bold c
c是ImageNet中使用的1000个concepts。出发点是从concepts的分布中学习
p
c
p_c
pc,假设营销者使用联想概念来建立品牌属性。新增加的属性表示向量的约束,目的是让post
p
,
∀
p
∈
H
(
b
)
\bold p ,\forall p \in \bold H(b)
p,∀p∈H(b)的concepts向量
p
c
p_c
pc与品牌属性向量
b
a
b_a
ba距离要近一些。
不过这里,并没有直接使用如
p
c
p_c
pc和
b
a
b_a
ba之间的均方误差来度量是否离得“近”,原因:由于每个brand的历史post具有多样性,这类评价方法会对离群点(outliers)比较敏感,容易影响到最终精度。 文章使用的概率优化算法,使得post的concepts向量只需服从某种特定的分布即可。文章中给出的一个例子,假设BMW这个品牌在"Upper Class"这个属性上有较高分数,那么该品牌所有post在"Upper Class"属性上的分数值应该接近brand在该属性的分数。
那么,带有BMW logo的饮料罐在该属性上可能分数较低,应该被视作离群点。这样一来,文章相当于做出了一种假设,即对于每个品牌
b
b
b的属性
i
i
i,相应的有个分数
a
i
a_i
ai,该品牌的所有history posts在该属性上同样的有它们的分数
p
c
i
,
∀
p
∈
H
(
b
)
p_{ci},\forall p\in \bold H(b)
pci,∀p∈H(b)应该服从一个以
c
i
c_i
ci为均值,
Σ
b
,
i
\Sigma_{b,i}
Σb,i为标准差的一维正态分布,换句话说,此约束的目的在于使得
p
c
p_c
pc中属性特定的分数值
p
c
i
p_{ci}
pci要同品牌相应的属性分数值
a
i
a_i
ai接近。
经过加强的brand表示和post表示之间有个Margin Rank Loss,计算方式同标准PCD。追加的属性特征表示向量通过KL散度来约束量其分布差异。
如上图右侧,通过KL散度来对分布进行约束。使得绿色和黄色表示的不同品牌的post属性特征分布
Q
1
Q_1
Q1和
Q
2
Q_2
Q2向真实分布
P
1
P_1
P1和
P
2
P_2
P2靠拢。
优点:
通过建模分布而不是数据点本身,能够使得学习方法不受这种离群点情况的影响,只会拟合那些接近共识的post。
算法过程
KL散度对分布的约束
D
K
L
(
P
∣
∣
Q
)
=
∑
i
P
(
i
)
l
o
g
2
P
(
i
)
Q
(
i
)
D_{KL}(P||Q) =\sum_iP(i)log_2\dfrac{P(i)}{Q(i)}
DKL(P∣∣Q)=i∑P(i)log2Q(i)P(i)
最终的约束表达为
L
P
C
D
∗
=
L
P
C
D
+
α
∑
b
=
1
,
2...
,
B
∑
i
=
1
,
2
,
.
.
.
,
M
D
K
L
(
P
b
i
∣
∣
Q
b
i
+
β
∣
∣
θ
∣
∣
2
)
L_{PCD*} = L_{PCD} + \alpha\sum_{b=1,2...,B}\sum_{i=1,2,...,M}D_{KL}(P_{bi}||Q_{bi} + \beta ||\theta||_2)
LPCD∗=LPCD+αb=1,2...,B∑i=1,2,...,M∑DKL(Pbi∣∣Qbi+β∣∣θ∣∣2)
θ
\theta
θ是参数集合,
α
\alpha
α和
β
\beta
β是加权参数。
实验
部分ImageNet中concepts和Brand Attributes的对应关系。