基于内容的推荐系统
- 协同过滤推荐系统仅仅使用了评分之间的关联,这些方法没有使用物品的属性
- 基于内容的推荐系统以属性来描述物品,使用这些内容属性来进行推荐,这种方法很适用于新物品推荐时
- 基于内容的推荐系统,将物品与用户之前所喜欢的物品做匹配,不使用别的用户的评分信息
- 属性来源:
- 物品描述,如文字、图片等
- 用户画像,从用户对于各种物品的反馈生成
文本预处理
- 去停止词 a, an, etc.
- 词干提取 hope hoping
- 短语提取 hot dog 使用人为定义的字典
物品文档表示
在本文预处理之后,关键词被转化为词向量,对于文档的表示可使用词袋模型,并使用tf-idf(tf*idf)
tf=nwordn(1)
(1)
t
f
=
n
w
o
r
d
n
idf=logndocncontain_word(2)
(2)
i
d
f
=
l
o
g
n
d
o
c
n
c
o
n
t
a
i
n
_
w
o
r
d
注意,在物品的描述来源于不那么可信的渠道时,每一个单词的权值需要适当的降低,可以使用一些函数来降低权值
f(xi)=xi−−√(3)
(3)
f
(
x
i
)
=
x
i
f(xi)=log(xi)(4)
(4)
f
(
x
i
)
=
l
o
g
(
x
i
)
tf-idf模型变为:
f(xi)∗idf(xi)(5)
(5)
f
(
x
i
)
∗
i
d
f
(
x
i
)
特征选择与加权
特征选择
特征选择与加权的意义在于在文档的向量表示中只保留最具有信息的那部分单词。充满噪音的单词往往会带来过拟合,当可供训练的文档数过少时,模型很容易过拟合,减少特征空间能够缓解这种过拟合。(选择300-500个词左右)
- Gini 指数
令t为评分的数目,对于单词w, pi(w) p i ( w ) 为出现该单词时,评分为i的概率
Gini=1−∑i=1tpi(w)2(6) (6) G i n i = 1 − ∑ i = 1 t p i ( w ) 2
Gini系数越小,它越重要 - 熵
Entropy=−∑i=1tpi(w)log(pi(w))(7) (7) E n t r o p y = − ∑ i = 1 t p i ( w ) l o g ( p i ( w ) )
熵系数越小,它越重要 -
X2
X
2
系数
对于单词w,他出现的概率为0.2,用户购买物品的概率为0.1,若二者无关,总共有1000个记录,则:
单词w出现 | 单词w不出现 | |
---|---|---|
用户购买了物品 | 1000*0.1*0.2=20 | 1000*0.1*0.89=80 |
用户没有购买物品 | 1000*0.9*0.2=180 | 1000*0.9*0.8=720 |
上述假设单词与用户购买物品无关,这样的单词其实对于我们的学习没有帮助,而现实中,二者可能是高度相关的
单词w出现 | 单词w不出现 | |
---|---|---|
用户购买了物品 | O1=60 O 1 = 60 | O1=40 O 1 = 40 |
用户没有购买物品 | O1=140 O 1 = 140 | O1=760 O 1 = 760 |
x2
x
2
统计衡量了,观测值与期望值的偏离
x2=∑i=1p(Oi−Ei)2Ei(8)
(8)
x
2
=
∑
i
=
1
p
(
O
i
−
E
i
)
2
E
i
x2 x 2 值越大,单词与物品相关程度越高
+ Normalized deviation
上述指标忽略了评分之间的相对次序,对于粗粒度的哦名分来说,Normalized deviation是一种合适的指标
μ+(w) μ + ( w ) 为包含单词w的评分均值, μ−(w) μ − ( w ) 为不包含w的评分均值, σ2 σ 2 为所有评分的方差
Dev(w)=|μ+(w)−μ−(w)|σ(9)
(9)
D
e
v
(
w
)
=
|
μ
+
(
w
)
−
μ
−
(
w
)
|
σ
Dev(w) w越重要
特征加权
特征加权可以看成一种特征选择的一种软化版本
最简单的加权方式是基于特征选择的函数进行修改,如:
g(w)=a−Gini(w)(10)
(10)
g
(
w
)
=
a
−
G
i
n
i
(
w
)
w=f(w)∗g(w)(11)
(11)
w
=
f
(
w
)
∗
g
(
w
)
通过调整a的值,可以控制加权过程的的敏感度,a越小越敏感
用户画像学习
这部分的学习过程其实就是对于物品文档表示后的向量进行文本分类或文本回归,为每一个用户建立一个分类器或者回归器,具体分类器的使用不再赘述。
协同过滤与基于内容的推荐系统对比
基于内容的协推荐系统的优点:
- 解决新物品问题,而CF无法解决完全全新的物品
- 可解释性,在特征的维度上
- 可以使用已有的文本分类技术,用户分类器的模型没那么大,引擎开销小
基于内容的协推荐系统的优点:
- 过度特化缺乏惊喜度:
基于内容的推荐系统试图寻找与用户已评分物品类似的物品,而推荐系统的惊喜度得不到满足,只能推荐类似物品
基于协同过滤的推荐系统使用peer group来推荐,能带来一定的惊喜度 - 新用户的冷启动无法解决:
基于内容的推荐系统需要足够的评分防治过拟合
基于内容的推荐系统一般不单独使用与其他的模型一起使用,构成混合推荐系统