搜广推练习面经三

[复制链接]
发表于 2025-11-7 09:50:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
快手保举算法练习


  • 一、先容一下保举算法的链路流程。

    • 1.数据网络整理
      紧张包罗三个大类。item、user、context
    • 2.召回阶段
      召回是保举体系中的第一步,目的是从巨大的物品聚集中找到一个相对较小的候选集,镌汰盘算量。
    • 3.粗排阶段
      粗排阶段的任务是对召回阶段得到的候选集举行排序,以进一步缩小保举范围。粗排的目的是根据肯定的特性对候选物品举行快速筛选,而不好坏常精准地排名。
    • 4.精排阶段
      精排是保举体系中的关键阶段,其目的是对候选会集的物品举行更为准确的排序,以进步保举的正确性。精排阶段通常会接纳更为复杂的模子,思量更多的特性和交互。
    • 5.评估、反馈、连续优化

  • 二、先容一下神经网络是怎么更新的。为什么反向流传比正向流传更紧张?

    • 1.神经网络的更新过程是通过反向流传(Backpropagation)算法来实现的。反向流传用于盘算丧失函数关于网络参数(权重和偏置)的梯度,并通过梯度更新网络参数,从而最小化丧失函数。这个过程是通过梯度降落法举行的。
    • 2.正向流传的目的是盘算网络的输出,即推测结果。而反向流传的目的是根据丧失函数盘算每个参数的梯度,然后通过这些梯度来更新网络参数,从而使网络在练习过程中徐徐优化。
    • 3.早期的感知机模子没有反向流传,它使用的是一种简单的基于偏差的权重更新规则。反向流传算法的引入使得神经网络可以通过多层布局和非线性激活函数,办理更加复杂的任务,开创了深度学习的新期间。

      • 早期感知机模子权重更新方式
        感知机的权重更新规则是通过偏差修正举行的。假如推测结果不准确(即模子输出与真实标签不同等),则根据偏差调解权重
        W=W+η⋅(ytrue−ypred)⋅XW = W + \eta \cdot (y_{\text{true}} - y_{\text{pred}}) \cdot XW=W+η⋅(ytrue​−ypred​)⋅X

        • η\etaη是学习率

      • 反向流传的权重更新规则
        在多层神经网络中,权重更新通过反向流传算法来实现。起首盘算丧失函数相对于输出层和每一层的梯度,然后使用链式法则从输出层到输入层逐层更新权重。
        Wij=Wij−η⋅∂L∂WijW_{ij} = W_{ij} - \eta \cdot \frac{\partial L}{\partial W_{ij}}Wij​=Wij​−η⋅∂Wij​∂L​


  • 三、先容一下神经网络的初始化方法。

    • 1.匀称分布初始化 (Uniform Distribution)
      在匀称分布内随机初始化权重,区间为 [−a,a]。权重的初始化公式如下:
      W∼U(−a,a)W \sim U(-a, a)W∼U(−a,a)
    • 2.正态分布初始化 (Normal Distribution)
      权重的初始化公式如下:
      W∼N(0,σ2)W \sim \mathcal{N}(0, \sigma^2)W∼N(0,σ2)
    • 3.Xavier初始化 (Glorot Initialization)
      Xavier初始化是为了保持信号在神经网络中的流传过程方差同等。它通过设置权重的方差来克制梯度爆炸或消散。Xavier初始化重要用于激活函数是sigmoid或tanh的情况。权重的初始化公式如下:
      W∼U(−6nin+nout,6nin+nout)W \sim \mathcal{U}\left(-\sqrt{\frac{6}{n_{\text{in}} + n_{\text{out}}}}, \sqrt{\frac{6}{n_{\text{in}} + n_{\text{out}}}}\right)W∼U(−nin​+nout​6​​,nin​+nout​6​​)
    • 4.He初始化 (He Initialization)
      He初始化实用于ReLU激活函数的神经网络,其目的是克制ReLU激活函数中“死神经元”标题。权重的初始化公式如下:
      W∼U(−6nin,6nin)W \sim \mathcal{U}\left(-\sqrt{\frac{6}{n_{\text{in}}}}, \sqrt{\frac{6}{n_{\text{in}}}}\right)W∼U(−nin​6​​,nin​6​​)
    • 5.LeCun初始化
      LeCun初始化专门为Leaky ReLU激活函数计划,权重的初始化公式如下:
      W∼U(−3nin,3nin)W \sim \mathcal{U}\left(-\sqrt{\frac{3}{n_{\text{in}}}}, \sqrt{\frac{3}{n_{\text{in}}}}\right)W∼U(−nin​3​​,nin​3​​)

  • 四、二叉树的中序遍历——力扣94
    这里提供一个二叉树前中后序遍历模板。但是无法添加更多的条件。
  1. # Definition for a binary tree node.
  2. # class TreeNode:
  3. #     def __init__(self, val=0, left=None, right=None):
  4. #         self.val = val
  5. #         self.left = left
  6. #         self.right = right
  7. class Solution:
  8.     def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
  9.         if not root:
  10.             return []
  11.         # # 前序递归
  12.         # return [root.val] + self.preorderTraversal(root.left) + self.preorderTraversal(root.right)
  13.         # 中序递归
  14.         return self.inorderTraversal(root.left) + [root.val] + self.inorderTraversal(root.right)
  15.         # # 后序递归
  16.         # return self.postorderTraversal(root.left) + self.postorderTraversal(root.right) + [root.val]
复制代码
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表