🗒️面试题总结

type
status
date
slug
summary
tags
category
icon
password
😀
搜索/广告/推荐算法面试题总结,有些题目比较刁钻,大家阅读的时候选择性的去记答案就可以了(秋招进行时,更新略慢,最新更新2023/11/7,更新了粗排/重排/冷启动部分答案)
面试题来源于石塔西:
答案主要总结自他的新书(大佬的电子书真心不错,学推荐的小伙伴可以买个):
部分答案从王喆大佬的《深度学习推荐系统》一书中整理:
此外引入了fun-rec项目中的面试题作为补充(暂时没有补充答案):

特征工程


  • 为什么说,用物料的后验消费数据做召回存在"幸存者偏差"?能将这些消费数据用于排序吗?
    • 一个物料的后验指标好,只能说明推荐系统把它推荐给了对的人,并不意味着把它推给任何人都能取得这么好的效果。
    • 这些后验指标可以参与精排。毕竟交给精排模型的物料都已经通过了召回、粗排两环节的筛选,多多少少是和当前用户相关的,"幸存者偏差"的影响还不至于那么严重,它们之前的后验指标还是有参考意义。
  • 使用物料的后验数据做召回,会放大“马太效应”,对新物料不友好,如何缓解?
    • 常规的作法就是拿所有样本在特征F上的均值(Mean)或中位数(Median)代替新物料的对应特征F。更合理的做法是训练一个模型来预测缺失值,比如对于新物料,我们可以训练一个模型,利用物料的静态画像(比如分类、标签、品牌、价位)预测它的动态画像(CTR、平均观看时长、平均销售额等)。
  • 什么是bias特征?举出bias特征的例子?
    • 具体实践中,我们无法做到让所有候选物料在一个绝对公平的环境中供用户挑选,这也就意味着用户的选择并非完全出于他的兴趣爱好,用户点击的未必是他喜欢的,没点击的也不代表用户就一定不喜欢,这种不可避免地引入的不公平因素就叫作"偏差"(Bias)。
    • 如位置偏差,会引发的用户兴趣与反馈之间的脱节。如物料年龄偏差,会使上传早的视频有足够长的时间来积累人气,所以后验指标更好,模型排名更高。
  • 某男性新用户对“体育”这个分类的喜好程度未知,如何填充?
    • 可以拿所有男性用户对"体育"视频的CTR来填充这一缺失值,相比于用全体用户的均值来填充更有针对性。
    • 更合理的做法是训练一个模型来预测缺失值。比如对于新用户,我们可以构建一个模型,利用比较容易获得的人口属性(比如性别、年龄等)预测新用户对某个内容分类、标签的喜爱程度(比如对某类内容的CTR)。
  • 对观看次数、观看时长这样的特征,如何做标准化?
    • 像这种长尾分布的特征,直接统计出来的都会被长尾数据带偏,从而计算出来的z-score区分度下降。解决方法就是对原始数据做开方、取对数等非线性变换,先将原来的长尾分布压缩成接近正态分布,再在变换后的数据调用公式进行z-score标准化,能够取得更好的效果。
  • 某个物料被曝光2次,被点击1次,如何计算它的CTR?
    • 点击率=点击次数/曝光次数。1/2=0.5
  • 有一个特征“某文章过去1天的点击率是10%”,如何将其构建成一个类别特征喂入推荐模型?
    • 如果用实数特征描述,特征是"过去1天的点击率",特征值是0.1。而如果离散成类别特征,整个特征可以表示成"last1day_0_10"这个字符串,表示该文章在过去1天的点击率在0~0.1之间。
  • 特征工程一般怎么做
  • 特征数值分布比较稀疏如何处理
  • 正负样本不均衡如何处理
  • 连续特征离散化的作用
  • 对id类特征onehot导致维度过高,如何处理?
  • 如何进行特征筛选
  • DNN能做特征交叉嘛
  • 海量类别特征该如何处理,有什么方法
  • pearson系数
  • 归一化和标准化有什么区别
  • 如果不使用最近邻检索的库,你会怎么做最近邻检索

Embedding

  • 为什么说Embedding提升了推荐算法的扩展性?
    • 简单来说,Embedding将推荐算法从"精确匹配"转化为"模糊查找",从而让模型能够"举一反三"。经过Embedding,我们发现在向量空间中,表示"科学"与"科技"的两个向量,并不是正交的,而是有很小的夹角。设想一个极其简化的场景,用户就用"科学"向量来表示,文章用其标签的向量来表示。那么用"科学"向量在所有标签向量里做Top-K近邻搜索,一篇带"科技"标签的文章就能够被检索出来,有机会呈现在用户眼前,从而破除之前因为只能精确匹配"科学"标签给用户造成的"信息茧房"。
  • FFM针对FM的改进在哪里?
    • FFM在FM模型的基础上,加入“特征域”的概念,是每个特征在与不同域的特征交叉时采用不同的隐向量。相比FM,进一步加强了特征交叉的能力。
  • 简述阿里CAN(Co-Action)的基本思想?
    • 既想像FFM那样,让每个特征在与其他不同特征交叉时,使用完全不同的Embedding。又不想像FFM那样引入那么多参数,导致参数空间爆炸,增加训练的难度。
    • 将物料Embedding拆分成k个矩阵,展平后作为k层MLP的权重值,层间使用ReLU激活函数。由于ReLU存在,其中有一些位置会是0,这就意味着有些神经元不会发挥作用,相当于同一个物料特征在与不同用户特征交叉时,使用了不同的Embedding,从而降低了不同交叉之间的相互干扰。
  • 简述Parameter Server是如何应对推荐系统“高维稀疏”的数据环境的?
    • 利用推荐系统的特征是超级特征的特点,一个batch的训练数据所包含的非零特征的数目是极其有限的,只需要传递当前batch所涵盖的有限几个非零特征的参数就可以了,从而能够大大节省带宽与传输时间。
  • 什么是异步并发(ASP)中的“梯度失效”问题?即使如此,为什么在推荐系统中仍然常用?
    • 由于缺乏同步控制,每台Worker在推送自己的梯度至Server后,不用等待其他Worker,就可以开始训练下一个batch的数据。这样ASP可能发生"梯度失效"(Stale Gradient)的问题,从而影响收敛速度。
    • 得益于推荐系统中的特征超级稀疏的特点,在一轮迭代中,各个Worker节点的局部训练数据所包含的非零特征,相互重叠得并不严重。多个Worker节点同时更新同一个特征的参数(i.e.,一阶权重或Embedding)的可能性非常小,所以Server端的冲突也就没有那么频繁和严重,ASP模式在推荐系统中依然比较常用的。
  • 介绍下item2vec模型
  • embedding冷启动怎么做
  • w2v的原理了解嘛,详细讲
  • w2v的原理,用的什么方法,skip-gram怎么做
  • Deepwork的思想
  • Node2vec随机游走策略
  • word2vec的loss怎么设计的
  • word2vec的工具
  • 用户embedding了解嘛
  • word2vec对顺序敏感的原因,窗口大小选用多少
  • DeepWalk相比序列embedding优缺点,对那一部分item影响最大
  • w2v用的哪一个,是google13年的那篇嘛

召回

  • 传统的协同过滤,User CF和Item CF,哪个在工业界更常用?为什么?
    • Item CF。由于UserCF 基于用户相似度进行推荐,使其具备更强的社交特性,其非常适用于新闻推荐场景。而ItemCF 更适用于兴趣变化较为稳定的应用。
    • 通常UserCF比ItemCF在模型效果的评测上会显示的更好,但是UserCF需要实时更新相似用户列表捕捉用户喜好,而ItemCF由于选用和用户最近交互的物料相似度高的物料,而物料之间的相似度相对固定,意味着不需要更快速地更新。
  • 大规模、分布式的CF是如何实现的?
  • 基于矩阵分解的协同过滤,要分解的矩阵是非常稀疏的,需要事先将该矩阵缺失的位置都填充0吗?

  • 召回模型中如何处理用户行为序列?
    • Pooling是常规操作
    • 有没有可能也做target attention?拿什么做target?
  • NCE Loss的基本思想与计算公式?
  • NEG Loss的基本思想与计算公式?它与NCE Loss是什么关系?
  • Marginal Hinge Loss的基本思想与计算公式?
  • BRP Loss的基本思想与计算公式?
  • Sampled Softmax的基本思想与计算公式
  • Sampled Softmax中温度修正的作用?调高温度有什么影响?调低温度有什么影响?
  • 采样修正的应该如何设置?
  • 从算法机理来阐述热门物料对模型的影响?
    • 大家都知道热门物料对推荐结果的个性化造成负面影响,我需要你回答出它是如何造成这一负面影响的
  • 为了打压热门物料,热门物料当正样本,应该降采样还是过采样?
  • 为了打压热门物料,热门物料当负样本,应该降采样还是过采样?为什么?
  • Word2Vec中,Skip-Gram和CBOW有什么区别?哪种算法对于罕见词、罕见搭配更友好?
  • Aribnb的I2I召回,相比于word2vec,在正样本上有哪些创新?合理性在哪里?
  • Aribnb的I2I召回,相比于word2vec,在负样本上有哪些创新?合理性在哪里?
  • Aribnb的U2I召回,是如何解决“预定样本”太稀疏这个问题的?
  • Aribnb的U2I召回,在负样本上有哪些创新?
  • 直接套用Word2Vec用作召回,在正样本的选择上有哪些局限性?
    • Aribnb是如何突破这一局限性的?
    • 阿里的EGES是如何突破这一局限性的?
  • 阐述FM用于召回的原理和做法
    • 线下如何训练
    • 线上如何预测
    • 如何做到对新用户更友好
  • 召回随机负采样在实践中到底是怎么做的?提示:
    • 你可以离线采样,借助Spark在更大范围内采样,怎么实现?
    • 你可以batch内负采样,怎么实现?
    • 你可以混合负采样,怎么实现?
    • 阐述以上几种方法的优劣
  • GCN和DNN在迭代公式上的区别在哪里?(提示:GCN没那么玄,真的只是个小差别)
  • 如何在一个超大规模图上,训练GCN召回模型?希望听到:
    • Mini-Batch的训练细节
    • 邻居采样,挑出重要邻居
    • 邻居采样时有小Trick,否则会造成数据泄露
  • 如何在一个超大规模图上,进行GCN推理,得到各节点的Embedding?
    • 希望候选人意识到推理与训练的不同
    • 要避免重复计算节点的Embedding
    • 要避免“邻居采样”那样的随机性
  • 介绍双塔模型
  • 双塔模型的输出,用双塔embedding做内积+sigmoid和求余弦相似度+sigmoid的区别
  • 双塔模型一般怎么做特征
  • 双塔模型为什么不直接把两个塔合起来输入一个DNN

粗排

  • 你对改进粗排有什么思路?或者说,你觉得制约粗排模型性能的有哪些因素?
    • 对粗排模型的设计与改进,主要是从模型结构、目标函数、样本空间三个方面入手。
    • 与召回相比,粗排的候选集小了很多(从百万、千万量级到万量级),所以粗排模型可以用比召回更复杂一点的模型;与精排相比,粗排的候选集又大了一个数量级(从千量级到万量级),所以粗排模型不能像精排模型那样复杂
  • 粗排双塔与召回双塔的异同?
    • 相同点:
      • 训练时,都需要用户塔、物料塔隔离、解耦建模。不允许使用Target Attention这样的交叉结构,也不允许使用"用户与当前物料在标签上的重合度"之类的交叉特征。
      • 部署时,得益于双塔解耦的结构,面对一次用户请求,用户向量都只需要生成一遍。而物料向量,都可以离线生成好,缓存起来,被不同的用户请求复用。
    • 不同点:
      • 部署时物料向量的存储方式
        • 由于召回的候选集是百万、千万这个量级,所以召回双塔在将离线生成众多的物料向量后,还要将这些向量喂入FAISS之类的向量数据库建立索引。由于粗排候选集至多只到万量级,因此粗排双塔在离线生成物料向量后,无需喂入FAISS建立索引,直接存入内存缓存起来,Item ID当"键",物料向量当"值"。
      • 样本的选择(特别是负样本)
        • 以点击场景为例,正样本都是以"用户点击过的物料"当正样本。
        • 召回负样本的主力必须由"随机负采样"组成。
        • 粗排,可以和精排一样,拿"曝光未点击"当负样本。这里面绝对存在"样本选择偏差",但是拿"曝光未点击"做负样本,仍然"约定俗成"地成为业界的主流作法,效果也经受住了实际检验。
      • 损失函数的设计
        • 召回双塔主要使用In-Batch Sampled Softmax当损失函数。对第i个样本,In-Batch Sampled Softmax的目标是将被选中的概率最大。
        • 粗排双塔中的Loss就是每个样本上的Binary Cross-Entropy Loss (BCE)。
      • 最终用户向量与物料向量的交互方式
        • 由于召回的线上服务要调用ANN快速搜索近邻,受ANN算法限制,召回双塔中的用户向量和物料向量只能用点积来实现交叉(cosine也可以转化成点积形式)。
        • 粗排双塔在分别得到用户向量和物料向量之后,可以拿这两个向量做点积来计算用户与物料间的匹配度,也可以将这两个向量用DNN或者其他方式做交叉。
  • 你知道双塔模型有哪些改进变形?
  • 用精排蒸馏粗排应该怎么做?
    • 提示:共同训练?两阶段?用什么Loss?各有什么优缺点?
    • 思考:蒸馏的假设有问题吗?
  • 粗排环节存在哪些“样本选择偏差”?如何纠偏?
  • 为什么CTR中目前普遍使用深度学习模型替换树模型
  • 为什么要有wide层、FM层,deep层不也有记忆能力吗
  • DeepFM与wide&deep的介绍与对比
  • 对DeepFM进行优化,有哪些思路
  • DeepFM如果过拟合和欠拟合分别如何处理
  • 介绍除了FM之外的特征交叉的模型
  • 介绍DIN模型,适合的场景
  • DIN中如何计算attention
  • transformer与DIN的区别和联系
  • 介绍下listwise排序模型LambdaRank

精排

  • FTRL是如何保证“在线学习”的稳定性的?
  • FTRL是如何保证解的稀疏性的?
    • 由损失函数的最优解可得,中间变量 时,第i个特征的新一轮权重会被设置为0,所以会产生稀疏解。
  • FTRL是如何解决高维稀疏特征受训机会不均匀的问题的?
    • FTRL不使用统一的步长,而是为每个特征独立设置步长。
  • FM相对LR的优势在哪里?
    • 不能只回答自动交叉
      • 相比逻辑回归,具备了二阶特征交叉能力,模型的表达能力增强。
    • 是如何解决交叉特征太稀疏、受训机会少的问题的?
      • 在模型中加入二阶特征交叉部分,为每一维特征训练得到相应特征隐向量,通过隐向量间的内积运算得到交叉特征的权重。只要样本不等于0都能训练对应隐向量,也就都间接训练了对应的交叉权重,数据利用率更高,训练更加充分。
    • 是如何提高扩展性的?
      • 如果用FM模型,虽然 这种组合从来没有在训练样本中共现过,但是 在训练样本中都单独出 现,因此模型训练好了 。因此在预测时,FM能够预估出 从而给小众模式提供了一个 发挥作用的机会。
  • FM对所有特征两两交叉,岂不是的复杂度?
    • 回答是的,这道题直接fail
    • 回答不是,要追问FM的实际复杂度是什么?如何实现的?
    • ,n为特征数,k为Embedding向量纬度。实际场景中以稀疏类别特征为主,特征值为0或1,所以公式可以进行化简,只需遍历一遍所有Embedding向量。
  • FM的缺点有哪些?
    • 由于组合爆炸问题的限制,模型不易扩展到三阶特征交叉阶段。
  • FFM相对于FM的改进有哪些?为什么要这么改进?
  • FFM相比于FM的缺点在哪里?(提示:效率)
  • Wide & Deep是如何做到兼顾“记忆”与“扩展”的?
    • 利用Wide部分加强模型的“记忆能力”,利用Deep部分加强模型的“泛化能力”。Wide侧发挥LR"强于记忆"的优势,把那些在训练数据中高频、大众的模式牢牢记住。此外,Wide侧的另一个作用是防止Deep侧过分扩展而影响预测精度,起到一个类似"正则化"的作用。
  • 什么样的特征进Deep侧?什么样的特征进Wide侧?
    • Wide侧主要是一些历史信息或者人工设计的交叉、共现特征,以及影响推荐系统的bias特征。
    • Deep侧主要是全量的特征向量,进行深层的特征交叉,挖掘藏在特征背后的数据模式。
  • Wide & Deep论文原文中说,训练Wide & Deep侧分别使用了两种优化器,你觉得有哪些道理?
    • Wide侧一般采用FTRL优化器,保证Wide侧解的稀疏性。
    • Deep侧采用DNN的常规优化器,比如Adagrad、Adam等。
  • DCN解决的是什么问题?
    • 实现特征交叉,只依靠DNN这种隐式交叉是远远不够的,还应该加上显式、指定阶数的交叉作为补充。
  • DCN v1和v2的差别在哪里?
    • v1的权重参数仅仅是向量,v2把d维向量w扩充为d*d维矩阵W,再将其分解为两个小矩阵相乘,降低运算和存储压力。
  • DCN有哪些缺陷?
    • 原始输入的长度d一般很大,每层Cross Layer的参数量仍然不小,所以喂入Cross Network的输入一般都是经过挑选的潜在重要特征,不能把所有特征都扔进去。
    • 每层Cross Layer的输入输出都是d维,相当于只做信息交叉,而不做信息的压缩和提炼。
  • 简述基于Transformer做特征交叉的原理?
  • Transformer做特征交叉的缺点有哪些?(提示:输入输出维度、时间复杂度)
  • 你在建模行为序列中的每个元素

重排

  • 常用的打散方式有哪些?
  • MMR的核心思路是什么?
  • 基于DPP的重排的核心思想是什么?
  • 如何构建DPP中的核矩阵L?基于怎样的先验假设?
  • 怎么证明如此构建的L是符合我们的先验假设的?
  • 基于上下文感知的重排模型的原理和流程?
    • 如何构建样本?
    • 如何构建Loss?
    • 应该包含哪些特征?
    • 模型训练完毕后,如何排序(顺序在训练时是已知的,预测时是未知的)

多任务&多场景

  • 为什么不为每个目标单独建模?
    • 浪费资源。
    • 用户转化是一个链条,比如先点击,再加入购物车,最后购买。在这个链条越靠后的环节,价值越大,但是可训练的正样本越少。单独训练对稀疏的Embedding训练不好,误差很大。
  • 为什么不针对最终目标建模?比如直接建模购买率,没必要建模点击率?
    • 无论是否转化,用户的每次点击都有价值。在广告定价时,会针对CTR、CVR、CTCVR设计不同的计费模式。所以,三个概率都要建模,并且都要预估得尽量准确,有利于提高用户粘性和长期销售额。
  • 你在工作场景中遇到的多目标推荐问题?
    • 有哪些目标?
    • 使用了怎样的模型结构?
  • 排序时,我们既希望用户点击,又希望用户点开后观看尽可能长,如何建模?
    • 时长目标的单位问题,如果用均方误差,量纲要远远大于CTR的BCE Loss。
  • 在排序时,是怎么将多个目标的打分融合成一个打分的(要考虑到U币同的目标打分存在天然的差异)?
  • 在训练模型时,是怎么将多个损失融合成一个损失的?
  • 多场景推荐问题的难点在哪里?
  • 你要为一个服务全球的APP设计推荐模型,用户的国籍、语言这些特征要怎么使用?
  • CVR相比CTR的区别、特点
  • 搜索与推荐的区别,你认为哪个难度更大
  • 广告与推荐的区别
  • 什么时候用策略规则,什么时候用模型
  • 线上如何生成最终的排序得分
  • 正负样本介绍(规模和比例),如何构造负样本
  • 低活用户特征稀疏如何解决

冷启动

  • 新用户冷启,如何建模成一个多臂老虎机问题?
    • 对于新用户冷启动,每个新用户就是一台老虎机,每个兴趣大类(比如:电影、音乐、军事、体育、......)就是老虎机的一个手柄。向该新用户展示某个兴趣类目下的物料,相当于拉动某一根手柄。用户的反馈(比如点击)犹如老虎机吐出的金币。我们希望通过有限次试探,使得到的用户正反馈最大化,也就摸清了用户兴趣,使用户获得了良好的初体验,增强APP对新用户的粘性。
  • 新物料冷启,如何建模成一个多臂老虎机问题?
    • 对于新物料冷启动,所有用户组成一台老虎机,候选新品池中的每个新物料相当于一根手柄。曝光某个新物料相当于拉动一次手柄。我们希望通过有限流量的试探,找到新品池中最优质的候选物料,犹如在多臂老虎机中找到那根能吐出最多金币的手柄。
  • 怎么用Epsilon Greedy进行新用户冷启?
    • 不再将N次尝试严格划分前后两阶段,而是将"探索"与"利用"按照一定概率交替进行,在找到当前"最优"手柄的同时就尽情加以开发利用,以最大化总收益。
    • 起初概率阈值比较大,会更倾向于探索各个手柄的收益,随着时间增加,概率阈值随之衰减。
    • 随着尝试次数变多,统计出来的概率阈值更加准确,找到的最优手柄更加置信。此时阈值也变小了,鼓励算法充分利用赚取最大收益,而非浪费机会在不必要的探索上。
  • 怎么用UCB进行新用户冷启?
  • Bayesian Bandit的基本原理
  • 汤普森采样用于新用户冷启的基本原理和流程

LinUCB用于新闻冷启动的基本原理和流程?
  • 这里谁是老虎机,谁是手柄?
  • 如何建模手柄的收益?和哪些因素有关?
  • 如何求出每根手柄的参数?
  • 候选新闻集合是动态变化的,如何处理?
  • 观察到用户反馈后,如何更新每根手柄的收益分布?时间复杂度是什么?

  • 训练时遇到训练时未见过的新特征,是怎么处理的?
  • 预测时遇到训练时未见过的新特征,是怎么处理的?

  • 简述Meta-Learning的基本原理和流程
  • MAML作为一种特殊的meta-learning,特殊在哪里?
  • 简述MAML的训练流程
  • MAML应用于推荐系统的冷启动
    • 每个Task的粒度是什么?
    • 哪些参数需要从最优值初始化

  • 简述对比学习的训练流程和应用场景?
  • 你将对比学习应用于推荐系统的什么场景?
  • 对比学习与向量化召回有什么异同?
  • 你是怎么做对比学些的?
    • 对比学习的样本从哪里来?
    • 数据增强怎么做?
    • 与主任务是怎么协同训练的?

  • 让你建立一个模型,预测新入库物料后验CTR,以找到潜在爆款?
    • 样本怎么选?
    • 怎么设计特征?
    • 标签怎么收集?
    • 怎么设计Loss?
    • 怎么用这个特征?
  • 设计对新用户友好的特征?打算在模型中如何使用这些特征?

评估与调试

  • AUC的物理含义
    • AUC表示的是正例排在负例前面的概率。定义上,AUC(area under the curve)是ROC曲线下的面积。ROC曲线的纵坐标是TPR(表示实际的正样本被模型预测为正样本的比例(越大越好)),横坐标是FPR(表示实际的正样本被模型预测为正样本的比例(越大越好))
  • AUC用在评价推荐性能时的缺陷
  • GAUC的计算方法
  • GAUC的缺点
  • NDCG的思路与计算方法
  • AUC能不能用于评价召回模型
  • 你在评估召回模型时,主要使用哪些指标
  • MAP的思路与计算方法
  • AB Test应该如何划分流量?
  • 你在做AB test时,一般会有哪些注意事项?
  • 用通俗语言解释一下什么是p-value?
  • 解释一下什么是Type I Error,Type II Error,Power?
  • 如何知道某个特征在你的模型中的重要性?
  • 想压缩一个多层的DNN,如何找到“滥竽充数”那一层?
  • “线下AUC涨了”,线上AB指标没提升的情况应该如何解决?
  • 解释一下特征穿越现象,及如何解决?
  • “老汤模型”是什么,如何解决?
  • 解释一下“链路一致性”问题?
  • 新模型小流量上线后,收集了一批线上数据D做测试样本,让新老模型都在D上预测并计算GAUC,该做法有什么问题?正确方式应该怎么做?
  • auc的含义和计算方法, 有没有更快的计算方法
  • AUC会不会出现小于0.5的情况,出现了怎么调bug
  • AUC为1可能是由什么导致的?
  • 分类评估指标中,F1和AUC有什么区别
  • 分类指标用的什么,哪个分类指标对正负样本分布不敏感
  • 如果对负样本进行采样,auc的计算结果会发生变化吗
  • 交叉熵跟MSE有什么区别
  • micro-f1解释
  • 介绍下排序指标ndcg
  • 回归指标应该用什么
  • AUC和precision,recall,F1的区别,不同情况怎么选择指标
  • Group auc了解嘛
  • 给数据计算AUC
  • 分类评价指标,TPR,FPR等的含义
 
推荐算法总结基于Linux+宝塔面板+LNMP+Wordpress搭建的网站主页的网站漏洞修补的解决方案
Loading...