| 结合点评信息辅助的POI自动分类方法研究 |
兴趣点(point of interest, POI)是指在特定的空间范围内用户所感兴趣的建筑物,具体可分为沿街巷或在小区中具有地理标识作用的店铺、公共设施、单位和建筑等,或是具有人文意义的地名[1]。
当前,多数基于社交网络的用户行为模式研究都是基于用户轨迹的[2-4],POI的信息是行为模式研究中不可或缺的一部分。
基于POI的语义信息计算用户相似性时,POI类别信息的准确性是决定实验结果精度的主要因素。然而,现有的利用机器学习方法进行的POI分类在准确性上存在缺陷,对POI所标记的分类并不准确,GPS设备的定位误差和POI点在城市区域内广泛而高密度分布极大地影响了POI类别标记的准确性[5]。
POI分类方法主要包括基于地理信息的POI聚类[6]与基于内容的POI文本分类[7]两类。基于地理信息的POI聚类方法主要包括KNN聚类[8]、k-means聚类[9]、基于密度的聚类等。基于内容的POI文本分类方法主要利用机器学习算法实现,具体包括朴素贝叶斯法(Naïve Bayes)[10]、决策树法[11]和支持向量机[12]等。算法首先利用一组已经分好类别的对象进行训练,构造分类器,然后对未知对象进行分类。这类技术具有人工干预少、分类速度快、精度高等优点。然而,传统的文本分类方法应用于POI分类时存在明显缺陷。文本分类的处理对象大多是长文本,文本长度较长,信息量丰富。而POI名称属于短文本,单位长度的名称所含的信息量比普通文本段落要丰富得多,但文本长度较短,整体包含信息量较少。如果采用常用的文本特征提取算法来处理,会过滤一部分有效特征,产生语义歧义,影响分类精度。
针对现有分类方法存在的缺陷,本文基于机器学习算法,利用POI的名称结合点评信息对POI点进行分类,对名称和点评信息两类文本分别采用基于信息增益和TF-IDF(term frequency-inverse document frequency)的方法实现特征选择,充分提取数据的特征用于朴素贝叶斯分类模型的训练,来获取分类结果。
1 点评信息辅助的POI自动分类方法本文选用POI所包含的名称和点评信息作为分类依据,通过新浪API,利用public_timeline接口,获取用户签到数据,利用POI点的ID、名称和在该点签到用户的点评信息构成训练样本。本文提出方法的主要框架如图 1所示。
![]() |
| 图 1 点评信息辅助的POI分类技术路线 Fig.1 Technical Route POI Automatic Classification Assisted by Comment Information |
1.1 基于信息增益的POI名称特征选择
经由中文分词获得的语义字典包含所有在POI记录中出现频次超过阈值的词,而一个POI往往仅包含2~3个这样的特征词。在这种情况下,利用向量空间模型,通过特征表示获得的特征矩阵就是稀疏矩阵(sparse matrix),多数位置不包含特征信息。特征选择是从一组特征中选出一些最有效的特征,以降低空间维数的过程。它具有降低向量空间维度、简化计算、防止过分拟合等。本文选用信息增益法进行POI名称的特征提取。
客观世界存在各种各样的消息,信息则是这些消息所包含的新知识或新内容,常用信息熵来量化表示对象所带有的信息量。假定X是一个随机变量,p(x)代表变量X取值x的概率,那么,X包含的信息量,即不确定性可以表示为:
| $ H(X) = - \int_x {p(x)} \lg p(x){\rm{d}}x $ | (1) |
则特征X的信息增益(IG)为:
| $ {\rm{IG}}(X) = H(Y) - H(Y|X) $ | (2) |
式中,H(Y)代表Y本身带有的信息量; H(Y|X)代表已知条件X后,条件Y还能提供的信息量,两者间的差值就是X所带来的信息增益。
显然,对于一个特征词,其信息增益越大,对POI类别确定也就越重要。本文采用基于信息增益的特征选择方法,将所有特征词按信息增益大小进行排序,提取增益较大的词组成子集,作为POI名称的特征集合。
1.2 基于POI点评信息的特征选择POI点评信息也属于文本信息,但与POI名称相比,两类文本在内容上存在较大差异。POI名称代表性强,往往能较好地反映该点的语义信息,而POI点的点评信息受用户个人情绪影响较大,带有较多的抽象词汇。因此,选用TF-IDF文本特征提取方法,对中文分词后的POI点评信息进行特征提取。
TF-IDF算法认为:如果某个词比较少见,但它在一篇文章中多次出现,那么它很可能反映了这篇文章的特性,即为所要提取的关键词。其具体算法如下:
1) 计算词频(term frequency, TF),并标准化。
| $ 词频({\rm{TF}}) = \frac{{某个词在文档中出现的次数}}{{文档总词数}} $ | (3) |
2) 计算逆文档频率(inverse document frequency), 利用所有点评信息组成语料库(Corpus)。
| $ 逆文档频率({\rm{IDF}}) = \lg (\frac{{语料库的文档总数}}{{包含该词的文档数+1}}) $ | (4) |
3) 遍历所有分词结果,计算其TF-IDF值。
| $ {\rm{TF}} - {\rm{IDF值 = 词频(TF)}} \times {\rm{逆文档频率(IDF)}} $ | (5) |
4) 将所有词按其TF-IDF值排序,提取贡献较大的词构成特征词集合。
1.3 构建分类模型本文采用朴素贝叶斯方法中的多项伯努利模型(multi-variate Bernoulli model)建模,预测POI所属类别[13]。贝叶斯模型假设词项之间相互独立,即一个词的出现与否不影响另一个词出现的概率。其公式为:
| $ p(y|x) = \frac{{p(y)p(x|y)}}{{p(x)}} \sim p(x|y) $ | (6) |
即y在已知x下发生的概率与x在已知y条件下发生的概率大致相同。已知y条件下,事件X=(x1, x2, …, xn)发生的概率为:
| $ \begin{array}{l} p(x|y) = p({x_1}, {x_2}, \cdots , {x_n}|y) = \\ p({x_1}|y)p({x_2}|y), \cdots , p({x_n}|y) \end{array} $ | (7) |
多项伯努利模型会遍历向量中的所有特征值,对象X属于某一类别的概率为:
| $ \begin{array}{l} p(X|{C_j}) = \prod\nolimits_{i = 1}^{|n|} \zeta ({t_i} \in X)p({t_i}|{C_j}) + \\ \zeta ({t_i} \notin X)(1 - p({t_i}|{C_j})) \end{array} $ | (8) |
式中,ζ(Condition)为条件函数,表示当括号内条件成立时,函数值为1,否则为0;n代表向量长度,即所提取的特征词数量;p(X|Cj)代表对象X属于类Cj的概率;p(ti|Cj)代表词项ti在类Cj中出现的概率。计算获得每个POI分别属于各个类别的概率,并取最大值,即可获得POI预测分类的结果。
2 实验结果与精度评价 2.1 实验环境及步骤本文基于R语言环境进行实验,利用包括Rwordseg、entropy等R包进行中文分词、信息熵计算操作。实验数据获取自新浪微博API,利用public_timeline接口获取13 455条POI记录进行实验。其实验的具体步骤如下:
1) 利用Rwordseg分词包对13 455条POI的名称进行中文分词,并统计词频,筛选出词频大于20的分词,保存作为原始特征集;
2) 遍历所有POI,用中文分词获得原始特征集的词作为列,构建向量空间模型(vector space model, VSM),生成特征矩阵;
3) 计算信息增益,筛选特征词,共获得122个结果,作为特征词项;
4) 筛选出VSM中不存在特征项的POI记录;
5) 统计每个类别的POI出现的频率;
6) 统计每个特征词在每个类别下出现的频率;
7) 对每条POI计算其分属于各个类别的概率,并预测其类别;
8) 获取不包含特征词的POI对应的点评记录并分词;
9) 遍历所有词汇,计算TF-IDF值,提取特征词集合;
10)基于朴素贝叶斯模型,利用点评信息进行辅助类别预测。
2.2 实验结果实验中,样本POI被分为餐饮住宿、出行、户外活动、教育机构、社会机构、室内娱乐等6类。此POI分类为新浪微博系统的POI分类,经人工核验确认是正确的。
如表 1所示,仅用POI名称进行分类,实验获得正确结果7 549条,占样本总数的56.11%;而采用改进后的实验方法,即利用点评信息辅助POI进行自动分类,实验获得正确结果8 655条,占样本总数的64.33%。本文方法与仅用POI名称进行分类相比较,分类精度提高了8.22%。具体6大类中被正确分类和错误标记的数目如表 2和表 3。筛选出两种方法的误差项进行分析,发现多数误分类的POI都被标记为第5类社会机构。观察其向量空间模型,发现误分类为第5类的POI中多数未被任何特征项标记。此外,点评信息辅助的POI自动分类方法对第1类餐饮住宿POI的识别假正率很高。查阅点评数据发现,用户经常是在其他几类POI处进行餐饮和住宿相关的描述。
| 表 1 实验结果及精度 Tab.1 Experiment Result and Accuracy |
![]() |
表 2、表 3中,N代表POI数据中实际属于每个类别的记录数目;TN代表被分类器正确分类为该类别的POI数目;FN代表被分类器错误归为该类别的POI数目。
| 表 2 POI名称分类实验结果 Tab.2 Experiment Result of Classification by POI Title |
![]() |
| 表 3 点评信息辅助的POI自动分类试验结果 Tab.3 Experiment Result of POI Automatic Classification Assisted by Comment Information |
![]() |
2.3 评价指标及分析
基于上述实验结果,利用准确率(Precision)、召回率(Recall)和F值来评价实验结果。准确率和召回率被广泛应用于信息检索和统计分类领域,用以评价实验结果的好坏。具体定义如下:
| $ {\rm{Precision}} = \frac{{{p^ + }}}{{{p^ + } + {p^ - }}} $ | (9) |
| $ {\rm{Recall}} = \frac{{{p^ + } + {p^ - }}}{{|N|}} $ | (10) |
| $ {\rm{F}}值 = \frac{{2 \times {\rm{Precision}} \times {\rm{Recall}}}}{{{\rm{Precision}} + {\rm{Recall}}}} $ | (11) |
式中,p+代表正确分类为该类的数目;p-代表被错误归至该类的数目;|N|代表实际属于该类别的对象数目;F值作为综合准确率和召回率两项指标的评估指标,能够综合反映实验的整体效果。
此外,本次实验以平均提高率(average improvement rate, AIR)来衡量本文方法较之原方法在POI分类上的加强效果。
| $ {\rm{AIR}} = \frac{{{m_{{\rm{ours}}}} - {m_{{\rm{baseline}}}}}}{{{m_{{\rm{baseline}}}}}} $ | (12) |
式中,mours代表采用本文方法正确分类的POI数目;mbaseline表示仅用POI名称分类能够获得的正确分类POI数目。
实验分析结果如下:餐饮住宿平均提高率为116.07%;出行为94.21%;户外活动为102.48%;教育机构为39.64%;社会机构为-18.07%;室内娱乐为46.74%。
综上所述,单纯用POI名称进行分类的准确度普遍高于点评信息辅助的POI自动分类,但该方法获得的实验结果召回率明显低于点评信息辅助的新方法。其每一类点中被正确分类的比率、各类别结果的F值都低于本文方法。并且,仅用POI名称进行分类的结果在社会机构类别下存在异常值,分类的准确度较其他类别明显偏低,而该类别的召回率明显偏高。对该类结果进行分析发现,在进行特征提取后,空间向量模型中不含特征词标记的POI(即特征矢量全部为0)全部被归于第5类。
排除异常现象后可以看出,仅用POI名称进行分类,所获得的分类结果具有较高的可信度,但整体召回率较低,该方法所使用的分类规则过于严格,对实验数据要求过高,需要从POI中提取到足够数量的特征,而这样的数据要求对于当前可获取的POI数据来说是不切实际的。采用点评信息辅助的新方法对POI进行分类后,尽管结果的准确率普遍低于POI名称分类,但其分类结果的召回率明显提高,说明有更多的POI点被正确分类,且新方法中也未出现单个类别的异常值。F值也说明点评信息辅助的POI自动分类方法在整体上具有较好的分类精度。
POI的名称包含的信息与该点的语义信息契合度较高,具有较高的分类精度,但POI的名称属于短文本,可能存在特征难以提取的问题,导致分类精度降低。对于难以提取特征的POI记录,利用点评信息辅助进行POI分类修正了由于特征信息过少造成的分类结果异常,能够满足对大数量、多类型POI进行分类的需要。
4 结束语考虑现有POI数据分类方法存在的缺陷,本文基于机器学习算法,提出点评信息辅助的POI自动分类方法,较单纯利用POI名称进行分类,在分类精度上有显著提高。点评信息辅助的POI自动分类方法能够满足对大数量、多类别POI进行分类的需求,有效改善机器学习中模型过分拟合的现象。同时,点评信息辅助的分类方法能够有效弥补名称不规范或文本过短带来的特征缺失和分类不准确的问题。
| [1] |
吴长春, 刘阳, 白云. 谈兴趣点在城市管理信息系统中的具体应用[J]. 测绘与空间地理信息, 2008, 31(2): 134-136. DOI:10.3969/j.issn.1672-5867.2008.02.043 |
| [2] |
Lv M, Chen L, Chen G. Mining User Similarity Based on Routine Activities[J]. Information Sciences, 2013, 236(1): 17-32. |
| [3] |
杜胜兰, 李枫, 黄长青, 等. 基于轨迹数据的武汉大学学生行为规律分析[J]. 测绘地理信息, 2017, 42(1): 91-95. |
| [4] |
陈德权. 基于中文分词的地名兴趣点简称的研究[J]. 测绘地理信息, 2017, 42(6): 91-93. |
| [5] |
Jiang S, Alves A, Rodrigues F, et al. Mining Point-of-interest Data from Social Networks for Urban Land Use Classification and Disaggregation[J]. Computers Environment&Urban Systems, 2015, 53: 36-46. |
| [6] |
Moreira A, Santos M Y, Carneiro S. Density-based Clustering Algorithms—DBSCAN and SNN[J]. University of Minho, Portugal, 2005. |
| [7] |
Sebastiani F. Machine Learning in Automated Text Categorization[J]. ACM Computing Surveys (CSUR), 2002, 34(1): 1-47. DOI:10.1145/505282.505283 |
| [8] |
Lian D, Xie X. Collaborative Activity Recognition via Check-in History[C]. Proceedings of the 3rd ACM SIGSPATIAL International Workshop on Location-Based Social Networks, ACM, New York, 2011
|
| [9] |
Yuan J, Zheng Y, Xie X. Discovering Regions of Different Functions in a City Using Human Mobility and POIs[C]. Proceedings of the 18th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, ACM, New York, 2012
|
| [10] |
McCallum A, Nigam K. A Comparison of Event Models for Naive Bayes Text Classification[C]. AAAI-98 Workshop on Learning for Text Categorization, Madison, Wisconsin, 1998
|
| [11] |
Johnson D E, Oles F J, Zhang T, et al. A Decision-tree-based Symbolic Rule Induction System for Text Categorization[J]. IBM Systems Journal, 2002, 41(3): 428-437. DOI:10.1147/sj.413.0428 |
| [12] |
Joachims T. Text Categorization with Support Vector Machines:Learning with Many Relevantfeatures[M]. Berlin: Springer, 1998.
|
| [13] |
Juan A, Vidal E. On the Use of Bernoulli Mixture Models for Text Classification[J]. Pattern Recognition, 2002, 35(12): 2705-2710. DOI:10.1016/S0031-3203(01)00242-4 |
2018, Vol. 43






