基于地理因式分解法的POI推荐排序算法(Ranking based Geographical Factorization Method,Rank-GeoFM)

本文介绍了一种名为Rank-GeoFM的模型,该模型旨在解决兴趣点(POI)推荐中的数据稀缺问题,特别是针对检入数据不足的情况。Rank-GeoFM不仅利用隐式反馈数据,还考虑了POI的上下文信息,如地理位置影响,通过随机梯度下降法优化,以提高推荐准确性。
摘要由CSDN通过智能技术生成

Rank-GeoFM背景

现阶段,兴趣点(Point of Interest,POI)推荐成为一个重要的研究问题。兴趣点推荐是通过检入数据来预测的,然而在研究过程中我们常会碰到检入数据匮乏的问题。

这篇文章主要解决了以下两个问题:

  1. 使用隐式反馈数据,解决检入数据匮乏的问题
  2. 利用POI的不同类型的上下文信息(影响因子)完成预测

前言

POI推荐是目的在于学习用户的偏好,然后给用户推荐他可能会感兴趣的但未浏览过的东西。这不仅能帮助居民或游客勘探一个城市中有趣的位置地,同时也为POI物主通过寻找和寻找潜在游客来增加收入的机会。

为了便于理解下面用图示来说明
在这里插入图片描述

(a):一定时间内,三个人去四个场景下的次数矩阵
(c):加上时间影响后,图(a)的状态

从a),b)中可以看出矩阵中数据是很稀疏的,如果再加上时间因素影响得到c),d)那么矩阵将变的更加的稀疏。

与传统的矩阵因式分解方法不同,我们对用户(user)偏好排序进行拟合,了解用户和POI的潜在因素,而不是像传统的矩阵分解方法那样对检入(check-in)频率进行拟合。在本文中,未访问的POI(?处)也有助于学习,这将有助于缓解稀疏性问题。

Rank-GeoFM模型

使用方法
  1. 使用Rank-GeoFM,解决数据缺乏问题,包含一种重要的上下文信息–地理影响
  2. 为了计算Rank-GeoFM,我们使用随机梯度下降法

GeoFM为基于权重矩阵的因式分解方法(WMF),并且地理影响也包含在WMF内。

以下是符号列表:

U U U用户集合{ u 1 , u 2 , . . . , u U u_1,u_2,...,u_U u1,u2,...,uU}
L L LPOI集合{ l 1 , l 2 , . . . , l L l_1,l_2,...,l_L l1,l2,...,lL}
T T T时间段集合 { t 1 , t 2 , . . . , t T t_1,t_2,...,t_T t1,t2,...,tT}
L u L^u Lu用户u访问过的POI
X = [ x u l ] X=[x_{ul}] X=[xul]用户-POI检入矩阵
χ = [ x u t l ] \chi = [x_{utl}] χ=[xutl]用户-时间-POI
D 1 D_1 D1用户-POI对{ ( u , l ) ∥ x u l > 0 (u,l)\|x_{ul}>0 (u,l)xul>0}
D 2 D_2 D2用户-时间-POI元组{ ( u , t , l ∥ x u t l > 0 ) (u,t,l\|x_{utl}>0) (u,t,lxutl>0)}
d ( l , l ′ ) d(l,l') d(l,l)POI l 和 l ′ l和l' ll之间的距离
N k ( l ) N_k(l) Nk(l)离l最近的k的集合
y u l y_{ul} yul用户u的POI ℓ推荐评分

step1:使用基于POI检入数据推断用户的偏好排序。POI频率越高则排名越靠前。

度量推断排序和通过因式分解模型产生的产生的排序之间的不兼容性的方法,也就是损失函数,定义如下:
I n c o m p ( y u l , ε ) = ∑ l ′ ∈ L I ( x u l &gt; x u l ′ ) I ( y u l &lt; y u l ′ + ε ) Incomp(y_{ul,\varepsilon }) = \sum_{l&#x27; \in L} I(x_{ul}&gt;x_{ul&#x27;})I(y_{ul}&lt;y_{ul&#x27;}+\varepsilon) Incomp(yul,ε)=lLI(xul>xul)I(yul<yul+ε)

I ( . ) : 是 一 个 指 标 函 数 , I ( a ) = 1 = = = = = 》 当 a = t r u e , 反 之 为 0 I(.):是一个指标函数,I(a) = 1=====》当a=true,反之为0 I(.)I(a)=1=====a=true0
ε : 是 一 个 正 数 \varepsilon:是一个正数 ε
x u l : l 的 频 度 x_{ul}:l的频度 xull
y u l : l 的 推 荐 等 级 y_{ul}:l的推荐等级 yull

注: ε − m a r g i n \varepsilon-margin εmargin被用来计算因式分解模型的排序,只有当 y u l &lt; y u l ′ + ε y_{ul}&lt;y_{ul&#x27;}+\varepsilon yul<yul+ε时,用户 l ′ l&#x27; l的排名高于 l l l

step2:要使因式分解模型越优,不兼容性要越小,则相对应的损失函数需要越小。
O = ∑ u , l ∈ D 1 E ( I n c o m p ( y u l , ε ) ) , E ( 0 ) = 0 O = \sum_{u,l\in D_1} E(Incomp(y_{ul , \varepsilon})) \qquad ,E(0) = 0 O=u,lD1E(Incomp(yul,ε)),E(0)=0
E ( r ) = ∑ i = 1 r 1 i E(r) = \sum_{i=1}^r \frac{1}{i} E(r)=i=1ri1
E ( . ) E(.) E(.)用来将不兼容性转化为损失函数
E ( r ) E(r) E(r)计算错误排序POI的各等级位置 ( 1 − i ) (1-i) (1i)之和,其中位置 i i i被分配一个损失 1 i \frac {1} {i} i1

假设 I n c o m p ( y u l , ε ) = 3 Incomp(y_{ul , \varepsilon})=3 Incomp(yul,ε)=3,那么有3个POI排序错误,损失函数表示为 E ( 3 ) = 1 + 1 2 + 1 3 E(3) = 1+\frac 1 2+ \frac 1 3 E(3)=1+21+31

step3:计算推荐分数 y u l y_{ul} yul
y u l = U u ( 1 ) . L l ( 1 ) + U u ( 2 ) . ∑ l ′ ∈ N k ( l ) w l l L l ′ ( 1 ) y_{ul} = U_u^{(1)}.L_l^{(1)}+U_u^{(2)}.\sum _{l&#x27; \in N_k(l)}w_{ll}L_{l&#x27;}^{(1)} yul=Uu(1).Ll(1)+Uu(2).lNk(l)wllLl(1)
U ( 1 ) ∈ R U × K L ( 1 ) ∈ R U × K U ( 2 ) ∈ R U × K U^{(1)} \in \mathbb{R}^{U×K} \qquad L^{(1)} \in \mathbb{R}^{U×K} \qquad U^{(2)} \in \mathbb{R}^{U×K} U(1)RU×KL(1)RU×KU(2)RU×K
w l l ′ w_{ll&#x27;} wll:访问了 l l l之后访问 l ′ l&#x27; l的概率
U u ′ U_{u}&#x27; Uu:矩阵U的第u行

w l l ′ = { ( 0.5 + d ( l , l ′ ) ) − 1 , l ′ ∈ N k ( l ) 0 w_{ll&#x27;} =\left\{\begin{matrix} (0.5+d(l,l&#x27;))^{-1}\qquad\qquad,l&#x27;\in N_k(l) \\ 0 \qquad \end{matrix}\right. wll={(0.5+d(l,l))1,lNk(l)0

第一部分:模拟用户的偏好得分
第二部分:模拟用户基于临近点的POI的影响分
Θ = { U ( 1 ) , L ( 1 ) , U ( 2 ) } \Theta = \{ U^{(1)},L^{(1)},U^{(2)}\} Θ={U(1),L(1),U(2)}

step3:为了避免过拟合,使用L2正则表达式
∣ ∣ U u ( 1 ) ∣ ∣ 2 &lt; C , u = 1 , 2 , 3 , . . . , U ∣ ∣ L l ( 1 ) ∣ ∣ 2 &lt; C , l = 1 , 2 , 3 , . . . , L ∣ ∣ U u ( 2 ) ∣ ∣ 2 &lt; α C u = 1 , 2 , 3 , . . . , U ||U_u^{(1)}||_2&lt;C,\qquad\qquad u=1,2,3,...,U\\ ||L_l^{(1)}||_2&lt;C, \qquad\qquad l=1,2,3,...,L\\ ||U_u^{(2)}||_2&lt;\alpha C\qquad\qquad u=1,2,3,...,U Uu(1)2<C,u=1,2,3,...,ULl(1)2<C,l=1,2,3,...,LUu(2)2<αCu=1,2,3,...,U

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值