며칠간 오류로 인해 metrics이 잘나온거를 이제서야 문제점을 파악했다.
과거 데이터에 너무 치중되어있어 이걸 제외하면 잘나올 것이라는 나름의 논리적인 이유가 있었기 때문에 이를 신뢰하고 며칠간 실험을 진행했다.
하지만 레퍼런스 깃허브 코드에선 잘 작동하던게 우리 코드로 실험해보면 성능이 제대로 나오지 않았다.
원인을 찾기위해 code 한줄한줄 다 살펴봤을때 다른점이 딱 하나가 있었는데 아래의 코드가 우리 코드에선 실행이 되었고, 레퍼런스에서는 sort가 되지 않았던것이다.
ratings = ratings.sort_values(["user_id", "timestamp"])
그래서 오히려 timestamp로 sort가 되지 않고, user_id와 item_id로 sort되어 테스트셋이 숫자가 큰 아이템이 들어가고, 모델은 큰 숫자를 부르면 결과가 잘 나오는 이상현상이 발생했던 것이다.
실험 한번 할 때마다 실험관리 제대로 하고, 코드 관리를 제대로 해야한다는 교훈을 얻었다..