query聚类

目的

query聚类主要有以下两个目的

  1. 解决query空间稀疏问题(长尾query)

  2. 挖掘用户意图(一条行为包含的意图是稀疏的,当有一簇行为时,意图更明确)

可以说聚类是构建内容模型的重要手段

Content Based聚类

Content based聚类基于query本身,即两个query包含相同的term。优点是可以将形态相似的query聚到一起,但是会遗漏掉意图相同但query形态不同的query。精度高,召回低

Session Based聚类

Session Based聚类基于用户行为,即两个query出现在相似的行为中(用户,点击url,点击title)。优点: 可以将相同主题的query聚到一起;缺点: 用户行为噪声,容易出badcase。

Session Based方法基于Query Log的两个假设:

  1. 同一session里用户的意图相关;

  2. top rank文档的相关性好;

  3. 从用户访问网站开始每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聚类技术的更多相关文章

  1. kaggle信用卡欺诈看异常检测算法——无监督的方法包括: 基于统计的技术,如BACON *离群检测 多变量异常值检测 基于聚类的技术;监督方法: 神经网络 SVM 逻辑回归

    使用google翻译自:https://software.seek.intel.com/dealing-with-outliers 数据分析中的一项具有挑战性但非常重要的任务是处理异常值.我们通常将异 ...

  2. (转载)搜索引擎的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 ...

  3. CSDDN特约专稿:个性化推荐技术漫谈

    本文引自http://i.cnblogs.com/EditPosts.aspx?opt=1 如果说过去的十年是搜索技术大行其道的十年,那么个性化推荐技术将成为未来十年中最重要的革新之一.目前几乎所有大 ...

  4. 聚类算法之BIRCH(Java实现)转载

    http://www.cnblogs.com/zhangchaoyang/articles/2200800.html http://blog.csdn.net/qll125596718/article ...

  5. Web挖掘技术

      一.数据挖掘 数据挖掘是运用计算机及信息技术,从大量的.不全然的数据集中获取隐含在当中的实用知识的高级过程.Web 数据挖掘是从数据挖掘发展而来,是数据挖掘技术在Web 技术中的应用.Web 数据 ...

  6. 聚类算法:K均值、凝聚层次聚类和DBSCAN

    聚类分析就仅根据在数据中发现的描述对象及其关系的信息,将数据对象分组(簇).其目标是,组内的对象相互之间是相似的,而不同组中的对象是不同的.组内相似性越大,组间差别越大,聚类就越好. 先介绍下聚类的不 ...

  7. K均值聚类的失效性分析

    K均值聚类是一种应用广泛的聚类技术,特别是它不依赖于任何对数据所做的假设,比如说,给定一个数据集合及对应的类数目,就可以运用K均值方法,通过最小化均方误差,来进行聚类分析. 因此,K均值实际上是一个最 ...

  8. 各类聚类(clustering)算法初探

    1. 聚类简介 0x1:聚类是什么? 聚类是一种运用广泛的探索性数据分析技术,人们对数据产生的第一直觉往往是通过对数据进行有意义的分组.很自然,首先要弄清楚聚类是什么? 直观上讲,聚类是将对象进行分组 ...

  9. ML.NET 示例:聚类之客户细分

    写在前面 准备近期将微软的machinelearning-samples翻译成中文,水平有限,如有错漏,请大家多多指正. 如果有朋友对此感兴趣,可以加入我:https://github.com/fei ...

随机推荐

  1. Object-C 多线程中锁的使用-NSLock

    在多线程的编程环境中,锁的使用必不可少! 于是,今天来总结一下为共享资源加锁的操作方法.   一.使用synchronized方式   //线程1 dispatch_async(dispatch_ge ...

  2. java图形用户界面添加背景颜色不成功的解决方案

    总结:背景颜色不成功,那么使用这个方法试试.getContentpane(); package clientFrame; import java.awt.Color; import java.awt. ...

  3. 【原创】 HBase 配置指南

    HBase 默认配置   Centos6.5下Hbase配置 官网配置文档:http://hbase.apache.org/book.html#_configuration_files 中文翻译转自: ...

  4. mybatis-spring升级导致的异常

    先记录一下,已被后面排查问题 升级前pom.xml依赖信息: <dependency> <groupId>org.mybatis</groupId> <art ...

  5. 编译openwrt失败 “Please install theopenssl library”

    make menuconfig出现了错误 Build dependency: Please install theopenssl library(with development headers) P ...

  6. node.js的了解

    在node环境上面运行js代码,js相当于php,node相当于apache环境 第一步装 node 环境1.从官网下载 dmg 文件安装 2.通过命令行安装 需要用到 homebrew(mac上专门 ...

  7. Python类(二)-类的继承

    单继承 #-*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" class People: def __init__(self,name ...

  8. JS||JQUERY常用语法

    cookieEnabled属性语法 通常可以在浏览器的临时文件夹中保存一个文件,此文件可以包含用户信息(比如浏览过什么页面,是否选择了自动登录)等,这个文件被称作cookie,通过cookieEnab ...

  9. flask系列四之SQLAlchemy

    一.SQLAlchemy简介 (1)flask_sqlalchemy是一套ORM框架. (2)ORM(Object Relationship Mapping):模型关系映射 (3)ORM的好处:可以让 ...

  10. Linux进阶路线

    初级:熟练使用命令.熟悉Shell编程.能配置简单的服务,清楚各类服务相关的配置文件的位置, 能看懂并可修改系统提供的配置脚本(/etc/*.*)把/etc目录下面常用的配置你都搞懂,把 /bin / ...