- 博客(31)
- 资源 (3)
- 收藏
- 关注
原创 从0到1搭建推荐系统——序言
在当今这个信息爆炸的时代,无论是电商平台上的海量商品、视频平台上的无尽视频流,还是社交媒体上纷繁复杂的资讯内容,用户面临着前所未有的选择困难。如何高效、精准地帮助用户从海量数据中筛选出他们感兴趣的内容或产品,成为了互联网企业亟待解决的核心问题之一。这正是推荐系统(Recommendation System)大显身手的舞台。
2024-09-04 20:53:49 259
原创 说一说【广告搜索推荐系统】里的粗排和精排
等这么一些步骤,其中我们都知道,广告召回是关键步骤,同时,怎么精准预测广告曝光后的效果也是重中之重,并且在这整个过程中,耗时又是不得不考虑的事情,耗时过长,可能ADX就不会等待你的返回了。因此,怎么样既能保证我们需要的广告不被过滤,同时尽可能缩短队列,减小在线预估的计算量,就是重中之重了,因此,本文来跟大家聊一聊广告实时推荐和检索过程中的【粗排】与【精排】。
2024-03-29 15:59:27 2495
原创 科普一下【信息流广告/计算广告】中的几个常见术语
CTR(Click-Through Rate)即点击通过率,是互联网广告中常用的术语,用于衡量广告被点击的效果。这个公式表示的是广告被点击的次数与广告被展示的总次数之间的比例。CTR的值越高,意味着广告的点击效果越好,即广告吸引了更多用户的关注并点击。因此,CTR是衡量广告效果的重要指标之一。
2024-03-29 14:41:49 922
原创 通俗讲解【布尔召回和向量化召回】
向量化召回之所以得名,是因为其核心思想是将用户特征和物料特征全部用向量来表示,然后基于这些向量来计算用户与物料的相似度、用户与用户的相似度以及物料与物料的相似度。这对系统的实时性能和准确性提出了很高的要求,需要不断优化系统的架构和算法,以提高响应速度和推荐准确性。向量化召回的优点在于能够捕捉用户和物料之间的潜在关系,提高了召回的准确性和多样性。其中,召回技术算的上是搜索推荐的核心环节,主要有布尔召回、向量化召回、文本召回、KV索引召回等几种,本文主要来对比最常见的布尔召回和向量化召回。
2024-03-28 16:23:54 1254
原创 c++编译出来的程序a,当在linux 系统终端执行./a 发生了哪些事情?
在整个过程中,操作系统和硬件协同工作,确保程序能够正确、高效地执行。同时,任何程序错误(如段错误、非法内存访问等)都可能导致程序异常终止,并可能产生相应的错误消息。
2024-03-25 18:31:54 251 1
原创 Flume和Kafka的区别
综上所述,Flume和Kafka在功能、数据流处理、可靠性与持久性,以及扩展性与生态系统等方面存在明显的差异。在选择使用哪个系统时,需要根据具体的业务需求和场景来进行权衡和选择。
2024-03-25 18:22:13 616
原创 一个餐厅的例子说明select、poll和epoll
它不仅仅是帮你检查铃铛是否响起,更重要的是,它可以直接告诉你哪些铃铛响了,而无需你亲自去检查每一个。这就像是每个铃铛都有自己的智能通知系统,一旦铃铛响,它就会直接通知。那样有文件描述符数量的限制,但它仍然需要遍历所有注册的铃铛来查看哪些响了。即使大部分铃铛都没有响,你也得一个个去检查,这样效率显然不高,特别是当客人数量很多时。想象你经营着一家小型餐厅,每位客人到来时都会给你一个铃铛。允许你告诉它:“我要监听这些客人的铃铛,一旦有铃铛响,请告诉我。最后,你的餐厅变成了大型连锁餐厅,每天有成千上万的客人。
2024-03-21 16:17:13 234
转载 怎么提高C++编程的基本功?这才是硬实力
定义一个变量,那么你就得承受这个变量的构造和析构的成本时间,所以在定义一个变量的时候我们应该尽可能的延后定义时间,在使用前定义,这样避免我们定义了却没有使用它,造成浪费任何情况下都不应该重新定义一个继承而来的non-virtual函数绝对不要重新定义一个继承而来的缺省参数值,因为缺省参数值都是静态绑定的,而virtual函数——你唯一应该覆写的东西是动态绑定当我们编写一个模板类,它提供的和这个模板祥光的函数支持所有参数的隐式类型转换,请将哪些函数定义为模板类的内部的friend函数。
2023-03-01 18:46:45 781
原创 C++和java的异同点总结
java语言是由C++语言改进并重新设计而来的。Java与C++都是面向对象语言,都使用了面向对象思想(例如封装、继承、多态等),由于面向对象有许多非常好的特性(继承、组合等),因此二者都有很好的可重用性。二者的不同点:Java为解释性语言,C++为编译型语言Java为纯面向对象语言,C++兼具面向过程和面向对象编程的特点Java语言没有指针概念Java语言不支持多重继承,但引入了接口的概念Java语言提供了垃圾回收器来实现垃圾的自动回收,而C++需要开发人员去管理对内存的分配C++语言
2022-05-12 14:07:18 666
转载 kmp,sunday,bm等算法介绍
kmp,sunday,bm等算法https://www.cnblogs.com/Syhawk/p/4077295.html
2019-03-27 21:21:01 187
转载 vim增加函数(变量)定义跳转工具
哇, 这下可厉害了, Tag文件(标签文件)可是程序员的看家宝呀, 你可以不用它, 但你不能不知道它, 因为Linux内核源码都提供了"make tags"这个选项. 下面我们就来介绍Tag文件.tags文件是由ctags程序产生的一个索引文件, ctags程序其是叫"Exuberant Ctags", 是Unix上面ctags程序的替代品, 并且比它功能强大, 是大多数Linux发行版上默认的...
2018-07-26 02:31:22 2421
转载 c++字符串和数字间相互转换
首先推荐用用C++的stringstream。 主要原因是操作简单。数字转字符串,int float类型 同理#include <string>#include <sstream>int main(){ double a = 123.32; string res; stringstream ss; ss ...
2018-05-28 16:07:30 180
原创 第一个只出现一次的字符
在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置方法1: //说明,因为这里需要额外申请一个string来存放输入,设输入长度为n,则下述算法空间复杂度为O(n) //另外:stl实现的sort方法,其复杂度为O(n*log(n)),查找同理,然后需要遍历的数量级为n //故,整个算法的复杂度为:O(n*l...
2018-04-04 22:45:55 133
原创 收集雨水问题
题目描述:题目来源于LeetCode,原意可以形象地理解为收集雨水问题,如下述Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it is able to trap after raining. For ex...
2018-04-02 13:44:45 613
原创 字典排序算法
*字典排序算法 *一个全排列可看做一个字符串,字符串可有前缀、后缀。 *生成给定全排列的下一个排列.所谓一个的下一个就是这一个与下一个之间没有其他的。这就要求这一个与下一个有尽可能长的共同前缀,也即变化限制在尽可能短的后缀上。 *[例]839647521是1--9的排列。1—9的排列最前面的是123456789,最后面的987654321,从右向左扫描若都是增的,就到了98765432...
2018-03-30 16:00:48 1177
原创 寻找三角形
三维空间中有N个点,每个点可能是三种颜色的其中之一,三种颜色分别是红绿蓝,分别用'R', 'G', 'B'表示。 现在要找出三个点,并组成一个三角形,使得这个三角形的面积最大。 但是三角形必须满足:三个点的颜色要么全部相同,要么全部不同。输入描述:首先输入一个正整数N三维坐标系内的点的个数.(N <= 50) 接下来N行,每一行输入 c x y z,c为'R', 'G', 'B' ...
2018-03-29 14:32:13 291
原创 找出函数的最宽尖峰
【题目描述】按数组的形式给出函数f(x)的取值,即数组A的A[0]元素为f(0)的取值,数组的取值都为整数,函数在每个点都是严格单调递增或者严格递减(即A[i-1] != A[i] != A[i+1]),要求找出最宽的先上升后下降的区间(这个区间内函数的值必须先上升到一个点然后下降,区间的上升段和下降段长度必须都大于0)。 1. 如果找到符合条件的最大区间输出数组对应的左右下标(保证只有一...
2018-03-22 17:01:51 250
原创 给定整数n和m, 将1到n的这n个整数按字典序排列之后, 求其中的第m个数。
自己构造了一个map,自定义了map的比较函数,代码通过率为50%,不知道为什么这样的复杂度还不能通过?代码如下#include <iostream>#include <vector>#include <map>#include <stack>using namespace std;class Compare{public: boo...
2018-03-22 14:44:03 5106
原创 测试机器大小端
1.机器大小端的概念低地址放高位数据就是大端机存储方式。低地址放低位数据就是小端机存储方式。2.如何测试机器大小端2.1 利用指针强制类型转换#include<iostream> int main() { int a = 1; char * p = (char*)&a; if (*p == 1) { s...
2018-02-27 11:09:48 177
原创 static关键字总结
1、首先,总结一下c/c++程序内存构成:一个程序被加载到内存中,这块内存首先就存在两种属性:静态分配内存和动态分配内存。 静态分配内存:是在程序编译和链接时就确定好的内存。 动态分配内存:是在程序加载、调入、执行的时候分配/回收的内存。1.1静态内存区:静态/全局区、代码区、常量区静态/全局区: 存放全局变量、静态变量以及const常量。文字常量区: 常量字符串存放于此,程序结束后由系统释放。代...
2018-02-26 15:47:26 150
转载 [C/C++]在头文件中使用static定义变量意味着什么
声明:本文乃转载文章,转载出处:https://www.cnblogs.com/computer1-2-3/p/6088388.html看到有一位同学在头文件中这么写:1 static const wchar_t* g_str1 = …2 static const wchar_t* g_str2 = …这种定义变量的方式我从来没有见过,而且它还能顺利通过编译,于是我很想知道编译器是如何处理这种变...
2018-02-26 11:15:35 460
原创 进程和线程
1.进程 进程(Process)是计算机操作系统中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体。 进程的概念主要有两点:第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(...
2018-02-24 10:14:54 111
原创 STL里的assign和copy函数使用方法
const int NUM = 10;int a[NUM] = {0};std::vector<int> vec1;std::vector<int> vec2;std::vector<int> vec3;vec1.resize(NUM);std::copy(vec1.begin(), vec1.end(), std::back_inserter(v...
2018-02-09 16:00:10 838
转载 【socket编程】 一个简单的基于TCP连接的客户端、服务端用例
//客户端::#include "stdafx.h"#include #include "WinSock2.h"#pragma comment(lib,"ws2_32.lib")SOCKET tcp_socket;SOCKADDR_IN tcpAddr;const int BufLen = 1024;char SendBuf[BufLen];int ma
2018-02-07 18:56:22 532
原创 dll导入、导出声明__declspec(dllexport) 和__declspec(dllimport)用法
#if DLL_EXPORTS#define DLLIMPORT __declspec (dllimport)#else#define DLLIMPORT __declspec (dllexport)#endif其中,DLL_EXPORTS需要在dll工程属性【C/C++】、【预处理器】、【预处理器定义】定义
2018-02-07 15:05:31 703
转载 ICE的slice文件定义注意事项
一、源文件规则1、文件扩展名必须为.ice2、在使用#include来包含其他的ice定义文件时,只能使用3、每个slice定义文件中最好加上#ifndef的宏定义,防止文件的双重包含4、文件必须是utf-8编码的二、词法规则1、slice文件支持c++的单行和多行注释2、slice定义中的关键字均为小写3、slice文件中关键字不能以下划线开始和结尾,当然
2018-02-07 11:03:33 1313
转载 进程的控制
1 进程的创建 一个进程可以创建一个子进程,子进程会继承父进程所拥有的资源,如继承父进程打开的文件、分配到的缓冲区等,当子进程被撤销时,应该讲其从父进程哪里获得的资源归还给父进程,此外,撤销父进程时,也必须同时撤销其所有的子进程。 引起创建进程的事件如下 ① 用户登录。② 作业调度。③ 提供服务。④ 应用请求。 进程创建的步骤如下 ① 申请空白PC
2018-01-29 23:24:49 179
转载 关于boost::function与boost::bind函数的使用心得
关于boost::function与boost::bind函数的使用心得最近开始写一个线程池,期间想用一个通用的函数模板来使得各个线程执行不同的任务,找到了Boost库中的function函数。Boost::function是一个函数包装器,也即一个函数模板,可以用来代替拥有相同返回类型,相同参数类型,以及相同参数个数的各个不同的函数。 1 #include 2 #inclu
2017-12-19 16:57:27 158
转载 C/C++程序员常见面试题
常见C++面试题及基本知识点总结(一)【转载请注明出处】:http://www.cnblogs.com/LUO77/p/5771237.html 1. 结构体和共同体的区别。定义:结构体struct:把不同类型的数据组合成一个整体,自定义类型。共同体union:使几个不同类型的变量共同占用一段内存。地址:struct和union都有内存对齐,结构体的内存
2017-12-14 23:49:13 486
转载 C++程序员相关书籍推荐
c++入门:c++ primer(没有plus) c++进阶:effective c++ more effective c++ 深度探索c++对象模型 STL源码剖析 effective STL c++的设计与演化 c++沉思录 c++编程思想 算法与数据结构:算法(第四版) 编程珠玑 算法导论 算法与数据结构(wesis) 网络编程:APUE UNP 操作系统:深入理解计算机系统(CSAPP,简...
2017-12-11 00:16:39 1294
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人