想象你开了一家小餐厅,菜单上的菜按固定顺序排列。你很快发现,排在最前面的那盘红烧肉几乎每天都被点。它是真正的招牌菜吗?不一定——可能是因为顾客一翻开菜单就看到它,懒得再往下找。想搞清楚哪道菜真实受欢迎,聪明的经理会悄悄记下每位顾客的“点餐轨迹”:从哪里开始看、在哪一行停下来、最终点了什么、点完之后是心满意足地放下筷子,还是继续翻菜单。搜索引擎遇到的困境一模一样:用户面对一串搜索结果,像翻菜单一样从上往下看,有的点进去,有的扫一眼就跳过,这一切都写在了服务器的日志里。点击模型(Click Model)就是那位聪明的经理——它从用户的点击、跳过和浏览行为中,推断每个结果“真实的相关性”,把“位置曝光”带来的虚火和“真实魅力”区分开。本文沿着“点餐记录本→位置偏置→级联规则→模型家族→训练推断→特征工程→电商实战”这条线,带你从零看懂点击数据如何驱动搜索排序。

岗位关联

点击模型是搜索、推荐、广告三大场景的通用“行为解码器”。掌握它,你就能从海量隐式反馈中提炼真实用户偏好,直接提升排序效果与业务指标。

目录
  1. 可视化演示
  2. 点击数据基础
  3. 位置偏置修正
  4. 级联假设
  5. 经典模型族
  6. 训练与推断
  7. 点击特征工程
  8. 电商搜索实践
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

演示搜索引擎点击模型:位置偏置建模、级联浏览假设与点击/转化信号融合,直观展示用户隐式点击行为如何驱动搜索排序优化。

本节配有交互动效(进入视口后自动加载,约 3KB)。

位置偏置模型PBM 点击=吸引力×位置因子 P(click)=a_d·x_u 位置越靠前点击概率越高,需去偏置

点击数据基础

开餐厅的第一步,不是研究菜谱,而是准备一本像样的点餐记录本:每位顾客点了哪道、在哪一页停留了多久、是不是只看了一眼就走。搜索引擎也一样,用户的每一次查询、展示、点击和跳过,都被服务器的日志忠实地记录下来。这些日志不像调查问卷那样需要用户主动配合,而是“顺手产生”的隐式反馈——用户根本不知道自己在填一张无声的问卷。隐式反馈覆盖面广、采样成本低,是点击模型最主要的“食材”。

但隐式反馈也会掺假。有人手滑误点了不感兴趣的结果,有人被夸张的标题骗进去又立刻关掉,还有人点了广告位自己却浑然不觉。搜索引擎要做的第一件事,就是把日志里的噪声过滤掉:剔除爬虫流量、合并同一会话中的重复点击、标记无效曝光。配合记录的还有展示上下文——查询词、结果排序、页面位置、时间、设备类型。这些信息就像点餐记录本旁边的备注栏:“晚上八点,一位常客翻到第三页,点了微辣的菜。”

有了干净的点餐记录本,一切推断才有了根基。日志里最朴素的统计量是点击率:某个位置被点击的次数除以它被展示的次数。

点餐记录本记得越细致,后面对“真实口味”的判断就越可靠。日志的质量,直接决定了点击模型的上限——再聪明的经理,面对一本残缺不全的记录本也无能为力。

CTRi=CiIi\displaystyle \text{CTR}_i = \frac{C_i}{I_i}
点击率是点餐记录本上最原始的一列数字,它告诉我们某个位置被“翻牌”的比例,但并没有说清为什么会翻牌。
  1. 点击次数 C_i历史日志中第 i 个位置被用户点击的总次数,相当于这个位置上的菜被顾客相中的次数。
    CiC_i
  2. 展示次数 I_i第 i 个位置被完整呈现给用户的总次数,相当于这道菜被端上餐桌的次数。
    IiI_i
  3. 点击率 CTR_i两者相除,得到一个 0 到 1 的比例,代表该位置的“平均被点概率”。
    CiIi\frac{C_i}{I_i}

位置偏置修正

现在,经理发现菜单第一行的菜总是被点。难道它真的是招牌?未必。顾客打开菜单,目光最先落在第一行,这是一条物理规则——“看都没看到”的菜不可能被点。这个现象在搜索领域叫位置偏置:排名靠前的结果天然获得更多曝光,也因此更容易被点击。这是一种与结果本身好坏无关的系统性偏差。如果不修正它,排序系统就会陷入恶性循环:排前面的结果点击多,于是系统觉得它好,继续让它排前面,真正优质却排在后面的结果永无出头之日。

聪明的经理不会只看表面点单量,而是问一个问题:顾客“看到”这道菜的概率和“喜欢”这道菜的概率分别是多少?点击这一行为,恰恰是两者联合作用的结果。用数学写出来,就是点击被拆成了两个因子的乘积:

位置偏置修正的核心,就是把 a_i 从点击行为中剥离出去,留下 r_i 这个“真实相关性”信号。餐厅经理懂得扣除菜单首页的曝光红利;搜索引擎同样需要扣除排名位置的虚火,才能知道哪道菜真正受欢迎。

P(Ci=1)=ai×ri\displaystyle P(C_i = 1) = a_i \times r_i
点击 = 被看到 × 被认可。位置偏置决定了“被看到”的概率,而模型真正想估的是“被认可”的那部分。
  1. 曝光概率 a_i第 i 个位置被用户真正看到的概率,对应菜单第 i 行被目光扫过的机会。位置越靠前,a_i 越大。
    aia_i
  2. 相关概率 r_i用户看到之后觉得这个结果符合需求、愿意点击的概率,相当于菜与食客口味的契合度。
    rir_i
  3. 复合概率 a_i \times r_i两者相乘才得到观察到的点击概率。“看到”和“认可”缺一不可。
    ai×ria_i \times r_i

级联假设

你有没有注意过自己和朋友吃饭时翻菜单的方式?大多数人不会从中间随机翻起,也不会来回跳读,而是从第一行开始,一行一行往下扫,看到想吃的菜就合上菜单。搜索引擎用户的行为惊人地相似:他们通常从第一条结果开始,逐条向下判断,要么“这个不相关,跳过”,要么“这个不错,点进去看看”。一旦点到了满意的结果,就不再往下浏览。这就是级联假设(Cascade Hypothesis)。

级联假设用一组条件概率描述“是否查看下一条结果”:如果用户已经查看了第 i 条结果,并且觉得它不相关,那么他大概率会接着看第 i+1 条;如果他觉得相关,就会停下来,不再消耗后面的结果。这个“满意即停、不满意继续”的规则,用公式表达为:

级联假设给了行为建模一个清爽的“读法规则”,让模型不用猜测用户会不会跳着看。但它也有局限:在图片搜索、广告瀑布流、移动端双列信息流等场景,用户经常跳读和回看。

P(Ei+1=1∣Ei=1,Ri=0)=1,P(Ei+1=1∣Ei=1,Ri=1)=0\displaystyle P(E_{i+1}=1 \mid E_i=1, R_i=0) = 1, \qquad P(E_{i+1}=1 \mid E_i=1, R_i=1) = 0
级联规则像食客翻菜单:前一道菜不合口味,就接着翻下一道;一旦点到满意的菜,就合上菜单结账。
  1. 检查事件 E_iE_i=1 表示“用户确实查看了第 i 条结果”,是浏览行为的开关。
    EiE_i
  2. 相关事件 R_iR_i=1 表示第 i 条结果满足用户需求,相当于碟中餐合了食客的胃口。
    RiR_i
  3. 不满意则继续当 E_i=1 且 R_i=0 时,用户继续检查下一条的概率为 1,也就是“不好吃就翻页”。
    P(Ei+1=1∣Ei=1,Ri=0)=1P(E_{i+1}=1 \mid E_i=1, R_i=0) = 1
  4. 满意即停止当 E_i=1 且 R_i=1 时,用户继续检查下一条的概率为 0,也就是“吃饱了就不再点菜”。
    P(Ei+1=1∣Ei=1,Ri=1)=0P(E_{i+1}=1 \mid E_i=1, R_i=1) = 0

经典模型族

经理开始意识到,不同顾客的点餐习惯差异很大。有人从来不翻菜单,只点第一页的推荐菜;有人从第一道菜一路试下去,吃到满意才停;有人看得不耐烦,跳着翻几页又回来;还有人点了菜,吃了一口不满意就继续翻。针对这些不同习惯,搜索领域发展出了一个点击模型家族族。它们并非互相替代,而是对“用户如何浏览结果页”这一关键假设的不同刻画。

最简单的叫位置偏置模型(PBM),它假设用户点击某条结果只取决于两件事:结果所在的位置和结果本身的相关性。PBM 是点击模型家族的“入门款”,公式如下:

在 PBM 之后,级联偏置模型(CBM)引入了“逐项浏览”的顺序规则;用户浏览模型(UBM)放宽了限制,允许用户跳过或回看;而动态贝叶斯网络(DBN)不但建模点击,还显式建模“点击后是否满意”——就像经理不仅要看食客点了什么,还要观察他吃完后是心满意足地放下筷子,还是皱眉继续翻菜单。选择哪个模型,取决于你观察到的用户行为模式有多复杂:日志简单用 PBM,场景复杂用 DBN。

P(Ci=1)=αi×rd\displaystyle P(C_i=1) = \alpha_i \times r_d
PBM 认为“位置”和“文档”独立地影响点击:位置负责曝光,文档负责魅力。
  1. 位置系数 α_i第 i 位的曝光衰减系数,反映这个位置天然能吸引多少目光。
    αi\alpha_i
  2. 文档相关度 r_d文档 d 与查询的匹配程度,是模型最终想恢复的“真实口碑”。
    rdr_d
  3. 点击概率合成两者相乘得点击概率。同一篇文档放到不同位置,点击率会随 α_i 变化。
    αi×rd\alpha_i \times r_d

训练与推断

点餐记录本攒了厚厚一摞,经理想从里面反推出每道菜“真实受欢迎度”。这就是训练:模型把历史点击日志当作“答案”,不断调整自己的参数,直到能最大程度地解释这些记录。在数学上,这个过程叫最大似然估计——寻找一组参数,使得“观测到这本记录本”的概率最大。

但这里有个难题:用户“是否真的看到了这个结果”“点击后是否满意”,都像顾客的内心活动一样不可观测。这些隐变量让似然函数无法直接求导。经典的解法是 EM 算法:先固定参数,估计隐变量的期望;再固定隐变量,更新参数;如此反复迭代,收敛到局部最优。模型上线后还有在线推断:每当新日志滚动而来,系统要增量更新参数,捕捉用户口味的季节变化,并对“点击很久之后才下单”这类延迟反馈做特殊处理。

θ⋆=arg⁡max⁡θ∏(q,d,c)∈DP(c∣q,d;θ)\displaystyle \theta^{\star} = \arg\max_{\theta} \prod_{(q,d,c) \in \mathcal{D}} P(c \mid q, d; \theta)
“哪个参数最能解释这本记录本?”——把日志套进模型,反复调整参数,直到拟合程度最高。
  1. 数据集 \mathcal{D}所有历史点击日志构成的集合,每一条都包含查询 q、文档 d 和点击行为 c,相当于整本点餐记录。
    D\mathcal{D}
  2. 观测概率 P(c \mid q, d; \theta)在参数 θ 下,模型认为这次点击行为出现的概率。概率越高,说明模型越“懂”这次行为。
    P(c∣q,d;θ)P(c \mid q, d; \theta)
  3. 连乘 \prod把每一条日志的概率乘起来,代表整本记录被模型复现的总概率。不是只讨好某一道菜,而是整体都要对得上。
    ∏(q,d,c)∈D\prod_{(q,d,c) \in \mathcal{D}}
  4. arg\max_{\theta}在所有可能的参数中,挑出让总概率最大的那一组。
    arg⁡max⁡θ\arg\max_{\theta}

点击特征工程

只看点餐记录还不够。老练的餐厅经理还会留意食客的身份:是第一次来的新客,还是每周三都来的熟客?是中午赶时间的上班族,还是晚上慢慢品味的家庭聚餐?同理,点击模型的输出——修正后的点击率——只是众多信号之一。真正驱动排序的,是一套丰富的特征向量。特征工程要做的事,就是把这些“菜谱情报”组织成模型能计算的数字。

点击相关的特征通常分为四路:查询特征(查询词长度、类目、是否为品牌词)、文档特征(文本匹配分、点击历史、质量分)、用户特征(历史点击率、偏好类目、设备类型),以及位置上下文特征(当前排在第几位、周围结果是什么)。把它们拼成一个向量,再交给排序模型加权打分:

特征工程要特别注意稀疏问题:新文档或新查询的点击记录太少,修正点击率会很不稳定。常用的招数是贝叶斯平滑——把先验均值和观测计数融合,形成更保守的估计。特征这一层做扎实了,点击模型这颗“引擎”才能真正发力。

score=w⊤ϕ(q,d,u)\displaystyle \text{score} = w^{\top} \phi(q, d, u)
让模型从“只读菜单”升级为“看人下菜碟”:把查询、文档、用户各自的信号统一送入打分器。
  1. 特征向量 φ(q, d, u)把查询 q、文档 d、用户 u 三方面信息编码成数值向量,相当于把食客、菜品、场合翻译成一行数字。
    ϕ(q,d,u)\phi(q, d, u)
  2. 权重向量 w每个特征的信任程度,由排序模型训练得到。权重越大,说明该特征对最终打分的贡献越高。
    ww
  3. 线性打分 w^{\top} \phi特征向量和权重做内积,加权求和成一个总分。
    w⊤ϕ(q,d,u)w^{\top} \phi(q, d, u)

电商搜索实践

餐厅开成了连锁店,每家分店的菜单、客群、时段各有不同,但“观察点餐行为”的方法可以复用。在电商搜索场景里,点击模型的价值尤为突出:商品卡片密密麻麻排在屏幕上,用户扫一眼就滑过去了,位置的影响比内容资讯搜索还要大。这时候,用修正后的点击率替代原始 CTR,能大幅减少“靠前虚火”的干扰。

电商排序的目标不止是“让用户点进来”,还要“让用户买下来”。因此,最终打分常常是多方信号的加权融合:文本相关分负责“菜对不对题”,修正点击率负责“用户爱不爱看”,预估成交转化(GMV)负责“会不会真的掏钱”:

实际落地时,团队会用离线指标(NDCG、DCG、点击预测的 AUC)先做一轮筛选,再通过线上 AB 实验验证效果。冷启动阶段,新商品没有一点点击历史,系统就借用同类目先验做平滑,或者用位置偏置类模型估计一个保守的初始点击率。经理把这套观察法复制到所有分店,就能让好菜不再被菜单顺序埋没,让优质商品在搜索结果里浮出水面。

---

scorefinal=w1×srel+w2×CTRadj+w3×GMVest\displaystyle \text{score}_{\text{final}} = w_1 \times s_{\text{rel}} + w_2 \times \text{CTR}_{\text{adj}} + w_3 \times \text{GMV}_{\text{est}}
最终排名不是只看“好不好吃”,还要看“值不值得卖”。商品搜索要对点击、转化、成交三方利益做综合权衡。
  1. 相关分 s_{\text{rel}}文本与语义匹配给出的初始相关度,相当于菜名和顾客需求的对得上对不上。
    srels_{\text{rel}}
  2. 修正点击率 CTR_{\text{adj}}由点击模型剥离位置偏置后产出的真实点击倾向,是“口碑”的量化。
    CTRadj\text{CTR}_{\text{adj}}
  3. 成交预估值 GMV_{\text{est}}模型预测该商品被用户下单的概率或金额,代表“会不会真的带来生意”。
    GMVest\text{GMV}_{\text{est}}
  4. 加权融合三路信号乘以各自权重后相加,得到最终排序分。
    w1×srel+w2×CTRadj+w3×GMVestw_1 \times s_{\text{rel}} + w_2 \times \text{CTR}_{\text{adj}} + w_3 \times \text{GMV}_{\text{est}}

AI 应用场景

电商商品搜索排序

阶段:相关性建模与排序优化

解决的问题:电商搜索结果第一页的位置差异极大,原始点击率完全无法代表商品真实吸引力。传统方法直接用 CTR 排序,位置靠前的商品永远占便宜,尾部优质商品被埋没;点击模型分离位置偏置后,得到修正相关度,与文本匹配分、价格偏好、库存状态一起送入排序模型,让排序回归真实偏好。

具体案例:用户搜索“蓝牙耳机”,在位置 10 的一款降噪耳机被点击后停留时间长,点击模型判定其修正点击率远高于位置 1 的普通耳机。排序系统将其提升到前五后,实验组加购率明显上升,搜索结果的人均点击深度也变得更健康。

信息流广告位置校准

阶段:广告排序与竞价

解决的问题:信息流场景里广告和自然内容混排,广告所处位置的曝光质量差异巨大。广告主看到素材点击率低就急着换素材,但很可能是位置偏置在作祟。点击模型把“位置曝光”和“素材创意”分离,让广告算法团队能公平评估创意的真实点击潜力,从而优化出价和素材分配。

具体案例:某商品素材长期排在信息流底部,被系统判为低质。用点击模型剥离位置偏置后,发现该创意的真实点击率比中部位置的素材高了近一倍。团队调整素材投放位置和出价策略,广告 ROI 明显回升。

搜索质量监控与反作弊

阶段:质量评估与异常检测

解决的问题:人工标注搜索结果质量周期长、成本高,且无法覆盖全量线上流量。点击模型能给出“无偏的预期点击率”,将线上实际点击与预期值对比,一旦某个站点或某个位置出现系统性背离,就可能是内容作弊或者抓取异常。

具体案例:质量监控系统发现某个网页在低位置时点击异常高,远超点击模型按位置偏置规律给出的预期。系统自动标记该页面为“疑似刷点击”,进入人工复核流程,确认后将其降权处理,恢复了搜索生态的公平性。

Python 演示

python50 行
import numpy as np def generate_logs(n_docs=10, n_pos=10, n_show=8000, seed=42):    rng = np.random.default_rng(seed)    rho_true = rng.uniform(0.1, 0.9, n_docs)    alpha_true = np.linspace(1.0, 0.1, n_pos)    logs = []    for _ in range(n_show):        doc = int(rng.integers(0, n_docs))        pos = int(rng.integers(0, n_pos))        click = int(rng.random() < alpha_true[pos] * rho_true[doc])        logs.append((doc, pos, click))    return logs, rho_true, alpha_true def estimate(logs, n_docs=10, n_pos=10, rounds=60):    alpha = np.full(n_pos, 0.7)    rho = np.full(n_docs, 0.7)    for _ in range(rounds):        for d in range(n_docs):            num = 0.0            den = 0.0            for doc, pos, click in logs:                if doc == d:                    num += click                    den += alpha[pos]            rho[d] = np.clip(num / (den + 1e-6), 0.01, 0.99)        for p in range(n_pos):            num = 0.0            den = 0.0            for doc, pos, click in logs:                if pos == p:                    num += click                    den += rho[doc]            alpha[p] = np.clip(num / (den + 1e-6), 0.01, 0.99)    scale = alpha[0]    return alpha / scale, rho * scale def main():    logs, rho_true, alpha_true = generate_logs()    alpha_est, rho_est = estimate(logs)    print('真实相关性:', np.round(rho_true, 3))    print('估计相关性:', np.round(rho_est, 3))    top3_true = list(np.argsort(rho_true)[-3:][::-1])    top3_est = list(np.argsort(rho_est)[-3:][::-1])    print('真实Top3文档:', top3_true)    print('估计Top3文档:', top3_est)    print('Top3重合率:', len(set(top3_true) & set(top3_est)) / 3) if __name__ == '__main__':    main()
目的:模拟生成带位置偏置的点击日志,然后用交替迭代法估计文档真实相关性和位置偏置系数,验证点击模型能从“点餐记录本”里反推出真实口碑。
  1. logs.append((doc, pos, click))用“真实相关性”乘“位置偏置”得到点击概率,模拟用户点击,生成一条点击日志。
  2. den += alpha[pos]分母是所有曝光概率之和,用于把点击次数换算成不受位置影响的真实相关度。
  3. rho[d] = np.clip(num / (den + 1e-6), 0.01, 0.99)更新文档相关性,并裁剪到合法概率范围,防止除零或越界。
  4. scale = alpha[0]取第一个位置的偏置系数作为归一化基准,因为位置偏置和相关性可以整体缩放而不改变点击概率。
  5. alpha / scale, rho * scale统一尺度后得到可解释的位置暴露系数和真实相关度。
  6. top3_true` 与 `top3_est对比真实和估计的 Top3 文档,用重合率直观检验模型是否还原了真实排序。

常见误区

误区不少初学者把搜索页里的点击率直接当成相关性排序依据,认为“第一位点击最高,那不就是用户最想要的结果吗?”

正解点击率混杂了位置偏置——靠前的结果天然曝光多、容易被看到,所以点击率虚高。点击模型必须先剥离位置的影响,再观察残差中体现出的真实相关性。否则,就是把“站在聚光灯下”误当成了“真有实力”。

为何常见:因为“点击多的内容更受欢迎”是生活中的直觉,而位置偏置是系统性的、肉眼不可见的偏差,初学者很容易忽略这个隐藏因素。

误区把点击当成纯粹的正面反馈,认为“只要点进去了,就说明用户认可这个结果”。

正解点击只表示用户想进一步查看,是“开始观察”而不是“给出好评”。用户点进去后发现页面内容不符,会立刻关掉。DBN 等模型正是通过点击后是否继续浏览、是否很快离开来推断真实满意度,而不是把点击本身当作终点。

为何常见:点击是日志里最容易捕捉的动作,而用户打开页面后的“皱眉”和“点头”都看不到,所以人们容易把可见动作直接等同于真实态度。

误区很多人学完级联假设后,认为所有用户在任何搜索页面上都会从上到下逐条看过去,直到满意才停止。

正解级联假设适合传统的文本搜索结果页,但对图片搜索、多列瀑布流、广告混排或复杂任务场景,用户会跳读、回看甚至并行扫视。这时需要 UBM、DBN 等更宽松的浏览模型,才能准确描述真实行为。

为何常见:教学时先从简单假设讲起,容易让学生把模型的“理想化设定”当成普适真理,忽略了真实世界的多样性。

误区深度学习时代习惯了“模型+梯度下降”范式,有人以为点击模型就是一个普通分类器,拿日志做标签直接反向传播就行。

正解点击过程包含“是否检查”“是否满意”等不可观测的隐变量,似然函数是一个混合分布,不能简单求导。经典方案是 EM 算法:先依据当前参数估计隐变量的期望,再更新参数,交替迭代。部分模型确实可以改造成可微形式用梯度优化,但出发点仍然是隐变量建模。

为何常见:深度学习的端到端训练太深入人心,让人忽略了点击模型作为“结构化概率图模型”的独特之处。

误区认为模型训练完部署上线就万事大吉,之后不需要再更新。

正解搜索页面改版、季节商品更换、用户群体迁移,都会让位置偏置和相关性分布发生漂移。模型需要定期用新日志增量更新,并做漂移检测;遇到大促、上新季等特殊时段,还要准备临时校准策略。

为何常见:静态思维让人默认用户行为稳定不变,但真实搜索场景的口味每天都在变化,就像餐厅菜单换季,老配方不一定还受欢迎。

面试题

Q1. 点击模型要解决的核心问题是什么?

单选题 · easy

  • A.提高搜索引擎的并发吞吐能力
  • B.从隐式点击行为推断真实相关性← 正确答案
  • C.压缩倒排索引的磁盘占用量
  • D.加快网页爬虫的抓取调度效率

答案:B。点击模型解决的是“行为→偏好”的推断问题。就像餐厅经理从点餐记录反推菜品真实口碑,它从用户的点击、跳过行为中提取真实相关性。吞吐、索引、爬虫都是搜索系统的工程问题,与点击模型无直接关系。

Q2. 排在第一的结果点击率最高,主要因为什么?

单选题 · easy

  • A.第一个结果天然与查询最相关
  • B.位置靠上获得更多曝光机会← 正确答案
  • C.排序系统保证唯一最优解
  • D.用户只会浏览第一屏的结果

答案:B。位置偏置决定了靠前的结果更容易被看到,从而获得更多点击,这与相关性无关。就像菜单第一行的菜被翻牌多,不代表它最好吃。“最优解”“只看第一屏”都不是原因,曝光机会才是关键解释。

Q3. PBM 模型的点击概率如何表示?

单选题 · mid

  • A.曝光系数乘以文档相关度← 正确答案
  • B.曝光系数加上文档相关度
  • C.取曝光系数和相关的最大值
  • D.曝光系数除以文档相关度

答案:A。PBM 将点击拆成位置曝光系数和文档相关度的乘积,点击 = 被看到 × 被认可。加法不能体现“缺一不可”的语义,取最大值更不成立,除法则会扭曲点击概率的单调性。乘积是最符合直觉的建模方式。

Q4. 级联假设认为用户如何浏览结果页?

单选题 · mid

  • A.随机跳到页内任意位置
  • B.从顶部逐项向下检查← 正确答案
  • C.只点击前三个结果
  • D.从底部向上倒序浏览

答案:B。级联假设刻画的是“顺序浏览、满意即停”的行为:用户从第一条开始逐项判断,不满意就继续,满意就停止。随机跳读、只看前三、倒序浏览都与级联假设的核心相悖。

Q5. 下列哪些属于点击模型中常见的隐变量?

多选题 · mid

  • A.用户是否看到了对应结果← 正确答案
  • B.用户点击后是否感到满意← 正确答案
  • C.文档与查询的真实相关度← 正确答案
  • D.搜索结果的摘要字节长度

答案:ABC。点击模型要推断的“是否检查”“是否满意”“真实相关度”都是难以直接观测的隐变量,就像顾客是否真的看到了这道菜、吃完是否满意。摘要字节长度是可见字段,不是隐变量,可以直接从页面结构中获得。

Q6. EM 算法在点击模型训练中的主要作用是?

单选题 · mid

  • A.加速索引重建的并行化
  • B.含隐变量时迭代估计参数← 正确答案
  • C.消除日志中的点击噪声
  • D.自动生成模拟点击样本

答案:B。点击模型的最大似然估计包含隐变量,似然函数无法直接优化。EM 通过“估计隐变量期望→更新参数”两步交替迭代来逼近最优解。它不负责索引并行、噪声过滤或样本生成,那些是数据处理和工程侧的问题。

Q7. DBN 与级联模型的关键区别是什么?

单选题 · hard

  • A.DBN 假设用户只看前两屏
  • B.DBN 建模点击后的满意度← 正确答案
  • C.DBN 不需要位置偏置信息
  • D.DBN 只能接受二进制特征

答案:B。DBN 在级联浏览的基础上引入了“点击后是否满意”的状态,满意就停止,不满意就继续浏览。这是对“点完菜之后是放下筷子还是继续翻菜单”的显式建模,也是它相对级联模型最关键的扩展。DBN 并不限定屏数,也照样需要位置信息。

Q8. 点击特征工程通常会纳入哪些特征?

多选题 · hard

  • A.查询与文档的文本匹配分← 正确答案
  • B.结果在页面中的展示位置← 正确答案
  • C.用户近期对类似查询的偏好← 正确答案
  • D.服务器负载均衡的队列长度

答案:ABC。点击特征工程围绕查询、文档、用户和位置上下文展开:文本匹配分反映相关性,展示位置反映曝光环境,用户偏好反映个体习惯。服务器负载是运维指标,和点击行为的语义无关,不能作为点击特征。

Q9. 电商搜索里应用点击模型的核心流程是?

单选题 · hard

  • A.使用原始点击率替换相关度
  • B.修正点击率融合排序打分← 正确答案
  • C.用位置系数直接调整价格
  • D.忽略位置直接产出排序

答案:B。正确流程是先把位置偏置剥离,得到修正点击率,再与文本相关分、成交预估值加权融合进排序打分。原始点击率替换相关度会放大位置偏置;位置系数调整价格和忽略位置的做法都偏离了点击模型的正确用法。

Q10. 点击模型训练所用的“隐式反馈”指?

单选题 · easy

  • A.用户对结果的星级评分
  • B.用户的点击和跳过行为← 正确答案
  • C.用户填写的调查问卷
  • D.搜索结果富媒体的摘要

答案:B。隐式反馈是用户在使用产品时“顺手留下”的行为信号,最典型的就是点击与跳过。星级评分和调查问卷属于显式反馈,需要用户主动表达;摘要本身是页面内容,不是反馈信号。