当前位置: 首页 > article >正文

搜广推实习面经三

快手推荐算法实习

  • 一、介绍一下推荐算法的链路流程。
    • 1.数据收集整理
      重要包含三个大类。item、user、context
    • 2.召回阶段
      召回是推荐系统中的第一步,目标是从庞大的物品集合中找到一个相对较小的候选集,减少计算量。
    • 3.粗排阶段
      粗排阶段的任务是对召回阶段得到的候选集进行排序,以进一步缩小推荐范围。粗排的目标是根据一定的特征对候选物品进行快速筛选,而不是非常精准地排名。
    • 4.精排阶段
      精排是推荐系统中的关键阶段,其目标是对候选集中的物品进行更为精确的排序,以提高推荐的准确性。精排阶段通常会采用更为复杂的模型,考虑更多的特征和交互。
    • 5.评估、反馈、持续优化
  • 二、介绍一下神经网络是怎么更新的。为什么反向传播比正向传播更重要?
    • 1.神经网络的更新过程是通过反向传播(Backpropagation)算法来实现的。反向传播用于计算损失函数关于网络参数(权重和偏置)的梯度,并通过梯度更新网络参数,从而最小化损失函数。这个过程是通过梯度下降法进行的。
    • 2.正向传播的目的是计算网络的输出,即预测结果。而反向传播的目的是根据损失函数计算每个参数的梯度,然后通过这些梯度来更新网络参数,从而使网络在训练过程中逐步优化。
    • 3.早期的感知机模型没有反向传播,它使用的是一种简单的基于误差的权重更新规则。反向传播算法的引入使得神经网络可以通过多层结构和非线性激活函数,解决更加复杂的任务,开创了深度学习的新时代。
      • 早期感知机模型权重更新方式
        感知机的权重更新规则是通过误差修正进行的。如果预测结果不正确(即模型输出与真实标签不一致),则根据误差调整权重
        W = W + η ⋅ ( y true − y pred ) ⋅ X W = W + \eta \cdot (y_{\text{true}} - y_{\text{pred}}) \cdot X W=W+η(ytrueypred)X
        • η \eta η是学习率
      • 反向传播的权重更新规则
        在多层神经网络中,权重更新通过反向传播算法来实现。首先计算损失函数相对于输出层和每一层的梯度,然后利用链式法则从输出层到输入层逐层更新权重。
        W i j = W i j − η ⋅ ∂ L ∂ W i j W_{ij} = W_{ij} - \eta \cdot \frac{\partial L}{\partial W_{ij}} Wij=WijηWijL
  • 三、介绍一下神经网络的初始化方法。
    • 1.均匀分布初始化 (Uniform Distribution)
      在均匀分布内随机初始化权重,区间为 [−a,a]。权重的初始化公式如下:
      W ∼ U ( − a , a ) W \sim U(-a, a) WU(a,a)
    • 2.正态分布初始化 (Normal Distribution)
      权重的初始化公式如下:
      W ∼ N ( 0 , σ 2 ) W \sim \mathcal{N}(0, \sigma^2) WN(0,σ2)
    • 3.Xavier初始化 (Glorot Initialization)
      Xavier初始化是为了保持信号在神经网络中的传播过程方差一致。它通过设置权重的方差来避免梯度爆炸或消失。Xavier初始化主要用于激活函数是sigmoid或tanh的情况。权重的初始化公式如下:
      W ∼ U ( − 6 n in + n out , 6 n in + n out ) W \sim \mathcal{U}\left(-\sqrt{\frac{6}{n_{\text{in}} + n_{\text{out}}}}, \sqrt{\frac{6}{n_{\text{in}} + n_{\text{out}}}}\right) WU(nin+nout6 ,nin+nout6 )
    • 4.He初始化 (He Initialization)
      He初始化适用于ReLU激活函数的神经网络,其目的是避免ReLU激活函数中“死神经元”问题。权重的初始化公式如下:
      W ∼ U ( − 6 n in , 6 n in ) W \sim \mathcal{U}\left(-\sqrt{\frac{6}{n_{\text{in}}}}, \sqrt{\frac{6}{n_{\text{in}}}}\right) WU(nin6 ,nin6 )
    • 5.LeCun初始化
      LeCun初始化专门为Leaky ReLU激活函数设计,权重的初始化公式如下:
      W ∼ U ( − 3 n in , 3 n in ) W \sim \mathcal{U}\left(-\sqrt{\frac{3}{n_{\text{in}}}}, \sqrt{\frac{3}{n_{\text{in}}}}\right) WU(nin3 ,nin3 )
  • 四、二叉树的中序遍历——力扣94
    这里提供一个二叉树前中后序遍历模板。但是无法添加更多的条件。
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
        if not root:
            return []
        # # 前序递归
        # return [root.val] + self.preorderTraversal(root.left) + self.preorderTraversal(root.right)
        # 中序递归 
        return self.inorderTraversal(root.left) + [root.val] + self.inorderTraversal(root.right)
        # # 后序递归
        # return self.postorderTraversal(root.left) + self.postorderTraversal(root.right) + [root.val]

http://www.kler.cn/a/509031.html

相关文章:

  • MQ消息队列
  • Google地图瓦片爬虫
  • Linux网络 TCP socket
  • [Mac + Icarus Verilog + gtkwave] Mac运行Verilog及查看波形图
  • iOS面试模版
  • 【安卓开发】【Android】总结:安卓技能树
  • 机器学习之决策树(DecisionTree)
  • AD域学习笔记
  • 基于C语言的通讯录实现
  • Kotlin语言的数据库交互
  • UI自动化测试:异常截图和page_source
  • 模拟练习题
  • BilibiliPotPlayer插件的登录第二天失效,无法看高清视频,要删掉浏览器上的cookie
  • Linux初识:【Linux软件包管理器yum】【Linux编辑器-vim的使用】【Linux编译器-gcc/g++的使用】
  • 精度论文:【Focaler-IoU: More Focused Intersection over Union Loss】
  • 生产环境中常用的设计模式
  • 可部署于所有设备上的开源加速 Stable-Diffusion.cpp:让 AI 图像生成更快、更高效!
  • AI刷题-小R的随机播放顺序、不同整数的计数问题
  • 二叉树总结(hot100)
  • 物联网通信协议对比-带表格
  • R数据分析:有调节的中介与有中介的调节的整体介绍
  • [ Spring ] Install Nacos on Ubuntu24
  • 【汇编语言】直接定址表(一)—— 「从单元标号到跨段数据:解锁汇编语言的隐藏技巧」
  • 【Rust自学】13.4. 闭包 Pt.4:使用闭包捕获环境
  • 信贷业务术语详解:深入理解金融领域的核心概念
  • js常用操作符