ivoryRabbit / S3-Rec

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

S3Rec

Requirement

$> pip install -r requirements.txt

How to Run

1. Pretraining

$> python pretrains.py run \
        --user_item_fname=data\Beauty.txt \
        --item_attr_fname=data\Beauty_item2attributes.json \
        --verbose=1

2. Finetuning

$> python main.py run \
        --user_item_fname=data\Beauty.txt \
        --use_pretrained=True \
        --verbose=1

3. Evaluation

$> python evals.py run \
        --user_item_fname=data\Beauty.txt \
        --use_pretrained=True

(extra) Without Finetuning

$> python main.py run \
        --user_item_fname=data\Beauty.txt \
        --use_pretrained=False \
        --verbose=1
$> python evals.py run \
        --user_item_fname=data\Beauty.txt \
        --use_pretrained=False

Results

metrics paper score my score
HR@1 0.2192 0.1320
HR@5 0.4502 0.3222
HR@10 0.5506 0.4297
NDCG@5 0.3407 0.2301
NDCG@10 0.3732 0.2648
MRR 0.3340 0.2329

고찰

  1. 현재 구현 결과는 논문의 결과보다 훨씬 좋지 않음

    • 논문 수식에 오류가 있어 논문 공식 구현을 참조해야 함
    • Loss를 구현하거나 negative sampling 하는 과정에서 차이가 있음
  2. 논문에 기록된 것보다 훨씬 적은 실제 Beauty 데이터의 Attribute 개수

    • 논문 1,221개 vs 실제 데이터 637개
    • 이를 해결하고자 Amazon Beauty 데이터를 다운로드 받았으나, attribute에 해당하는 "category" 파트가 없었음
  3. TODO

    • 논문의 pytorch 구현 참고하여 재현성을 높일 것
    • fire 걷어내고 argparser 사용
    • 디자인 패턴 고려해서 코드 리팩토링 필요
    • tensorflow 공부, 속도 측면에서 perfomance 올리기

About


Languages

Language:Python 100.0%