『 论文阅读』A Multi-View Deep Learning Approach for Cross Domain User Modeling in Recommendation Systems

Abstract

MULTI-VIEW-DNN联合了多个域做的丰富特征,使用multi-view DNN模型构建推荐,包括app、新闻、电影和TV,相比于最好的算法,老用户提升49%,新用户提升110%。并且可以轻松的涵盖大量用户,解决冷启动问题。

主要做user embedding的过程,通多用户在多个域的行为作为一个ivew,来表征用户,参与用户embedding过程。

Contribution

  1. 利用丰富的用户特征,建立多用途的用户推荐系统。
  2. 针对基于内容的推荐,提出了一种深度学习方法。并学习不同的技术扩展推荐系统。
  3. 结合不同领域的数据,提出了Multi-View DNN模型建立推荐系统。
  4. multi-view DNN模型解决用户冷启动问题。
  5. 基于四个真实的大规模数据集,通过严格的实验证明所提出的推荐系统的有效性。

Data Set

Type DataSet UserCnt FeatureSize Joint Users
User view Search 20M 3.5M /
Item View News Apps Movie/TV 5M 1M 60K 100K 50K 50K 1.5M 210K 60K

DSSM FOR USER MODELING IN RECOMMENDATION SYSTEMS

deep structured semantic model参考Learning deep structured semantic models for web search using clickthrough data

结构图:

  1. 把条目映射成低维向量。
  2. 计算查询和文档的cosine相似度。

其中:

l 1 = W 1 x

l i = f ( W i l i 1 + b i ) , i = 2 , . . . , N 1

y = f ( W N l N 1 + b N )

word hashing

通过word hashing层将word映射为稠密向量。以good为例。

  1. 添加首尾标记: #good#
  2. 拆分word为n-grams: #go, goo, ood, od#
  3. 通过多个小的n-grams的向量表示word。

这种方法即使有新词出现,也不会出现问题。

DSSM训练

对于一次搜索,如果点击了一个文档,认为他们是相关的。对于搜索查询集,DSSM去最大化被点击文档 D + 条件似然概率**。

P ( D + | Q ) = e x p ( γ R ( Q , D + ) ) D D e x p ( γ R ( Q , D ) )

其中D是全集, γ 是平滑因子。损失函数自然就是:

L ( W , b ) = l o g ( Q , D + ) P ( D + | Q )

MULTI-VIEW DEEP NEURAL NETWORK

对于User view,计算User View和Item View之间的 P ( I V i | U V ) ,然后最小化:

L ( W , b ) = l o g ( U V , I V + ) P ( I V i + | U V )

其中P()定义为:

P ( I V + | U V ) = e x p ( γ c o s ( U V , I V + ) ) I V I V e x p ( γ c o s ( U V , I V ) )

Data input

对于第j行输入数据,它的主域 X u , j 和一个激活View X a , j ,其余的View输入 X i : i a 都为0向量。

User features

  • search queries:规范化,然后处理成unigram格式。
  • clicked URLs:只保留主域名,如www.linkdin.com

News features

news article clicks:

  1. title( tri-gram)
  2. top-level category(binary features)
  3. named entities

App features

App download histories:

  1. App tile( tri-gram)
  2. category(binary)

Movie/TV feature

movie/TV view history

  1. title( tri-gram)
  2. description( tri-gram)
  3. genre(binary)

训练过程

img

训练目标:

原文公式:

p = a r g max W u , W 1 , . . . W v j = 1 N e x p ( γ a c o s ( Y u , Y a , j ) ) X R d a e x p ( γ a c o s ( Y u , f a ( X , W a ) )

训练目标:

L ( W u , W 1 , . . . W v ) = j = 1 N e x p ( γ a c o s ( Y u , Y a , j ) ) X R d a e x p ( γ a c o s ( Y u , f a ( X , W a ) )

最小化L()为目标得到 W u , W 1 , . . . W v ,即网络的参数矩阵。

MV-DNN优势

  1. 和DSSM相比,其query和doc的feature是一样长的维度,使用同样的预处理,限制了feature。而跨域信息feature往往不同,而且n-gram方法并不适用,所以MV-DNN结合其类别特征(如电影和app类别,地理位置等)。
  2. MV-DNN可以结合多个跨域信息,实现对user embedding。pair-wise training过程,user-item pairs。

降维方法

top features

对于user features,选取top-k最频繁的features。并通过TF-IDF过滤掉最常用的特征。

k-means

k-mean会指定k为类簇的个数,目标是最小化所有类簇点与中心点的距离只和。公式表达:

a r g min C 1 , C 2 , C k i = 1 N min C j { C 1 , C 2 , C k } d i s t a n c e ( X i , C i )

其中 X i 是数据点, C j 是每个类簇的中心。通过K-means对相似的特征群分组为同一个cluster并生成新的特征,共生产k个新的特征。

应用:

对于输入数据矩阵X,shape=[size=n, dimension=k],划分为 X = [ f 1 , f 2 , f k ] ,然后将每个 f k 归一化,对 [ f 1 , f 2 , f k ] 使用k-means聚类, f i 之间计算距离用cos相似度。然后就可以将特征降维到k维,对于每个新的特征向量 Y i , 1 i n , 1 C l s ( a ) k 有:

Y i ( j ) = a : X i ( a ) > 0 & a m p ; a m p ; a m p ; a m p ; a m p ; a m p ; a m p ; a m p ; a m p ; C l s ( a ) = j f i ( a )

比如原始维度是3.5M,设置k=10k,那么将为之后维度就是10k。

Local sensitive Hashing

通过一个随机的矩阵将数据映射到低纬向量空间上,并且保持原始空间上的pairwis cos距离在新的空间上仍然获得保留。

原始维度d,降维到k,那么映射矩阵 A R d × k ,即A包含了k个映射,每个映射 A i 都将X映射为 Y i ,输出为 Y R k 。计算 Y i 的公式为:

Y i = { 1 i f A i X 0 0 e l s e

计算 X 1 , X 2 的cos相似度近似表示为: c o s ( H ( Y 1 , Y 2 ) k π ) ,其中 H ( Y 1 , Y 2 ) 表示 汉明距离,论文选取的k=10000.

Reduce the Number of Training Examples

每个用户在每个域都有大量的日志数据,将每个用户在每个域只选取一个user-item对,具体为用户特征-用户在此域喜欢的所有item的平均分数。

CONCLUSION AND FUTURE WORK

本文提出了一种通用的结合丰富用户特征和item特征的推荐系统框架,通过结合多个域的丰富信息,是的推荐系统的质量极大提高,并且此方法通过降维的方法可扩展到大的数据集,同时对于老用户和新用户都适用推荐,在几个公开的大数据集上的表现都明显优于其他方法。

此框架可以应用于各个推荐系统,未来还需要:
1. 纳入更多的用户特征。
2. 增加DNN扩展性,以便不在使用特征降维的方法。
3. 加入更多的域并深入分析它的表现。
4. 如何将协同过滤方法和本文的基于内容的方法结合。

代码

DSSM & Multi-view DSSM代码 https://github.com/InsaneLife/dssm
Multi-view DSSM实现,参考GitHub:multi_view_dssm_v3
CSDN原文:http://blog.csdn.net/shine19930820/article/details/78810984

Model DSSM on Tensorflow

代码: https://github.com/liaha/dssm

keras实现

Reference

猜你喜欢

转载自blog.csdn.net/shine19930820/article/details/78810984