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. HDU 3018 Ant Trip(欧拉回路,要几笔)

    Ant Trip Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...

  2. C#简单操作XML

    类文件: class OperatorXML { /// <summary> /// 确定资源文件路径,Resource为自己创建的目录 /// </summary> priv ...

  3. python2 encode和decode函数说明

    字符串编码常用类型:utf-8,gb2312,cp936,gbk等. python中,我们使用decode()和encode()来进行解码和编码 在python中,使用unicode类型作为编码的基础 ...

  4. pcs与crmsh命令比较

    一.概念 1.crmsh This project is not part of the GNU Project. Pacemaker command line interface for manag ...

  5. NetBeans配置Xdebug 远程调试PHP

    1.配置PHP 说明:xdebug.trace_output_dir和xdebug.profiler_output_dir需要增加权限 #chmod 755 /usr/xdebug-tmp xdebu ...

  6. js格式化时间和时间操作

    js格式化时间 function formatDateTime(inputTime) { var date = new Date(inputTime); var y = date.getFullYea ...

  7. 【HDU4307】Matrix

    本篇博客基本全篇转自https://www.cnblogs.com/staginner/archive/2012/08/13/2636826.html,太强啦ORZ 题意 A是个1*n的矩阵,每个元素 ...

  8. 如何在局域网架设FTP(特别简单方便)

    https://files.cnblogs.com/files/wlphp/FTPserver.zip 在我上传的博客园文件下载下来 启动服务,设置账号密码(注意一定要关闭防火墙)

  9. jmeter beanshell

    //获取返回数据 String json = prev.getResponseDataAsString(); ///加入变量vars.put("restr",json); //获取 ...

  10. 线程dump

    当应用程序运行变慢或者发生故障时,可能通过分析java的Thread Dumps得到分析他们得到阻塞和存在瓶颈的线程. 线程堆栈是虚拟机中线程(包括锁)状态的一个瞬间状态的快照,即系统在某一个时刻所有 ...