안녕하세요! 밀리루틴 팀의 AI README입니다.
사용자가 좋아할만한 루틴을 추천하는 모델을 제작하고 있어요.
$ cd AI/
$ /bin/python3 w2vsqlver.py # OOV(out of vocabulary) 문제 해결을 위해 ko.bin 모델에 루틴 단어 추가 한 kosql.bin 모델 학습
$ /bin/python3 d2v.py # d2v_tensor.pt에 루틴 벡터 저장
$ /bin/python3 save_r12n.py 0 301 # 유저 1번부터 301번 추천 루틴 r12n.json에 저장
이름 | 역할 | 이메일 | 깃허브 ID |
---|---|---|---|
이동현 | 모델 제작 | dong97338@gmail.com |
Python 3.8.10
: gensim 3.8.3과의 호환 이슈- NLP
torch 1.6.0
gensim 3.8.3
: ko.bin과의 호환 이슈로 이전 버전 사용
- 전처리
konlpy 0.5.2
: Komoranpy-hanspell 1.1
emoji 1.7.0
: 멤버함수 get_emoji_regexp()가 최신버전에서 사용되지 않음
GET /?no=17
: 17번 유저에 대한 r12n 10개 반환GET /?no=17$refresh=1
: 17번 유저가 새로고침 1번 했을 때, r12n2 10개 반환GET /?no=17&count=10
: 이렇게 count를 특정할 수도 있다.
- 중심 단어로 주변 단어를 예측
- 중심단어에 해당하는 원 핫 벡터와 임베딩 벡터를 곱해 중심단어에 해당하는 워드 벡터를 계산
- 계산량을 줄이기 위해 모든 단어 중 일부를 랜덤으로 골라 negative case로 훈련
- 예측 값과 실제 값의 차이로 계산한 손실함수 값을 최소화
- 루틴 임베딩 계산
- 유저 임베딩 계산
- 유저 임베딩과 모든 루틴 임베딩 사이의 코사인 유사도를 계산하여 유사도가 높은 순으로 추천