登录
注册
原创博客
(current)
算法案例
(current)
期刊会议
学术世界
领域期刊
SCI/SCIE/SSCI/EI简介
期刊列表
会议列表
所有期刊分区
学术期刊信息检索
JCR期刊分区查询
CiteScore期刊分区查询
中科院期刊分区查询
领域期刊分区
管理 - UTD24期刊列表
管理 - AJG(ABS)期刊星级查询
管理 - FMS推荐期刊列表
计算机 - CCF推荐期刊会议列表
高校期刊分区
南大核心(CSSCI)
合工大小核心
合工大大核心
AI资源仓库
AI论文快讯
AI预训练模型
AI数据集
AI开源工具
数据推荐
专利市场
专利列表
专利检索
科技大数据评估系统
网址导航
我的网址导航
程序员必备网站
Author Topic Model-Based Collaborative Filtering for Personalized POI Recommendations
Vanessa He
IEEE Transactions on Multimedia
2015-09
1290
2017/04/15 18:28:52
国内外很多旅游类网站都会提供一些旅游地点的攻略、用户上传的照片等。然而从大量原材料中获得有用的信息是十分耗时的,这便导致了个性化的旅行推荐问题收到了越来越多的关注。现有的推荐方法中,协同过滤(Collaborative filtering,CF)虽然很有效,却没法解决数据稀疏性问题和冷启动问题,主题模型(topic model method,TM)对预先定好的种类信息要求较高,所以也不能直接利用。为了解决这些问题,于是本文提出了一种基于作者主题模型的协同过滤方法(an author topic model-based collaborative filtering method,ATCF),以此实现个性化的POI推荐。与现有的基于CF或TM的POIs推荐方法相比,本文提出的ATCF方法通过作者主题模型从文本描述中学习用户偏好,这些文本含有被标注了地理信息的图片,另外,用户相似性是通过学习作者主题模型得到的,而非利用地点共现,这样也解决了冷启动问题。 本文研究贡献: 1、提出ATCF方法,因为标签比GPS轨迹包含了更多关于用户偏好的信息,而方便易得; 2、ATCF方法集中解决传统基于位置协同过滤方法(location-based collaborative filtering,LCF)的稀疏性问题; 3、通过作者主题模型从标签图片中抽取出主题类别; 4、提出一种由粗到精的方法来确定城市级POIs,并匹配用户旅行历史,首先,粗略地通过地理位置标签为城市范围图片进行聚类,然后,精细地利用可视化特征从聚类中确定POIs。 ### **一、由粗到精的POIs和用户旅行历史挖掘(COARSE-TO-FINE POIs AND USER HISTORY MINING)** 数据来源于Flickr.com图片分享网站,共收集了7百万的社交图片数据,其中,79.19%图片被标注了标签,31.94%的图片有地理位置标签,28.34%的图片既有标签也有地理位置标签。但是,用户分享的图片可能存在着噪音,比如说,有的图片的标签被标注的是错误的。于是本文采取了一个简单的策略,在城市级POIs挖掘中,同时使用标签和地理位置标签。(这里的标签通常是用来挖掘用户旅行偏好,实现个性化旅行推荐的;而地理位置标签仅仅表示图片的地理位置。) l表示图片,每个l都有三个属性l={tags,geo-tags,visual}。首先,在所有标签中比较选出带有城市名(比如说,“London”)的图片;然后,使用均值聚类方法(mean-shift clustering),以一个较大的带宽(bandwidth,通常以城市半径均值0.5为标准),处理收集到的所有图片的地理位置标签(geo-tags),从而为城市获得图片集,其中存在噪音的图片被除去,并且我们仅从聚类结果中选择中心接近城市真实位置的聚类。 N
l
表示满足需求的图片数量。τ、g、v分别表示标签tags、地理位置标签geo-tags、图像可视化特征。L={l
1
、l
2
···、l
N
l
}表示一个城市的图片集,T={τ
1
、τ
2
···、τ
N
l
}表示L的所有标签集,G={g
1
、g
2
···、g
N
l
}表示L的所有地理位置标签集,V={v
1
、v
2
···、v
N
l
}表示L的可视化特征。 #### **1、由粗到精的城市级POIs挖掘**  ##### **(1)城市级粗POI聚类(City Level Coarse POI Clustering)** 一组标记了地理位置的图片集L
m
={l
1
、l
2
···、l
N
l
m
},G
m
={g
1
、g
2
···、g
N
l
(m)
}表示地理位置标签集。考虑到噪音数据的存在,本文中认为应该包含足够用户和图片的聚类更为有效,比如说,每个聚类应该包含至少20张图片且上传这些照片的人至少应该有10人,在这样的粗聚类之后,可以得到一个城市的聚类列表C
m
={c
1
,···,c
n
,···,c
N
c
(m)
},这里的N
c
(m)表示X
m
的聚类数,c
n
表示第n个聚类。如图3所示,c
1
-c
3
是POI“大本钟”的3个聚类。 ##### **(2)基于可视化匹配的城市级POIs细化(Visual Matching Based City Level POIs Refinement)** 在粗聚类之后得到的城市聚类列表C
m
={c
1
,···,c
n
,···,c
N
c
(m)
}中,可能来自一个地标的图片被分到了几个聚类结果中,于是,我们需要根据L
m
可视化特征V
m
={v
1
,···,v
l
,···,v
N
l
(m)
}来融合它们。这一细化过程分为两步: **第一步:可视化特征提取和聚类表现(Visual feature extraction and cluster representation)**。SIFT在现有研究论文(详见论文参考文献15/18/29)中被证明在地标图像描述上表现除了较好的结果,于是本文使用SIFT来实现基于可视化特征匹配的聚类融合。首先,为每个图像l
k
抽取128D的SIFT特征;然后,使用词袋(bag-of-words,BoW),通过分层量化,来呈现SIFT描述;最后,每个图像l
k
都通过其BoW直方图h
k
来呈现。 **第二步:聚类融合(Cluster merging)**。假定POIs的总数是N
p
(m),则相应的POIs列表被表示成P
m
={p
1
,···,p
j
,···,p
N
p
(m)
},N
p
(m)≤N
c
(m)。对于每一个p
j
,其位置中心被σ
x
(j)
和σ
y
(j)
表示。为了简化,引入二元矩阵Γ
c,p
(n,j)来表示从c
n
到p
j
的匹配过程,如果c
n
与p
j
匹配,那么Γ
c,p
(n,j)=1,反之为0。 对于每一个p
k
,首先随机抽取一个聚类c
k
来初始化p
k
,然后通过计算p
k
与c
n
的地理距离:,选择其中距离最小的作为p
k
的最佳聚类c
0
:,其中,σ
x
(j)
和σ
y
(j)
是被不断迭代更新的p
k
的中心,ξ
x
(n)
和ξ
y
(n)
是c
n
中心的经度和纬度。 接着,再计算p
k
与c
n
间的可视化相似度:,其中,h
k
和h
n
是在p
k
和c
n
中BoW直方图的平均值。如果, < v
v
,,则更新p
k
={p
k
,c
0
},否则就从剩下的聚类中找到其他的c
0
。 正如在图3中,通过粗聚类得到了6个类C={c
1
,c
2
,···,c
6
},然后,在基于可视化相似性的融合后得到了3个POIs,P={p
1
,p
2
,p
3
},因为根据融合,c
1
-c
3
属于p
1
并描述了“Big Ben”,c
4
-c
5
属于p
2
并描述了“St Paul’s Cathedral”,只有c
6
一个表示“London Tower”并被归为p
3
。 #### **2、由粗到精的用户旅行历史挖掘** N
u
(m)表示在城市X
m
中的用户数,每个用户有一组图像L
i
={l
1
···l
k
···l
N
u
(k)
}。通过大量的观察,我们发现有较大半径的POIs边界上的照片往往会被分到其相邻POI中,为了解决这一问题,本文为了得到准确的旅行历史,充分利用了粗聚类C和分配向量Γ
c,p
,并提出一个由粗到精的匹配方法来挖掘用户旅行历史,主要分为以下两个步骤: **第一步:用户旅行历史粗匹配(Coarse User’s Travel History mapping)** 假定在城市X
m
中有N
p
(m)
个POIs,P
m
={p
1
,···,p
j
,···,p
N
p
(m)
},有N
c
(m)
个聚类,C
m
={c
1
,···,c
n
,···,c
N
c
(m)
}。本文定义了一个二元分配矩阵Γ
u,c
来记录从用户图片到聚类的匹配,如果Γ
u,c
(i,n)=1,则表示至少有一个图像L
i
属于C
n
:  γ(k,n)=1表示第k个图像l
k
属于c
n
。γ(k,n)是被图像l
k
和粗聚类之间的地理位置距离所决定的:   其中,g
x
(k)
和g
y
(k)
是l
k
的经度和纬度,ξ
x
(t)
和ξ
y
(t)
是c
t
中心的经度和纬度。 本文中引入一种基于ε-ball的如式(7)所示的约束,以此来确保只有当图片属于特定POI时才被应用于旅行推荐。当l
k
和C
m
之间的所有距离d(k,t)都大于ε时,我们认为l
k
是与这个城市的任何POI都是不相关的。然后,我们再通过设定距离为∞,将l
k
从旅行历史中移除:  **第二步:用户旅行历史细匹配(Refined User’s Travel History Mapping)** 假定在城市X
m
中有N
p
(m)
个POIs,P>(m)个POIs,P
m
={p
1
,···,p
j
,···,p
N
p
(m)
},有N
c
(m)
个聚类,C
m
={c
1
,···,c
n
,···,c
N
c
(m)
}。用户旅行历史细匹配的基本观点就是属于一个POI的所有聚类中,如果用户至少有一个图像是来自于这些聚类中,那么就认为用户到访过这个POI。于是,本文定义Q
m
(i)
={q
1
(i)
,···,q
j
(i)
,···,q
N
q
(m)
(i)
},表示用户u
i
的旅行历史。当q
j
(i)
=1时表示用户u
i
到访过p
j
,q
j
(i)
=0时表示用户u
i
不曾到访过p
j
。 对于每一个p
j
,q
j
(i)
计算如下:  其中,Γ
u,c
(i,n)表示从u
i
到c
n
的匹配,Γ
c,p
(n,j)表示从c
n
到p
j
的匹配。 ### **二、作者主题模型学习(AUTHOR TOPIC MODEL LEARNING)** ATM(AUTHOR TOPIC MODEL,作者主题模型)LDA(latent Dirichlet allocation,隐狄利克雷分布)的扩展,通过考虑作者信息来建立文档。LDA和ATM的图模型如下:  其中,阴影变量表示观测变量,未被阴影的变量表示隐变量,箭头表示变量与面板间的条件依赖。LDA模型仅仅发现文档表达了什么主题,而ATM模型w
i
与作者x
i
和主题z
i
这两个隐变量有关。 **1、ATM术语(Terminologies of ATM)** @**词库V**表示N
d
个标签{1,2,···,N
d
}; @**单词w
i
**∈{1,2,···,N
d
},表示图片的一个标签,图片的每个标签都是与V中一一匹配的; @**文档d**表示一个图片的标签集τ
i
,一个用户有N
f
个图片,那么该用户就有N
f
个文档; @**作者a
d
**表示上传了文档d的某个用户。 **2、ATM数据预处理(Data Preprocessing for ATM)** 首先,构建词库V,需要先去除没用的停用词,并且过滤掉没有意义的标签,V中每个标签都有单词w
i
∈{1,2,···,N
d
}; 然后,对于每个作者a
d
,都需要将其标签集τ与词库进行匹配,从而获得每个作者标签下的注解单词w
i
,这样城市的每个标签都有相应的注解单词; 最后,使用稀疏二元矩阵Γ
d,a
、Γ
w,d
和Γ
w,a
来记录是否一个文档属于一个用户,是否一个词属于一个文档,是否一个单词属于一个用户。举列来说,Γ
w,a
(i,j)=1则表示单词w
i
属于用户u
j
。 **3、用户ATM学习(User ATM Learning)** 对于每一个城市X
m
,模型的输入包含两个部分:查询用户u
k
的包含对应标签的图片集L
k
和群用户的包含标签的图片集。 ATM的生成过程主要分为两个步骤: (1)**生成概率模型**。假定作者x与主题的关系服从一个多项式分布,作者-主题分布用θ表示,同时,每个主题z∈{1,2,···,N
z
}与单词的关系也服从于一个多项式分布,主题-单词分布用φ表示。 对于一个单词w,首先均匀的从a
d
中选一个作者x,然后从条件依赖于x的θ中选择一个主题z,接着从条件依赖与主题分布z
i
的φ中选一个单词w。不断重复如上的3个步骤N次,直到产生了文档中的所有单词。 (2)**估计作者-主题模型参数θ和主题-单词分布参数φ**。马尔科夫链蒙特卡罗算法(a Morkow chain Monte Carlo algorithm),通过吉布斯抽样(the Gibbs sampler),从后验分布中抽样θ和φ。 通过ATM,我们可以确定不同主题下每个单词的概率。我们也可以得到所有用户的作者主题矩阵A,A是一个稀疏的N
x
×N
z
的矩阵,N
x
表示作者数量,N
z
表示主题数,A(i,j)表示与作者X
i
有关且属于主题z
j
的单词的次数。 ### **三、基于作者主题模型的协同过滤(AUTHOR TOPIC MODEL BASED COLLABORATIVE FILTERING)** 本文研究的目的是当一个人到一个新城市旅行的时候,我们的推荐系统向用户推荐一些列POIs,为了简化这一描述,定义u
k
为需求用户,x
1
表示u
k
曾经到访过的城市,X
2
表示u
k
计划去旅行的新城市。那么,在传统的协同过滤方法中,首先,生成用户-POI矩阵来记录用户的旅行历史,然后,通过cosine来计算在用户-POI矩阵中两个用户u
k
和u
i
向量的相似性。而在本文研究的基于作者主题模型的协同过滤方法中(ATCF),我们用用户的作者主题模型来衡量用户之间的相似性。具体来看,ATCF主要分为以下两个步骤: #### **1、相似用户检测(Similar User Detection)** 假定U={u
1
、u
2
、···、u
N
u
}表示同时访问过x
1
和x
2
城市的N
u
个用户,A(i)表示x
1
中u
i
的主题分布(i∈{1,2,···,N
u
}),于是用户相似性计算公式如下:  根据计算所得的相似性得分,我们可以对用户进行排序,排序前N
s
个用户(N
s
≤N
u
)被选为作为旅行推荐中的相似用户。 #### **2、POI排序(POI Ranking)** 假定P
2
={p
1
、p
2
、···、p
N
p
(2)
}表示在x
2
城市中的POI集,我们根据在x
2
中N
u
个用户的旅行历史{Q
1
(2)
、···、Q
i
(2)
、···、Q
N
u
(2)
}来对用户进行排序(i∈{1,2,···,N
u
})。对于每一个u
i
,Q
i
(2)
={q
1
(i)
、···、q
j
(i)
、···、q
N
p
(2)
(i)
},如果q
j
(i)
=1则表示u
i
访问过p
j
。于是,通过综合城市中N
u
个POIs的访问信息,我们定义u
k
对p
j
的相关得分计算如下:  然后,根据相关得分S
j
的降序排序,对P
(2)
中的POIs进行排序,我们可以对用户进行排序,从而为用户u
k
推荐TOP排序的POIs。
赏
支付宝扫码打赏
如果文章对您有帮助,欢迎打赏鼓励作者
Back to Top