搜索引擎通过排名功能对网络结果进行排序,给定查询和文档后,该排名功能会产生一个得分,该得分指示文档与查询的匹配程度。 排名功能本身是通过机器学习算法来学习的。 学习算法的输入通常是(查询,URL)对的集合,并用相关标签(例如“完美”,“优秀”,“良好”,“一般”或“不良”)进行标记,指示文档与查询的匹配程度。 获得高质量的标签至关重要:训练数据的质量严重影响排名功能的质量。
当前,用于训练数据的标签是使用人工标注来收集的。通常,每个(查询,URL)对都分配给一个法官。但是,这导致容易出错的判断,因为单个法官很难捕获用户提出的查询的所有意图和细微差别。为了减轻此类错误,可以使用多个标注人员针对同一对(查询,URL)获得多个判断。然后,通过汇总多个判断得出对的最终标签。这种手动获取标签的方式是费时,费力且昂贵的。此外,随着排名模型变得越来越复杂,学习准确模型所需的标记数据量也增加了[23]。此外,为了确保标签的时间相关性,必须非常频繁地重复标签过程。因此,迫切需要搜索引擎使标签处理尽可能自动化。
观察到[20],搜索引擎的点击日志可用于自动生成训练数据。点击日志记录了对搜索引擎提出的所有查询,作为查询结果显示给用户的URL以及点击。日志记录了用户的偏好:有点击的文档很可能与用户的需求和意图有关,而跳过的(未单击)的文档很可能与用户的需求和意图无关。许多用户行为的汇总提供了有关(查询,URL)对质量的有力信号。因此,该数据可用于自动生成标签的任务。
Joachims等人的开创性工作[20,22]提出了一些用于解释点击日志的偏好规则。将这些规则(例如,有点的文档比之前的跳过文档要好)在应用于点击日志时会在查询的URL之间生成成对的正负样本,然后将其用作学习算法的训练集。
将Joachims等人的想法应用到搜索引擎的点击日志中,发现了一些缺点。
贡献:本文的主要贡献是一种通过点击活动自动生成(查询,URL)对标签的方法。 该方法直接解决了上述三个缺点。
更具体地说,我们提出了一种对点击日志的新解释,该解释利用了用户看到特定URL的可能性来推断预期的点击/跳过行为。 此新模型可以更准确地捕获用户的总体行为。 我们将成对的(通常是相互矛盾的)成对偏好建模为一个图,并将标签生成问题表述为一个新的图分区问题(MAXIMUM-ORDERED-PARTITION),其目标是将图中的节点划分为带标签的类,来最大化与标签一致的用户数量,并且最小化与标签不一致的用户数量。
MAXIMUM-ORDERED-PARTITION 问题具有独立的理论意义。我们表明,在找到两个标签,即相关标签和不相关标签的情况下,令人惊讶地发现可以在线性时间内找到最佳标签。另一方面,我们表明寻找最佳标记的问题是NP-困难的。因此,我们提出启发式方法来解决多个标签的标签生成问题。我们的方法计算图中节点的线性顺序,然后使用动态编程找到最佳分区。
我们对偏好规则和标记方法进行了广泛的实验研究。实验将点击推论与人工标注进行了比较。我们证明,通过此方法,我们对点击日志的概率解释比以前的确定性解释更准确。
此外,我们表明,小组的共识越强,我们的点击标签就越有可能达成共识。如果点击标签不同意强烈的共识,我们证明了点击标签通常可以归因于意图不明确的简短查询。
Joachims [20,22] 首先提出了使用点击作为训练数据基础的想法。 我们将在下一部分中更详细地解释这项工作。
随后,一系列论文提出了更详尽的模型来解释用户如何与搜索引擎交互。 例如,Radlinski 和 Joachims [25]将来自多个会话的偏好拼接在一起。 Craswell等人[6]提出了一种级联模型,该模型用于预测用户点击结果的可能性。 该模型假定用户从上到下查看搜索结果,并决定在每个位置上单击还是跳过并移至下一个结果。 Dupret和Piwowarski [10]还假设用户从上到下阅读,但距离上一次点击的距离越小可能性就越小。 这些想法可用于扩展本文的结果。 我们将其作为未来工作的有希望的方向。
在[9]中探讨了按点击次数对URL进行排序,然后对推导出的有序对进行训练的思想。尽管跳过的文档在该工作中被忽略,但我们在进行相关性声明时显式地利用了跳过。此外,该工作对于 position bias 不做任何校正。而我们通过进行眼动追踪研究(第3节)在一定程度上克服了这个问题。
在我们的工作中,我们为每个查询构造一个有向加权图。对于这样的图,一个自然的问题是:为什么不直接将边缘作为成对训练数据提供给机器学习算法,例如[4,15,20]?
这么做其实有一些问题。首先,边(u,v)和(v,w)可能存在于图中,但是(u,w)可能不存在。在某种意义上说,我们创建的图在这种情况是不完整的,因为在这种情况下,我们确实希望机器学习算法也可以在(u,w)上进行训练,即使这条边在图中不存在。其次,我们创建的图可能包含环。例如,在模棱两可的查询的情况下,某些用户可能更喜欢u而不是v,而其他用户可能更喜欢v而不是u。向机器学习算法同时提供 u>v 和 v>u 对是不一致的。最后,直接构造出的图不能创建以下形式的训练数据:u 和 v 具有同等相关性。事实证明,在对搜索结果进行排名时,这种“equal label”的训练数据非常有用[30]。我们生成的标签可以克服这些问题。
我们的实验表明,我们的有序图分区算法创建了更多的训练对,与图的边相比,它们更可能与一组人工标注更加一致。
我们用于从图形生成标签的技术包括:首先根据相关性对顶点进行排序,然后将这种排序划分为多个类,然后将标签分配给这些类。为了构造顶点的顺序,需要寻求一种排名,该排名将翻转的偏序对的总数最小化,即,对于所有URL u和v,在最终排名中偏好u > v的用户数量。这样的排名被称为共识排名。等级聚合方法[1、2、11、12、13]基于完全或部分有序的偏好产生共识等级。
搜索引擎的点击日志由一系列查询展示次数组成; 每个印象对应于向搜索引擎提出查询的用户。 每次印象可能会对结果集中返回的文档URL进行一次或多次点击。 呈现给用户的文档URL的有序列表以及每次文档单击的位置都存储在单击日志中。 目的是使用此信息来得出URL之间的偏序。 在本节中,我们描述如何解释单击日志以获取URL之间的偏序对。 我们首先详细讨论Joachims等人的工作及其在搜索引擎点击日志中的局限性。 然后,我们为查询日志解释提出我们自己的概率模型。
Joachims等人[20,22]提出了一组用于解释点击日志的偏好规则。 这些规则基于URL跟踪研究在URL之间生成偏序对。 我们将Joachims提出的规则分为两类,可增强现有排名的规则(正规则)和与现有排名矛盾的规则(负规则)。
包括
该规则指出,如果某人单击位置i处的URL A,而跳过位置i + 1处的URL B,则URL A优于URL B(A> B)。 此规则基于眼动研究:单击位置i处的文档的用户也可能会看到位置i + 1处的URL。尽管这可能捕获了最常见的用户行为,但并未捕获汇总 行为:某些用户可能会浏览位置i下方的更多URL。 在位置1上单击时尤其如此,因为有些用户确实在位置2以下读取。此外,此规则会生成稀疏数据。 对于网址的每次点击,我们仅获得一个成对的首选项。
包括:
规则Click > Skip Above最为激进:它会为所有之前跳过的URL生成偏序对,而“Click > Skip Previous”和“Last Click > Skip Above”规则较为保守。 前者仅使用点击位置前面相邻的URL生成首选项,而后者则假设只有最后一次单击才是成功的单击。 规则“Click > Click Above”则认为前面对点击是不满意不置信的点击。
这些规则试图生成将“纠正”当前序的数据。 这种方法的一个限制是,只在第一个结果上有单击时,不会生成数据,而这在实际搜索引擎的情况下是非常常见的情况。
孤立地看,这些规则可能导致错误的推断。 如果仅应用正规则,则无法获得有关排序函数做出的错误决策的信息。 另一方面,正规则则不会提供有关当前排序函数正确决策的任何信息。
即使正负规则结合在一起,也可能导致一些错误的推断。 考虑将“Click > Skip Next”规则与“Click > Skip Above”规则组合,并假设100个人仅点击位置1,而10个人点击位置3。然后这些规则的组合意味着生成偏序对(1,2),(3,1),(3,2)。将推论链接在一起,我们得到3> 1>2。然而考虑实际情况,这实际上是一个错误的结论。因为,真实的序更应该是1,3,2。
如上所述,Joachims等人的规则依赖于用户最常见的行为来生成偏好。我们如何捕获用户的总体行为,而不是最常见的用户行为?
我们提供了一种解释点击日志的概率方法,该方法也可以通过眼动研究获得信息。在图1中,我们显示了一个根据Cutrell和Guan [7,8,17]的工作改编的图表,描述了用户在点击位置j时读取位置i的概率。
在他们的研究中,手工制作的搜索引擎结果页是通过信息搜索练习创建的,从而改变了最终文档URL的位置。他们测量了在前10个结果集中的特定位置发生点击时测试对象查看的位置。
我们用Click > Skip Next和Click > Skip Above来扩充此研究,以便Pr(Read i | Click j)= 1等于1≤i≤j +1。例如,考虑Pr(Read i | Click 1 )线用菱形表示。该图表显示,读取概率为1的位置2,读取概率为0.5的位置3,依此类推。请注意,当大约10%的用户实际读取位置10时,下降幅度并不陡峭。
第二行Pr(Read i | Click 2)用正方形表示,与第一行相似,但“拉过”一个位置。实际上,随后的每一行似乎都是从前一条拉出来的。在所有这些情况下,读取较低位置的下降都是逐渐的。请注意,省略了行Pr(Read i | Click 9)和Pr(Read i | Click 10),因为它们对于所有i都等于1。
使用观察到的用户行为,我们为给定查询生成URL之间的偏序对,概率与图1中观察到的成正比。首先,我们确定要应用的规则。 我们想要捕获点击的正面和负面反馈,因此我们使用“Click > Skip Next”和“Click > Skip Above”规则。 我们的目标是创建每个查询的偏序图:对于每个查询,我们构建一个加权有向图,其中每个节点对应一个URL,并且从顶点u到v的有向边表示,阅读了u和v并且点击u跳过v对用户数量。此图构成了我们构建标签的基础。
我们解释点击日志的方法如下。
请注意,我们生成偏序对的方式解决了Joachims等人的规则的局限性。 我们结合了正面和负面反馈,并利用了用户的总体行为。 而且,由于概率解释的结果,减轻了错误推论的问题。 在前面的示例中,点击位置1会以不同的概率生成从 2 到 10 的所有位置的偏序。
注意:图1中的数据在很多方面都受到限制。首先,它是基于一项眼动追踪研究的,该研究涉及实验室环境中有限的参与者。因此,该数字可能无法反映用户读取位置的真实概率。此外,阅读概率通常取决于查询意图:寻址查询不太可能导致在点击后读取更多后续结果,而新闻类查询或泛需求性查询可能会导致所有十个位置的阅读行为比我们估计得更多。依赖于查询的阅读概率可以从[6,10]的工作中获取,我们将其作为将来工作的方向。最后,阅读概率可能还取决于用户(针对目标对象与浏览),以及时间(工作日与周末)。
截止到这里,我们可以简单地将图的边缘作为训练数据提供给机器学习算法。问题在于这些边并不能说明用户偏好的完整情况:某些确实存在的边缘应删除,因为它们会形成矛盾的循环。另外,应添加一些不存在的边缘,因为可以通过传递来推断它们。在下一节中,我们将展示如何从图中自动生成标签,以构建更完整的信息。
给定查询的用户首选项集合,我们现在为URL分配标签,以使分配与用户的首选项一致。 回想一下,我们将查询首选项的集合建模为有向图。 顶点对应于URL。 边对应用户偏好, 边的权重刻画了偏好的强度。给定这种图形表示形式,我们将标注问题定义为图分割问题:将顶点分配给有序类,以使我们的目标:与label一致的边的权重 - 与类不一致的边的权重 最大化。 这些类别与相关性标签相对应,例如,Perfect,Excellent,Good,Fair和Bad。
我们形式化的定义一下问题, G = (V, E)表示图,Λ = {λ1, . . . , λK} 表示K个有序标签,满足 i < j,则 λi > λj 。令 Let L : V → Λ表示一个对图的标记函数,即L(v)是对图中一个具体的节点的标记。标记函数将图中节点的有序分区定义为K个不相交的类 {L1, …, LK},其中Li = {v : L(v) = λi}。
我们可以互换地使用L来表示标签和partition。 如果L(u)> L(v),则边缘(u,v)是标记L中的正向边;如果L(u)
现在,我们研究 MAXIMUM-ORDERED-PARTITION 问题的复杂性。 我们首先考虑K = 2的情况,也就是说,我们希望将数据点划分为两类,以使净协议权重最大化。 该问题使人联想到 MAX DI-CUT,即在图形中找到最大有向切割的问题,该问题被认为是 NP-hard。 但是,令人惊讶的是,我们的问题不是 NP 难题。 在下一个定理中,我们展示了一种简单的线性时间算法来计算最佳分区:净加权出度比加权入度大的点被放在一个 partition 中,净加权出度比加权入度小的点被放在另一个 partition 中
具体证明略。
接下来讨论 MAXIMUM-ORDERED-PARTITION 问题的启发式方法。 我们的算法分两步进行。 首先,我们描述了用于计算图中节点的线性排序(可能有些节点具有相同排名)的算法,可以使得到更多偏好度节点有排名较高的倾向。 然后,我们应用动态规划算法来找到此线性顺序的最优分区L *,使其最多划分为K个类,并使A(L)最大化。
我们考虑了三种不同的技术来获得线性排序(可能有些节点排名不分先后),我们将在下面概述。
∆-ORDER: 我们为图中的每个节点计算公式 1 中定义的 ∆u 值。 然后,我们按照这些值的降序对节点进行排序。 该想法的动机是,在2-partition的情况下(定理1),该方法的可提供最优解。
PIVOT:我们采用了Gionis等人[16]提出的“ Bucket Pivot算法”,这是一种用于查找桶排序的方法。存储桶顺序是具有“平序”(即排名不分先后)的全局顺序,也就是说,我们将节点集划分为有序存储桶,这样,靠前桶中的全部节点位于靠后桶中的全部节点之前,但是存储桶中的节点是不分先后的。首先,我们计算图的传递闭包,以捕获节点对之间的传递偏好关系。该算法以如下方式递归进行:选择一个随机顶点v作为 pivot ,然后通过与v比较将其余节点分为三类(“左”,“相同”,“右”)。“左”类包含所有是v的传入邻居,但不是v的传出邻居,“ right”类包含所有v的传出邻居,但不包含v的传入邻居。“相同”类包含v以及其余节点(非v邻居的节点以及同时具有v的入边和出边的节点)。然后,算法在“左”类上递归,将“相同”类作为结果桶输出,并在“右”类上递归。
PageRank: PageRank是一种流行的算法,基于Web图对网页进行排名。 该算法在图上执行随机游走,其中在每个step中,每个节点以1-α的概率时,随机选择自己的出链进行随机游走,或以概率α跳转任意一个随机页面。
Pagerank 算法很容易迁移到我们的场景中。 给定图G,我们创建转置图GT,即反转所有边的方向。 反转的原因很好理解:在图G中,边缘(u,v)表示u比v收到更高用户青睐;那么在图 GT 中,对应的反转后的边(v,u)意味着节点 v 推荐将节点 u 排在较高位置。 一个非常相似的直觉控制着 Web 上PageRank 的应用。 与pr不同的是,不是随机均匀地在出度中选择下一跳,而是跳转概率与其边的权重w成正比。图GT上的PageRank算法的结果是由随机游动的静态分布给出的图中每个节点的得分。 我们按照这些分数的降序对图的节点进行排序。
给定节点的线性顺序,我们现在希望将其划分为K个类,以使目标函数最大化。 我们可以使用动态规划找到最佳分割。 假设算法产生的线性排序为v1,v2,… ,vn, 生成K个分段等效于在间隔 [1,…,n-1] 中放置 K - 1 个断点。 位置 i 处的断点将节点分成集合{v1,… ,vi} 和 {vi+1,… ,vn}。
令OPT表示一个二维矩阵,其中OPT [k,i] 是具有 k 个断点时的最佳切分,其中最后一个断点位于位置 i。 给定该矩阵的值,我们可以通过计算第(K − 1)行的最大值来找到针对具有K类的分段的最佳净协议。 也就是说,对于最优分区L∗,我们有
我们将使用动态编程来填充计算 OPT 矩阵。 我们定义了另一个二维矩阵B,其中,如果我们在位置i处插入最后一个断点的分段中的新断点,则B [j,i]是净协议的附加收益。 对于k> 1,很容易看到
对于k = 1,我们有OPT [1,i] = B [0,i]。 现在,我们可以使用公式2以自下而上的方式填充矩阵OP T。算法的计算复杂度为O(Kn2)。
通过跟踪算法所做出的决策并从最优解中追溯,找到最优K-partition 是矩阵 OPT 计算的副产品。
我们将K = 5运行上述算法,因为我们想将给定查询的URL分配给五个有序类。如果动态编程返回五个非空类,则此分配是唯一的。但是,是有这种可能性的,即最后被划分出了M个非空类,但是如果有M <5。我们将提供一种启发式方法以解决该问题,但是由于篇幅所限,我们省略了细节。
主要思想如下。由于我们对少量标签感兴趣,因此我们列举了对M类五个标签的所有可能分配。使用集群内部和集群内部边缘对每个分配进行评分。对于集群间边缘,如果用户对一个类比另一个类表现出强烈的偏爱,则标签将获得奖励,奖励可将类尽可能地分开。对于具有许多集群内部边缘的集群,由于分配了极端类别“完美”和“不良”,因此标签受到了惩罚。有道理的是,我们不希望用户在一个完美URL(或错误URL)集群中偏爱一个URL而不是另一个URL。然后可以将这些集群间和集群内分数适当地组合以产生单个分数。得分最高的标签被选为最佳标签。
这里论文有一个地方感觉有问题,4.2.2节,倒数第二段,ℓ ≤ i ≤ r 感觉应该是 ℓ ≤ i ≤ r-1。
我们实验的目的是了解基于点击的标签是否符合评审团的意见。 我们比较了用于生成偏好图的不同技术,然后评估了不同的标记算法。 在深入研究这些组件之前,我们将描述我们的实验设置。
我们获得了2000个查询的集合,每个查询平均有19个URL,其中每对(查询,URL)都由11位法官手动标记为相关。 通过将分数1-5分别分配给标签Bad-Perfect,将顺序判断转换为数值。 对于这2000个查询集合,我们还获得了一个月的点击日志点击活动。 效果取决于单击标签与共识意见以及评委小组的对比意见是否一致。
共识意见:对于给定的查询,请考虑由相同的11位评委评估的两个URL。 直观地说,我们想表明,法官对两个URL达成共识的次数越多,点击偏好就越多。 这正是我们共识图表的直觉。 成对的URL被分成11个评委中有六个,七个,…,11个都同意两个URL的URL,其中“同意”意味着该组给这两个URL赋予相同的标签,或者所有人都同意一个URL比另一个URL更好。 其他。 在图构建实验中,我们比较了不断增加的共识意见与边缘对齐的程度。 在标签实验中,我们比较了点击标签与达成共识的程度。