Task03 多路召回

本文介绍了多路召回策略,它通过多种方法召回候选集,平衡速度与召回率。内容包括导包、数据读取的三种模式(Debug、线下验证、线上)以及用于关联规则的用户和文章协同过滤的工具函数。
摘要由CSDN通过智能技术生成

所谓的“多路召回”策略,就是指采用不同的策略、特征或简单模型,分别召回一部分候选集,然后把候选集混合在一起供后续排序模型使用,可以明显的看出,“多路召回策略”是在计算速度和召回率之间进行权衡的结果。其中,各种简单策略保证候选集的快速召回,从不同角度设计的策略保证召回率接近理想的状态,不至于损伤排序效果。

导包

import pandas as pd
import numpy as np
from tqdm import tqdm
from collections import defaultdict
import os, math, warnings,math,pickle
import faiss
import random
from sklearn.preprocessing import MinMaxScaler
from sklearn.preprocessing import LabelEncoder
from datetime import datetime
from deepctr.feature_column import SparseFeat,VarLenSparseFeat
from sklearn.preprocessing import LabelEncoder
from tensorflow.python.keras import backend as K
from tensorflow.python.keras.models import Model
from tensorflow.python.keras.preprocessing.sequence import pad_sequences

from deepmatch.model import *
from deepmatch.utils import sampledsoftmaxloss
warnings.filterwarnings('ignore')

# 做召回评估的一个标志,如果不进行评估就是直接用全量数据进行召回
metric_recall = False

读取数据

在一般推荐系统比赛中读取数据部分主要分为三种模式,不同的模式对应的不同的数据集:

  1. Debug模式:这个的目的帮助我们基于数据先搭建一个简易的baseline并跑通,保证写的baseline代码没有什么问题。由于推荐比赛的数据往往非常巨大,如果一上来就直接采用全部的数据进行分析,搭建baseline框架,往往会带来时间和设备上的损耗,所以这时候我们往往需要从海量数据的训练集中随机抽取一部分样本来进行调试(train_click_log_sample),先跑通一个baseline。
  2. 线下验证模式:这个目的是帮助我们在线下基于已有的训练集数据,来选择好合适的模型和一些超参数,所以我们这一块只需要加载整个训练集(train_click_log),然后把整个训练集再分成训练集和验证集,训练集是模型的训练数据,验证集部分帮助我们调整模型的参数和其他的一些超参数。
  3. 线上模式:我们用debug模式搭建起一个推荐系统比赛的baseline,用线下验证模式选择好了模型和一些超参数,这一部分就是真正的对于给定的测试集进行预测,提交到线上,所以这一块使用的训练数据集是全量的数据集(train_click_log+test_click_log)

下面就分别对这三种不同的数据读取模式先建立不同的代导入函数,方便后面针对不同的模式下导入数据。

# debug模式:从训练集中划出一部分数据来调试代码
def get_all_click_sample(data_path,sample_nums=10000
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值