搜广推面经五

饿了么推荐算法

  • 一、介绍InfoNCE Loss、InfoNCE温度系数的作用
    InfoNCE Loss(Information Noise Contrastive Estimation Loss)是一种常用于自监督学习和对比学习中的损失函数,特别是在信息论和无监督学习中有广泛应用。
    它的核心思想是通过将正样本与负样本进行对比来学习数据的表示,目的是最大化正样本和负样本之间的区分度。InfoNCE Loss 是 Noise Contrastive Estimation(NCE)方法的一部分,而 NCE 的目标是通过优化模型使其能够区分“信号”样本和“噪声”样本。InfoNCE 的目标是使正样本的表示与给定的上下文相匹配,同时将负样本的表示与上下文分离。
    在这里插入图片描述
    伪代码实现
    假设我们有一个批量数据,其中每个样本都由一个查询向量 𝑞 和多个候选负样本向量 k i k_i ki组成
import torch
import torch.nn.functional as F

def info_nce_loss(query, positive_key, negative_keys, temperature=0.07):
    """
    计算InfoNCE Loss
    
    参数:
        query (torch.Tensor): 查询向量,大小为 (batch_size, dim)
        positive_key (torch.Tensor): 正样本向量,大小为 (batch_size, dim)
        negative_keys (torch.Tensor): 负样本向量,大小为 (batch_size, num_negatives, dim)
        temperature (float): 温度超参数,控制正负样本之间的区分度
        
    返回:
        loss (torch.Tensor): 计算得到的损失值
    """
    # 将查询向量与正样本向量和负样本向量的内积进行计算
    pos_sim = torch.sum(query * positive_key, dim=-1) / temperature  # 正样本相似度
    neg_sim = torch.matmul(query, negative_keys.transpose(0, 1)) / temperature  # 负样本相似度
    
    # 计算正样本和负样本的相似度归一化
    logits = torch.cat([pos_sim.unsqueeze(1), neg_sim], dim=1)  # 将正样本和负样本拼接
    labels = torch.zeros(logits.size(0), dtype=torch.long).to(logits.device)  # 正样本对应的标签为 0
    
    # 使用 Softmax 进行归一化,计算 cross entropy 损失
    loss = F.cross_entropy(logits, labels)
    return loss
  • 二、介绍一下self-attention?QKV的含义及动机?
    Self-Attention(自注意力)尤其在自然语言处理(NLP)中得到了广泛的应用。自注意力机制的核心思想是:在处理输入序列中的每一个元素时,考虑序列中其他所有元素对其的影响。相比于传统的递归或卷积网络,自注意力机制可以捕捉长距离依赖关系,并且能够并行处理输入数据。
    在这里插入图片描述
    在这里插入图片描述
    简单讲就是 Q K QK QK相乘表达的是每个元素与其他元素的相似度,动态地计算出关注的重点。通过值向量 V V V的加权求和,模型能够在输出中结合不同元素的信息。
    三、力扣-268题 丢失的数字(非hot100)
    给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。
    示例 1:
    输入:nums = [3,0,1]
    输出:2
    解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 nums 中。
class Solution:
    def missingNumber(self, nums: List[int]) -> int:
        coll_defa = collections.defaultdict(int)  # 面对数组的问题。首先可以尝试建一个字典做哈希
        for i in nums:
            coll_defa[i] = 1
        for j in range(len(nums)+1):
            if coll_defa[j] != 1:
                return j

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/952049.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

机器学习免费使用的数据集及网站链接

机器学习领域存在许多可以免费使用的数据集,这些数据集来自于学习、研究、比赛等目的。 一、综合性数据集平台 1.Kaggle 网址:Kaggle 数据集https://www.kaggle.com/datasets Kaggle是一个数据科学竞赛和社区平台,提供了大量的数据集供用…

浅尝Appium自动化框架

浅尝Appium自动化框架 Appium自动化框架介绍Appium原理Appium使用安装平台驱动实战 坑 Appium自动化框架介绍 Appium 是一个开源的自动化测试框架,最初设计用于移动应用的测试,但现在它也扩展了对桌面端应用的支持。Appium 使得自动化测试变得更加简单&…

ubuntu 20.04 安装docker--小白学习之路

更新包 sudo apt-get update # 安装需要的软件包以使apt能够通过HTTPS使用仓库 sudo apt-get install ca-certificates curl gnupg lsb-release 使用清华大学源 # 添加Docker官方的GPG密钥 curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg | sudo…

MMDetection框架下的常见目标检测与分割模型综述与实践指南

目录 综述与实践指南 SSD (Single Shot MultiBox Detector) 基本配置和使用代码 RetinaNet 基本配置和使用代码 Faster R-CNN 基本配置和使用代码 Mask R-CNN 基本配置和使用代码 Cascade R-CNN 基本配置和使用代码 总结 综述与实践指南 MMDetection是一个基于Py…

语音机器人外呼的缺点

也许是因为经济形式变差,大部分都是消费降级的策略。企业也一样,开源不行就只能重点节流。以前10个人做的工作,希望能用2个语音机器人就能完成。确实语音机器人是可以大幅提升外呼效率的,节约成本也很明显,但是今天不说…

微机原理期末复习(一)

编程题 汇编语言程序的整体结构 STACK SEGMENT STACK STACKDW 100H DUP(?) TOP LABEL WORD ; 使用LEBEL获取栈的尾部偏移地址存储到TOP中,以便初始化sp STACK ENDSDATA SEGMENT... ; 用户定义的变量 DATA ENDSCODE SEGMENTASSUME CS: CODE, DS: DATA, ES: DATA, …

UML(统一建模语言)

目录 一、用例图(Use Case Diagram) 二、类图(Class Diagram) 2.1、泛化(Generalization) 2.2、实现(Realization) 2.3、关联(Association) 2.4、聚合&…

流浪猫流浪狗领养PHP网站源码

源码介绍 流浪猫流浪狗领养PHP网站源码,适合做猫狗宠物类的发信息发布。当然其他信息发布也是可以的。 导入数据库,修改数据库配置/application/database.php 设置TP伪静态,设置运行目录, 后台:/abcd.php/dashboard?…

轻量级适合阅读的优秀 C++ 开源项目

CTPL 这是一个现代简易版的、高效的C线程池库&#xff0c;代码行数500行左右。 代码示例&#xff1a; void first(int id) { std::cout << "hello from " << id << \n; } struct Second { void operator()(int id) const { std::cout << &q…

下载导出Tomcat上的excle文档,浏览器上显示下载

目录 1.前端2.Tomcat服务器内配置3.在Tomcat映射的文件内放置文件4.重启Tomcat&#xff0c;下载测试 1.前端 function downloadFile() {let pictureSourceServer "http://192.168.1.1:8080/downFile/";let fileName "测试文档.xlsx";let fileURL pictu…

winform第三方界面开源库AntdUI的使用教程保姆级环境设置篇

1. AntdUI 1.1. 导入项目 1.1.1. 首先新建一个空白的基于.net的Winfrom项目1.1.2. 复制AntdUI中src目录到我们的解决方案下面1.1.3. 解决方案下添加现有项目1.1.4. 添加项目引用 1.2. 编写代码 1.2.1. 改写Form1类&#xff0c;让其继承自public partial class Form1 : AntdUI.W…

【DES加密】

什么是DES DES(Data Encryption Standard) 是一种对称加密算法。它的设计目标是提供高度的数据安全性和性能。 DES的概念 DES使用56位的密钥和64位的明文块进行加密。DES算法的分组大小是64位&#xff0c;因此&#xff0c;如果需要加密的明文长度不足64位&#xff0c;需要进…

【FPGA】时序约束与分析

设计约束 设计约束所处环节&#xff1a; 约束输入 分析实现结果 设计优化 设计约束分类&#xff1a; 物理约束&#xff1a;I/O接口约束&#xff08;例如引脚分配、电平标准设定等物理属性的约束&#xff09;、布局约束、布线约束以及配置约束 时序约束&#xff1a;设计FP…

docker搭建atlassian-confluence:7.2.0

文章目录 引言I 部署前准备数据库镜像准备自己构建镜像dockerhub第三方镜像II 安装启动容器基础配置(获取服务器ID)授权码获取集群选择设置数据库配置管理员账号引言 准备数据库、镜像启动容器获取服务器ID根据服务器ID等信息,基于atlassian-agent.jar 授权I 部署前准备 数…

征战越南电商直播,SD - WAN 专线赋能企业带货新征程

在当今数字化商业浪潮中&#xff0c;越南电商市场正经历着蓬勃发展与激烈变革。根据 Sapo Technology Joint Stock Company 对全国 15,000 名卖家的深度调查&#xff0c;2024 年零售业务的直播领域呈现出多元竞争态势。Facebook Live 强势占据多渠道或仅在线销售卖家总直播会话…

软件测试之黑盒测试

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 概念与定义 黑盒测试&#xff1a;又称功能测试、数据驱动测试或基于需求规格说明书的测试。通过黑盒测试来检测每个功能是否都能正常使用。黑盒测 试把测试对象看…

熵与交叉熵:从不确定性角度理解 KL 散度

从不确定性减少视角理解KL散度 【 Transformer 系列&#xff0c;故事从 d k \sqrt{d_k} dk​ ​说起】 LLM这么火&#xff0c;Transformer厥功甚伟&#xff0c;某天心血来潮~&#xff0c;再去看看&#xff01; 它长这个样子&#xff1a; 深入浅出 Transformer 看完后&#xff…

【Unity3D】导出Android项目以及Java混淆

Android Studio 下载文件归档 | Android Developers Android--混淆配置&#xff08;比较详细的混淆规则&#xff09;_android 混淆规则-CSDN博客 Unity版本&#xff1a;2019.4.0f1 Gradle版本&#xff1a;5.6.4&#xff08;或5.1.1&#xff09; Gradle Plugin版本&#xff…

vue3 + ts + element-plus(el-upload + vuedraggable实现上传OSS并排序)

这里创建项目就不多说了 安装element-plus npm install element-plus 安装vuedraggable npm install vuedraggable 安装ali-oss npm install ali-oss 这里是封装一下&#xff1a;在components创建文件夹jc-upload>jc-upload.vue 在封装的过程中遇到了一个问题就是dr…

如何在 Linux系统用中挂载和管理磁盘分区

在 Linux 系统中&#xff0c;挂载和管理磁盘分区是系统管理的基本任务之一。以下是详细步骤&#xff0c;帮助你完成这一过程。 1. 查看现有磁盘和分区 首先&#xff0c;使用以下命令来查看系统中的磁盘和分区&#xff1a; bash 复制 lsblk或者使用&#xff1a; bash 复制…