-
1차 필터링으로 초기 추천, 이후 사용자별 위치 방문 내역을 기록하고 데이터 양이 많아지면 2차로 딥러닝을 이용
-
처음 시작 시 사용자 별 관심사를 주관적인 키워드로 입력 후, 체크한 관심사 키워드를 Google Place api로 받은 자료, 검색 엔진을 통해 받은 자료 내에서 검색. 리턴 값은 일반노출UI로 리턴 됨(정확히 리턴값이 주소값만 넘어가는건지)
- 관심사를 주관적인 키워드로 받는 UI가 필요한 듯 함.
- 체크박스를 통해서 체크한 관심사인지 입력한 관심사인지 헷갈립니다, 둘 다 가능하면 좋을 것 같긴한데 구현이 너무 많을 것 같아서 하나만 하는게 좋을 것 같아요 —> 첫개발은 후자이며, 둘다할 수 있으면 좋을 것 같은 방향으로 나아감
- 여러 개를 동시에 검색하는 건지, 하나 만을 검색하는 건지 —> 하나만을 검색한다면 구글로 검색을 해도 적절한 추천을 할 수 있을지 의문 —> 초기 개발 후 고려하여보기(범수씨)
- 검색보다는 체크방식으로 어떤 추천 선택지가 있는지 보여주는 것이 좋을 것 같습니다(AI가 아니라서 가산점이 불가능한 이슈 존재)
- 체크 방식의 선택지 같은 경우는 실시간으로 검색하는게 아니라 DB에 미리 준비된 공간관련 태그들을 체크박스 형식으로 보여주고 사용자가 체크하면 가장 유사도가 높은 공간을 추천하는게 어떨까 싶습니다 → 이렇게 하면 아마 저희가 서비스하고자 하는 바운더리 내의 공간들의 정보가 DB에 미리 있어야할 것 같습니다
- 1차 알고리즘, 체크박스방식 - 사용자 체크박스를 통해서 일종의 검색역할 input값 역할을 함. —> 이럴 경우 체크박스를 제시해야하는데 팀에서 직접 만들기에는 무리가 있다고 판단됨. —> 네이버에서 공간정보 태그들을 가져옴 —> 이 중 가장 흔한 태그들을 ex/20개 가량 선정하여 사용자에게 특정 UI로 제시 —> 사용자가 해당 UI에서 태그들을 input으로 받으면 기존의 방식과 동일하게 구글에 검색하여 리뷰를 토대로 추천하거나, 다른 공간의 태그들과 유사정도를 비교하여서 추천
-
예를 들어, 자신이 관심 있는 장소를 문장 또는 단답형 형태로 입력하면(예쁜 카페, 값이 싼 음식점 등) Place api를 통해 reivew들을 불러와 해당 리뷰에서 입력받은 키워드와 일치하는 곳을 찾아서 해당 장소를 추천해주는 방식
- (review는 어떤 형태인지 알 필요가 있음) —> review 형태에 따라 아래 문제들도 해결책이 제시될 수 있을 듯함
- 다만, 정보가 부족한 장소(리뷰가 없거나, 등록되지 않았거나, 키워드로 검색했는데도 아무 정보도 나오지 않을 때)에 대한 추천은 현재 위치 기준 가까운 장소 중 임의로 선정하여 사용자에 보여주는 것도?(빅데이터 문제 지적 이슈와 상충)
- 검색으로 진행 시 정보가 너무 많이 있는 경우도 저희 어플리케이션이 걸러서 추천하기가 어려울 것 같습니다(물리적인 추천 바운더리 내에서 가능할지) —> 1차 초기구현 후 고려사항
- 리뷰와 일치한다는 것을 판단할만한 것에는 어떤 것이 있는지 궁금합니다
-
또는, 현재 위치로부터 가까운 거리에 있는 장소들을 표시. 거리 계산은 길찾기 기능으로 찾은 경로의 거리가 짧은 곳을 보여주거나, 현재 위치 좌표 기준 다른 위치의 좌표와의 차이를 계산하여 짧은 곳을 표시. 해당 거리의 기준은 500m 정도?(AR map은 보통 걸어다니면서 사용하기 때문)
-
해당 1차 필터링으로 받은 검색 결과를 기반으로 1하여 사용자에게 위치 추천 후, 사용자의 장소 방문 여부 및 리뷰 데이터 등이 모이면 해당 데이터를 이용하여 딥러닝으로 학습시킨 후 2차적으로 추천.
- 방문 여부의 DB화, 정보 저장 방법이 궁금(휴대폰 ID - 주솟값 형태?) —> 무조건 저장할 것인지, 사용자가 방문시마다 기록을 남기는 방법인지 선택사항
- 일단 이게 제출전에 학습이 가능할지 궁금합니다, 아무래도 데이터가 없다 보니깐 궁금하네요. 그때 말씀해주신 동일 블로그 등에서 여러 공간을 탐방한 경우를 활용하는 것도 개인적으로 괜찮긴 합니다만, 학습을 위한 데이터를 구축한다면 얼마나 시간이 걸릴지 미지수이기도 하네요
- 시간이 너무 없다면 애프터 워크로 남기는 것도 괜찮다고 생각은 합니다
- 개인적으로는 한번 들어가면 그 공간에 대한 출입정보가 남을 수 있으니 딥러닝 말고 통계적인 모형을 활용해서 가지고 있는 정보를 토대로 유사도가 높은 공간을 추천하는 것은 어떨까 싶습니다, 대신에 아무래도 활용하는 데이터들이 카테고리 데이터이다 보니 적절할지는 이것도 의문이네요 —> 이러면 AI 가산점을 못받을 수도 있을 것 같은 게 걸리네요..
-
2차 추천 시, 위의 1차 추천 방식과 혼합하여 사용자에게 추천.
-
2차 추천 딥려닝 모델은 https://lsjsj92.tistory.com/577 참고 및 Neural Collaborative Filtering(https://www.youtube.com/watch?v=SD3irxdKfxk)이용.(파이썬, keras 또는 pytorch)
위 딥러닝 모델의 입력은 사용자-각 장소별 간 방문 여부를 matrix로 만든 후, 해당 matrix를 factorization하여 나온 두 matrix를 입력으로 넣음. 기존 방식의 행렬곱과 원본 matrix를 비교하는 대신, 모델에 넣어서 나온 예측값 matrix와 원본 matrix를 비교하여 학습해나가는 방식.
- 단, 입력으로 받는 데이터가 매우 크고, 한번 학습하는데 걸리는 시간도 길 것으로 예상.(직접 해보지 못해서 확실하지는 않음) 또한, 새로운 데이터가 추가되면 해당 데이터를 matrix에 포함시켜 다시 학습해야 하는 문제도 있음. - 하루동안 쌓인 데이터를 모아 특정 시간대(새벽 등)에 주기적으로 모델을 업데이트?
- 입력데이터가 크다는 것은 여러 공간에 갔기 때문에 입력값이 많다는 말이 맞을까요?
-
사용자에게 추천할만하다고 판단할만한 epsilon값을 조정해서 추천 알고리즘의 정확도를 조정 할 수 있도록 함. —> 모델만들어지고 일반노출과 상호작용 후에 정해도 될 것 같습니다
- 1차 추천의 경우 epsilon값을 Local alignment의 gap penalty값을 조정하여 키워드 값의 유사 단어도 추천을 허용할지 결정한다.
- 2차 추천의 경우 epsilon값을 모델의 output중, 상위 몇 %정도의 값만을 출력할 지 결정. 2차 필터링의 결과로 특정 사용자가 해당 장소를 방문할 확률을 0~1사이의 값으로 나타낸 행렬이 나오기 때문에 높은 확률값을 가진 장소들의 rank를 매겨 어느 정도 범위 내의 장소를 추천할 지 결정.
-
궁금한 것이 만약 구글 API나 네이버 API나 활용하게 된다면, 공간 정보들은 어느 정도 수준으로 DB에 남길 수 있나요? 용량이나 형태나 그런 것을 고려해서 말입니다
-
아웃풋값을 일반노출에 주소값 형태로 넘기게 되면 일반노출에서는 어떻게 정보를 검색하는지 또한 고려가 필요—> 주소 값만 넘겨주면, 일반노출에서 주소를 토대로 지도에 특정 표시와 함께 표기 —> 표기 누르면 해당 공간에 대한 정보 즉각 검색하여 일반노출과 UI와 동일하게 정보 노출(가정)