query聚类技术
query聚类
目的
query聚类主要有以下两个目的
解决query空间稀疏问题(长尾query)
挖掘用户意图(一条行为包含的意图是稀疏的,当有一簇行为时,意图更明确)
可以说聚类是构建内容模型的重要手段
Content Based聚类
Content based聚类基于query本身,即两个query包含相同的term。优点是可以将形态相似的query聚到一起,但是会遗漏掉意图相同但query形态不同的query。精度高,召回低
Session Based聚类
Session Based聚类基于用户行为,即两个query出现在相似的行为中(用户,点击url,点击title)。优点: 可以将相同主题的query聚到一起;缺点: 用户行为噪声,容易出badcase。
Session Based方法基于Query Log的两个假设:
同一session里用户的意图相关;
top rank文档的相关性好;
从用户访问网站开始每30分钟算一个session,这样构建起来的query-url链接更稠密一些。
注: 如何识别一个用户?
可以利用的信息有:IP、COOKIE、USER_ID、MAC、IMEI、账号打通。
通过挖掘QueryLog,得到一组日志:
SessionID、 UserId、 TimeStamp、 Query、 URL
通过Jaccard距离度量两个query点击url相似度来表征query之间的距离,也即:

容易看出,上式的值域是[0, 1],是归一化的。
以上方法仍存在文档空间稀疏的问题,需要将query聚类和文档聚类结合起来。
最直接的方法是利用先验知识(文本理解),将文档以簇粒度表示,描述长尾的能力大大加强。但是海量文档聚类,计算量也是很可观的。
另一种方法是二分图的方法(simrank),基于行为,同时进行query聚类和文档聚类。这样,就把文档聚类从内容计算中解放出来了(经验表明,搞文本是最吃力不讨好的事情,组里从query-title出发构建embedding效果不佳,做项目,不应该上来就搞复杂、不可解释的模型,实在是应该先把简单的点击信息抓到,用好,词级别的聚类是不好的,利用行为,进行query-url级别的聚类才是可取的)。
当然,二部图方法仍然有累计噪声、迭代停止条件和相似度置信度的问题。
query聚类技术的更多相关文章
- kaggle信用卡欺诈看异常检测算法——无监督的方法包括: 基于统计的技术,如BACON *离群检测 多变量异常值检测 基于聚类的技术;监督方法: 神经网络 SVM 逻辑回归
使用google翻译自:https://software.seek.intel.com/dealing-with-outliers 数据分析中的一项具有挑战性但非常重要的任务是处理异常值.我们通常将异 ...
- (转载)搜索引擎的Query自动纠错技术和架构详解
from http://www.52nlp.cn/%E8%BE%BE%E8%A7%82%E6%95%B0%E6%8D%AE%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E%E7 ...
- CSDDN特约专稿:个性化推荐技术漫谈
本文引自http://i.cnblogs.com/EditPosts.aspx?opt=1 如果说过去的十年是搜索技术大行其道的十年,那么个性化推荐技术将成为未来十年中最重要的革新之一.目前几乎所有大 ...
- 聚类算法之BIRCH(Java实现)转载
http://www.cnblogs.com/zhangchaoyang/articles/2200800.html http://blog.csdn.net/qll125596718/article ...
- Web挖掘技术
一.数据挖掘 数据挖掘是运用计算机及信息技术,从大量的.不全然的数据集中获取隐含在当中的实用知识的高级过程.Web 数据挖掘是从数据挖掘发展而来,是数据挖掘技术在Web 技术中的应用.Web 数据 ...
- 聚类算法:K均值、凝聚层次聚类和DBSCAN
聚类分析就仅根据在数据中发现的描述对象及其关系的信息,将数据对象分组(簇).其目标是,组内的对象相互之间是相似的,而不同组中的对象是不同的.组内相似性越大,组间差别越大,聚类就越好. 先介绍下聚类的不 ...
- K均值聚类的失效性分析
K均值聚类是一种应用广泛的聚类技术,特别是它不依赖于任何对数据所做的假设,比如说,给定一个数据集合及对应的类数目,就可以运用K均值方法,通过最小化均方误差,来进行聚类分析. 因此,K均值实际上是一个最 ...
- 各类聚类(clustering)算法初探
1. 聚类简介 0x1:聚类是什么? 聚类是一种运用广泛的探索性数据分析技术,人们对数据产生的第一直觉往往是通过对数据进行有意义的分组.很自然,首先要弄清楚聚类是什么? 直观上讲,聚类是将对象进行分组 ...
- ML.NET 示例:聚类之客户细分
写在前面 准备近期将微软的machinelearning-samples翻译成中文,水平有限,如有错漏,请大家多多指正. 如果有朋友对此感兴趣,可以加入我:https://github.com/fei ...
随机推荐
- shell编程中变量的运算 (shell 06)
主要包括以下3种 字符串操作数学运算浮点运算 一.字符串操作 字符串的连接 连接字2个字符串不需要任何连接符,挨着写即可 长度获取 expr length "hello" expr ...
- Java-Maven-Runoob:Maven 自动化部署
ylbtech-Java-Maven-Runoob:Maven 自动化部署 1.返回顶部 1. Maven 自动化部署 项目开发过程中,部署的过程包含需如下步骤: 将所的项目代码提交到 SVN 或者代 ...
- Java中计算对象的大小
一.计算对象大小的方法 Java中如何计算对象的大小呢,找到了4种方法: 1.java.lang.instrument.Instrumentation的getObjectSize方法: 2.BTrac ...
- Python多线程-事件
线程事件用于线程控制线程,实现多个进程间的交互,线程事件的初始值为False set:将线程事件的值设为True clear:将线程事件的值设为False # -*- coding:utf-8 -*- ...
- storm集群配置以及java编写拓扑例子
storm集群配置 安装 修改配置文件 使用java编写拓扑 storm集群配置 storm配置相当简单 安装 tar -zxvf apache-storm-1.2.2.tar.gz rm apach ...
- UML中关系的分类及其概念——总结备忘
UML中关系分类: 依赖:依赖是两个事物间的语义关系,其中一个事物(独立事物)发生变化会影响另一个事物(依赖事物)的语义. 关联:关联是类与类之间的联接,它使一个类知道另一类的属性和方法. 聚合:聚合 ...
- sklearn 中 make_blobs模块
# 生成用于聚类的各向同性高斯blobsklearn.datasets.make_blobs(n_samples = 100,n_features = 2,center = 3,cluster_std ...
- 常用的软件设计模式的Java实现——让编程从野生到飞起
常用的软件设计模式的Java实现——让编程从野生到飞起_野生技术协会_科技_bilibili_哔哩哔哩 https://www.bilibili.com/video/av7596511/
- java Web 请求servlet绘制验证码简单例子
主要用来了解java代码怎么绘制验证码图片,实际开发中不会这样用 protected void doGet(HttpServletRequest request, HttpServletRespons ...
- linux tcpdump补充
If they are going across the loopback interface, you may have to tell tcpdump to read that interface ...