精华内容
下载资源
问答
  • 基于位置的顺序多类型POI推荐服务
  • POI推荐算法

    万次阅读 2015-05-08 09:55:46
    POI推荐算法 这里介绍的算法是基于地点相似度的POI推荐。 该算法非常简单,在某些数据场景中十分有效。 基本的想法是:  将POI名称作为标签处理  一群用户对某个地点感兴趣,那么这群用户中的一部分人感...
    POI推荐算法

    这里介绍的算法是基于地点相似度的POI推荐。
    该算法非常简单,在某些数据场景中十分有效。

    基本的想法是:
        将POI名称作为标签处理
        一群用户对某个地点感兴趣,那么这群用户中的一部分人感兴趣的其他地点可能与该地点相似;

    算法流程:
    1)输入地点a, 用户集合X,地点集合Y、用户和地点关系集合
    2)找到对a感兴趣的用户子集U;
        我们可以粗略的认为,某个用户去地点a的次数超过一个阈值,他就对a感兴趣
    3)分别找到U中用户感兴趣的地点,组成地点子集A
    4)分别计算A中元素e和a的相似度
        sim = |U中去过e的人次| / sqrt(|X中去过a的人次| * |X中去过e的人次|)
        这里用了人次,而没有用人数
    5)按sim对A中元素从大到小排序,取sim最大的n个地点作为a的相似地点子集S
    6)输出S

    这样,如果某个用户已经对地点a感兴趣,就可以为他推荐S中他没去过的地点。

    参考:
    http://en.wikipedia.org/wiki/Cosine_similarity
    http://en.wikipedia.org/wiki/Jaccard_index
    展开全文
  • POI推荐系统论文整理

    2021-02-06 10:19:08
    我目前研究方向是POI推荐,用深度学习的LSTM,对一些方面的论文做了整理,有英文版和对应的中文翻译,会不定期更新在这篇博客里,有需要的话可以私信我拿论文 (注:论文名太长,我截取前一部分名字放在下面) A ...

    我目前研究方向是POI推荐,用深度学习的LSTM,对一些方面的论文做了整理,有英文版和对应的中文翻译,会不定期更新在这篇博客里,有需要的话可以私信我拿论文

    (注:论文名太长,我截取前一部分名字放在下面)

    A Semantic Sequential Correlation based LSTM_ Model

    An Attention-based Spatiotemporal LSTM Network for

    Long and Short term Preference Learning for Next

    Next Point-of-Interest Recommendation with_ Temporal

    Where to Go Next A Spatio-Temporal

    Where to Go Next Modeling Long- and Short-Term

    基于深度神经网络的地理兴趣点推荐模型研究

    基于用户签到行为的自适应兴趣点推荐方法研究

    A Grid-Based Approach for Measuring Similarities of Taxi

    A new point-of-interest group recommendation method

    A Semantic Sequential Correlation based LSTM Model

    ARMOR A trust-based privacy-preserving framework for

    Attention-based Group Recommendation

    Attentive Group Recommendation

    Deep Multi-View Spatial-Temporal Network for Taxi Demand

    Differential privacy-based trajectory community recommend

    Discovering Travel Community for POI Recommendatioon

    Exploring Trajectory Prediction Through Machine Learning

    Finding top-k similar users based on trajectory-pattern model

    Linked Open Data  Location-Based Recommendation

    MULTITOURA multiple itinerary tourists recommendation

    Sem-ppa_A semantical pattern and preference-aware service

    基于LBSN的个性化多目标旅游路线推荐_李迎

    基于LSTM神经网络融合用户相似性的移动轨迹预测

    基于轨迹划分与密度聚类的移动用户重要地点识别方法

    基于轨迹挖掘与特征向量融合的好友推荐研究

    基于异质社交网络的POI个性化推荐系统设计与实现

    基于用户轨迹挖掘的位置服务

    基于注意力机制的神经网络贝叶斯群组推荐算法

    移动社交网络中的位置轨迹挖掘及应用研究

    展开全文
  • 基于用户签到数据的应用遗传算法的POI推荐,邢东旭,张成文,定位技术的出现,使得POI(Point of Interest,兴趣点)个性化推荐成为推荐领域中的关键研究点之一,而在POI推荐研究的进程中又出现了用�
  • POI推荐综述,非常好的文章,内容很全面,讲解也很通俗易懂
  • 这里设计的POI推荐算法是参考于POI推荐算法,简单来说,就是利用用户访问POI的频次作为POI之间相似度的测度。 具体描述以及代码展示如下: 数据预处理 随机抽取若干行数据 首先我们要进行数据清洗,我们将456967行...

    这里设计的POI推荐算法是参考于POI推荐算法,简单来说,就是利用用户访问POI的频次作为POI之间相似度的测度。

    具体描述以及代码展示如下:

    • 数据预处理
    1. 随机抽取若干行数据

    首先我们要进行数据清洗,我们将456967行数据,10000多名用户参与的Gowalla数据进行预处理

    为避免数据的偶然性对实验产生的偏差影响,我们在获取数据的同时,随机抽取10000行数据进行实验,代码如下:

    clear all
    [data,txt]=xlsread('Gowalla.xlsx','Sheet1','A1:D456968');
    [m,n]=size(data);
    collect=10000;
    Data=data(randperm(m, collect),:);%随机抽取10000行数据
    [M,N]=size(Data);
    count=0;
    t=10;
    xlswrite('Gowalla_1',Data,'A2:D10001');
    %记住:生成文件后,要按照user_id序号升序或降序排列,然后再运行下一个代码文件

    生成Excel文件后,按照用户编号升序或者降序排列,因为在下面过滤数据的操作中,需要利用这样的排列结构进行过滤操作

         2.数据过滤

    过滤掉同一个user_id下,记录少于10行的数据,这样,保留下来的user_id,至少拥有10次访问Poi的签到数据

    代码如下:

    clear all
    [Data,TxT]=xlsread('Gowalla_1','Sheet1','A1:D10001');
    [M,N]=size(Data);
    count=1;
    t=10;
    i=2;
    while i<=M%过滤掉记录少于10的行数据
        if Data(i,1)==Data(i-1,1)%如果上下两行的用户ID数据一致
            count=count+1;%计数+1
        else   %如果出现上下两行不一致,则代表着上一个用户所有的数据记录读取完毕;
            if  count<t
                Data(i-count:i-1,:)=[];%删除
                i=i-count;%i回溯,因为删除数据后,原始矩阵维度已经发生变化
                count=1;
            else
                count=1;%这里是count>t的情况,重新计数
            end
        end
         i=i+1;
    end
    xlswrite('Gowalla_2',Data);
    %记住:生成后的Gowalla_2文件要按照poi序号从小到大排列
    • 算法设计

    下面来逐行用代码解释算法每一步操作步骤

    1)输入地点a, 用户集合X,地点集合Y、用户和地点关系集合
    2)找到对a感兴趣的用户子集U;

    clear all
    clc
    [Data,TxT]=xlsread('Gowalla_2','Sheet1');
    [M,N]=size(Data);
    u=zeros(M,1);
    theta=2;
    count=1;
    for i=[1:1:M-1]
      if (Data(i,1)==Data(i+1,1))&& (Data(i,2)==15693) && (Data(i,2)==Data(i+1,2))
          if count < theta
              count=count+1;
          else
              u(i,1)=Data(i,1);
                count=1;
          end
      end
      if (Data(i,1)~=Data(i+1,1))&& (count >= theta)
          u(i,1)=Data(i,1);
          count=1;
      end
    end
    user=unique(u);
    user(any(user,1),:)=[];%因为使用unique函数,使得函数值为0的只有一行
    User=user';
    [M_user,N_user]=size(User);

    在我们的实践中,设地点a为poi_id是15693的节点,阈值设为theta=2,即同一个用户访问同一个Poi的次数超过theta,我们可以认为该用户对该poi感兴趣

    3)分别找到U中用户感兴趣的地点,组成地点子集A

    p=zeros(M,1);
    Count=1;
    for i=[1:1:M-1]
        if ismember(Data(i,1),User)&&(Data(i,2)==Data(i+1,2))
            if Count < theta
                Count=Count+1;
            else
                p(i,1)=Data(i,2);
                Count=1;
            end
        end
    end
    poi=unique(p);
    poi(any(poi,1),:)=[];
    Poi=poi';
    [M_poi,N_poi]=size(Poi);

    4)分别计算A中元素e和a的相似度
        sim = |U中去过e的人次| / sqrt(|X中去过a的人次| * |X中去过e的人次|)
        这里用了人次,而没有用人数
    5)按sim对A中元素从大到小排序,取sim最大的n个地点作为a的相似地点子集S
    6)输出S

    count_1=0.1*ones(1,N_poi);%计算集合User中访问Poi集合当中元素的人次
    count_2=0;%计算分母1
    count_3=0;%计算分母2
    
    for i=[1:1:N_user]
        for k=[1:1:N_poi]
            for j=[1:1:M]
                if ismember(Data(j,1),User) && ismember(Data(j,2),Poi) && (Data(j,2)==Poi(1,k))
                        count_1(1,k)=count_1(1,k)+1;
                end
            end
        end
    end
    
    count_1=round(count_1);
    
    for i=[1:1:M]
      if Data(i,2)==15693
          count_2=count_2+1;
      end
    end
    
    for i=[1:1:M]
        if ismember(Data(i,2),Poi)
            count_3=count_3+1;
        end
    end
    
    sim=count_1;
    for i=[1:1:N_poi]
        sim(1,i)=sim(1,i)/sqrt(count_2*count_3);
    end
    [S,Ind]=sort(sim);

    在这里顺便值得一提的是,在初始化count_1向量时,之所以设置为0.1*ones()矩阵,是因为这巧妙的规避了poi或者是用户编号为0的误差,因为我们之前使用类似功能的any()函数保留了非零元,之后再“四舍五入”,round()一下,这样原本为0.1的数据依然是0,我们就可以放心的将此零元“过滤掉”(unique函数过滤)

    • 进行个性化选择

    考虑到用户可能有几日游的习惯,我们设置Day变量,下面是假设,假设用户半日游,如下,则给我们推荐3个景点,分别是Sim值较高的前三个POI节点。如下所示:

    Day=0.5;
    if Day==0.5
        N=3;
        X=['为您推荐半日游,推荐',num2str(N),'个景点','它们分别是',num2str(Poi(1,Ind(1,N_poi:-1:N_poi-N+1)))];
        table=Poi(1,Ind(1,N_poi:-1:N_poi-N+1));
        Table=zeros(N,3);
        Table(:,1)=table';
        for i=[1:1:N]
            for j=[1:1:M]
                if Table(i,1)==Data(j,2)
                    Table(i,2)=Data(j,3);
                    Table(i,3)=Data(j,4);
                end
            end
        end
        disp(X);
         xlswrite('半日游推荐结果',Table);
    end
    if Day==1;
       N=5;
        X=['为您推荐一日游,推荐',num2str(N),'个景点','它们分别是',num2str(Poi(1,Ind(1,N_poi:-1:N_poi-N+1)))];
        table=Poi(1,Ind(1,N_poi:-1:N_poi-N+1));
        Table=zeros(N,3);
        Table(:,1)=table';
            for i=[1:1:N]
            for j=[1:1:M]
                if Table(i,1)==Data(j,2)
                    Table(i,2)=Data(j,3);
                    Table(i,3)=Data(j,4);
                end
            end
        end
        disp(X);
        xlswrite('一日游推荐结果',Table);
    end
    if Day==2
        N=7;
        X=['为您推荐两日游,推荐',num2str(N),'个景点','它们分别是',num2str(Poi(1,Ind(1,N_poi:-1:N_poi-N+1)))];
        table=Poi(1,Ind(1,N_poi:-1:N_poi-N+1));
        Table=zeros(N,3);
        Table(:,1)=table';
            for i=[1:1:N]
            for j=[1:1:M]
                if Table(i,1)==Data(j,2)
                    Table(i,2)=Data(j,3);
                    Table(i,3)=Data(j,4);
                end
            end
        end
        disp(X);
         xlswrite('两日游推荐结果',Table);
    end
    • 最后进行路径重组

    我们使用Ant Colony算法进行路径重组,由于原始Gowalla数据格式不包含坐标信息,因此我们要将经纬度进行转化计算,这里可以参考我写的程序,启发函数为欧氏距离的倒数,其结果如下所示:

    推荐POI节点

    原始数据展示

    推荐的路径结果与距离

    各代最短距离与平均距离的对比

    展开全文
  • 最经典的基于用户相似度和社会关系和地理位置三个因素的POI推荐系统,压缩包里有3个python2.7的代码文件和3个数据文本,分别是foursquare签到数据,爬下来的用户好友关系数据,和POI的经纬度数据。代码可以直接运行...
  • 首先简单介绍下什么是poipoi即为points of interest,比如小区,汽车站,火车站等等,这些都是poi。随着移动设备的快速增长和基于位置的社交网络的扩张...
        

    首先简单介绍下什么是poi。poi即为points of interest,比如小区,汽车站,火车站等等,这些都是poi。

    随着移动设备的快速增长和基于位置的社交网络的扩张,会产生大量的用户移动数据。在这种背景下,将用户和poi(points of interest)关联起来,并对用户推荐可能感兴趣的poi或者对某个poi推荐高质量的用户变得非常有意义。比如,在一个城市旅游时,通常会在位置社交网络中搜索比较有意思的poi。

    poi推荐的挑战在于用户行为比较稀疏。一般可以基于朋友和附近的poi进行推荐,但是,这种方法无法考虑不同的朋友所带来的影响。为了解决这个问题,学者基于上下文,图模型以及注意力提出了一种新的模型。该模型首先利用两个上下文注意力网络模型来学习不同的朋友所带来的影响和附近不同的poi所带来的影响。同时,构建一个对偶注意力网络,来学习某个用户的上下文poi之间的相互影响和某个poi的上下文用户之间的相互影响。利用多层感知器来估计某个用户到达某个poi的概率。

    在电影推荐或者电子商务中,对于某部电影或者某件商品有比较明确的评价,并且内容信息也比较丰富。但是,在poi推荐中,信息比较稀疏,并且只有积极的反馈,即某个用户到过某个poi。

    在上下文图中,某个用户的偏好可以基于该用户到过的poi来建模,某个poi的访问画像可以利用到访的用户来建模。作者提出的基于注意力的上下文图模型能够有效的融合位置社交网路欧中不同的上下文信息。注意力机制的基本假设在于,只有一部分特征具有决定性作用。

    上下文注意力图模型构建了三个上下文图,一个用户友谊上下文图,一个poi近邻上下文图,一个用户poi上下文图。在这些上下文图中将用户和poi表示成注意力隐式向量,这些向量都是对嵌入的相关上下文节点的加权和得到的。该模型还构建了两种注意力网络,一种上下文注意力网络,一种对偶注意力网络,这两种网络用来计算不同节点之间的权重。

    下面是三个图的示例。

    640?wx_fmt=png

    假设用户集合为  640?wx_fmt=png

    poi集合为 640?wx_fmt=png

    用户poi矩阵为 640?wx_fmt=png

    640?wx_fmt=png表示用户640?wx_fmt=png到访了poi   640?wx_fmt=png

    否则640?wx_fmt=png

    640?wx_fmt=png访问过的poi集合记为640?wx_fmt=png

    访问过640?wx_fmt=png的用户集合记为640?wx_fmt=png

    则poi推荐即为

    给定某个用户640?wx_fmt=png

    poi集合640?wx_fmt=png

    用户poi矩阵640?wx_fmt=png

    返回一个poi列表 640?wx_fmt=png

    以用户 640?wx_fmt=png

    访问某个poi的预测概率 640?wx_fmt=png

    降序排列。

    下面是用户之间的相似度分布和poi之间的相似度分布。

    640?wx_fmt=png

    整体网络结构如下

    640?wx_fmt=png

    下面是精准率比较

    640?wx_fmt=png

    下面是召回率比较

    640?wx_fmt=png

    640?wx_fmt=png

    下面是命中率比较

    640?wx_fmt=png

    下面是参数比较,其中D是嵌入单元的个数,H是网络的层数,d是注意力单元数目,k是最近邻的范围。

    640?wx_fmt=png

    参考资料

    Siyuan Zhang, Hong Cheng 

    展开全文
  • 在第一期内容里,我们介绍了Benders Decomposition和Transit System Planning,第二期的内容我们以《Management Science》上的一篇文章为切入点,展开两个领域的讨论:1)推荐系统;2)Graph Clustering。这篇文章上...
  • POI
  • 0 转载声明 本博文转载自... 1 个人补充 补充一种近似熵的实现方式: import numpy as np class BaseApEn(object): """ 近似熵基础类 ... def __init__(self, m, r): ... :param U:一个矩阵列表,for example:
  • 针对目前LBSN中,用户只对少数兴趣点进行签到,使得用户签到历史数据及其上下文信息(如评论文本)极其稀疏,同时传统的评分推荐系统只考虑用户和评分二元信息,具有一定的局限性。为此,提出一种基于评分矩阵局部低...
  • 基于 LSTM 的 POI 个性化推荐框架AbstractQuestionMethodModelIntroduction作者为什么研究这个课题?参考模型介绍① word2vec②CBOW模型③ LSTM长依赖存在的问题LSTM 网络LSTMs的核心思想一步一步理解LSTM相关工作与...
  • excel POI处理推荐项目 easypoi easyexcel

    千次阅读 2019-10-24 19:23:29
    POI 工具类 Excel的快速导入导出 Excel模板导出 Word模板导出 CSV导入处理 Excel&Html互转 PDF处理 可以仅仅5行代码就可以完成Excel的导入导出,修改导出格式简单粗暴,快速有效。 项目地址: ...
  • 兴趣点( POI) 的签到数据体现了用户的偏好和兴趣点的分布特征,这在兴趣点推荐领域有极为重要的价值. 为了缓解 数据稀疏造成的推荐不准确等问题,本文提出了融合时间序列的 POI 动态推荐算法,结合用户与用户之间的...
  • 在美团商家数据中心(MDC),有超过100w的已校准审核的POI数据(我们一般将商家标示为POIPOI基础信息包括:门店名称、品类、电话、地址、坐标等)。如何使用这些已校准的POI数据,挖掘出有价值的信息,本文进行了...
  • 美团网基于机器学习方法的POI品类推荐算法 前言 在美团商家数据中心(MDC),有超过100w的已校准审核的POI数据(我们一般将商家标示为POIPOI基础信息包括:门店名称、品类、电话、地址、坐标等)。如何使用这些已...
  • 最近在做地标 POI 推荐相关的工作。survey 到一篇不错的文章,Paper from KDD 2020:作者全部是百度高 T,二作是 CTO 王海峰。猜测本篇文章的可信度较高。不 fancy,却很实用。方法简称 P^3AC,即标题中的 ...
  • Graph-based POI Embedding

    2018-09-21 16:01:10
    依然是POI推荐问题,这里作者将POI推荐的向量学习抽象为异构的网络,从而融合了序列因素、地理影响、时序变化影响和语义影响,利用图嵌入技术将这些信息降到低维空间中。如图: POI-POI,POI-region,POI-time,...
  • 最近在做地标 POI 推荐相关的工作。survey 到一篇不错的文章,Paper from KDD 2020:作者全部是百度高 T,二作是 CTO 王海峰。猜测本篇文章的可信度较高。不 fancy,却很实用。方法简称 P^3AC,即标题中的 ...
  • java POI解析Excel 之数据转换公用方法(推荐)发布于 2020-5-5|复制链接下面小妖就为大家带来一篇java POI解析Excel 之数据转换公用方法(推荐)。小妖觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小妖...
  • 在美团商家数据中心(MDC),有超过100w的已校准审核的POI数据(我们一般将商家标示为POIPOI基础信息包括:门店名称、品类、电话、地址、坐标等)。如何使用这些已校准的POI数据,挖掘出有价值的信息,本文进行了...
  • 下面小编就为大家带来一篇java POI解析Excel 之数据转换公用方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 441
精华内容 176
关键字:

poi推荐