CN106970991B - 相似应用的识别方法、装置和应用搜索推荐方法、服务器 - Google Patents
相似应用的识别方法、装置和应用搜索推荐方法、服务器 Download PDFInfo
- Publication number
- CN106970991B CN106970991B CN201710208184.4A CN201710208184A CN106970991B CN 106970991 B CN106970991 B CN 106970991B CN 201710208184 A CN201710208184 A CN 201710208184A CN 106970991 B CN106970991 B CN 106970991B
- Authority
- CN
- China
- Prior art keywords
- application
- applications
- similar
- search
- query session
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 72
- 238000005065 mining Methods 0.000 claims abstract description 24
- 238000012549 training Methods 0.000 claims description 56
- 239000013598 vector Substances 0.000 claims description 39
- 238000013135 deep learning Methods 0.000 claims description 13
- 238000012216 screening Methods 0.000 claims description 13
- 230000002829 reductive effect Effects 0.000 abstract description 12
- 230000000694 effects Effects 0.000 abstract description 10
- 238000002372 labelling Methods 0.000 abstract description 8
- 238000010801 machine learning Methods 0.000 abstract description 6
- 230000006870 function Effects 0.000 description 22
- 238000004364 calculation method Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 14
- 238000012937 correction Methods 0.000 description 11
- 230000011218 segmentation Effects 0.000 description 11
- 238000004422 calculation algorithm Methods 0.000 description 9
- 238000004140 cleaning Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000007781 pre-processing Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 101100264195 Caenorhabditis elegans app-1 gene Proteins 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 230000001932 seasonal effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 240000008005 Crotalaria incana Species 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/36—Creation of semantic tools, e.g. ontology or thesauri
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了相似应用的识别方法、装置和应用搜索推荐方法、服务器,其中相似应用的识别方法包括:从应用搜索引擎的查询会话日志中获取各查询会话中的搜索词和下载的应用;根据各查询会话中的搜索词和下载的应用,挖掘出各应用的语义表示信息;根据各应用的语义表示信息识别出该应用的一个或多个相似应用,将相似应用加入该应用的相似应用集合。该技术方案采用大数据样本机器学习的方式,从用户的使用情况中挖掘出应用的语义表示信息,相较于人工标注的方式,减少作弊带来的负面影响,显著提高了相似应用识别的准确度,同时减少了人工成本并大大提升了效率。
Description
技术领域
本发明涉及数据挖掘领域,具体涉及相似应用的识别方法、装置和应用搜索推荐方法、服务器。
背景技术
目前许多应用商店提供了将应用进行分类的功能,用户可以浏览各个类别下的应用,从中选择喜欢的应用进行下载。例如,苹果商店App Store提供了游戏、教育、儿童、购物等多个分类。
然而,实现这一功能的前提是能够将应用划分至相应的分类下,也就是能够识别出相似应用,现有技术中,实现识别相似应用的方法是使用应用功能标签,将功能标签相同的应用认为是相似应用。这种方法主要依赖人工标注和开发者提供的应用功能标签,人工标注的代价很大,覆盖率也低,只能标注一部分热门的应用;开发者提供的应用介绍,作弊信息较多以欺骗搜索引擎获取高的搜索排名,可靠性较差。因此传统挖掘相似应用的方法有很大局限性,准确率仅在70%左右。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的相似应用的识别方法、装置和应用搜索推荐方法、服务器。
依据本发明的一个方面,提供了一种相似应用的识别方法,包括:
从应用搜索引擎的查询会话日志中获取各查询会话中的搜索词和下载的应用;
根据各查询会话中的搜索词和下载的应用,挖掘出各应用的语义表示信息;
根据各应用的语义表示信息识别出该应用的一个或多个相似应用,将相似应用加入该应用的相似应用集合。
可选地,所述从应用搜索引擎的查询会话日志中获取各查询会话中的搜索词和下载的应用包括:
从应用搜索引擎的查询会话日志中,获取符合预设时间长度的查询会话中的搜索词和下载的应用。
可选地,所述根据各查询会话中的搜索词和下载的应用,挖掘出各应用的语义表示信息包括:
对于各查询会话,将该查询会话中的搜索词按照顺序排成一个序列;如果该序列中的一个搜索词对应于应用下载操作,将所下载的应用的名称插入到该序列中的相应搜索词的后面相邻位置,从而形成该查询会话对应的训练语料;
将所有训练语料汇总为训练语料集合;
利用深度学习工具包word2vec对所述训练语料集合进行训练,将每条训练语料看做一个单词,为各应用生成N维向量形式的语义表示信息,其中,N为自然数。
可选地,所述利用深度学习工具包word2vec对所述训练语料集合进行训练使用下述参数:
-cbow 1-size 300-window 8-negative 25-hs 0-sample 1e-4-threads 24-binary 0-iter 15。
可选地,所述根据各应用的语义表示信息识别出该应用的一个或多个相似应用包括:
对各应用,计算该应用的N维向量与其他应用的N维向量的余弦相似度;
所述将相似应用加入该应用的相似应用集合包括:选取与该应用的余弦相似度最高的C个应用作为该应用的相似应用,其中,C为自然数。
可选地,计算其与其他应用的余弦相似度包括:
将所有应用的N维向量形式的语义表示信息存储到k-d树中;
在k-d树中计算与目标应用相距在预设范围内的一个或多个应用与该目标应用的余弦相似度。
可选地,所述选取与该应用的余弦相似度最高的C个应用作为该应用的相似应用包括:
从应用搜索引擎的查询会话日志中统计该应用的下载次数S;
根据预设的折线函数{S1:C1;……Si:Ci;……Sj:Cj;……}和下述公式确定C的取值:
其中,Si≤S≤Sj,Ci≤C≤Cj。
可选地,该方法还包括:
对各应用,根据该应用的标签属性,从该应用的相似应用集合中筛除标签差异在预设范围外的应用。
可选地,所述从该应用的相似应用集合中筛除标签差异在预设范围外的应用包括:
计算该应用与目标相似应用的标签语义相似度;
将标签语义相似度低于预设阈值的目标相似应用从该应用的相似应用集合中删除。
依据本发明的另一方面,提供了一种应用搜索推荐方法,包括:
接收用户输入的搜索词,根据所述搜索词确定目标应用;
从目标应用的相似应用集合中获取目标应用的一个或多个相似应用,将所述目标应用和相似应用推荐给用户,其中,所述目标应用的相似应用集合是通过如上述任一项所述的方法得到的。
依据本发明的又一方面,提供了一种相似应用的识别装置,包括:
获取单元,适于从应用搜索引擎的查询会话日志中获取各查询会话中的搜索词和下载的应用;
挖掘单元,适于根据各查询会话中的搜索词和下载的应用,挖掘出各应用的语义表示信息;
识别单元,适于根据各应用的语义表示信息识别出该应用的一个或多个相似应用,将相似应用加入该应用的相似应用集合。
可选地,所述获取单元,适于从应用搜索引擎的查询会话日志中,获取符合预设时间长度的查询会话中的搜索词和下载的应用。
可选地,所述挖掘单元,适于对于各查询会话,将该查询会话中的搜索词按照顺序排成一个序列;如果该序列中的一个搜索词对应于应用下载操作,将所下载的应用的名称插入到该序列中的相应搜索词的后面相邻位置,从而形成该查询会话对应的训练语料;将所有训练语料汇总为训练语料集合;利用深度学习工具包word2vec对所述训练语料集合进行训练,将每条训练语料看做一个单词,为各应用生成N维向量形式的语义表示信息,其中,N为自然数。
可选地,所述挖掘单元,适于在利用深度学习工具包word2vec对所述训练语料集合进行训练时使用下述参数:-cbow 1-size 300-window 8-negative 25-hs 0-sample1e-4-threads 24-binary 0-iter 15。
可选地,所述识别单元,适于对各应用,计算该应用的N维向量与其他应用的N维向量的余弦相似度;选取与该应用的余弦相似度最高的C个应用作为该应用的相似应用,其中,C为自然数。
可选地,所述识别单元,适于将所有应用的N维向量形式的语义表示信息存储到k-d树中;在k-d树中计算与目标应用相距在预设范围内的一个或多个应用与该目标应用的余弦相似度。
可选地,所述识别单元,适于从应用搜索引擎的查询会话日志中统计该应用的下载次数S;根据预设的折线函数{S1:C1;……Si:Ci;……Sj:Cj;……}和下述公式确定C的取值:其中,Si≤S≤Sj,Ci≤C≤Cj。
可选地,该装置还包括:
筛除单元,适于对各应用,根据该应用的标签属性,从该应用的相似应用集合中筛除标签差异在预设范围外的应用。
可选地,所述筛除单元,适于计算该应用与目标相似应用的标签语义相似度;将标签语义相似度低于预设阈值的目标相似应用从该应用的相似应用集合中删除。
依据本发明的再一方面,提供了一种应用搜索推荐服务器,包括:
搜索词接收单元,适于接收用户输入的搜索词,根据所述搜索词确定目标应用;
推荐单元,适于从目标应用的相似应用集合中获取目标应用的一个或多个相似应用,将所述目标应用和相似应用推荐给用户,其中,所述目标应用的相似应用集合是通过如上述任一项所述的相似应用的识别装置得到的。
由上述可知,本发明的技术方案,利用用户在使用应用搜索引擎过程中产生的查询会话日志,获取各查询会话中的搜索词和下载的应用,进一步挖掘出各应用的语义表示信息,基于此识别出应用的相似应用,并形成与该应用对应的相似应用集合,可以用于进行应用搜索推荐等。该技术方案采用大数据样本机器学习的方式,从用户的使用情况中挖掘出应用的语义表示信息,相较于人工标注的方式,减少作弊带来的负面影响,显著提高了相似应用识别的准确度,同时减少了人工成本并大大提升了效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种相似应用的识别方法的流程示意图;
图2示出了根据本发明一个实施例的一种应用搜索推荐方法的流程示意图;
图3示出了根据本发明一个实施例的一种相似应用的识别装置的结构示意图;
图4示出了根据本发明一个实施例的一种应用搜索推荐服务器的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的一种相似应用的识别方法的流程示意图,如图1所示,该方法包括:
步骤S110,从应用搜索引擎的查询会话日志中获取各查询会话中的搜索词和下载的应用。
这里的应用搜索引擎可以是移动端提供的应用搜索引擎服务,例如当前的各类应用商店中都提供了应用搜索功能,其中就是利用了应用搜索引擎。用户在搜索框中输入查询词,就可以获得应用搜索服务器返回的推荐应用。其中用户输入搜索词和用户下载应用这两种行为对于挖掘应用的语义表示信息有着很高的价值。例如用户在搜索“360”这一搜索词后,下载了“360手机助手”这一应用,那么说明“360”与“360手机助手”的相关性是很高的,也就是语义关联性强。又例如用户在搜索“订餐”这一搜索词后,下载了“饿了么”、“百度外卖”和“美团外卖”这三个应用,说明这三个应用的相关性也很高,语义关联性也很强。基于这一特点,本发明提出了从应用搜索引擎的查询会话日志(session log)中挖掘应用语义表示信息的技术方案。
步骤S120,根据各查询会话中的搜索词和下载的应用,挖掘出各应用的语义表示信息。
步骤S130,根据各应用的语义表示信息识别出该应用的一个或多个相似应用,将相似应用加入该应用的相似应用集合。
可见,图1所示的方法,利用用户在使用应用搜索引擎过程中产生的查询会话日志,获取各查询会话中的搜索词和下载的应用,进一步挖掘出各应用的语义表示信息,基于此识别出应用的相似应用,并形成与该应用对应的相似应用集合,可以用于进行应用搜索推荐等。该技术方案采用大数据样本机器学习的方式,从用户的使用情况中挖掘出应用的语义表示信息,相较于人工标注的方式,减少作弊带来的负面影响,显著提高了相似应用识别的准确度,同时减少了人工成本并大大提升了效率。
在本发明的一个实施例中,上述方法中,从应用搜索引擎的查询会话日志中获取各查询会话中的搜索词和下载的应用包括:从应用搜索引擎的查询会话日志中,获取符合预设时间长度的查询会话中的搜索词和下载的应用。
一方面,考虑到用户输入搜索词——浏览搜索结果——下载应用这一过程如果要确保搜索词与下载的应用之间的语义关联性较强,那么就需要确保这一过程的时间不会太长。例如用户上周输入的搜索词和这周下载的应用一般而言没什么关联性。一种方法是将session按天为单位进行组织,这是考虑到用户在一天内提交的搜索词之间有很强的语义关联,搜索的需求较窄,只寻找某个单一功能的应用,往往围绕着一个单一需求不断改写搜索词,这是应用搜索引擎的一个重要特征,也是垂直搜索领域的一个共有特征。
另一方面,在样本数据的选取上,样本数量越大,挖掘处的语义表示信息也会越准确,但是挖掘时间也会较长。一种方法是选用一年内的session log作为样本进行挖掘。
在本发明的一个实施例中,上述方法中,根据各查询会话中的搜索词和下载的应用,挖掘出各应用的语义表示信息包括:对于各查询会话,将该查询会话中的搜索词按照顺序排成一个序列;如果该序列中的一个搜索词对应于应用下载操作,将所下载的应用的名称插入到该序列中的相应搜索词的后面相邻位置,从而形成该查询会话对应的训练语料;将所有训练语料汇总为训练语料集合;利用深度学习工具包word2vec对训练语料集合进行训练,将每条训练语料看做一个单词,为各应用生成N维向量形式的语义表示信息,其中,N为自然数。
一个session是用户在某个时间段内的连续行为记录。以上文提及的一天为例,那么与一个用户对应的一个session按时间先后顺序记录了该用户在一天内输入的搜索词和下载行为。那么首先从该session中提取出所有搜索词,按记录的顺序(也就是时间顺序)排成一个序列。如果用户在输入一个搜索词后进行了应用下载,也就是该搜索词对应于应用下载操作,那么就将下载的应用的名称插入到该序列中的相应搜索词的后面相邻位置,如果有多个,那么也按照时间顺序进行排列。例如:一个session中记录了query1、query2、query3这三个搜索词,用户在提交query2后下载了一个app1,在提交query3后下载了一个app2、app3,把app1拼写在query2后、query3前面,app2、app3拼接在query3后面,那么最终得到的与该session对应的训练语料为query1、query2、app1、query3、app2、app3。表1示出了十条训练语料的示例:
表1
以某应用搜索引擎一年获取到的session log作为样本数据为例,这样大概得到了十亿条训练语料。可以看出,虽然使用了与全网用户的session log,但同一个session中的相同query不做去重处理,不同session中的相同query也不合并,总之不同的session之间没有任何关系。最后可以将将所有训练语料汇总为训练语料集合,例如将上面得到的十亿条训练语料存储到txt文档中。
然后,利用深度学习工具包word2vec对训练语料集合进行训练,将每条训练语料看做一个单词,为各应用生成N维向量形式的语义表示信息,其中,N为自然数。也就是说,虽然一条训练语料可能包含多个搜索词和多个下载的应用的名称,但是不分词,将query和app名称作为一个单词看待。在一个实施例中,实现了为每个query和app生成一个300维的向量,作为语义表示信息。具体地,利用深度学习工具包word2vec对训练语料集合进行训练使用下述参数:-cbow 1-size 300-window 8-negative 25-hs 0-sample 1e-4-threads24-binary 0-iter 15。最终得到约600万条app和query的语义表示信息,一些例子见表2所示。
表2
其中,对本发明技术方案更为有用的是应用的语义表示信息。在得到了各应用的语义表示信息后,可以基于此对目标应用识别出一个或多个相似应用。具体方法可以有很多种,下面给出了一种根据各应用的语义表示信息识别出应用的一个或多个相似应用的实施例:根据各应用的语义表示信息识别出该应用的一个或多个相似应用包括:对各应用,计算该应用的N维向量与其他应用的N维向量的余弦相似度;将相似应用加入该应用的相似应用集合包括:选取与该应用的余弦相似度最高的C个应用作为该应用的相似应用,其中,C为自然数。
计算余弦相似度的方法可以采用通用的方法,而且很容易知道,两个应用语义表示信息(N维向量)的余弦相似度越高,那么依据本发明的技术方案,两个应用相似度也就越高。下面的表3给出了与应用“沈阳公交查询”的余弦相似度最高的前20个应用示例,表4给出了与应用“滴滴打车”的余弦相似度最高的前30个应用示例。需要说明的是,为了使得本发明的技术方案更加明晰,在实施例中使用了一些实际存在的应用名称,本发明不对这些应用进行任何商业性的推荐和评价,仅用于说明本发明技术方案所实现的技术效果。
表3
表4
表4(续)
找乘客 | 36016 1317.75 0.435478 |
嘀嗒拼车 | 233 1319.3 0.625456 |
易达出租车 | 50920 1325.54 0.438984 |
打车助手 | 95856 1330.66 0.466033 |
由于以常规方法计算余弦相似度的复杂度较高,下面的实施例中还提供了一种提供余弦相似度计算效率的方法:在本发明的一个实施例中中,对各应用,计算其与其他应用的余弦相似度包括:将所有应用的N维向量形式的语义表示信息存储到k-d树中;在k-d树中计算与目标应用相距在预设范围内的一个或多个应用与该目标应用的余弦相似度。
k-d树(k-dimensional tree),是一种分割k维数据空间的数据结构。在本实施例中将N维向量形式的语义表示信息存储到k-d树中,只需要针对k-d树中局部区域内的一小部分App进行计算,大幅度降低了聚类相似应用的时间复杂度,这也是基于“识别相似应用”这一需求进行选择的。
这样最终可以实现的效果是:对于热门应用,相似度最高的前15个应用的识别准确度可以达到84.4%,相比于现有技术能够实现的70%的相似应用的识别准确度有了显著提升。
通过进一步观察可以发现,如表4中示出了“滴滴课堂”和“滴滴找房”这两个应用作为“滴滴打车”的相似应用,然而这两个应用的功能并不同于“滴滴打车”。因此如果能对结果进行进一步的过滤,就能进一步提升相似应用的识别准确度。在本发明的一个实施例中,上述方法还包括:对各应用,根据该应用的标签属性,从该应用的相似应用集合中筛除标签差异在预设范围外的应用。
其中,应用的标签属性可以是通过预先构建的标签体系得到的。下面对构建各应用的标签体系的过程进行一些介绍。
在一个实施例中,构建标签体系包括:获取各应用的摘要;从应用搜索日志中获取关于各应用的搜索词;根据各应用的摘要、搜索词以及预设策略,挖掘出各应用的标签体系。具体地,根据各应用的摘要、搜索词以及预设策略,挖掘出各应用的标签体系包括:根据各应用的摘要和搜索词,获得训练语料集合;将训练语料集合输入至LDA模型中进行训练,得到LDA模型输出的应用-主题概率分布结果以及主题-关键词概率分布结果;根据应用-主题概率分布结果和主题-关键词概率分布结果,计算得到各应用的标签体系。
需要说明的是,LDA(Latent Dirichlet Allocation)是一种文档主题生成模型,它是一种非监督机器学习技术,可以用来识别大规模文档集(document collection)或语料库(corpus)中潜藏的主题信息。它采用了词袋(bag of words)的方法,这种方法将每一篇文档视为一个词频向量,从而将文本信息转化为了易于建模的数字信息。由于LDA模型在长文本中表现较好,用在短文本上效果差,但是应用摘要很短小,是一种典型的短文本,为了使LDA模型的应用效果达到最佳,引入应用与用户的交互历史(即搜索词,下文均称为搜索词)信息对应用摘要进行扩展,即将应用摘要的短文本扩展成适于LDA模型的长文本。其中,搜索词不仅包含引擎能检索到该应用的词项,还包括其他词项,这些词项恰好克服了应用摘要短文本长度过短带来的同义异形词频次过低等问题。
在本实施例中,LDA模型选用GibbsLDA++版。在移动终端应用的应用场景下需要修改一下GibbsLDA++源代码,将一个应用中同一个词项的主题初始化为同一个。在原来的代码中是每一个词项都随机初始化成一个主题,导致同一个重复词项会初始化为多个主题,因为在移动终端应用场景下,一个应用的标签往往都是明确的,鲜有歧义性,所以同一个词项初始化成同一个主题符合移动终端应用的应用场景,也能改善LDA模型的效果。
为了使上述方案更加清晰,在这里,对提到的LDA模型输出的应用-主题概率分布结果以及主题-关键词概率分布结果进行详细的举例说明。例如,LDA训练选择120个主题,迭代300轮,生成两个文件,其中,第一个文件是主题-关键词概率分布结果,如表5所示,示出了第四个主题分别与22个关键词之间的对应概率:
表5
表5(续)
语言 | 0.018487 |
字典 | 0.018359 |
韩语 | 0.016300 |
听力 | 0.015541 |
法语 | 0.013121 |
翻译 | 0.011656 |
四级 | 0.010752 |
语法 | 0.010719 |
德语 | 0.009846 |
短语 | 0.009667 |
句子 | 0.008547 |
记忆 | 0.008033 |
汉语 | 0.007244 |
第二个文件是应用-主题概率分布结果,如表6所示,示出了应用ID为5427的应用分别与6个主题(主题ID分别为134、189、139、126、14、18)之间的对应概率。
表6
为了使上述方案更加清楚,下面结合一个具体的例子进行说明。例如“微信”的摘要包括“微信(WeChat)是腾讯公司于2011年1月21日推出的一个为智能终端提供即时通讯服务的免费应用程序。微信支持跨通信运营商、跨操作系统平台通过网络快速发送免费(需消耗少量网络流量)语音短信、视频、图片和文字”,微信的搜索词包括“微信、免费的即时通讯、腾讯、朋友圈、公众平台、消息推送、摇一摇、附近的人、扫二维码方式添加好友、多人通话”。
那么训练语料集合包括上述“微信”的所有摘要内容和“微信”的搜索词的所有内容;将的训练语料集合输入的LDA模型中进行训练,如果LDA模型针对“微信”的训练语料集合生成的主题包括社交,生成的关键字包括聊天、语音、电话、电话本、社交、交友、通讯、通讯录、朋友,那么得到LDA模型输出的该应用-主题概率分布结果包括P1.1(微信-社交);得到LDA模型输出的该主题-关键词分布结果为P2.1(微信-聊天)、P2.2(微信-语音)、P2.3(微信-电话)、P2.4(微信-电话本)、P2.5(微信-社交)、P2.6(微信-交友)、P2.7(微信-通讯)、P2.8(微信-通讯录)、P2.9(微信-朋友);根据的P1.1(微信-社交)和P2.1(微信-聊天)、P2.2(微信-语音)、P2.3(微信-电话)、P2.4(微信-电话本)、P2.5(微信-社交)、P2.6(微信-交友)、P2.7(微信-通讯)、P2.8(微信-通讯录)、P2.9(微信-朋友)计算得到微信的标签体系如表7所示。
表7
由此可知,根据各应用的摘要和搜索词,获得训练语料集合,然后通过LDA模型对获取的训练语料集合进行处理,并生成相应的应用-主题概率分布结果和主题-关键词概率分布结果,进而根据应用-主题概率分布结果和主题-关键词概率分布结果,计算得到各应用的标签体系,实现了对应用内容或者功能描述文本的比较全面、准确的表示。
由于在现有应用的实际推广中,应用的标签直接由开发者提交,在提交应用标签的过程中,应用的开发者为了让自己的应用得到广大客户的安装和使用,在应用的标签描述中提交了大量的与应用无关的内容,导致虚假信息标签现象长期存在,严重影响了应用搜索引擎的搜索质量,大大降低了用户搜索体验,为了解决这个问题,在一个实施例中,根据各应用的摘要和搜索词,获得训练语料集合包括:对于每个应用,从该应用的摘要中提取首段文字或前预设数量个句子的文字;将提取出的文字与该应用的搜索词共同作为该应用的原始语料;各应用的原始语料构成原始语料集合;对原始语料集合进行预处理,获得训练语料集合。
例如,针对“微信”这个应用,获取“微信”的摘要包括:“微信是一款社交软件。微信提供公众平台、朋友圈、消息推送等功能,用户可以通过“摇一摇”、“搜索号码”、“附近的人”、扫二维码方式添加好友和关注公众平台,同时微信将内容分享给好友以及将用户看到的精彩内容分享到微信朋友圈。微信支持跨通信运营商、跨操作系统平台通过网络快速发送免费(需消耗少量网络流量)语音短信、视频、图片和文字,同时,也可以使用通过共享流媒体内容的资料和基于位置的社交插件“摇一摇”、“漂流瓶”、“朋友圈”、“公众平台”、“语音记事本”等服务插件。截止到2015年第一季度,微信已经覆盖中国90%以上的智能手机,月活跃用户达到5.49亿,用户覆盖200多个国家、超过20种语言。此外,各品牌的微信公众账号总数已经超过800万个,移动应用对接数量超过85000个,微信支付用户则达到了4亿左右。”
从上述的“微信”的摘要中提取前一句话包括“微信是一款社交软件”,同时获取“微信”的搜索词包括“聊天、语音、电话、电话本、社交、交友、通讯、通讯录、朋友”,将上述的“微信是一款社交软件”和“聊天、语音、电话、电话本、社交、交友、通讯、通讯录、朋友”作为“微信”的原始语料;通过获取“微信”原始语料的方式获取其他应用的原始预料,所有应用的原始语料构成原始语料集合;对原始语料集合进行预处理,获得训练语料集合。
具体地,对原始语料集合进行预处理包括:在原始语料集合中,对于每个原始语料,对原始语料进行分词处理,得到包含多个词项的分词结果;查找由分词结果中的相邻词项构成的短语;保留短语、分词结果中属于名词的词项和属于动词的词项,作为该原始语料对应保留的关键词。
例如,在原始语料集合中,“微信”的原始语料集合为“微信是一款社交软件、聊天、语音、打电话、电话本、社交、交友、通讯、通讯录、朋友”,对“微信”的原始语料进行分词处理,得到包含多个词项的分词结果包括“微信、是、一款、社交、软件、聊天、语音、打电话、电话本、社交、交友、通讯、通讯录、朋友”,查找由分词结果中的相邻词项构成的短语包括“微信、一款、社交、软件、聊天、语音、打电话、电话本、社交、交友、通讯、通讯录、朋友”,保留短语、分词结果中属于名词的词项和属于动词的词项,作为该原始语料对应保留的关键词,则“微信”的关键词包括“微信、社交、聊天、语音、打电话、电话本、社交、交友、通讯、通讯录、朋友”。
其中,为了判断是否构成一个短语,通过计算两个前后词项的紧密度来实现,在一个实施例中,查找由分词结果中的相邻词项构成的短语包括:计算分词结果中的每两个相邻词项的cPMId值,当两个相邻词项的cPMId值大于第一预设阈值时,确定这两个相邻词项构成短语。
例如,设定第一预设阈值为5,获取“百度地图”的分词结果为“省、流量、公交、换乘”,采用cPMId计算方式计算“省、流量”、“流量、公交”和“公交、换乘”的cPMId值,如果计算得到“省、流量”、“公交、换乘”的cPMId值大于5,那么确定“省、流量”、“公交、换乘”构成短语“省流量”、“公交换乘”,如果如果计算得到“流量、公交”cPMId值小于5,那么确定“流量、公交”不能构成短语。
需要说明的是,cPMId计算方式如公式1所示,
公式1中,δ=0.7,d(x,y)表示两个词项x、y的共现频数,d(x)表示词项x的出现频数,d(y)表示词项y的出现频数,D表示总的应用数量。
进一步地,在一个实施例中,对原始语料集合进行预处理还包括:将每个应用的原始物料对应保留的关键词作为该应用的第一阶段训练语料;各应用的第一阶段训练语料构成第一阶段训练语料集合;对第一阶段训练语料集合中的关键词进行数据清洗。
具体地,由于在百万量级的应用中,一个特高频出现的词项是标签的概率较小,同样一个低频出现的词项是标签的可能性也较小,因此我们的数据清洗过程可以是将特高频出现的关键词和特低频出现的关键词过滤掉。
例如,“微信”的原始物料对应保留的关键词关键词包括“微信、社交、聊天、语音、打电话、电话本、社交、交友、通讯、通讯录、朋友”,那么将“微信、社交、聊天、语音、打电话、电话本、社交、交友、通讯、通讯录、朋友”作为“微信”的第一阶段训练语料;那么所有应用的第一阶段训练语料就构成了第一阶段训练语料集合,并对第一阶段训练语料集合中的关键词进行数据清洗,过滤掉第一阶段训练语料集合中低频出现的词项,进而提高了应用搜索引擎的质量。
为了过滤掉第一阶段训练语料集合中特高频出现的关键词和特低频出现的关键词,在一个实施例中,对第一阶段训练语料集合中的关键词进行数据清洗包括:在第一阶段训练语料集合中,对于每个第一阶段训练语料,计算第一阶段训练语料中的每个关键词的TF-IDF值;将TF-IDF值高于第二预设阈值和/或低于第三预设阈值的关键词删除。
上述过程中,采用TF-IDF计算公式计算第一阶段训练语料中的每个关键词的TF-IDF值,实现对数据的进一步清洗。
例如,“微信”的第一阶段训练语料包括“微信、社交、聊天、语音、打电话、电话本、社交、交友、通讯、通讯录、朋友”,利用TF-IDF的计算公式,计算“微信”的第一阶段训练语料中计算每个词项、短语的TF-IDF值,得到TF-IDF(微信)、TF-IDF(社交)、TF-IDF(聊天)、TF-IDF(语音)、TF-IDF(打电话)、TF-IDF(电话本)、TF-IDF(社交)、TF-IDF(交友)、TF-IDF(通讯)、TF-IDF(通讯录)、TF-IDF(朋友);如果TF-IDF(通讯)、TF-IDF(通讯录)、TF-IDF(朋友)高于第二预设阈值和/或低于第三预设阈值,那么将“通讯、通讯录、朋友”删除。需要说明的是,的第二预设阈值和/或低于第三预设阈值与具体语料有关,此处不列出具体阀值。同时之所以应用TF-IDF对数据进行清洗是因为TF-IDF可以很好地评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度,完全满足了数据清洗的需要。
TF-IDF的计算公式如下:
公式2中,count(w,app)是词项w在app中词频,count(w,Corpus)是w在语料中词频,nCorpus是总的app数量,app_count(w)是包含词项w的app数量
进一步地,在一个实施例中,对原始语料集合进行预处理还包括:将每个应用的第一阶段训练语料经数据清洗后剩余的关键词作为该应用的第二阶段训练语料;对于每个应用的第二阶段训练语料,当该应用的第二阶段训练语料中的一个关键词在该应用的名称中出现时,将该关键词在该应用的第二阶段训练语料中重复第四预设阈值次数,得到该应用的训练语料;各应用的训练语料构成训练语料集合。
例如,“微信”的第一阶段训练语料包括“微信、社交、聊天、语音、打电话、电话本、社交、交友、通讯、通讯录、朋友”,经数据清洗处理去除“通讯、通讯录、朋友”,那么剩余的关键词包括“微信、社交、聊天、语音、打电话、电话本、社交、交友”即为“微信”的第二阶段训练语料;
在分析第二阶段语料时发现,表达应用功能或类别的标签往往在名字中出现,如“嘀嘀打车”中的“打车”、“口碑外卖”中的“外卖”、“凹凸租车”中的”租车”、“百度地图”中的“地图”等,为了突出这一类重要标签,在每个应用的语料中,重复列举在应用名字中出现的词项三次,将cPMId值高于10.0的短语也同样重复三次,以提高这些潜在重要短语标签的出现频次,至此,LDA主题模型的训练语料集合构造完成,训练语料集合保存在文件app_corpus_seg_nouns_verb_phrase_filtered_repeat.txt中。
在一个实施例中,根据应用-主题概率分布结果和主题-关键词概率分布结果,计算得到各应用的标签体系包括:
根据应用-主题概率分布结果和主题-关键词概率分布结果,计算得到应用-关键词概率分布结果;根据应用-关键词概率分布结果,对于每个应用,将关键词按照关于该应用的概率从大到小排序,选取前第五预设阈值数目的关键词。
例如,将第五预设阈值设定为8,LDA模型输出的是每个应用下的主题概率分布,以及每个主题下的词项概率分布。为了得到每个应用的标签,分别对主题概率分布、关键词概率分布按照概率从大到小逆序排序,选择每个应用下前50个主题,每个主题下选择前120个关键词,关键词的概率使用主题的概率进行加权排序,每个应用关键词都有一个权重,表示在该应用下的重要性,按照这个标签权重逆序排序,并选取前8个关键词,就得到了LDA产生的标签列表,含有不少噪音,标签的顺序也不准确,如表8所示。
表8
其中,根据应用-主题概率分布结果和主题-关键词概率分布结果,计算得到应用-关键词概率分布结果包括:
对于每个应用,根据应用-主题概率分布结果得到各主题关于该应用的概率;对于每个主题,根据主题-关键词概率分布结果得到各关键词关于该主题的概率;则对于每个关键词,将该关键词关于一个主题的概率与该主题关于一个应用的概率的乘积作为该关键词基于该主题的关于应用的概率;将该关键词基于各主题关于应用的概率之和作为该关键词关于应用的概率。
例如,一个应用C的关键词为A,该关键词A对应的主题包括B1、B2和B3,该关键词A关于一个主题B1的概率为P(A_B1),该主题B1关于一个应用C的概率为P(B1_C),那么P(A_B1)*P(B1_C)就是关键词A基于主题B1关于应用C的概率;那么P(A_B2)*P(B2_C)就是关键词A基于主题B2关于应用C的概率;P(A_B3)*P(B3_C)就是关键词A基于主题B2关于应用C的概率,那么该关键词A关于应用C的概率P(A_C)=P(A_B1)*P(B1_C)+P(A_B2)*P(B2_C)+P(A_B3)*P(B3_C)。
则在此基础上、进一步地在一个实施例中,根据应用-主题概率分布结果和主题-关键词概率分布结果,计算得到各应用的标签体系还包括:
将每个应用对应选取的前第五预设阈值数目的关键词作为该应用的第一阶段标签体系;对于每个应用的第一阶段标签体系,计算该应用的第一阶段标签体系中的每个关键词与该应用的摘要之间的语义关系值;对于每个关键词,将该关键词对应的语义关系值与该关键词关于该应用的概率的乘积作为该关键词关于该应用的修正概率;将该应用的第一阶段标签体系中的各关键词按照关于该应用的修正概率从大到小排序,选取前K个关键词构成该应用的标签体系。
例如,假设第五预设阈值为3,“百度地图”对应选取的前第五预设阈值数目的关键词包括“地图、搜索和导航”,那么将“地图、搜索和导航”作为“百度地图”的第一阶段标签体系;
对于“百度地图”的第一阶段标签体系,计算“百度地图”中第一阶段标签体系“地图、搜索和导航”中的每个关键词与“百度地图”的摘要之间的语义关系值分别为R1、R2和R3;计算“百度地图”中第一阶段标签体系“地图、搜索和导航”中的每个关键词与“百度地图”的概率为P1、P2和P3;那么将R1*P1、R2*P2和R3*P3作为“百度地图”的修正概率,如果R1*P1>R3*P3>R2*P2,那么“百度地图”的第一阶段标签体系中的各关键词的顺序为“地图、导航和搜索”,如果选取2个关键字构成该应用的标签体系,那么“百度地图”的标签体系包括“地图和导航”
其中具体地,计算该应用的第一阶段标签体系中的每个关键词与该应用的摘要之间的语义关系值包括:
计算该关键词的词向量,计算该应用的摘要的前预设数量个句子中的每个词项的词向量;计算该关键词的词向量与每个词项的词向量之间的余弦相似度,将每个余弦相似度与相应词项所在句子的权重的乘积作为该关键词与相应词项的语义关系值;将该关键词与各词项的语义关系值之和作为该关键词与该应用的摘要之间的语义关系值。
例如,首先从应用搜索引擎搜索日志中获取的搜索词集合,作为训练词向量的输入数据,训练得到一份300维词向量词典文件tag_query_w2v_300.dict。如果“百度地图”的关键词包括“地图、搜索和导航”,计算“地图”的词向量为M1;计算“百度地图”的摘要前3个句子中的每个词项的词向量分别为N1、N2和N3;计算“地图”的词向量与百度地图”的摘要前个句子中的每个词项的词向量的余弦相似度得到“cos M1*N1”、“cos M1*N2”和“cos M1*N3”;相应词项所在句子的权重为Q1和Q2;那么该关键词与相应词项的语义关系值分别为“Q1*cos M1*N1”和“Q2*cos M1*N2”;那么“Q1*cos M1*N1+Q2*cos M1*N2+Q3*cos M1*N3”作为“地图”与“百度地图”摘要之间的语义关系值。
进一步地,在一个实施例中,根据应用-主题概率分布结果和主题-关键词概率分布结果,计算得到各应用的标签体系还包括:
将每个应用对应选取的关键词作为该应用的第二阶段标签体系;对于每个应用的第二阶段标签体系,从应用搜索日志中获取关于该应用的下载操作的搜索词集合,统计该应用的第二阶段标签体系中的每个关键词在搜索词集合中的DF值;对于每个关键词,在该关键词关于该应用的概率的基础上增加DF值的倍数得到该关键词关于该应用的二次修正概率;将该应用的第二阶段标签体系中的各关键词按照关于该应用的二次修正概率从大到小排序,选取前K个关键词构成该应用的标签体系。
例如,挖掘到下载“百度地图”的历史搜索词集合包括“地图、搜索和导航”,计算得到关键词“地图”在“百度地图”的历史搜索词集合的DF值为DF1,计算关键词“搜索”在“百度地图”的历史搜索词集合的DF值为DF2,计算关键词“导航”在“百度地图”的历史搜索词集合的DF值为DF3;计算“地图”、“搜索”和“导航”关于“百度地图”的初始概率为P1、P2和P3;那么关键词“地图”关于“百度地图”的二次修正概率为P1*(1+DF1);关键词“搜索”关于“百度地图”的二次修正概率为P2*(1+DF2);
关键词“导航”关于“百度地图”的二次修正概率为P3*(1+DF3)。
如果P3*(1+DF3)>P1*(1+DF1)>P2*(1+DF2),那么“百度地图”的关键词的顺序调整为“地图、导航和搜索”,如果选取前两个关键词构成“百度地图”的标签体系,那么“百度地图”的标签体系包括“地图、导航”。经过上述方法的调整后“百度地图”的标签次序准确率大幅度提升。对“口碑外卖”和“百度地图”进行一次修正的结果如表9所示,
表9
对“口碑外卖”和“百度地图”进行二次修正的结果如表10所示:
表10
通过表9和表10的对比,我们可以看出,经过二次修正后,应用的标签次序准确率大幅度提升。
在一个具体的例子中,选取前K个关键词构成该应用的标签体系包括:
从应用搜索日志中获取关于该应用的季度下载次数;
根据该应用的季度下载次数选取前K个关键词构成该应用的标签体系;其中K值作为该应用的季度下载次数的折线函数。
在实际应用中发现应用的标签列表,标签的@k准确率与应用是否热门有关,季度下载次数恰好反映是否热门,每个应用保留了三个到十五个不等的标签,准确率92%,召回率76%,数量与季度下载次数成正比。典型例子如表11所示。
表11
通过上述方法构建的标签体系,就可以得到应用的标签属性,进一步从应用的相似应用集合中筛除标签差异在预设范围外的应用。具体可以包括:计算该应用与目标相似应用的标签语义相似度;将标签语义相似度低于预设阈值的目标相似应用从该应用的相似应用集合中删除。
在本实施例中,可以采用计算两个应用标签属性的杰卡德相似系数(Jaccardsimilarity)来计算两个应用的标签语义相似度从而进行筛除,但拓展性较为一般。一种拓展性更优的计算方法是基于树结构的算法(下称SRMTagNet算法),下面简单进行介绍。TagNet是一个多棵树构成的森林,包含了通过上述方案得到的标签(tag)属性。计算语义相似度我们可以采用两个算法:基于路径距离的算法、基于信息量的语义距离算法。
首先,基于路径距离的算法如下:
两个tag词在TagNet中的路径越远相似性越小,计算公式见公式3,两个tag不在一个树中时,len(t1,t2)设置为2*deep_max。
上为公式3:路径距离的相似性计算方法。
其次,基于信息量的语义距离算法如下:
在TagNet中,每个tag词包含许多信息,两个tag词共享的信息越多,其语义也就越相似,见公式4所示。
disic(t1,t2)=(IC(t1)+IC(t2))-2*IC(lsc(t1,t2))
IC(t)=-log p(t)
上为公式4:基于信息量的语义距离算法
lsc(t1,t2)是标签t1、标签t2最小公共父节点,如lsc(驾驶,餐厅)=模拟,p(t)是标签t及其分支中的下位词在app语料中频率占比,N是TagNet中所有tag词在app语料中的频次总和。
我们选择综合上述两个相似性计算,使用一个混合的语义相似性计算方法,即Hybrid Measure,计算公式如公式5:
上为公式5:Hybrid Measure语义相关性计算公式
Hybrid Measure同时考虑两个标签tag的路径距离,信息量距离以及在app语料中的统计信息,k我们设定为0.5。
这样我们就可以计算两个目标应用的标签语义相似度,并筛除掉低于阈值的相似应用,最终可以实现的效果是:对于热门应用,相似度最高的前15个应用的识别准确度可以达到92%。
然而即使采用了这样的方法,对于中低频的应用来说,相似度最高的前15个应用的识别准确度只有77%左右。由于热门的应用,往往覆盖一些热点应用领域,这个领域内的应用开发者众多,不止一家,因此相似应用的数量比较多,反之一个偏门应用领域,开发者较少,相似应用的数量也较少。因此实际上得到的结果也是符合实际的。在此基础上,可以进一步探究如何确定应用的相似应用数量这一问题。
在本发明的一个实施例中,上述方法中,选取与该应用的余弦相似度最高的C个应用作为该应用的相似应用包括:从应用搜索引擎的查询会话日志中统计该应用的下载次数S;根据预设的折线函数{S1:C1;……Si:Ci;……Sj:Cj;……}和下述公式确定C的取值:
举例如一个折现函数“10:1;100:2;500:4;5000:5;10000:7;20000:10”,当搜索次数是10次时保留1个相似应用,当搜索次数100时保留2个相似应用,当搜索次数是7000时,相似应用数量介于5和7之间,那么
图2示出了根据本发明一个实施例的一种应用搜索推荐方法的流程示意图,如图2所示,该方法包括:
步骤S210,接收用户输入的搜索词,根据搜索词确定目标应用。
步骤S220,从目标应用的相似应用集合中获取目标应用的一个或多个相似应用,将目标应用和相似应用推荐给用户。其中,目标应用的相似应用集合是通过如上述任一实施例中的相似应用的识别方法得到的。
例如,用户搜索某一个应用名字时,应用搜索引擎触发相似应用策略,将与其相似功能的应用也推荐给用户。有益效果为:1)满足用户需求,增强了用户的搜索体验;2)增加应用广告的点击率;3)展现搜索结果时,可以把相似功能的应用聚合展现,给用户一个清爽简洁的布局展现,也改善了用户搜索体验。
图3示出了根据本发明一个实施例的一种相似应用的识别装置的结构示意图,如图3所示,相似应用的识别装置300包括:
获取单元310,适于从应用搜索引擎的查询会话日志中获取各查询会话中的搜索词和下载的应用。
挖掘单元320,适于根据各查询会话中的搜索词和下载的应用,挖掘出各应用的语义表示信息。
识别单元330,适于根据各应用的语义表示信息识别出该应用的一个或多个相似应用,将相似应用加入该应用的相似应用集合。
可见,图3所示的装置,通过各单元的相互配合,利用用户在使用应用搜索引擎过程中产生的查询会话日志,获取各查询会话中的搜索词和下载的应用,进一步挖掘出各应用的语义表示信息,基于此识别出应用的相似应用,并形成与该应用对应的相似应用集合,可以用于进行应用搜索推荐等。该技术方案采用大数据样本机器学习的方式,从用户的使用情况中挖掘出应用的语义表示信息,相较于人工标注的方式,减少作弊带来的负面影响,显著提高了相似应用识别的准确度,同时减少了人工成本并大大提升了效率。
在本发明的一个实施例中,上述装置中,获取单元310,适于从应用搜索引擎的查询会话日志中,获取符合预设时间长度的查询会话中的搜索词和下载的应用。
在本发明的一个实施例中,上述装置中,挖掘单元320,适于对于各查询会话,将该查询会话中的搜索词按照顺序排成一个序列;如果该序列中的一个搜索词对应于应用下载操作,将所下载的应用的名称插入到该序列中的相应搜索词的后面相邻位置,从而形成该查询会话对应的训练语料;将所有训练语料汇总为训练语料集合;利用深度学习工具包word2vec对训练语料集合进行训练,将每条训练语料看做一个单词,为各应用生成N维向量形式的语义表示信息,其中,N为自然数。
在本发明的一个实施例中,上述装置中,挖掘单元320,适于在利用深度学习工具包word2vec对训练语料集合进行训练时使用下述参数:-cbow 1-size 300-window 8-negative 25-hs 0-sample 1e-4-threads 24-binary 0-iter 15。
在本发明的一个实施例中,上述装置中,识别单元330,适于对各应用,计算该应用的N维向量与其他应用的N维向量的余弦相似度;选取与该应用的余弦相似度最高的C个应用作为该应用的相似应用,其中,C为自然数。
在本发明的一个实施例中,上述装置中,识别单元330,适于将所有应用的N维向量形式的语义表示信息存储到k-d树中;在k-d树中计算与目标应用相距在预设范围内的一个或多个应用与该目标应用的余弦相似度。
在本发明的一个实施例中,上述装置中,识别单元330,适于从应用搜索引擎的查询会话日志中统计该应用的下载次数S;根据预设的折线函数{S1:C1;……Si:Ci;……Sj:Cj;……}和下述公式确定C的取值:其中,Si≤S≤Sj,Ci≤C≤Cj。
在本发明的一个实施例中,上述装置还包括:筛除单元(图未示),适于对各应用,根据该应用的标签属性,从该应用的相似应用集合中筛除标签差异在预设范围外的应用。
在本发明的一个实施例中,上述装置中,筛除单元,适于计算该应用与目标相似应用的标签语义相似度;将标签语义相似度低于预设阈值的目标相似应用从该应用的相似应用集合中删除。
图4示出了根据本发明一个实施例的一种应用搜索推荐服务器的结构示意图,如图4所示,应用搜索推荐服务器400包括:
搜索词接收单元410,适于接收用户输入的搜索词,根据搜索词确定目标应用;
推荐单元420,适于从目标应用的相似应用集合中获取目标应用的一个或多个相似应用,将目标应用和相似应用推荐给用户,其中,目标应用的相似应用集合是通过如上述任一实施例的相似应用的识别装置300得到的。
需要说明的是,上述装置和服务器实施例的具体实施方式分别与前述方法实施例的具体实施方式对应相同,在此不再赘述。
综上所述,本发明的技术方案,利用用户在使用应用搜索引擎过程中产生的查询会话日志,获取各查询会话中的搜索词和下载的应用,进一步挖掘出各应用的语义表示信息,基于此识别出应用的相似应用,并形成与该应用对应的相似应用集合,可以用于进行应用搜索推荐等。该技术方案采用大数据样本机器学习的方式,从用户的使用情况中挖掘出应用的语义表示信息,相较于人工标注的方式,减少作弊带来的负面影响,显著提高了相似应用识别的准确度,同时减少了人工成本并大大提升了效率。同时可以基于此实现在用户搜索某一个应用名字时,应用搜索引擎触发相似应用策略,将与其相似功能的应用也推荐给用户。有益效果为:1)满足用户需求,增强了用户的搜索体验;2)增加应用广告的点击率;3)展现搜索结果时,可以把相似功能的应用聚合展现,给用户一个清爽简洁的布局展现,也改善了用户搜索体验。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的相似应用的识别装置和应用搜索推荐服务器中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (17)
1.一种相似应用的识别方法,其中,该方法包括:
从应用搜索引擎的查询会话日志中获取各查询会话中的搜索词和下载的应用;
根据各查询会话中的搜索词和下载的应用,挖掘出各应用的语义表示信息;
根据各应用的语义表示信息识别出该应用的一个或多个相似应用,将相似应用加入该应用的相似应用集合;
所述从应用搜索引擎的查询会话日志中获取各查询会话中的搜索词和下载的应用包括:
从应用搜索引擎的查询会话日志中,获取符合预设时间长度的查询会话中的搜索词和下载的应用;
其中,所述语义表示信息通过对训练语料集合训练得到;
所述根据各查询会话中的搜索词和下载的应用,挖掘出各应用的语义表示信息包括:
对于各查询会话,将该查询会话中的搜索词按照顺序排成一个序列;如果该序列中的一个搜索词对应于应用下载操作,将所下载的应用的名称插入到该序列中的相应搜索词的后面相邻位置,从而形成该查询会话对应的训练语料;
将所有训练语料汇总为训练语料集合;
利用深度学习工具包word2vec对所述训练语料集合进行训练,将每条训练语料看做一个单词,为各应用生成N维向量形式的语义表示信息,其中,N为自然数。
2.如权利要求1所述的方法,其中,所述利用深度学习工具包word2vec对所述训练语料集合进行训练使用下述参数:
-cbow 1 -size 300 -window 8 -negative 25 -hs 0 -sample 1e-4 -threads 24 -binary 0 -iter 15。
3.如权利要求1所述的方法,其中,所述根据各应用的语义表示信息识别出该应用的一个或多个相似应用包括:
对各应用,计算该应用的N维向量与其他应用的N维向量的余弦相似度;
所述将相似应用加入该应用的相似应用集合包括:选取与该应用的余弦相似度最高的C个应用作为该应用的相似应用,其中,C为自然数。
4.如权利要求3所述的方法,其中,所述对各应用,计算其与其他应用的余弦相似度包括:
将所有应用的N维向量形式的语义表示信息存储到k-d树中;
在k-d树中计算与目标应用相距在预设范围内的一个或多个应用与该目标应用的余弦相似度。
6.如权利要求1所述的方法,其中,该方法还包括:
对各应用,根据该应用的标签属性,从该应用的相似应用集合中筛除标签差异在预设范围外的应用。
7.如权利要求6所述的方法,其中,所述从该应用的相似应用集合中筛除标签差异在预设范围外的应用包括:
计算该应用与目标相似应用的标签语义相似度;
将标签语义相似度低于预设阈值的目标相似应用从该应用的相似应用集合中删除。
8.一种应用搜索推荐方法,其中,该方法包括:
接收用户输入的搜索词,根据所述搜索词确定目标应用;
从目标应用的相似应用集合中获取目标应用的一个或多个相似应用,将所述目标应用和相似应用推荐给用户,其中,所述目标应用的相似应用集合是通过如权利要求1-7中任一项所述的方法得到的。
9.一种相似应用的识别装置,其中,该装置包括:
获取单元,适于从应用搜索引擎的查询会话日志中获取各查询会话中的搜索词和下载的应用;
挖掘单元,适于根据各查询会话中的搜索词和下载的应用,挖掘出各应用的语义表示信息;
识别单元,适于根据各应用的语义表示信息识别出该应用的一个或多个相似应用,将相似应用加入该应用的相似应用集合;
所述获取单元,适于从应用搜索引擎的查询会话日志中,获取符合预设时间长度的查询会话中的搜索词和下载的应用。
10.如权利要求9所述的装置,
所述挖掘单元,适于对于各查询会话,将该查询会话中的搜索词按照顺序排成一个序列;如果该序列中的一个搜索词对应于应用下载操作,将所下载的应用的名称插入到该序列中的相应搜索词的后面相邻位置,从而形成该查询会话对应的训练语料;将所有训练语料汇总为训练语料集合;利用深度学习工具包word2vec对所述训练语料集合进行训练,将每条训练语料看做一个单词,为各应用生成N维向量形式的语义表示信息,其中,N为自然数。
11.如权利要求10所述的装置,其中,
所述挖掘单元,适于在利用深度学习工具包word2vec对所述训练语料集合进行训练时使用下述参数:-cbow 1 -size 300 -window 8 -negative 25 -hs 0 -sample 1e-4 -threads 24 -binary 0 -iter 15。
12.如权利要求9所述的装置,其中,
所述识别单元,适于对各应用,计算该应用的N维向量与其他应用的N维向量的余弦相似度;选取与该应用的余弦相似度最高的C个应用作为该应用的相似应用,其中,C为自然数。
13.如权利要求12所述的装置,其中,
所述识别单元,适于将所有应用的N维向量形式的语义表示信息存储到k-d树中;在k-d树中计算与目标应用相距在预设范围内的一个或多个应用与该目标应用的余弦相似度。
15.如权利要求9所述的装置,其中,该装置还包括:
筛除单元,适于对各应用,根据该应用的标签属性,从该应用的相似应用集合中筛除标签差异在预设范围外的应用。
16.如权利要求15所述的装置,其中,
所述筛除单元,适于计算该应用与目标相似应用的标签语义相似度;将标签语义相似度低于预设阈值的目标相似应用从该应用的相似应用集合中删除。
17.一种应用搜索推荐服务器,其中,该服务器包括:
搜索词接收单元,适于接收用户输入的搜索词,根据所述搜索词确定目标应用;
推荐单元,适于从目标应用的相似应用集合中获取目标应用的一个或多个相似应用,将所述目标应用和相似应用推荐给用户,其中,所述目标应用的相似应用集合是通过如权利要求9-16中任一项所述的相似应用的识别装置得到的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710208184.4A CN106970991B (zh) | 2017-03-31 | 2017-03-31 | 相似应用的识别方法、装置和应用搜索推荐方法、服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710208184.4A CN106970991B (zh) | 2017-03-31 | 2017-03-31 | 相似应用的识别方法、装置和应用搜索推荐方法、服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106970991A CN106970991A (zh) | 2017-07-21 |
CN106970991B true CN106970991B (zh) | 2021-02-05 |
Family
ID=59336246
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710208184.4A Active CN106970991B (zh) | 2017-03-31 | 2017-03-31 | 相似应用的识别方法、装置和应用搜索推荐方法、服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106970991B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107967330A (zh) * | 2017-11-27 | 2018-04-27 | 中山大学 | 基于下载行为数据及向量表征学习的移动应用推荐方法 |
CN108170665B (zh) * | 2017-11-29 | 2021-06-04 | 有米科技股份有限公司 | 基于综合相似度的关键词拓展方法和装置 |
CN108363550A (zh) * | 2017-12-28 | 2018-08-03 | 中兴智能交通股份有限公司 | 一种缓存数据更新和存储的方法和装置 |
CN110083774B (zh) * | 2019-05-10 | 2023-11-03 | 腾讯科技(深圳)有限公司 | 应用推荐列表的确定方法、装置、计算机设备及存储介质 |
CN112052330B (zh) * | 2019-06-05 | 2021-11-26 | 上海游昆信息技术有限公司 | 一种应用程序关键词的分配方法及装置 |
CN111209737B (zh) * | 2019-12-30 | 2022-09-13 | 厦门市美亚柏科信息股份有限公司 | 噪声文档的筛除方法及计算机可读存储介质 |
CN111324724B (zh) * | 2020-02-13 | 2023-04-11 | 腾讯科技(深圳)有限公司 | 数据处理方法及装置、电子设备和计算机可读存储介质 |
CN112925902B (zh) * | 2021-02-22 | 2024-01-30 | 新智认知数据服务有限公司 | 案情文本中智能提取文本摘要的方法、系统及电子设备 |
CN115017400B (zh) * | 2021-11-30 | 2023-05-26 | 荣耀终端有限公司 | 一种应用app推荐方法及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104933075A (zh) * | 2014-03-20 | 2015-09-23 | 百度在线网络技术(北京)有限公司 | 用户属性预测平台和方法 |
CN105095474A (zh) * | 2015-08-11 | 2015-11-25 | 北京奇虎科技有限公司 | 建立搜索词与应用数据推荐关系的方法及装置 |
CN106503224A (zh) * | 2016-11-04 | 2017-03-15 | 维沃移动通信有限公司 | 一种根据关键词推荐应用的方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100241647A1 (en) * | 2009-03-23 | 2010-09-23 | Microsoft Corporation | Context-Aware Query Recommendations |
US8412726B2 (en) * | 2010-06-03 | 2013-04-02 | Microsoft Corporation | Related links recommendation |
-
2017
- 2017-03-31 CN CN201710208184.4A patent/CN106970991B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104933075A (zh) * | 2014-03-20 | 2015-09-23 | 百度在线网络技术(北京)有限公司 | 用户属性预测平台和方法 |
CN105095474A (zh) * | 2015-08-11 | 2015-11-25 | 北京奇虎科技有限公司 | 建立搜索词与应用数据推荐关系的方法及装置 |
CN106503224A (zh) * | 2016-11-04 | 2017-03-15 | 维沃移动通信有限公司 | 一种根据关键词推荐应用的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106970991A (zh) | 2017-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106970991B (zh) | 相似应用的识别方法、装置和应用搜索推荐方法、服务器 | |
CN106682169B (zh) | 一种应用标签挖掘方法、装置和应用搜索方法、服务器 | |
CN106709040B (zh) | 一种应用搜索方法和服务器 | |
CN106649818B (zh) | 应用搜索意图的识别方法、装置、应用搜索方法和服务器 | |
CN110633373B (zh) | 一种基于知识图谱和深度学习的汽车舆情分析方法 | |
CN107862027B (zh) | 检索意图识别方法、装置、电子设备及可读存储介质 | |
CN106682170B (zh) | 一种应用搜索方法和装置 | |
US10180967B2 (en) | Performing application searches | |
US11176142B2 (en) | Method of data query based on evaluation and device | |
US20130159277A1 (en) | Target based indexing of micro-blog content | |
CN104199833B (zh) | 一种网络搜索词的聚类方法和聚类装置 | |
US9436768B2 (en) | System and method for pushing and distributing promotion content | |
WO2013151546A1 (en) | Contextually propagating semantic knowledge over large datasets | |
CN107544988B (zh) | 一种获取舆情数据的方法和装置 | |
CN110325986A (zh) | 文章处理方法、装置、服务器及存储介质 | |
Vakulenko et al. | Enriching iTunes App Store Categories via Topic Modeling. | |
CN111309936A (zh) | 一种电影用户画像的构建方法 | |
CN113934941A (zh) | 一种基于多维度信息的用户推荐系统及方法 | |
CN108470289B (zh) | 基于电商购物平台的虚拟物品发放方法及设备 | |
CN112989824A (zh) | 信息推送方法及装置、电子设备及存储介质 | |
CN114881685A (zh) | 广告投送方法、装置、电子装置及存储介质 | |
CN111597469B (zh) | 展示位置的确定方法、确定装置、电子设备及存储介质 | |
CN116823410A (zh) | 数据处理方法、对象处理方法、推荐方法及计算设备 | |
CN113821718A (zh) | 一种物品信息推送方法和装置 | |
CN111882224A (zh) | 对消费场景进行分类的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |