Web4Rec μ΄μ©νκΈ° (Demo Page)
μΆμ²μμ€ν μμλ μ λ΅ λΌλ²¨μ λ§μΆλλ‘ νμ΅ν μΆμ² λͺ¨λΈμ κ³ κ°μκ² μΈκΈ°μλ(ꡬ맀 μ΄λ ₯μ΄ λ§μ) μμ΄ν λ§μ μΆμ²νλ€λ νκ³κ° μμ΅λλ€.
μΆμ² AI μμ§λμ΄λΌλ©΄ κ³ κ°μκ² λ»λ°μ μ¬λ―Έλ₯Ό μ£Όκ±°λ μ°Έμ νκ³ λ€μν μΆμ²μ νλ λ°©λ²μ κ³ λ €ν΄μΌ ν©λλ€.
Web4recμ μΆμ²μ μ§μ ν₯μμν¬ μ μλλ‘ λͺ¨λΈ νκ° λ° λΆμμ λλ μ€ν κ΄λ¦¬ νμ΄μ§ μλΉμ€μ λλ€.
μ¬μ©μλ μμ μ μ€ν κ²°κ³Όλ₯Ό Web4Rec λΌμ΄λΈλ¬λ¦¬λ₯Ό ν΅ν΄ μΉνμ΄μ§μ μ λ‘λ ν μ μκ³ , μΉνμ΄μ§μμ λ μ’μ μΆμ² κ²°κ³Όλ₯Ό μ°ΎμλΌ μ μλλ‘ λ€κ°μ λΆμμ μ 곡 ν©λλ€.
μ΄ νλ‘μ νΈλ μ€μ μλΉμ€ νκ²½μμ λμ± λ€μνκ³ μ§ μ’μ μΆμ² μλΉμ€λ₯Ό μ 곡νκΈ° μν΄ μΆμ² μμ§μ κ°μ νκ³ μΆμ λ¨Έμ λ¬λ / λ₯λ¬λ μμ§λμ΄λ€ μ¬μ©ν μ μλλ‘ λ§λ€μ΄μ‘μ΅λλ€.
git clone https://github.com/boostcampaitech4lv23recsys2/final-project-level2-recsys-11.git**.com/boostcampaitech4lv23recsys2/final-project-level2-recsys-11.git**
from web4rec import Web4Rec, Web4RecDataset
Web4Rec.login(token='...') # νμκ°μ
μ μ 곡λλ API ν€
- Web4Rec λΌμ΄λΈλ¬λ¦¬λ νμ΄μ¬ μ€ν¬λ¦½νΈ μμμ API ν€λ‘ λ‘κ·ΈμΈμ΄ κ°λ₯ν©λλ€.
w4r_dataset = Web4RecDataset(dataset_name='ml-1m')
# pd.DataFrame ννμ input
w4r_dataset.add_train_interaction(train_interaction)
w4r_dataset.add_ground_truth(ground_truth)
w4r_dataset.add_user_side(user_side)
w4r_dataset.add_item_side(item_side)
Web4Rec.register_dataset(w4r_dataset)
- Web4RecDataset μ Web4Rec μ체 λ°μ΄ν°μ κ΄λ¦¬ ν΄λμ€ μ λλ€.
- λ€μκ³Ό κ°μ ννλ‘ pandas Dataframe μ μ€λΉνμ¬ add λ©€λ²ν¨μλ₯Ό νΈμΆν©λλ€.
# νμ΅ μ§ν ν prediction score matrix ꡬμ±
prediction_matrix = pd.DataFrame(
data = user_item_prediction_score_matrix,
index = user_ids,
columns = item_ids
)
Web4Rec.upload_experiment(
experiment_name='BPR-MF',
hyper_parameters={
'negative_sampler' = 'popularity',
'embedding_size' = 16
},
prediction_matrix = prediction_matrix
)
μ λ μ§νλ Recall@K, NDCG@K, MAP@K λ± μμΈ‘ν μμ΄ν κ³Ό μ€μ μ λ΅μΌλ‘ κ³μ°λ μ§νλ‘, μ½κ² λ§ν΄ μΆμ² λͺ¨λΈμ΄ μΌλ§λ μ λ§νλμ§ μ νλλ₯Ό μλ―Ένλ μ§νμ λλ€.
μ μ± μ§νλ Diversity, Serendipity, Noveltyμ κ°μ μ§νλ‘, μμΈ‘ν μμ΄ν νΉμ μΆμ²λ μμ΄ν 리μ€νΈκ° μΌλ§λ μ°Έμ νκ³ λ€μν, μλ‘μ΄ μμ΄ν μ κ°κ³ μλμ§ μλ―Ένλ μ§νμ λλ€.
- μΉνμ΄μ§μμλ μ€νλ€μ κ°κ°μ νμ΄νΌνλΌλ―Έν°, μ λ / μ μ± μ§ν κ°λ€κ³Ό ν¨κ» νλμ ν μ΄λΈ (Compare Table)κ³Ό λ€μν κ·Έλνλ‘ λΉκ΅ν μ μμ΅λλ€ (Model vs. Model).
- κ° ν
μ΄λΈκ³Ό κ·Έλνλ λͺ¨λ interactiveνκ² μ΄ν΄λ³Ό μ μμ΅λλ€. (*Plotly, AgGrid*)
- μ¬μ©μκ° μμ μκ² λ§κ² μΈλΆμ μΈ μκ°νκ° κ°λ₯ν©λλ€.
- μΆμ² λͺ¨λΈμ Top K ν보ꡰμ μ μ± μ§νλ₯Ό νμ©ν΄ κΈ°μ‘΄ rankingμ λ³νλ₯Ό μ£Όλ κΈ°λ²μ λλ€.
- μ¬μ©μλ 리λνΉ κΈ°λ²μ ν΅ν΄ μΆμ² λͺ¨λΈμ μ νλμ μ μ± μ§νμ νΈλ μ΄λ μ€νλ₯Ό κ³ λ €ν μΆμ²μ μ 곡ν μ μμ΅λλ€.
- μ΄λ μΆμ²μ μ§μ λμμΌλ‘μ¨ μ νλλ§μ μ΅μ ννλ λͺ¨λΈμ νκ³λ₯Ό 보μν μ μμ΅λλ€.
- λͺ¨λΈμ μΆμ² κ²°κ³Όλ₯Ό μ§κ΄μ μΌλ‘ ν΄μν μ μλ λ€μν μκ°νλ₯Ό μ 곡ν©λλ€.
- μ¬μ΄λ μ 보 νΉμ 2μ°¨μμΌλ‘ μΆμλ μλ² λ© κ·Έλνλ₯Ό ν΅ν΄ μνλ μ μ / μμ΄ν κ΅°μ§μ μ ννμ¬ λΆμμ μ§νν μ μμ΅λλ€.
- μ νλ μ μ / μμ΄ν
κ΅°μ§μ λν λ€μν μκ°νλ₯Ό ν΅ν΄ μΆμ² μ΄μ μ κ΄λ ¨λ μ§κ΄μ μΈ λΆμμ΄ κ°λ₯ν©λλ€.
- E.g. ν μμ΄ν μ λν΄ μνΈμμ© μ΄λ ₯μ΄ μλ μ μ μ ν΄λΉ μμ΄ν μ μΆμ²λ°μ μ μ κ°μ μ¬μ΄λ μ 보 μκ°ν
- μνλ μ μ κ΅°μ§μ μ νν ν 컀μ€ν°λ§μ΄μ§ν 리λνΉμ μ§νν μ μμ΅λλ€.
- κΈ°μ‘΄ μΆμ²λ¦¬μ€νΈμ 리λνΉμ ν΅ν΄ λμ¨ μΆμ²λ¦¬μ€νΈ κ° λΉκ΅λ₯Ό ν΅ν΄ ν¨κ³Όμ μΈ λ¦¬λνΉ μ λ΅μ ꡬμν μ μμ΅λλ€.
κ°μν | κΉλ건 | λ°±μΉλ ¬ | μμ±ν | μ μμ€ |
- μλΈ PM - νλ‘ νΈμλ 리λ - λ°±μλ |
- 리μμ² - ν΅μ¬ μ§ν μ μ λ° κ΅¬ν - λ°μ΄ν° μ¬ν λΆμ - νλ‘ νΈμλ |
- λ°±μλ 리λ - λ°μ΄ν°λ² μ΄μ€ - νλ‘ νΈμλ |
- PM - λΌμ΄λΈλ¬λ¦¬ ꡬν - λͺ©μ λͺ¨λΈλ§ - λ°μ΄ν°λ² μ΄μ€ |
- 리μμ² - ν΅μ¬ μ§ν μ μ λ° κ΅¬ν - λ°μ΄ν° μκ°ν - νλ‘ νΈμλ |