View on GitHub

デプロイ後のモデル更新

Home

デプロイ後のモデル更新

評価履歴の蓄積

ブラウザで下記 URL にアクセスして、何件か映画に対して評価値を与えてください。

バックエンドサーバ側

データの出力

rsl@*:offline$
 psql recsys_full -U postgres -c "\copy (SELECT user_id, email_encrypted, email_hash FROM t_users ORDER BY user_id ASC) to 'data/users.csv' with delimiter E'\t' csv header encoding 'UTF8'"
 psql recsys_full -U postgres -c "\copy (SELECT movie_id, title, year, imdb_id, tmdb_id FROM m_movies ORDER BY movie_id ASC) to 'data/movies.csv' with delimiter E'\t' csv header encoding 'UTF8'"
 psql recsys_full -U postgres -c "\copy (SELECT genre_id, genre_name FROM m_genres ORDER BY genre_id ASC) to 'data/genres.csv' with delimiter E'\t' csv header encoding 'UTF8'"
 psql recsys_full -U postgres -c "\copy (SELECT id, movie_id, genre_id FROM m_movies_genres ORDER BY id ASC) to 'data/movies_genres.csv' with delimiter E'\t' csv header encoding 'UTF8'"
 psql recsys_full -U postgres -c "\copy (SELECT id, user_id, movie_id, rating, rated_at FROM t_users_movies_rating ORDER BY id ASC) to 'data/ratings.csv' with delimiter E'\t' csv header encoding 'UTF8'"

データの確認

rsl@*:offline$ ls -l data/
rsl@*:offline$
 less data/users.csv
 less data/movies.csv
 less data/genres.csv
 less data/movies_genres.csv
 less data/ratings.csv
 less data/tags.csv

リポジトリのプッシュ

rsl@*:$
 cd ~/dev/recsys-full/
 git add src/offline/data/
 git commit -m "update data"
 git push
 git status

クライアント側

データのバックアップ

offline$
 mkdir -p bkup/YYYYMMDD/
 cp -r data/ bkup/YYYYMMDD/data/
 ls bkup/YYYYMMDD/data/

リポジトリのプル

$
 cd ~/dev/recsys-full/
 git pull
 git status

データの確認

offline$ ls -l data/
offline$
 less data/users.csv
 less data/movies.csv
 less data/genres.csv
 less data/movies_genres.csv
 less data/ratings.csv
 less data/tags.csv

推薦システムの実行

(recsys_full) offline$ python src/update.py --ini src/offline.ini
# ...(30分程度)...

結果の確認

offline$ ls -l data/
offline$
 less data/reclist_popularity.csv
 less data/reclist_movie_similarity.csv
 less data/reclist_bpr.csv

リポジトリのプッシュ

$
 cd ~/dev/recsys-full/
 git add *
 git commit -m "update model"
 git push
 git status

バックエンドサーバ側

リポジトリのプル

rsl@*:$
 cd ~/dev/recsys-full/
 git pull
 git status

データの削除

recsys_full=#
 TRUNCATE r_reclist_popularity;
 TRUNCATE r_reclist_movie_similarity;
 TRUNCATE r_reclist_bpr;

データの登録

rsl@*:offline$
 psql recsys_full -U postgres -c "\copy r_reclist_popularity (id, target_genre_id, rank, movie_id, score) from 'data/reclist_popularity.csv' with delimiter E'\t' csv header encoding 'UTF8'"
 psql recsys_full -U postgres -c "\copy r_reclist_movie_similarity (id, base_movie_id, rank, movie_id, score) from 'data/reclist_movie_similarity.csv' with delimiter E'\t' csv header encoding 'UTF8'"
 psql recsys_full -U postgres -c "\copy r_reclist_bpr (id, user_id, movie_id, score, rank) from 'data/reclist_bpr.csv' with delimiter E'\t' csv header encoding 'UTF8'"

Nginx の再読込と Gunicorn の再起動

(recsys_full) rsl@*:backend$
 sudo systemctl reload nginx
 pkill gunicorn
 gunicorn --bind 127.0.0.1:8000 config.wsgi:application -D
 ps ax | grep gunicorn

ログの確認

rsl@*:backend$ less logs/django.log

実行確認

下記 URL にアクセスしてください。

各推薦リストが表示されることを確認してください。特に、サインイン後は「あなたにおすすめの映画」が表示されるようになっています。