• 后端程序员之路 9、一个推荐系统的打分过程


    1、blocking_queue_t
    一个队列的封装,用于feature_logger_t和predict_manager_t

    2、feature_logger_t
    用于异步将用户特征、内容特征、以及内容得分写到日志

    3、content_feature_redis_cluster_t
    用于维护一个redis_cluster的单例

    4、predictor_t
    由predictor_manager_t维护,根据配置文件加载一系列predictor_t
    p_model对应到一个GbdtModel
    p_db对应到一个kv数据库

    5、predict_manager_t
    doc_result_t,文章评分结果,含score、gbdt_score、gbdt_features
    task_tracker_t,用于跟踪一次打分任务是否已完成
    predict_doc_t,要打分的文章,含p_features、p_predictor
    predict_task_t,一个打分任务,含tracker、p_predictor、p_user_features、docs,在任务完成时,通过tracker通知等待者
    predict_manager_t,根据配置文件开启一堆线程来完成打分任务

    6、predict_manager_t::_predict_worker_func 打分过程
        1. feature-extract
            1.1 feature data
            1.2 gen static , fill cfb key dictionary
            1.3 store
        2. batch get cfb
        3. add cfb features which in dictionary
        4. gbdt model predict

    7、_model_predict
        1. score the doc
        2. age decay

    8、scoring_t 基于Thrift对外提供打分服务
        1. get content profiles
        2. copy predictor for per request param override
        3. parse user features and generate user gbdt features
        4. init task tacker & lock 
        5. init task
        6. add to working queue 
        7. unlock、wait & get result 
        8. acquire lock again to make sure all predict thread finished before tracker deletion

  • 相关阅读:
    Linux系统管理上机作业2
    Linux系统管理上机作业1
    作业
    作业
    作业2
    作业
    作业
    第三章
    第二章
    第一章:计算机网络参考模型
  • 原文地址:https://www.cnblogs.com/zapline/p/6523920.html
Copyright © 2020-2023  润新知