AI

[AI] 레시피 추천 모델 만들기 3 - RecBole

alsruds 2024. 9. 10. 22:11
What is RecBole?

 

💁‍♀️ RecBole is developed based on Python and PyTorch for reproducing and developing recommendation algorithms in a unified, comprehensive and efficient framework for research purpose.

 


💁 기본 : RecBole GitHub

 

💁 업그레이드 버전 : RecBole2.0 GitHub

  L RecBole-GNN package 가 포함되어 있다

 

💁 내가 사용할 것!! : RecBole-GNN

  L 사용할 모델 : NGCF

 

💁 제공해주는 데이터셋 : RecSysDatasets

  L 데이터셋을 직접 만들어 넣어줄 수도 있다 근데..

내가 필요한 Food!! 이거 완전 럭키비키잖앙 ~ 🍀

    L DianPing

    L Food

    L Google Drive : the processed atomic files

 

 

🤖 GPT 한테 물어봤다 ^^

두 가지 데이터셋을 기반으로 사용자 정보를 활용한 레시피 추천 시스템을 구축하는 방법은 다음과 같습니다:

"Food" 데이터셋 사용: 이 데이터셋은 레시피 정보와 함께 사용자 리뷰도 포함하고 있으므로, 사용자와 레시피 간의 상호작용(user-item interaction)을 모델링하는 데 적합합니다. 이 데이터를 활용해 사용자가 어떤 레시피에 관심을 가졌는지, 어떤 평점을 남겼는지 등을 기반으로 추천 모델을 만들 수 있습니다.

유저 기반 추천: 사용자 리뷰를 활용하면 사용자의 취향을 반영한 레시피 추천이 가능합니다. RecBole-GNN은 사용자와 레시피 간의 상호작용을 그래프 형식으로 표현할 수 있어, 유사한 사용자나 유사한 레시피를 기반으로 추천 성능을 높일 수 있습니다.

데이터셋 통합: 만약 "DianPing" 데이터셋도 고려한다면, 유저 리뷰의 특성을 분석해 "Food" 데이터셋과 통합하는 방식으로 추가적인 인사이트를 얻을 수 있습니다. 예를 들어, "DianPing"의 리뷰 패턴이 유사한 사용자 그룹을 도출하는 데 도움이 될 수 있습니다.

RecBole-GNN 설정: RecBole-GNN 모델을 사용할 때, 사용자-레시피 상호작용을 그래프로 표현하고, 그 그래프에서 연결성을 학습하게 됩니다. 이를 위해 "Food" 데이터셋에서 사용자와 레시피의 관계(리뷰나 평점)를 추출한 후, 그래프 기반 모델에 학습시키면 됩니다.

결론적으로, "Food" 데이터셋을 주로 사용하여 사용자 리뷰와 레시피 정보를 바탕으로 추천 시스템을 구축하고, 필요시 "DianPing"을 보완 데이터로 사용할 수 있습니다.

    L Food 에 사용자 리뷰도 있었구나 이걸로 하면 되겠다! DianPing 은 추후에 고려하는 걸로..

 

아니 근데

Review
Recipe

    L 사용자를 특정 지을 정보 같은 게 없는데 (ex. 나이, 성별, 선호하는 카테고리)

 

- 일단 주어진 걸로 해보고 데이터셋에 점점 추가한다던가 하는 식으로 해야겠다

- 재료 입력 받기 → 재료를 포함하는 레시피

- 사용자 rating (0~5) 이 3 이상인 레시피만 가져오도록 하자

- 데이터베이스에 데이터를 추가할 수 있다면, 내가 가진 카테고리들 중 어떤 카테고리인지 자동으로 입력되도록 GPT API 를 사용하는 것도 좋다

- 한 번 레시피를 추천받으면, 해당 사용자의 기록이 추가되는 식으로도 할 수 있다.

 

- 아, 이미 특정한 파일 형식 (atomic files?) 로 가공되어 있어서 추가를 못할 수도 있으니 데이터 설명에 첨부된 Kaggle 데이터셋에서 직접 다운받아서 추가할 수도 있겠다.

 

- RecBole 을 다루는 자료들은 많이 나온다

https://mingchin.tistory.com/420

 

[추천시스템/RecSys] RecBole 라이브러리

https://github.com/RUCAIBox/RecBole GitHub - RUCAIBox/RecBole: A unified, comprehensive and efficient recommendation library A unified, comprehensive and efficient recommendation library - GitHub - RUCAIBox/RecBole: A unified, comprehensive and efficient r

mingchin.tistory.com

https://hoon-bari.github.io/RS/Recbole

 

Recbole

대다수 모델은 스스로 구현해보는게 가장 좋지만, 많은 종류의 모델 중에 어떤 것을 어떻게 구현해야할지 고민이 되는 경우가 있습니다. 그래서 다수의 모델을 쉽게 사용하기 위해 모아놓은 라

hoon-bari.github.io