搜广推校招面经六十

soul推荐算法

一、word2vec原理

参考一篇文章入门Word2Vec

二、word2vec正负采样怎么做的、word2vec采用的loss和原理

见【搜广推校招面经四、搜广推校招面经五十二、搜广推校招面经五十七】
不太理解为啥问这么多word2vec,索性直接整理一遍。

三、多路召回融合方式

见【搜广推校招面经二十六】
多路召回(Multi-Recall)指的是在信息检索或推荐系统中,通过多种召回策略(例如基于内容的召回、基于协同过滤的召回等)获取候选集,然后将这些候选集进行融合,以提高整体的召回质量和准确性。融合的目标是将不同策略的优点结合起来,从而得到更高质量的最终推荐结果。

3.1. 加权融合(Weighted Fusion)

  • 加权融合方法是最常见的融合方式之一。在该方法中,为不同召回策略的候选集分配不同的权重,然后根据权重对各个召回结果进行加权平均,最后生成最终的候选集。
  • 公式:
    Final Rank ( i ) = ∑ j = 1 n w j ⋅ Rank j ( i ) \text{Final Rank}(i) = \sum_{j=1}^{n} w_j \cdot \text{Rank}_j(i) Final Rank(i)=j=1nwjRankj(i)
    其中:
    • w j w_j wj 是召回策略 j j j的权重。
    • Rank j ( i ) \text{Rank}_j(i) Rankj(i) 是策略 j j j 对候选项 i i i 的排名。
  • 优点: 简单有效,可以灵活调整各召回策略的权重。
  • 缺点: 需要手动调整权重,可能对不同场景不具有通用性。

3.2. 排序融合(Rank Fusion)

  • 排序融合方法将多个召回策略生成的候选集排序,并根据候选集的排序结果进行融合。常见的排序融合方法有 Borda CountCombSUM 等。
    • Borda Count:为每个召回策略的候选集按顺序赋予分数,最后根据所有策略的排序分数合并得出最终的排序。
    • CombSUM:将多个召回策略生成的候选集的排名值相加,最后根据排名总和进行排序。
  • 优点: 不需要为每个召回策略设置权重,适应性强。
  • 缺点: 排名过程较为复杂,可能会引入排序上的噪声。

3. 基于模型的融合(Model-based Fusion)

  • 基于模型的融合方法通过训练一个模型来自动学习如何将多个召回策略的候选集进行合并。该模型通常使用机器学习算法(如逻辑回归、梯度提升树等)根据多个召回策略的结果预测最终的排序或评分。
  • 流程:
    1. 对每个召回策略生成候选集,并提取每个候选的特征。
    2. 使用机器学习算法训练一个融合模型,模型输入为各策略的候选集特征,输出为最终的排名或评分。
  • 优点: 自动化程度高,能够根据数据学习最优的融合策略。
  • 缺点: 训练过程需要大量数据和计算资源。

4. 覆盖度融合(Coverage Fusion)

  • 覆盖度融合方法通过比较不同召回策略的候选集,选取覆盖面更广的候选项,确保最终推荐的多样性和广度。通常在多个召回策略中选择不重复或较少重复的候选项,从而增加推荐的多样性。
  • 优点: 有助于提高候选集的多样性,减少过度集中在某一类别的情况。
  • 缺点: 可能会牺牲一些精确性,导致推荐的质量不如专注于某一召回策略时的效果。

5. 混合召回(Hybrid Recall)

  • 混合召回方法结合不同召回策略的优点,例如结合基于内容的召回与基于协同过滤的召回。在混合召回中,多个召回策略的结果可能会根据某种规则(例如共现规则、相似度阈值等)进行合并。
  • 优点: 可以通过结合多种召回策略来提高系统的推荐质量。
  • 缺点: 可能会导致召回结果过于复杂,增加计算复杂度。

6. 重排序(Re-ranking)

  • 重排序方法在多个召回策略生成候选集后,采用一个统一的模型对候选集进行重新排序。通常,重排序会引入额外的排序模型(如深度学习模型)来进一步提高最终候选集的精度。
  • 优点: 能进一步提高推荐结果的质量,尤其是在有多个召回来源的情况下。
  • 缺点: 增加了计算开销,训练重排序模型需要较长的时间和大量的数据。

7. 融合策略的组合(Meta-Learning Fusion)

  • 该方法结合了多种融合策略,如加权融合、排序融合、基于模型的融合等,形成一个元学习模型来学习最合适的融合策略。通常会根据任务和数据的特点选择最优的融合方式。
  • 优点: 高度灵活,能够自适应不同任务的需求。
  • 缺点: 需要大量的计算资源和数据来训练元学习模型。

四、5. 最长回文子串(力扣hot100_多维动态规划_中等)

在这里插入图片描述

  • 思路:做判断回文字串的任务,首先要知道一个算法叫Manacher算法,这个算法能在O(1)上判断子串是否为回文。
  • 如何判断为回文?
    • 暴力法:以每个字符i为中心,依次扩展hl,判断t[i - hl] == t[i + hl]
    • Manacher算法:通过添加一个if判断,将判断过程简化为O(1)
  • 代码:
class Solution:def longestPalindrome(self, s: str) -> str:'''使用 Manacher模板,同时维护最大的halflen[i]对应的下标,最后返回最长回文子串的下标'''t = "#".join("^" + s + "$")half_len = [0]*(len(t)-2)  # half_len[i] 表示在 t 上的以 t[i] 为回文中心的最长回文子串的回文半径half_len[1] = 1box_m = 0  # 该回文子串的中心位置,二者的关系为 r=mid+half_len[mid]box_r = 0  # 表示当前右边界下标最大的回文子串的右边界下标+1, box_r=box_m+half_len[box_m]max_i = 0for i in range(2, len(half_len)):hl = 1if i < box_r:hl = min(half_len[box_m *2 -i],  box_r-i)while t[i-hl] == t[i+hl]:hl += 1box_m, box_r = i, i+hlhalf_len[i] =hlif hl > half_len[max_i]:max_i = ihl = half_len[max_i]return s[(max_i - hl) // 2: (max_i + hl) // 2 - 1]

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

R语言——循环

参考资料&#xff1a;学习R 在R中有三种循环&#xff1a;repeat、while和for。虽然向量化意味着我们可能并不需要大量使用它们&#xff0c;但在需要重复执行代码时&#xff0c;它们是非常有用的。 1、重复循环 R中最容易掌握的循环是repeat。它所做的事情就是反复地执行代码&a…

nginx代理前端请求

一&#xff0c;项目配置 我在 ip 为 192.168.31.177 的机器上使用 vue3 开发前端项目&#xff0c;项目中使用 axios 调用后端接口。 这是 axios 的配置&#xff1a; import axios from axios;const request axios.create({baseURL: http://192.168.31.177:8001,// 设置请求…

老外讲解用Delphi 12.3作web

老外Delphi WebStencils系列教程&#xff0c;从项目入门到发布部署&#xff0c;讲的非常详细&#xff0c;欢迎观看https://www.bilibili.com/video/BV16LZVYpETK

2.Excel :快速填充和拆分重组

一 案例1&#xff1a;快速填充 电子邮件中包含每个人的人名&#xff0c;现在要提取电子邮件中的姓名到名字列。 方法1&#xff1a;将 Nancy 复制到单元格后&#xff0c;邮件会高亮&#xff0c;然后输入A的时候系统就会知道提取名字了。 补充&#xff1a;如果第三个位置输入错误…

股票App开发第一步:如何免费快速的获取股票数据(如何免费获取金融数据)

文章目录 🌱 入坑指南:Python 如何免费获取股市数据!🌴 演示环境 🌴📒 Python 炒股数据,免费午餐,快来尝尝!📒💡 全面又亲民:数据界的“瑞士军刀”!🕰️ 专注历史:老股民的“时光机”!🌟 真正免费:开源社区的“宝藏”!🎣 实在不行,咱就自己捞!⚠…

联核防爆无人叉车:高危环境中的安全搬运守护者

联核防爆AGV无人叉车是专为易燃易爆环境设计的智能搬运设备&#xff0c;其特点、功能与应用场景均围绕“安全”与“智能”核心展开&#xff1a;联核科技官网-AGV叉车十大品牌-无人叉车厂家-自动化叉车-智能搬运码垛机器人-智能叉车系统解决方案专家 一、核心特点 防爆设计电气…

6、进程理论和简单进程创建

一、了解进程推荐看这个视频&#xff0c;很详细 1、概念 进程(Process)程序的运行过程&#xff0c;是系统进行资源分配和调度的独立单元程序的运行过程&#xff1a;多个不同程序 并发&#xff0c;同一个程序同时执行多个任务。 就需要很多资源来实现这个过程。 每个进程都有一…

Java通信

Trae - AI 原生 IDE目录 同步代码块 ​编辑 同步方法​编辑​编辑 二者对比 ​编辑 lock对象 通信 cs架构​编辑​编辑​编辑 mac地址&#xff0c;物理地址​编辑 取地址​编辑 127 0 0 1和IP 127.0.0.1和ipconfig获得的IP地址是什么关系 。127.0.0.1 和通过 ipcon…

K8S学习之基础五十八:部署nexus服务

部署nexus服务 Nexus服务器是一个代码包管理的服务器&#xff0c;可以理解 Nexus 服务器是一个巨大的 Library 仓库。Nexus 可以支持管理的工具包括 Maven &#xff0c; npm 等&#xff0c;对于 JAVA 开发来说&#xff0c;只要用到 Maven 管理就可以了。Nexus服务器作用&#x…

hackmyvm-reversteg

arp-scan -l nmap -sS -v 192.168.222.45 在源码中可以看到 根据下面的提示可以猜测117db0148dc179a2c2245c5a30e63ab0是一个图像文件 将图片下载到本地 隐写术 在两张图片上使用strings,发现有一些可打印的字符串 strings 117db0148dc179a2c2245c5a30e63ab0.jpg base64解码…

通过国内源在Ubuntu20.0.4安装repo

国内三大免费源&#xff1a; 清华大学&#xff1a;清华大学开源软件镜像站 | Tsinghua Open Source Mirror中国科技大学&#xff1a;USTC Open Source Software Mirror阿里云&#xff1a;阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 repo只在清华源网站里搜到&#xff1a;…

基于EFISH-SBC-RK3576的无人机智能飞控与数据存储方案

一、方案背景 民用无人机在电力巡检、农业植保、应急救援等领域快速普及&#xff0c;但传统方案面临‌多协议设备兼容性差‌、‌野外环境数据易丢失‌、‌复杂电磁干扰‌三大痛点。 电鱼智能推出‌EFISH-SBC-RK3576‌&#xff0c;可集成双冗余总线接口与工业级加固存储&#x…

飞牛NAS本地部署小雅Alist结合内网穿透实现跨地域远程在线访问观影

文章目录 前言1. VMware安装飞牛云&#xff08;fnOS&#xff09;1.1 打开VMware创建虚拟机1.3 初始化系统 2. 飞牛云搭建小雅Alist3. 公网远程访问小雅Alist3.1 安装Cpolar内网穿透3.2 创建远程连接公网地址 4. 固定Alist小雅公网地址 前言 嘿&#xff0c;小伙伴们&#xff0c…

Java多线程与高并发专题—— CyclicBarrier 和 CountDownLatch 有什么异同?

引入 上一篇我们了解CountDownLatch的原理和常见用法&#xff0c;在CountDownLatch的源码注释中&#xff0c;有提到&#xff1a; 另一种典型用法是将一个问题分解为 N 个部分&#xff0c;用一个Runnable描述每个部分&#xff0c;该Runnable执行相应部分的任务并对闭锁进行倒计…

自建隐私优先的元搜索引擎:SearXNG 部署全指南

一、SearXNG 简介 SearXNG 是一款开源的元搜索引擎,通过聚合 Google、Bing、DuckDuckGo 等 70 多个搜索引擎的结果,为用户提供无广告、无追踪的搜索体验。其核心特性包括: 隐私保护:不记录用户 IP、搜索记录或使用 Cookie。多格式输出:支持 HTML 和 JSON 格式,便于与其他…

新手SEO优化实战快速入门

内容概要 对于SEO新手而言&#xff0c;系统化掌握基础逻辑与实操路径是快速入门的关键。本指南以站内优化为切入点&#xff0c;从网站结构、URL设计到内链布局&#xff0c;逐层拆解搜索引擎友好的技术框架&#xff1b;同时聚焦关键词挖掘与内容策略&#xff0c;结合工具使用与…

递归、搜索、回溯算法

记忆化搜索算法 记忆化搜索是一种将动态规划与递归相结合的算法&#xff0c;它通过记录已解决的子问题的解来避免重复计算&#xff0c;从而提高算法的效率。它主要用于解决具有重叠子问题性质的问题&#xff0c;例如斐波那契数列的计算、最短路径问题等。记忆化搜索的实现通常采…

Windows 10 ARM64平台MFC串口程序开发

Windows 10 IoT ARM64平台除了支持新的UWP框架&#xff0c;也兼容支持老框架MFC。使得用户在Windows 10 IoT下可以对原MFC工程进行功能升级&#xff0c;不用在新框架下重写整个工程。熟悉MFC开发的工程师也可以在Windows 10 IoT平台下继续使用MFC进行开发。 本文展示MFC串口程序…

browser-use 库网页元素点击测试工具

目录 代码代码解释输出结果 代码 import asyncio import jsonfrom browser_use.browser.browser import Browser, BrowserConfig from browser_use.dom.views import DOMBaseNode, DOMElementNode, DOMTextNode from browser_use.utils import time_execution_syncclass Eleme…

vue 点击放大,图片预览效果

背景&#xff1a; 在vue框架element组件的背景下&#xff0c;我们对图片点击放大(单张)&#xff1b;如果是多张图片&#xff0c;要支持左右滑动查看多张图片(多张)。 图片单张放大&#xff0c;el-image图片组件&#xff0c;或者原生的img标签。previewSrcList string[单个] 图片…