HNSW算法介绍

HNSW是目前在工业界应用最多的向量检索算法,如Faiss、Vespa、Elastic Search中,都使用了HNSW来构建向量索引。 本篇文章就来详细的介绍下HNSW算法。

NSW算法介绍

在向量检索那篇文章中提到了,基于图的向量索引是当前工业界中使用最多,更具体一点,其实使用的都是HNSW索引。HNSW其实是NSW的一个升级版本, 所以想了解HNSW,首先就要先了解NSW,本篇文章就来介绍下NSW。

向量检索

之前的一篇文章讨论了基于倒排索引的广告检索,这种形式的索引通常用于传统的广告场景中。本篇文章来讨论下在电商广告场景下,普遍使用的另一种检索方式——向量检索。

go.mod和go.sum

使用go官方的依赖管理工具——go module对go项目进行依赖管理时,会生成两个文件:go.mod和go.sum,本文会聊一聊这两个文件相关的话题。

区间树

在《由浅入深的聊聊广告检索》这篇文章中,聊到了构建广告索引需要用到区间树, 本文就来具体聊聊区间树这种数据结构。

在线服务需要哪些监控

在生产环境下,我们需要了解在线服务当前运行的状态,而实时监控就是一个这样的工具,有了实时监控,我们就可以时时刻刻了解到,我们的服务当前是不是健康的,有哪些问题。

从宏观角度聊聊广告系统

本篇文章会从宏观角度上聊一聊,一个功能完备的广告系统,需要哪些模块。首先来解释下,对于一个广告系统来说,怎样才算是功能完备。 我认为,最主要的一点是,要能够支持各种计费类型的广告投放。

由浅入深的聊聊广告检索

互联网广告与传统媒体广告,一个最大的差别就是,互联网广告支持精准投放。广告主在媒体方投放广告时,可以指定,这条广告的目标人群。 当媒体方的流量符合该目标人群时,才能够展示该广告。

一道有趣的面试题

今天在网上看到一个面试题:在不使用乘法的前提下,计算两个32位正整数$n_1$和$n_2$的乘积。这个问题本质上是个数学问题,还比较有趣, 这里我给出解法以及详细数学证明,并给出进阶问题。

合约广告(二):库存分配

合约广告有CPD和CPM两种,CPD其实是不需要库存分配的,因为它是购买某个广告位某个时段指定定向的所有流量,也就是这个广告位在特定时间, 特定定向的流量进来,只能命中这一条广告,所以不存在分配问题。

合约广告(一):排期系统

在投放方式上,合约广告与竞价广告相比,一大特点就是合约广告需要排期。竞价广告是不需要排期的,因为同一时间内可以投放任意多个竞价广告, 价高者得,媒体没给广告主任何曝光数量的承诺。

回顾2021年

今天是2021年的最后一天,回顾2021年,很忙碌,也很有成就。在工作方面,开始担任系统负责人,负责公司的广告归因业务系统。在家庭方面,迎来了一个新的家庭成员。 2021年绝对可以说是精彩的、令人难忘的一年。

聊聊广告归因

广告付费类型 要想了解广告归因,我们还得从互联网广告的付费模式聊起。 互联网广告,按照付费类型来划分,可以分为以下几种:

为什么要做微服务拆分

最近在对广告归因系统进行重构,重构的原因有两个: 我们团队的技术栈是go,但由于历史原因,广告归因系统是使用Java开发的。为了统一技术栈,决定使用go重构。 目前归因系统是单体架构,随着流量越来越大、功能越来越复杂,单体架构的问题逐渐开始暴露,因此决定进行微服务拆分。

我所理解的oCPM

最近公司在搞oCPM类型的广告投放,我也研究了下到底什么是oCPM,感觉还比较有趣,本文就以问答的形式聊聊我所理解的oCPM。

如何公平的洗牌

今天工作中遇到一个问题,要将数组中的元素随机的、公平的重新排列,乍一看这个问题好像还挺简单的,但实际去写代码时,发现这还是个挺有意思的问题。 因为我们不光要写出算法,而且还要从数学角度上去证明,我们的算法从理论上是符合要求的。

为什么要建立这个博客

自我开始工作后,我有时间就会写一些文档,这些文档大多是技术性的文档,除此之外,也包含少量的我对于一些事情的思考。