算法
文章平均质量分 57
xiedelong
这个作者很懒,什么都没留下…
展开
-
python hash 不一致踩坑总结
python hash 不一致问题原创 2023-03-01 14:38:02 · 1086 阅读 · 0 评论 -
pytorch Embedding 层的使用
【代码】pytorch Embedding 层的使用。原创 2022-11-15 16:44:33 · 857 阅读 · 0 评论 -
jupyter 代码补全问题解决
jupyter 问题解决原创 2022-10-28 11:58:58 · 807 阅读 · 0 评论 -
TENER: Adapting Transformer Encoder for Named Entity Recognition 论文详解
https://arxiv.org/pdf/1911.04474.pdfNER 是一个根据输入的句子,预测出其标注序列(实体的序列)的过程对于模型来说,一般来说有这么几个组成部分:在此之前,双向长短时记忆网络 (BiLSTMs) 被广泛用于命名实体识别 (NER) 任务的编码器(以及其他各种 NLP 任务的编码器 decoder)。近年来,全连接自注意架构 (Transformer) 因其并行性和对长距离上下文建模的优势被广泛应用于各种自然语言处理 ( NLP ) 任务,且大都取得了比 RNNs 结构更优原创 2022-06-10 15:35:14 · 758 阅读 · 0 评论 -
NER 原理及 TENER 模型搭建
参考:论文地址:https://arxiv.org/pdf/1911.04474.pdf参考 Github 代码实现:https://github.com/fastnlp/TENER用到的 fastNLP Github:https://github.com/fastnlp/fastNLPfastNLP 模型 save:https://fastnlp.readthedocs.io/zh/latest/fastNLP.io.model_io.html需要保存 Vocabulary:https://fa原创 2022-05-11 16:35:54 · 1713 阅读 · 0 评论 -
智能营销增益模型(Uplift Modeling)实践整理
一、uplift 思想(因果推断)常用的点击率预测模型,称为响应模型(response model),即预测用户看到商品(Treatment)后点击(购买)的概率。但在营销的发放优惠券这种场景下,很自然会想到,用户是本来就有购买的意愿还是因为发放了优惠券诱使用户购买?对有发放优惠券这种有成本的营销活动,我们希望模型触达的是营销敏感的用户,即发放的优惠券促使用户购买,而对优惠券不敏感的用户——无论是否发券都会购买——最好不要发券,节省成本。营销活动中,对用户进行干预称为treatment,例如发放优惠券是原创 2022-04-12 16:24:31 · 6498 阅读 · 2 评论 -
TextCNN keras 实现
参考:https://zhuanlan.zhihu.com/p/77634533from IPython.core.interactiveshell import InteractiveShellInteractiveShell.ast_node_interactivity = "all"import numpy as npfrom sklearn import metricsimport kerasfrom keras.preprocessing import sequencefrom ke原创 2022-04-11 21:03:30 · 493 阅读 · 0 评论 -
TextRCNN keras 实现
import numpy as npimport gensimfrom sklearn import metricsimport kerasfrom keras.preprocessing import sequencefrom keras.models import Sequential, Modelfrom keras.layers import Dense, Dropout, Activation, concatenatefrom keras.layers import Embeddin原创 2022-04-11 20:58:32 · 391 阅读 · 0 评论 -
Deep Neural Networks for YouTube Recommendations 踩坑指南
特征预处理:分析特征 和 label 的关系,如果是线性单调的(特征值越大,label 为正的比例越大)或均匀分布的(无论特征值是多少,label 分布都一样),可以直接作为连续值使用,需要进行 max - min 归一化假如一些连续型特征,比如年龄特征是个正态分布,则需要分桶,保证每个桶和 label 是单调的其他的枚举值特征都需要离散化,或者 embedding 化,简单枚举值可以尝试用 01 代替特征 fillna 使用所有样本在当前特征下的 mean 值,不要用 -1(树模型一般使用 -1原创 2022-04-07 16:10:25 · 2635 阅读 · 0 评论 -
numpy.ndarray 转 pytorch Tensor
特征 ndarray 转 tensor torch.Tensor(train_examples[0][0])报错:TypeError: new(): data must be a sequence (got numpy.float64)需要改成:torch.Tensor(train_examples[0][0].reshape(1, n_feature))原创 2022-02-25 11:15:13 · 2511 阅读 · 0 评论 -
NDCG 计算
参考https://zhuanlan.zhihu.com/p/136199536http://zhaoxi-sight.com/artificial-intelligence/%E6%90%9C%E7%B4%A2%E7%B3%BB%E7%BB%9F%E4%B9%8B%E8%AF%84%E4%BB%B7%E6%8C%87%E6%A0%87ndcg/含义高相关性的文档在搜索引擎结果列表越早出现越好。即高相关性的文档出现的位置越靠前,指标会越高。NDCG 同样可以用来计算推荐系统中,召回、排序的平均点原创 2022-01-27 20:11:50 · 4177 阅读 · 1 评论 -
Deep Neural Networks for YouTube Recommendations 论文解读
介绍YouTube的推荐系统的主要挑战有三:规模:有一些算法在小规模的问题上表现很好,但是难以应用于较大规模的问题,高度专业化的分布式学习算法和高效的服务系统是处理的关键。新鲜性(冷启动):Youtube 网站上随时都有新鲜内容产生,怎么把这些新鲜内容推荐出去是需要考虑的。噪声:用户不会对观看的内容有显性的满意度评价,我们只能模拟有噪声的隐式反馈信号(用户观看时长、是否完成观看等),同时视频不是结构性的内容,需要提取到对应的特征,以让模型具有鲁棒性系统结构包括召回阶段 & 排序阶段原创 2022-01-27 15:58:39 · 1493 阅读 · 0 评论 -
milvus 2 使用
一些有用的官方参考术语表:https://milvus.io/cn/docs/v2.0.0/glossary.md布尔表达式语法规则:https://milvus.io/cn/docs/v2.0.0/boolean.mdField Schema (数据)支持类型:https://milvus.io/cn/docs/v2.0.0/field_schema.mdBuild an Index (索引)支持类型 No_1:https://milvus.io/cn/docs/v2.0.0/build_ind原创 2022-01-14 18:35:17 · 1902 阅读 · 0 评论 -
milvus 2.0安装
milvus 2.0 官方安装教程:https://milvus.io/cn/docs/v2.0.0/install_cluster-docker.md查看远程镜像版本:sudo docker search milvus拉取 milvus 镜像:sudo docker pull milvusdb/milvus安装 pymilvus:sudo python -m pip install pymilvus==2.0.0rc9下载配置文件:sudo wget https://github.com/mi原创 2022-01-14 18:19:47 · 3256 阅读 · 2 评论 -
python requirements.txt 文件
pip freeze > requirements.txtpip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt原创 2022-01-12 11:17:57 · 278 阅读 · 0 评论 -
DSSM 召回整理
谷歌论文:https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/cikm2013_DSSM_fullversion.pdf这个论文主要是用来解决NLP领域语义相似度任务的。word hashing 直接把文本映射成了远低于 vocab size的向量中,然后输入DNN,输出得到一个128维的低维语义向量。Query和document的语义相似度就可以用这两个向量的cosine相似度来表示,进一步我们可以通过softmax原创 2021-12-28 18:01:17 · 709 阅读 · 0 评论 -
docker 安装教程
编写:docker_intall.sh,并执行:/bin/sh docker_intall.sh(其中 -y 参数表示自动选 yes)sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-enginesudo yum update -ysudo yum install -y yum-util原创 2021-12-21 14:51:14 · 138 阅读 · 0 评论 -
使用 Docker部署 Tensorflow Serving 模型服务
准备工作拉取 tensorflow servering 的 docker 镜像:sudo docker pull tensorflow/serving,一般是已经有的进入到一个测试目录:cd /home/q/test_dir/然后下载官方Demo目录:git clone https://github.com/tensorflow/serving如果无法下载,去网站 down 下来(附件),然后 deploy 上传到 linux 实体机中部署启动sudo docker run -t --rm原创 2021-12-20 16:49:05 · 2937 阅读 · 1 评论 -
在 docker 中部署 python 工程
安装 docker已经按照:docker 命令 教程,安装完成 docker,并创建了包含完整 requirement 的镜像:py_container_1工程上传首先将本地(线上)工程目录 zip 压缩,并上传到 linux 实体机,后解压缩,进入到工程目录:cd /home/q/www/python_project_1Dockerfile 文件创建在同级目录下创建 Dockerfile 文件(无扩展名): Dockerfile 的指令详解参考:http://www.ityouknow.com/原创 2021-12-20 16:11:58 · 1863 阅读 · 0 评论 -
docker 使用
镜像:sudo docker image pull python:3.6:拉取 python3.6 镜像sudo docker images 查看已经拉取的 python 镜像创建容器:查看容器:sudo docker ps -a创建一个临时的容器:sudo docker run -it python:3.6 /bin/bash创建后台运行的容器:sudo docker run -it -d --name=purchase_1 -v /xx/xx_dir:/home/xx_dir python原创 2021-12-15 19:48:00 · 2783 阅读 · 0 评论 -
tensorflow2 Dataset 相关常用函数
1. tf.constant'''Creates a constant tensor from a tensor-like object.'''features = tf.constant([[1, 3], [2, 1], [3, 3]])features<tf.Tensor: shape=(3, 2), dtype=int32, numpy=array([[1, 3], [2, 1], [3, 3]], dtype=int32)>'''If `sha原创 2021-11-17 15:57:34 · 486 阅读 · 0 评论 -
向量欧氏距离 &点积 & 余弦相似度 & 余弦距离
向量 A = (x1, y1),向量 B = (x2, y2)向量欧式距离:向量点积:向量的模:向量归一化:向量除以模长,也就是 A / |A|向量余弦相似度:也相当于向量归一化后的点积 A*B / |A| * |B| == A / |A| * B / |B|向量余弦距离:用1减去余弦相似度 1 - cos(A, B)。余弦距离的取值范围为[0,2]归一化后的向量的余弦距离和欧氏距离是等价的,参考:https://blog.csdn.net/liuweiyuxiang/article/d原创 2021-11-04 16:36:42 · 3430 阅读 · 0 评论 -
神经网络训练输入特征处理
1. 特征预处理参考:https://www.codenong.com/cs109471668/https://www.zhihu.com/question/20455227样本维度:删除重复数据删除占比过多的用户样本(采样)删除异常样本(业务判断)样本顺序要打乱:因为使用 mini-batch 学习方法,防止一个批次的样本有顺序关系,消除收敛波动特征维度:缺失值处理:填充 -1,或者平均值填充等离散、异常特征处理:去除异常特征对应的样本,按照分位截断填充某一固定值相关特征处原创 2021-10-27 16:44:13 · 2257 阅读 · 0 评论 -
keras 实现多任务学习
def deep_multi_model(feature_dim, cvr_label_dim, profit_label_dim): inputs = Input(shape=(feature_dim,)) dense_1 = Dense(512, activation='relu')(inputs) dense_2 = Dense(384, activation='relu')(dense_1) dense_3 = Dense(256, activation='relu'原创 2021-09-29 10:52:34 · 1178 阅读 · 1 评论 -
实体机配置全流程
新申请的实体机:先配置 hadoop 环境然后在 home/q 下安装 anaconda 包 wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.2.0-Linux-x86_64.sh sudo chmod u+x Anaconda3-5.2.0-Linux-x86_64.sh sudo ./Anaconda3-5.2.0-Linux-x86_64.sh -b -p /home/q/ana.原创 2021-07-02 16:38:59 · 167 阅读 · 0 评论 -
AdaBoost -> GBDT -> XGBOOST 的区别
一、参考链接https://www.zhihu.com/question/41354392二、区别传统 GBDT 以 CART (采用 gini 指数计算增益的回归树)作为基分类器,xgboost还支持线性分类器,这个时候xgboost相当于带L1和L2正则化项的逻辑斯蒂回归(分类问题)或者线性回归(回归问题)。传统 GBDT 在优化时只用到一阶导数信息,xgboost则对代价函数进行了二阶泰勒展开,同时用到了一阶和二阶导数。顺便提一下,xgboost工具支持自定义代价函数,只要函数可一阶和二阶求原创 2021-07-01 15:08:08 · 1775 阅读 · 0 评论 -
深度学习整理
一、模型出现过拟合现象的原因训练数据不足,有限的训练数据训练模型过度导致模型非常复杂(迭代轮次过多)样本里的噪音数据干扰过大参数太多、模型复杂度高 (网络层过多,神经元个数过多,树身过深,叶子结点过多等)二、问题解决训练集越多,过拟合的概率越小,数据增强等进行增加训练数据调低模型复杂度:减少层数、减少树深等机器学习中,增加正则约束,深度学习中,增加 Dropout 层减少训练轮次,earlystop,更加细致的数据清理(脏数据、空值数据等)...原创 2021-06-18 19:20:30 · 2496 阅读 · 0 评论 -
uplift 模型开源包(causalml)尝试
参考:https://github.com/uber/causalml依赖:https://github.com/uber/causalml/blob/master/requirements.txt安装:sudo pip install causalml报错:ImportError: cannot import name ‘factorial’问题解决:sudo pip install statsmodels --upgrade...原创 2021-06-16 17:43:02 · 1571 阅读 · 2 评论 -
python 批量读取 csv
import ospath_list = []for diff_day in range(60): today = datetime.datetime.strftime((datetime.date(2021, 5, 15) - datetime.timedelta(diff_day)), "%Y%m%d") each_path = "./data/xx_data_{}.csv".format(today) if os.path.exists(each_path):原创 2021-05-26 17:40:21 · 646 阅读 · 0 评论 -
搭建 rasa 框架流程
先初始化一个空工程,添加 compents、pre_models 路径在 config.yml 中增加 pipeline:定义 tokenizer 和 featurizer 和 classifier 等language: enpipeline: - name: WhitespaceTokenizer intent_tokenization_flag: True - name: LanguageModelFeaturizer - name: RegexFeaturizer .原创 2021-05-13 15:12:10 · 1034 阅读 · 0 评论 -
rasa windows 安装问题解决
pip install rasa --extra-index-url https://pypi.rasa.com/simple(https://rasachatbot.com/1_Installation/)遇到问题:AssertionError: cryptography<4.0.0,>=3.3.1; extra == “crypto” .dist-info directory not found安装对应版本的 cryptography,但是:C:\Program Files (x86).原创 2021-05-11 17:55:52 · 496 阅读 · 0 评论 -
pytorch 构建神经网络流程
import torchimport torch.nn as nndtype = torch.floatdevice = torch.device("cpu")# init 定义网络层,forward 定义如何前向传播(x * layer * activate) return loss 或者 return y_predclass TwoLayerNet(nn.Module): def __init__(self, D_in, H, D_out): super(TwoL原创 2021-02-03 15:40:00 · 498 阅读 · 0 评论 -
推荐系统中的 MAP 评估指标
1. 参考链接https://www.zhihu.com/question/22464082https://zhuanlan.zhihu.com/p/38875570https://blog.csdn.net/u014203453/article/details/77598997https://blog.csdn.net/simple_the_best/article/details/522966082. 先来说下 AP (Average Precision)AP 即为平均准确率,针对的是一个用原创 2021-01-11 22:50:56 · 3218 阅读 · 0 评论 -
bert 应知应会
1. BERT 的基本原理是什么BERT的全称是Bidirectional Encoder Representation from Transformers,即双向 Transformer 的 Encoder,整体是一个自编码语言模型,模型的主要创新点都在 pre-train方法上,即用了Masked LM和Next Sentence Prediction两种方法分别捕捉词语和句子级别的representation。第一个任务是采用 MaskLM 的方式来训练语言模型,通俗地说就是在输入一句话的时候,原创 2021-01-10 18:55:08 · 1662 阅读 · 0 评论 -
特征转换
# 需要fillna 的 数字特征def set_df_na(int_features, df_result): for i in int_features: df_result[i] = df_result[i].fillna(-1).astype(float) return df_result# 需要去除None 和 Nan 以及 空字符串的枚举特征def set_df_na_cate(str_features, df_result): for i in原创 2021-01-05 15:46:24 · 182 阅读 · 0 评论 -
Real-time Personalization using Embeddings for Search Ranking at Airbnb 论文解读
一. 参考链接https://www.infoq.cn/article/vfelq1ob6tcwpuzycfz3https://www.zhihu.com/question/302288216https://zhuanlan.zhihu.com/p/49537461https://zhuanlan.zhihu.com/p/56128664https://www.zhihu.com/question/302288216/answer/532712103二. 细节补充1. 关于 list emb原创 2020-12-30 17:26:15 · 238 阅读 · 0 评论 -
修改 python pip 安装包的目录
一、参考链接https://blog.csdn.net/da_kao_la/article/details/104355765https://blog.csdn.net/u012005313/article/details/47657277https://blog.csdn.net/kangkanglou/article/details/78955298https://blog.csdn.net/leviopku/article/details/107215401https://blog.csdn原创 2020-12-25 16:28:54 · 1496 阅读 · 2 评论 -
ctr 预估中的 position bias
如果使用了历史ctr作为特征,而替换成使用coec作为特征。另外常见的作法是,在训练时,将position作为参数直接入模型参与训练,来解释y值中由位置引入的贡献。但是,在预测时,我们肯定不知道position是多少,因此都赋成0,(假设所有物料都放在第一位),再打分,然后再根据打分排序。...原创 2020-12-18 19:23:25 · 625 阅读 · 1 评论 -
推荐系统中的选择偏差及处理
定义选择偏差(Selection bias)是指在对个人、群体或数据进行选择分析时引入的偏差,这种选择方式没有达到适当的随机化,从而确保所获得的样本不能代表拟分析的总体。它有时被称为选择效应。https://zhuanlan.zhihu.com/p/26143968https://www.zhihu.com/question/29769549https://zhuanlan.zhihu.com/p/102974409自选择偏差自选择偏差是指解释变量不是随机的,而是个体选择的结果,而这个选择的原创 2020-11-30 17:04:23 · 6097 阅读 · 1 评论 -
wide & deep 特征区别
谷歌论文链接https://arxiv.org/pdf/1606.07792.pdfwide 特征wide 主要用作学习样本中特征的共现性,产生的结果是和用户有过直接行为的 item,通过少量的交叉特征转换来补充 deep 的弱点wide侧的输入可以包含了一些交叉特征、离散特征及部分连续特征其中基φk(x)是0/1布尔变量。它捕获了二元特征之间的相互作用,并给广义线性模型增加了非线性。(e.g.,“AND(gender=female,language=en)”) is 1 if and o原创 2020-11-23 17:01:13 · 1925 阅读 · 0 评论