其他分享
首页 > 其他分享> > 泛娱乐推荐系统

泛娱乐推荐系统

作者:互联网

日萌社

人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新)


1.1 产品概述

学习目标

1.1.1 产品概述

一款专为粉丝打造的粉丝追星服务平台,让粉丝轻轻松松即时了解爱豆微博、Instagram、Facebook、Twitter等社交动态信息,守护自家idol(爱豆)的社交类产品

包含了明星动态,明星行程,饭圈动态等,为用户推荐他们喜爱的帖子(帖子是一种以图文/视频形式展现的信息载体,发表自己对明星的看法或表达对某个明星的喜爱), 以引发其他粉丝的共鸣。

1、当前用户详情: 全球累计下载用户2000万+, 年龄主要集中在16~39岁之间。 2、当前DAU(日活跃用户): 60万+ 3、当前用户日平均使用时长: 13min 4、商业化手段: 广告

首页推荐界面


1.2 推荐系统架构介绍

学习目标

1.2.1 泛娱乐推荐系统前后端结构

1.2.1.1 主要目标以及方案

通过向用户推荐更合适的帖子, 增加用户交互行为(点赞,评论,转发,收藏等), 进而增加用户平均使用时长。(在数据分析侧,相关实验表明: 用户交互行为与该用户的APP使用时长成正相关.)推荐系统应满足的用户体验要求: 多样性,新颖性和数据合理性。

1.2.2 推荐系统架构设计

1.2.3 召回模块概述

召回模块组成图

1.2.4 排序模块概述

排序模块组成图


1.3 开发环境介绍

学习目标

1.3.1 整体环境介绍

1.3.2 搭建步骤

yum install supervisor
yum install nginx
yum install redis

还有Centos 安装neo4j图数据库安装与使用。请参见:http://yum.neo4j.org/stable/, yum install neo4j-3.3.5

conda create -n recreation python=3.6
source activate recreation

# 安装的包, 在requirements.txt文件中,pip install -r requirements.txt
Django>=1.11.7
djangorestframework>=3.7.3
django-filter>=1.1.0
flower>=0.9.2
requests>=2.18.4
django-cors-headers
uwsgi
neo4j-driver==1.7.2
numpy
redis

1.3.3 启动配置文件介绍

因为我们这里需要将web服务以及数据库redis服务启动,才能后续对接推荐系统接口。

这里介绍的是配置nginx+django,以及redis启动服务。使用supervisor进行管理的三个服务。整体需要启动的服务

django后台服务

uwsgi配置文件uwsgi.ini:

#uWSGI configuration
[uwsgi]
#chdir=
http=0.0.0.0:5000
module=server.wsgi
master=True
vacuum=True
max-requests=5000
# can also be a file
socket=0.0.0.0:3001
processes=2
#wsgi-file=server/wsgi.py
pcre=True
#pidfile=/tmp/project-master.pid
#daemonize=/var/log/uwsgi/yourproject.log

配置分析: 设置监听http协议的5000端口来替代django自带runserver测试级服务,Django配置:配置文件setting.py在server目录下

#user  nobody;
worker_processes  4;

error_log   /home/zhoumingzhen/log/nginx/error.log;
pid         /home/zhoumingzhen/log/nginx/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
    upstream test {
        server 0.0.0.0:5000;
        #server 0.0.0.0:8718 weight=1;
        #server 0.0.0.0:8000 weight=1;
     }

    server {
        listen       8087;
        server_name  0.0.0.0;

        #charset koi8-r;

        #access_log  log/host.access.log  main;

        location /static/ {
            alias /home/zhoumingzhen/static/;
        }

        location / {
            proxy_pass     http://test;
            #uwsgi_pass      127.0.0.1:3001;
            include      /home/zhoumingzhen/conf/nginx/uwsgi_params;

            proxy_set_header X-Real-IP $remote_addr;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
                    root   html;
        }

    include servers/*;
}

supervisor启动配置

supervisor配置文件supervisor.conf,执行命令

supervisord -c /root/recreation_project/supervisord.conf

1、开启http9001端口作为可视化监控界面的访问端口 2、监控uwsgi, nginx, redis等组件, 并指定日志打印位置和容量限制

[unix_http_server]
file=/tmp/supervisor.sock   ; the path to the socket file

[inet_http_server]          ; inet (TCP) server disabled by default
port=0.0.0.0:9001           ; ip_address:port specifier, *:port for all iface


[supervisord]
logfile=/root/recreation_project/log/supervisord.log ; main log file; default $CWD/supervisord.log
logfile_maxbytes=50MB        ; max main logfile bytes b4 rotation; default 50MB
logfile_backups=10           ; # of main logfile backups; 0 means none, default 10
loglevel=info                ; log level; default info; others: debug,warn,trace
pidfile=/root/recreation_project/log/supervisord.pid ; supervisord pidfile; default supervisord.pid
nodaemon=false               ; start in foreground if true; default false
minfds=1024                  ; min. avail startup file descriptors; default 1024
minprocs=200                 ; min. avail process descriptors;default 200

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface


[supervisorctl]
serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL  for a unix socket
serverurl=http://0.0.0.0:9001 ; use an http:// url to specify an inet socket

[program:main_server]
command=uwsgi --ini /root/recreation_project/conf/uwsgi.ini --close-on-exec
stopsignal=QUIT               ; signal used to kill process (default TERM)
stopasgroup=false             ; send stop signal to the UNIX process group (default false)
killasgroup=false             ; SIGKILL the UNIX process group (def false)
stdout_logfile=/root/recreation_project/log/main_server_out.log       ; stdout log path, NONE for none; default AUTO
stdout_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB)
stderr_logfile=/root/recreation_project/log/main_server_err.log        ; stderr log path, NONE for none; default AUTO
stderr_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB)

[include]
files = /root/recreation_project/supervisord.conf.d/*.ini

nginx的启动配置

/root/recreation_project/supervisord.conf.d/start_nginx.ini

[program:nginx]
command=/usr/sbin/nginx -c /root/recreation_project/conf/nginx/nginx.conf -g "daemon off;"
stdout_logfile=/root/recreation_project/log/nginx_out.log
stderr_logfile=/root/recreation_project/log/nginx_err.log
stdout_logfile_maxbytes=1MB
stderr_logfile_maxbytes=1MB

redis数据库服务

/root/recreation_project/supervisord.conf.d/start_redis.ini

[program:redis]
command=redis-server /root/recreation_project/conf/redis.conf
stdout_logfile=/root/recreation_project/log/redis_out.log
stderr_logfile=/root/recreation_project/log/redis_err.log
stdout_logfile_maxbytes=1MB
stderr_logfile_maxbytes=1MB

1.3.4 小结

标签:娱乐,recreation,log,0.0,推荐,系统,nginx,logfile,root
来源: https://blog.csdn.net/zimiao552147572/article/details/106976118