zoukankan      html  css  js  c++  java
  • 后端程序员之路 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

  • 相关阅读:
    梅小雨20191010-2 每周例行报告
    梅小雨20190919-1 每周例行报告
    梅小雨20190919-4 单元测试,结对
    王可非 20191128-1 总结
    20191121-1 每周例行报告
    20191114-1 每周例行报告
    对“都是为了生活”小组成员帮助的感谢
    20191107-1 每周例行报告
    20191031-1 每周例行报告
    20191024-1 每周例行报告
  • 原文地址:https://www.cnblogs.com/zapline/p/6523920.html
Copyright © 2011-2022 走看看