搜索下拉提示(Query
Auto Completion,简称QAC)如今差点儿是每一个搜索引擎必备的基本功能,作用是在用户在搜索框输入查询词的过程中,给用户展示一系列搜索查询query供用户选择,能够方便用户输入、缩短用户搜索时间、提高用户搜索体验。在这方面的研究已经有非常多,如基于上下文、基于时间序列等预測query的热度、个性化排序等,但关于用户怎样与搜索下拉提示(下文简称QAC)交互的研究眼下还是一个空白。

微软的Katja Hofmann前几天(11.3-11.7)刚刚填补了这一空白。她在CIKM
2014会议上发表了一篇paper——An Eye-tracking Study of User
Interactions with Query Auto Completion。研究了用户与QAC的交互过程。通过眼睛定位技术,记录和分析了用户与QAC的交互,得出一系列有趣的结论。本文在阅读论文的基础上,简明扼要的提炼了论文的结论。总结了一点自己的启示。


实用的思路和结论
 
      1. 将用户的QAC交互过程分为:query examination、query formulation、task completion3个过程。query examination为用户查看QAC的过程。该过程中用户注意到有QAC的提示,并将注意力集中到QAC的结果。query formulation是用户使用QAC的过程。依据QAC提供的结果选择的过程。

task completion是用户选择了QAC的结果后在搜索结果页面的行为。记录用户的搜索任务完毕情况。


 
      2. 针对每一个过程设计了一系列跟QAC相关的统计指标,以反映QAC的质量,详细指标例如以下:
 
      TFF
记录用户敲键盘到将注意力转移到QAC下拉列表的时间间隔,这个时间跟QAC下拉结果的排序没有关系。

 
      CFT
记录用户注意力集中在QAC下拉列表上所累计停留的时间,这个时间跟QAC下拉结果的排序有关,排序结果质量越好,越跟用户搜索意图相关的query越靠前,用户停留的时间越短。
 
      UQ
表示用户提交的单一query数,描写叙述的是一个用query构造的情况。假设QAC质量不好,用户非常难构造一个比較恰当的query。则在没法构造query的情况下就会放弃继续搜索。(笔者见解:也有可能是质量好,一次query搜索就找到须要的结果)
 
      UR
表示用户打开一个搜索结果页面就完毕搜索的数量,描写叙述搜索结果质量。打开越少,说明搜索结果质量越高,越早完毕搜索任务。TFCTCT与其类似。仅仅是从其它角度统计。

 
      3. QAC有非常强的position bias,排名越靠前的query被关注和点击的概率越大,例如以下两图:
  
        右图横轴表示query在QAC的排序位置,左边纵轴表示用户的注意力停留时间,右边纵轴表示点击的概率。每一个位置分别都有两个不同的实验,对照QAC有排序和随机序的情况。
        从图能够看出,无论QAC结果是否有排序,top几个位置的query获得的注意力是最高的,被点击的概率也明显高于其它位置的query。这说明top几的query被关注到的概率最大。与query的是否排过序无关,仅仅要在top的位置,肯定会被关注到,有非常强的position
bias,也側面说明QAC的排序终于决定了哪个query被作为查询query。
 
      但也能够观察到,排序过的结果被点击的概率比随机排序的大一些,由于排序会把更符合用户搜索意图的query排到前面。

        4. 虽然不管QAC的结果排序与否,排序位置靠前的query获得的注意力都一样大,但搜索结果质量是不同的。通过实验记录的UQ、UR、TFC、TCT数据表明。高质量query的搜索结果比較好。能够让用户更快找到须要的内容。结束搜索任务。

因此须要把更符合用户意图的query排到更靠前的位置,添加这类query的曝光有助于带来更好的搜索结果质量(电商类的有助于提高成交转化率)


        5. 总结了用户使用QAC的3种pattern:a.
依赖QAC搜索的用户。边输边看QAC的结果;b. 偶尔使用QAC的用户;c. 从不使用QAC的用户,这类用户一般在输入的过程中注意力是集中在键盘,不看屏幕。属于电脑使用不熟练的用户,比例较小。

        6. 总结了用户使用QAC的2个目的:a.
拼写提示或拼写纠错;b. query补全

        7. 实验证明MRR这种评价QAC质量的指标的合理性,该指标基于这种如果。排序越靠后的结果被用户注意到的可能性越小,结果就是排序越靠后的结果被点击的可能性越小,从3的实验结果能够得到验证。


启示
        1. QAC的排序非常重要。直接影响搜索结果的质量,对于电商类搜索,会影响终于的转化率。因此能够在排序中引入搜索结果页质量相关的特征,如ctr、成交情况、NDCG等。
        2. 用户使用QAC的一个功能是拼写提示。因此能够增加拼写纠错的提示功能,不不过简单的prefix匹配。

參考

转载请注明出处。本文转自http://blog.csdn.net/huagong_adu/article/details/40951409
本博客搬迁至:http://ralphadu.com/

版权声明:本文博主原创文章,博客,未经同意不得转载。

在最完整的搜索提示降史上的用户交互的研究——阅读《An Eye-tracking Study of User Interactions with Query Auto Completion》的更多相关文章

  1. [Git] 写文章 史上最全文献检索、阅读及管理攻略

    copy from  : https://zhuanlan.zhihu.com/p/30605683 一.查文献 首先,我认为需要常备几个体量大.文献全的数据库,有针对性找哦!下面列出了一些适合所有专 ...

  2. 高德地图搜索提示获取信息回传activity刷新ui(二)

    应用场景: 在主activity中点击进入到另一个activity搜索提示,获取经纬度,点确定返回到主activity,虽然说需求很奇葩,但是遇到了没办法.. 主要包含两部分,搜索提示+activit ...

  3. lucene的suggest(搜索提示功能的实现)

    1.首先引入依赖 <!-- https://mvnrepository.com/artifact/org.apache.lucene/lucene-suggest --> <!-- ...

  4. C# WinForm 技巧:COMBOBOX搜索提示

    comboBox和textBox支持内置的搜索提示功能, 在form的InitializeComponent()中添加如下语句:   this.comboBox1.AutoCompleteCustom ...

  5. Android--多选自动搜索提示

    一. 效果图 常见效果,在搜素提示选中之后可以继续搜索添加,选中的词条用特殊字符分开 二. 布局代码 <MultiAutoCompleteTextView android:id="@+ ...

  6. 讨论asp.net通过机器cookie仿百度(google)实现搜索input搜索提示弹出框自己主动

    为实现自己主动弹出通过用户输入关键词相关的搜索结果,在这里,我举两个解决方案,对于两个不同的方案. 常用的方法是建立一个用户数据库中查找关系表.然后输入用户搜索框keyword异步调用数据表中的相关数 ...

  7. Android AutoCompleteTextView控件实现类似百度搜索提示,限制输入数字长度

    Android AutoCompleteTextView 控件实现类似被搜索提示,效果如下 1.首先贴出布局代码 activity_main.xml: <?xml version="1 ...

  8. 浅谈asp.net通过本机cookie仿百度(google)实现搜索input框自己主动弹出搜索提示

    对于通过用户输入关键词实现自己主动弹出相关搜索结果,这里本人给两种解决方式,用于两种不同的情形. 常见方法是在数据库里建一个用户搜索关系表,然后通过用户搜索框输入的keyword异步调用数据表中的相关 ...

  9. 史上最完整promise源码手写实现

    史上最完整的promise源码实现,哈哈,之所以用这个标题,是因为开始用的标题<手写promise源码>不被收录 promise自我介绍 promise : "君子一诺千金,承诺 ...

随机推荐

  1. 第1次实验——NPC问题(回溯算法、聚类分析)

    题目:八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例.该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即随意两个皇后都不能处于同一 ...

  2. 用XAML做网页!!—页头

    原文:用XAML做网页!!-页头 接续上次进度,我们此次来制作页头. 首先要实现两侧边缘的美化,如下图所示: 在边缘处有一层朦胧的亮度反光效果,这也是通过简单的渐变实现的,而且我们在后面的每个区块中都 ...

  3. Android至ViewPager添加切换动画——使用属性动画

    转载请注明出处:http://blog.csdn.net/allen315410/article/details/44200623 ViewPager作为Android最经常使用的的组件之中的一个.相 ...

  4. struts(二)——struts框架实现的基本原理

    上一篇文章,我们介绍了MVC框架的基本原理,并指出了这个基本框架中存在大量if…else的问题.今天我们来介绍一下struts框架,让struts解决这个问题. 首先,看一下粗略的时序图: Actio ...

  5. FluentData

    FluentData微型ORM 最近在帮朋友做一个简单管理系统,因为笔者够懒,但是使用过的NHibernate用来做这中项目又太不实际了,索性百度了微型ORM,FluentData是第一个跳入我眼睛的 ...

  6. Linux cp -a用法

    对于cp -a最主要的用法是在保留原文件属性的前提下复制文件.其实还有个很好的用法,如下: 大家知道linux下复制目录可以通过,cp -r dirname destdir 但是这样复制的目录属性会发 ...

  7. Android该HTTP下载

    今天学习了Android开发中比較难的一个环节,就是断点续传下载,非常多人看到这个标题就感觉头大.的确,假设没有良好的逻辑思维,这块的确非常难搞明确.以下我就将自己学到的知识和一些见解写下供那些在这个 ...

  8. 数据结构 《18》----RMQ 与 LCA 的等价性 (一)

    前言     RMQ: 数组 a0, a1, a2,..., an-1, 中求随意区间 a[i+1], a[i+2], ..., a[i+k] 的最小值     LCA: 求二叉树中两个节点的最低公共 ...

  9. 采用大杀招QEMU调试Linux内核代码

    Linux调试内核代码是非常麻烦.它们一般加printk, 或者使用JTAG调试. 这里的方法是使用QEMU为了调试Linux核心. 由于QEMU自己实现gdb server, 它可以容易地使用gdb ...

  10. 时间复杂度为O(nlogn)的LIS算法

    时间复杂度为 n*logn的LIS算法是用一个stack维护一个最长递增子序列 如果存在 x < y 且  a[x] > a[y],那么我们可以用a[y]去替换a[x] 因为a[y]比较小 ...