어제는 결국 프로젝트만 완성하고, 눈이 너무 아파서 잠이 들었다.
오늘의 노드와 프로젝트는 추천 시스템 만들기였다. 이름은 '아이유 팬에게 아티스트 추천하기'였던 것 같은데, 추천 시스템에 사용될 노래 목록은 팝송이었다. 오전 중에는 조원들과 채팅으로 이야기를 했다. 무슨 이야기를 나누었는지 자세히 기억은 안 나도 즐거웠다. 그렇지만 나는 1번에 여러 가지를 하는 사람이 아니기 때문에 노드의 진도가 잘 나가지 않았다.
슬랙을 통해 대전 행정쌤이 실업급여 받기 전까지 지원금을 신청해주시겠다며 연락이 왔다. 생각도 못 하고 있었는데, 챙겨주시니 정말 감사했다. 현재 상태가 재직자로 되어 있어서 고용보험상실확인서를 파일로 저장하여 드렸다. 아마도 15일 정도의 지원금이 나올 것 같다.
역시나 데이터 전처리 부분은 어려웠다. 그러나 그다음부터는 재미있는 부분이었다. 추천 시스템에 사용되는 행렬 분해나 CSR Matrix의 개념은 흥미로우면서도 재미있었다. 물론 행렬 분해하는 것은 분명히 어렵겠지만 행렬 분해를 통해 넷플릭스 추천 시스템을 만들어 상금을 탄 사람이 누구인지 궁금해지는 개념이었다.
찾아보니 Netflix Prize Competition가 열린 마지막 해인 2009년에 1등으로 상금을 받은 팀은 BellKor’s Pragmatic Chaos (BPC)라는 연합팀으로, 10억 원이라는 상금을 받았다고 한다. ([출처]http://www.shalomeir.com/2014/12/netflix-prize-3/)
노드를 하다 보니 금세 점심시간이 되었다. 오전에 이어서 오후에도 노드를 공부하였고, 프로젝트를 들어갔다. 프로젝트는 영화 추천 시스템을 만드는 것이었다. Movielens 데이터는 2000년까지밖에 없었고, 영화를 좋아하는 편이 아니라 그런지 아는 영화가 없어서 좋아하는 5개의 영화를 찾는 데 오래 걸렸다.
Movielens 데이터는 인덱싱이 되어 있어서 데이터 전처리를 안 해도 된다고 생각했지만 아니었다. 영화 목록이 숫자로 인덱싱되어 있었기 때문에 영화 제목이 담긴 메타 데이터와 합쳐주어야 했고, 내 아이디와 내가 좋아하는 영화 목록은 인덱싱되어 있지 않았기 때문에 인덱싱을 다시 해주어야 했다. 그 외에도 시행착오가 많았다. 영화 아이디를 처음에 포함했다가 에러가 나서 삭제해야 했고, CSR matrix 만들 때도 에러가 나서 코드를 수정해야 했다. 그러다 보니 오늘 하루의 수업은 끝이 났다.
아, 중간에 퍼실님이 오셔서 한 사이트를 알려주셨다. 아바타가 있는 공간이었는데, 그곳에서 조원들과 이야기를 나누라고 하셨다. 처음에는 낯설었지만 여기저기 돌아다니고 칠판에 낙서도 해보고 하면서 익숙해졌다. 아직은 잘 사용하지 않지만 언젠가는 유용할 것 같다. 퇴실할 시간에 출결방에 모였는데, 다른 조의 조원들은 그 사이트에서 게임을 하셨다고 한다. 게임이 어디 있지? 했는데, 1, 2, 4조 책상에 테트리스 같은 게임이 있었다.
저녁을 먹고 잠시 쉬다 보니 벌써 7시 반이 되었다. 2시간 동안 뭘 한 걸까? 한 게 없는데. 아무튼 오늘은 수학 강연이다. 어떤 내용일까 기대했는데, 정말 좋은 시간이었다. 가장 어려운 확률에 대한 강의였고, 확률을 통계와 SGD와 연관시키시는 것에 감명받았다. 게다가 연구소장님은 말도 흐름에 따라 정말 잘하시고, 강연에 나오는 질문도 다 연결되어 있어서 강연이 매끄러웠다. 시간이 부족해서 뒷부분은 급하게 설명하시고, 선형 대수는 들어가지도 못했지만 확률의 개념을 알 수 있었다는 점만으로도 무척 유익한 시간이었다. 선형 대수는 다음에 할 수도 있다고 하셨는데, 기회가 되면 꼭 들어보고 싶다.
강연을 마치고 나니 9시 40분쯤 되었다. 이것저것 하다 보니 금세 11시가 되었고, 그때부터 강연 정리를 하다 보니 시간이 벌써 새벽 2시가 넘었다. 일기를 쓰다 보니 새벽 3시도 넘었다. 프로젝트는 마무리하지 못하였는데, 하루가 지났다. 아, 프로젝트는 언제 하지?