上周去实验室,老师让我去学习一下这篇论文以及配套的代码。因此我决定开博客记录一下学习的笔记,只是短浅的解析,如有错误还请见谅和指出。
为自己科普一下
首先看这篇论文的时候,一开始还挺费劲的,因为有些术语没接触过,还是查了不少相关的资料。
【Top-k】
这篇论文的主题是解决top-k问题的高效检索方法。首先什么是top-k问题呢?简单的来说就是从大量数据中获取符合检索要求的最大(或最小)的K个数据。一般的算法中都采用heap来检索。文章的核心就是根据POI(point of interest)点的位置以及文本相关性来构建IR树,然后再进行高效的检索。
【倒排文件(Inverted file)】
倒排文件简单的说是用于复杂的查询,是一种特殊的文件结构。倒排文件用文档的关键词作为索引。有两种类型,一种是基于属性的倒排文件,一种是基于文本的倒排文件。
【LKT(location-aware top-k text retrieval(LkT) query)】
是文章定义的一种基于位置感知的查询。返回的结果是已经排好序的k个对象
问题提出
假设一个人,位于Q的位置,他要查找“中国餐厅”,因此发出一个Q查询。那么根据top-1,寻找出最符合的那一个对象,是哪一个呢?
已知给出每个对象对应的term矩阵如下:
解决方案
贯穿文章的一个例子就是 假定一个数据集中有8个Objects, 每一个Object有这样的向量定义(O.loc ,O.doc),O.loc是表示位置信息,O.doc为文本描述对象的信息。
根据语言模型(未深究来历)可以得出一个用于排序的函数:
解释这个公式:P就是出现的概率,Q是一句查询,比如Q:keywords = (Chinese restaurant),那么P就是为"Chinese"、"restaurant"在O.doc中出现的概率。
结合距离和文本,得到Objects最终的排序函数为:
maxD和maxP是用来标准化的。
是Q.loc与O.loc之间的欧几里得距离。 </