- 博客(479)
- 资源 (1)
- 收藏
- 关注
原创 推荐算法介绍-基础算法
《深度学习-推荐系统》教程摘要:该教程系统介绍了现代推荐系统的架构与演进历程。推荐系统通过分析用户信息、物品信息和场景信息,构建预测模型对候选物品进行排序。架构包含数据层(生成样本、特征和监控数据)、模型层(召回、排序和混排模块)、训练层(离线训练和在线更新)。数据层处理原始数据,模型层实现多级筛选,训练层兼顾全局优化和实时更新。本教程详细解析了推荐系统的工程实现方法,是入门的优秀指南。(150字)
2025-06-11 20:39:46
32
原创 广告推荐系统中模型训练中模型的结构信息、Dense数据、Sparse数据
下面结合广告推荐系统常见的深度学习模型(比如 Wide & Deep、DeepFM、Two-Tower 等),介绍一下“模型的结构信息”、Dense 数据和 Sparse 数据在训练过程中的角色及处理方式。Sparse 数据(高维离散型特征)Dense 数据(数值型特征)
2025-06-11 14:50:12
69
原创 原生广告&UG广告
本文解析两种主流广告形式:原生广告和UG广告。原生广告强调与环境融合,通过信息流、推荐位等形式提供有价值内容,具有高接受度和转化率,但需注意合规标识。UG广告利用用户生成内容(如测评、直播)实现低成本社交化种草,凭借真实感提升传播效果。两者均注重用户体验,但原生广告侧重专业内容植入,UG广告依赖用户自发分享。成功的核心在于平衡商业目标与内容价值,实现自然触达。
2025-06-11 13:57:47
39
原创 广告系统中后链路数据为什么要使用流批一体技术?流批一体技术是什么?
在大规模广告系统的后链路(离线和实时特征计算、模型训练与上线、效果监控等)中,往往既有对海量历史数据的批量计算需求(离线特征、离线模型训练、报表汇总),又有对在线请求的低延迟实时计算需求(实时特征、在线打分、实时监控/告警)。传统将二者割裂、用 Lambda 架构(Batch + Speed 层)分别实现,带来了:• 代码与业务逻辑重复• 数据语义/计算结果不一致• 运维成本、调度复杂度翻倍• 开发调试效率低。
2025-06-10 20:43:49
302
原创 客资广告(线索广告)
核心在于明确目标人群、优化创意与表单体验,并结合持续跟进及数据分析,实现潜在客户到最终成交的全流程闭环。线索广告(Lead Ads)是以获取潜在客户信息(如姓名、电话、邮箱、职务等)为目的的广告形式。用户填写完表单信息后,广告主即可获得可跟进的客户线索,用于后续销售或精准营销。• 针对不同客户阶段可设计多版本表单——初步兴趣版 vs. 进一步跟进版。• 控制在3~5项以内(姓名、手机号、地区、需求等)• 突出价值主张(如“免费报告”、“限时优惠”)• 提供实用价值(白皮书下载、免费体验、优惠券)
2025-06-10 17:03:06
142
原创 搜广推特征数据变更灰度为什么实现很困难
综上所述,搜广推特征数据的灰度发布涉及到数据生产、存储、服务、模型训练、实验评估等多个环节的协同,对系统架构的灵活性、数据管理能力和实验平台能力都提出了极高的要求,因此实现起来非常困难。通常需要强大的基础设施(如支持版本的特征平台、灵活的数据流处理框架、完善的A/B测试系统)来支撑。搜广推(搜索、广告、推荐)系统中的特征数据变更进行灰度发布之所以实现困难,主要源于这些系统本身的复杂性、对数据一致性的高要求以及变更可能带来的深远影响。
2025-06-05 19:06:09
56
原创 运维视角下的广告系统之理解广告索引级联
摘要:广告索引采用级联(多层索引)设计主要为了高效处理多维度查询。级联索引通过分层过滤(如地域→业务线→关键词),能快速排除无关项,显著提升检索性能,同时节省存储空间。以美团为例,其广告系统按照地域、业务线等维度构建层级结构,支持毫秒级响应。这种设计还能灵活扩展新维度,并控制键空间爆炸。实际系统中常结合倒排索引等技术优化,满足高并发需求。类似架构也广泛应用于滴滴、阿里等企业的广告和推荐系统。
2025-06-03 15:14:14
46
原创 阿里云数据盘级别
总的来说,ESSD云盘的不同性能级别PL0、PL1、PL2和PL3在性能、容量范围、应用场景以及价格方面都有显著的差异。在选择时,需要根据实际的业务需求和预算进行权衡,选择最适合的性能级别。数据盘PL0、PL1、PL2和PL3的区别体现在。
2025-05-21 10:36:20
549
原创 go test操作
这是一个特殊的函数,用于执行测试的主函数。: 类似于T.Parallel,但适用于C类型的测试实例。: 类似于T.FailNow,但适用于C类型的测试实例。: 类似于T.Errorf,但适用于C类型的测试实例。: 类似于T.Fatalf,但适用于C类型的测试实例。: 类似于T.Skipf,但适用于C类型的测试实例。: 类似于T.Logf,但适用于C类型的测试实例。: 类似于Errorf,但会导致测试立即终止。: 用于记录测试过程中的信息,不会中断测试。: 一个结构体,包含有关测试的信息和方法。
2025-05-21 10:34:09
595
原创 git基础操作
当远程仓库迁移到一个新的组下面时,你需要在本地仓库中更新远程仓库的URL,以便与新的远程仓库关联。以上步骤完成后,你的本地仓库就会与新组下的远程仓库正确关联,你可以像之前一样进行拉取、推送等操作。首先,你需要从GitLab或相关平台获取新组下的仓库的新URL。通常,仓库的URL格式为。此命令将你的本地分支与新远程仓库的对应分支关联起来。命令,确认新的远程仓库URL已正确设置。这将显示当前远程仓库的名称(通常是。如果远程仓库名称仍为。
2025-05-21 10:32:47
220
原创 docker上传镜像
向Docker Hub上传镜像,需要按照一定的步骤进行操作。Docker Hub是Docker的官方镜像仓库,用户可以在其中存储、管理和部署Docker镜像。* 确保你已经有一个制作好的Docker镜像。如果没有,你可以使用docker build命令来创建一个。例如,如果你有一个名为Dockerfile的文件,可以使用以下命令构建镜像: sh。总之,通过执行上述步骤,你就可以将Docker镜像成功上传到Docker Hub,从而与他人共享或在其他环境中使用该镜像。
2025-05-21 10:29:46
519
原创 删除不用的镜像
要删除列出的所有 Docker 镜像,你需要使用docker rmi命令来删除它们。您提到想要删除所有这些镜像,请注意,删除镜像会永久移除它们,并且可能会影响依赖这些镜像的容器。
2025-05-21 10:22:47
192
原创 git操作:将就代码仓库更新为新的代码仓库
在进行任何会影响 Git 历史记录的操作之前,请务必确保你理解它们的影响并且已经备份必要的数据。4. git commit -m “Initial commit” # 创建新的提交。2. git init # 重新初始化一个新的 Git 仓库。1.rm -rf .git # 删除 .git 目录。3. git add . # 添加所有文件。这种方式会丢失所有的提交历史,但也是一种彻底的清理方法。
2025-05-21 10:21:13
213
原创 如何使用redis做限流(golang实现小样)
你可以根据实际需求,选择固定窗口、滑动窗口等算法,用Go+Redis实现高性能限流。滑动窗口用ZSET实现,推荐生产环境使用Lua脚本保证原子性。建议多测试,关注Redis QPS压力。如果你需要更复杂的令牌桶算法实现,也可以告知!
2025-05-21 10:19:43
1106
原创 运维视角下的广告业务
广告业务是很多家互联网公司的营收业务,业务非常复杂,既ToC又ToB,广告链路上从广告创编开始,到定向投放客户,再到广告主账户、计划、单元、创意四层级联生成相关广告物料,再到召回、粗排、精排、正排展示给用户,中间还夹杂着广告出价、调价、竞价、模型特征提取、预估打分,以及后链路事件拼接、计费、模型训练等等,广告业务系统是一个非常复杂的大系统。后面将从运维视角出发,逐步逐层拨开广告系统的“面纱”,更清楚更直观展示广告系统的纷繁复杂,为更好运维这个系统打下坚实基础。
2024-11-03 16:42:44
157
原创 分片上传的常见错误有哪些?
OSS服务端可能因为内部错误而导致上传失败,这时通常会有错误码和错误信息返回,可以根据这些信息进行相应的处理。为了减少这些错误的发生,你应该在上传前进行充分的测试,并在生产环境中监控上传过程,以便及时发现并解决问题。:上传的分片数据与OSS服务器上的校验和不匹配,这可能是由于数据在传输过程中损坏。:确保你有足够的权限进行分片上传操作,包括初始化、上传分片和完成上传的权限。:确保每个分片的大小一致,除非是最后一个分片,它可能小于指定的分片大小。:如果不小心上传了同名文件,可能会导致原有文件被覆盖。
2024-10-04 11:44:46
523
原创 分片上传的最佳实践有哪些?
分片上传是阿里云OSS提供的一种上传大文件的机制,它通过将文件分成多个部分(分片)并行上传,从而提高上传的效率和可靠性。:在上传过程中,如果发生网络中断或其他错误,应该能够从中断的地方继续上传,而不是重新上传整个文件。:为了保证上传数据的完整性,可以在上传前计算每个分片的校验和(如MD5),并在上传完成后进行验证。需要有机制来重试失败的分片上传。:如果分片上传过程中断,应提供机制来清理已经上传的分片,以避免产生不必要的存储费用。:提供上传进度的监控,可以让用户了解当前上传的状态,特别是在上传大文件时。
2024-10-04 11:43:46
520
原创 面对大文件(300G以上)如何加速上传速度
要结合多线程上传每个分片,你可以使用Go语言的并发特性,例如使用 goroutines 和 channels。在这个示例中,我们首先初始化了一个分片上传会话,并设置了每个分片的大小为10MB。接着,通过循环读取文件内容并逐个上传分片,最终完成整个文件的上传。对于大文件上传,可以使用分片上传的方式,并且结合多线程来加速上传过程。为你的实际OSS配置信息,并且提供了一个有效的本地文件路径和对象键名。这种方法允许你利用Go语言的并发特性来加速大文件的上传过程。来等待所有分片上传完成,并使用了一个通道。
2024-10-04 11:40:52
544
原创 面试八股--stram 中map和flatmap的区别
不同的是,它会将函数的返回值扁平化(flatten),即将嵌套的集合或数组展开成一个单一的集合。都是用于处理集合(如列表、数组等)中的元素的方法,它们的主要区别在于处理结果的方式。可能会改变原始集合的结构,因为它会将所有嵌套的元素提取出来并放入一个新的集合中。:它会对集合中的每个元素应用一个函数,并将结果收集到一个新的集合中。操作不会改变原始集合的结构,而是创建一个新的集合来存储转换后的元素。:它同样会对集合中的每个元素应用一个函数,但与。但是,如果我们有一个包含嵌套列表的列表,例如。
2024-09-18 15:26:10
425
原创 面试八股--MySQL命名规范
使用小写字母和下划线组合,避免使用大写字母、空格和特殊字符。列名应简洁明了,尽量避免使用缩写,除非是通用的缩写。使用前缀来表示表之间的关系。表名应该具有描述性,尽量使用复数形式。避免使用保留字作为表名或列名,如。,可以在它们之间建立关系,如。
2024-09-18 15:24:59
596
原创 801. 使序列递增的最小交换次数
例如,如果 nums1 = [1,2,3,8] , nums2 =[5,6,7,4] ,你可以交换 i = 3 处的元素,得到 nums1 =[1,2,3,4] 和 nums2 =[5,6,7,8]。数组 arr 严格递增 且 arr[0] < arr[1] < arr[2] < …< arr[arr.length - 1]。输入: nums1 = [0,3,5,8,9], nums2 = [2,1,4,6,9]输入: nums1 = [1,3,5,4], nums2 = [1,2,3,7]
2024-09-18 14:37:59
387
原创 linux命令学习--pipe管道和重定向
Linux管道和重定向是两种常用的命令行操作,它们可以帮助我们更好地控制和管理命令行的输入输出。这个命令会将字符串"Hello, World!"写入到名为output.txt的文件中。这个命令会列出当前目录下的所有文件,然后通过管道将结果传递给。这个命令会读取input.txt文件的内容并显示在屏幕上。命令会筛选出包含"txt"的文件名。
2024-09-18 14:14:09
539
原创 go testing 包
这是一个特殊的函数,用于执行测试的主函数。: 类似于T.Parallel,但适用于C类型的测试实例。: 类似于T.FailNow,但适用于C类型的测试实例。: 类似于T.Errorf,但适用于C类型的测试实例。: 类似于T.Fatalf,但适用于C类型的测试实例。: 类似于T.Skipf,但适用于C类型的测试实例。: 类似于T.Logf,但适用于C类型的测试实例。: 类似于Errorf,但会导致测试立即终止。: 用于记录测试过程中的信息,不会中断测试。: 一个结构体,包含有关测试的信息和方法。
2024-09-18 14:13:24
713
原创 go testing 包
这是一个特殊的函数,用于执行测试的主函数。: 类似于T.Parallel,但适用于C类型的测试实例。: 类似于T.FailNow,但适用于C类型的测试实例。: 类似于T.Errorf,但适用于C类型的测试实例。: 类似于T.Fatalf,但适用于C类型的测试实例。: 类似于T.Skipf,但适用于C类型的测试实例。: 类似于T.Logf,但适用于C类型的测试实例。: 类似于Errorf,但会导致测试立即终止。: 用于记录测试过程中的信息,不会中断测试。: 一个结构体,包含有关测试的信息和方法。
2024-08-09 15:45:47
699
1
原创 【go】[gin] Gin数据解析和绑定
非常感谢,初次写gin 踩坑了【Go】ShouldBind解析json获取空的数据——踩坑解决对gin还是不熟悉,下面介绍下Gin数据解析和绑定(Bind与ShouldBind系列函数)参考:Go(Gin框架):03—Gin数据解析和绑定(Bind与ShouldBind系列函数)两套绑定方法第一类是以"ShouldBind"系列开头的方法:这些方法底层使用ShouldBindWith,如果存在绑定错误,则返回错误,开发人员可以正确处理请求和错误第二类是以"Bind"系列开头的方法:这些方法底层使用
2022-12-05 15:38:19
546
原创 1752. 检查数组是否经排序和轮转得到
给你一个数组 nums。nums 的源数组中,所有元素与 nums 相同,但按非递减顺序排列。如果 nums 能够由源数组轮转若干位置(包括 0 个位置)得到,则返回 true;否则,返回 false。源数组中可能存在 重复项。注意:我们称数组 A 在轮转 x 个位置后得到长度相同的数组 B ,当它们满足 A[i] == B[(i+x) % A.length] ,其中 % 为取余运算。示例 1:输入:nums = [3,4,5,1,2]输出:true。
2022-11-27 15:32:12
253
原创 leetcode周赛---找出中枢整数
1 和 x 之间的所有元素之和等于 x 和 n 之间所有元素之和。返回中枢整数 x。如果不存在中枢整数,则返回 -1。题目保证对于给定的输入,至多存在一个中枢整数。示例 1:输入:n = 8输出:6解释:6 是中枢整数,因为 1 + 2 + 3 + 4 + 5 + 6 = 6 + 7 + 8 = 21。示例 2:输入:n = 1输出:1解释:1 是中枢整数,因为 1 = 1。示例 3:输入:n = 4输出:-1解释:可以证明不存在满足题目要求的整数。
2022-11-27 11:51:35
955
原创 linux将命令添加进path
将/usr/local/apache/bin添加到PATH中有三种方法:1、直接在命令行中设置PATHPATH=$PATH:/usr/local/apache/bin使用这种方法,只对当前会话有效,也就是说每当登出或注销系统以后,PATH设置就会失效。2、在profile中设置PATHvi /etc/profile找到export行,在下面新增加一行,内容为:export PATH=$PATH:/usr/local/apache/bin。注:= 等号两边不能有任何空格。这种方法最好,除非手动强
2022-04-25 15:11:07
4011
原创 1588. 所有奇数长度子数组的和(前缀和的应用)
给你一个正整数数组 arr ,请你计算所有可能的奇数长度子数组的和。子数组 定义为原数组中的一个连续子序列。请你返回 arr 中 所有奇数长度子数组的和 。 示例 1:输入:arr = [1,4,2,5,3]输出:58解释:所有奇数长度子数组和它们的和为:[1] = 1[4] = 4[2] = 2[5] = 5[3] = 3[1,4,2] = 7[4,2,5] = 11[2,5,3] = 10[1,4,2,5,3] = 15我们将所有值求和得到 1 + 4 + 2
2021-08-30 00:34:29
178
原创 896. 单调数列
如果数组是单调递增或单调递减的,那么它是单调的。如果对于所有 i <= j,A[i] <= A[j],那么数组 A 是单调递增的。 如果对于所有 i <= j,A[i]> = A[j],那么数组 A 是单调递减的。当给定的数组 A 是单调数组时返回 true,否则返回 false。 示例 1:输入:[1,2,2,3]输出:true示例 2:输入:[6,5,4,4]输出:true示例 3:输入:[1,3,2]输出:false示例 4:输入:[
2021-02-28 07:42:19
207
原创 395. 至少有 K 个重复字符的最长子串
给你一个字符串 s 和一个整数 k ,请你找出 s 中的最长子串, 要求该子串中的每一字符出现次数都不少于 k 。返回这一子串的长度。 示例 1:输入:s = "aaabb", k = 3输出:3解释:最长子串为 "aaa" ,其中 'a' 重复了 3 次。示例 2:输入:s = "ababbc", k = 2输出:5解释:最长子串为 "ababb" ,其中 'a' 重复了 2 次, 'b' 重复了 3 次。 提示:1 <= s.length <= 104s
2021-02-27 17:15:49
218
原创 1423. 可获得的最大点数
几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿 k 张卡牌。你的点数就是你拿到手中的所有卡牌的点数之和。给你一个整数数组 cardPoints 和整数 k,请你返回可以获得的最大点数。 示例 1:输入:cardPoints = [1,2,3,4,5,6,1], k = 3输出:12解释:第一次行动,不管拿哪张牌,你的点数总是 1 。但是,先拿最右边的卡牌将会最大化你的可获得
2021-02-06 13:19:29
165
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人