해결된 질문
작성
·
164
1
안녕하세요.
먼저 강의 잘 보고 있습니다!
강의를 보면서 의문이 드는게 있습니다.
현업에서는 데이터들이 많고 반응 속도가 중요할 것이라고 생각됩니다!
1. 많은 데이터들을 모두 메모리에 올리고 하나요?
아니면 db에 어떤 형식으로 저장을 하나요??
db에 저장한다해도 결국 cosine_similarity를 하려면 모든 정보를 다 메모리로 불러와야 되는건가요...?
이러면 다시 처음 질문으로 돌아가서 너무 궁금합니다ㅠㅠ
2. 지금 알려주시는 방법들이 실무에서 사용이 되나요?
예를 들어 쇼핑몰 제일 처음 들어갔을 때 맞춤 상품들을 보여준다고 하면, 사용자들이 로딩을 보는 시간이 몇초 될 것 같은데
제 예상과는 달리 지금 알려주시는 방법들이 빠른가요??
아니면 다른 방법들을 사용하시는 걸까요??
3. 지금 설명해주시는 방법들이 다 시간과는 연관이 없어보입니다!
(강의 소개에서 연속값을 사용하는 개인화 추천 기술을 다룬다고 하셔서 제가 잘못 이해해서 시간도 고려한 데이터들을 사용하는 줄 알았습니다 ㅠㅠ)
제가 연속된 값들 즉
영화 A -> B -> C -> D를 본사람이 존재(p사람)
영화 A -> C -> B -> E를 본사람이 존재(q사람)
일떄 어떤 사람이
A -> B - > G 를 봤다면 다음에 볼 영화를 추천해준다 할 떄
p랑 시간 순으로 비슷하니 p가 본 C 또는 D를 추천해준다와
같이 시간도 예측 범위 안에 포함하고 싶다면 어떻게 해야하나요??
지금 보여주시는 데이터들은
column들이 영화 이름으로 되어있어서 시간 정보가 삭제되는 것 같은데 해당 내용도 궁금합니다!!
좋은 강의 감사합니다!
답변 1
3
안녕하세요.
거친코딩입니다.
먼저 개인 사정으로 인해 답변을 늦게드린 점 진심으로 사과드립니다.
질문주신 부분에 답변드리면 다음과 같습니다.
1.Q) 많은 데이터들을 모두 메모리에 올리고 하나요?
1.A) 일단 강의 맨 뒷부분을 보시면 해당 내용이 나오긴 하지만, 간단히 설명드리면, CF 모델의 경우 많은 메모리 소비가 들기 때문에 말씀하신대로 인메모리로 실제 비즈니스 서비스를 하기는 매우 어렵습니다. 그래서 보통 CF 모델을 사용하시는 경우에는 로컬 컴퓨터가 아닌 클라우드 환경에서 분산처리(spark와 같은)를 통해 사용하게 됩니다. 아니면 실제 트래픽이 적은 시간에 미리 돌려 놓고, 결과 값을 미리 데이터베이스에 저장해놓는 방식도 있습니다. 하지만 이러한 방법들은 인프라 유지비용이 많이 들 수 있기 때문에 딥러닝과 같은 모델 방법론을 통해서 미리 학습된 모델을 필요할 때마다 input을 집어넣어 실시간성으로 활용하곤 합니다. 그래서 각자 현업 환경에 맞게 사용하는 것이 일반적입니다.
2.Q) 지금 알려주시는 방법들이 실무에서 사용이 되나요?
2.A) 물론입니다. 실제 비즈니스 사용에 실시간으로 사용가능하냐는 질문에는 1번의 답처럼 미리 추천결과물을 저장해놓거나 분산처리를 하거나, 혹은 딥러닝 모델을 통해서 실시간 서비스를 사용할 수 있습니다.
3.Q) 시간을 변수로 활용할 수 있나요?(이렇게 이해했는데, 다르다면 말씀부탁드립니다.)
3.A) CF 모델이나, MF 모델의 경우 새로운 변수(user_id, item_id 이외의)를 추가해서 추천 알고리즘을 만드는 것은 꽤나 복잡합니다. 그래서 변수 추가의 다양성을 위해서는 딥러닝 모델을 사용하시면 될 것 같습니다. 변수 추가를 통한 딥러닝 강의가 커리큘럼에 있으니 참고해주시면 감사하겠습니다. 마지막으로 시간은 시계열 데이터이고, 학습자님이 질문하신 것처럼 정답은 없고 만드는 사람의 목적에 따라 변수 엔지니어링이 필요해 보입니다. 시간의 우선을 고려한 변수 엔지니어링 후에 딥러닝 모델의 변수에 넣으시면 될 것 같습니다.
감사합니다.
-거친코딩 드림-