자습용으로 공부하기 위해 정리한 자료 입니다. 출처는 맨 밑에 있습니다.
1. 개요
– 상품추천, 중복상품검색, 적정 가격 설정 등등에서 ML을 다양하게 사용
– 좋은 feature를 뽑는 방법이 없을까???
– Contents 추천, Sentence Embedding, Document Embedding이랑 비슷함
2. 과거 방법
– TF-IDF를 주로 씀(http://euriion.com/?p=411929)
– 해당 데이터셋에 오버피팅이 됨
– 계산이나 저장에 비효율적
– 의미를 포함시키지 못함
– 그래서 적은 차원의 Feature가 필요함
3. 제안방법
– Dense하고, 적은 차원, 범용적인 새로운 제품 표현 방법을 제안
– Bidirectional LSTM의 Hidden representation 을 Product embedding 으로 사용
– Embedding을 Classification / regresstion / decoding unit(task)에 넣어서 Joint Training을 함
– MRNet(Multi Task Recurrrent Neural network)를 활용
4. MRNet-Product2Vec(Bidirectional RNN)
– 타이틀을 단어 기반으로 자른다음 Forward방향으로 웨이트와 Input 값을 곱하고, Output을 다시 넣고, 백워드도 마찬가지로 계산함
– 이것을 concate 해서 Hidden State를 만듬
– 완성된 embedding을 가지고 multi task network를 훈련시킴
– Wn의 n은 Task의 갯수로써 각각 task마다 다른 weight를 씀
– On은 Task n에 대한 output이고, 각각 task마다 output을 가짐
– 다음은 Loss를 구하는데 Nc는 몇번째 분류 Task를 뜻하고, 결국 분류 Task의 Loss합
– 리그레션 Task의 Loss 합을 구하고
– Decode는 TF-IDF로 Embedding을 할수 있는데 TF-IDF의 Embedding을 label로 놓고 Loss를 구한것의 합임
5. 학습 방법
– Joint Optimization
모든 Task들의 loss를 구하고 한번에 weight를 업데이트 시키는 방법
할수만 있으면 가장 좋으나 task마다 label이 있을수도 없을수도 있음
–Alternating Optimization
랜덤하게 하나의 task만 선정하고 그 weight만 업데이트 시키는 방법으로 훈련함
특정 task에 bias가 생길수 있음
6. Group 을 가리지 않는 Embeddings
– 가격을 예를들면 보석과 책의 가격 범위는 너무 큼 옷이나 주방용품은 가격이 다름, 그래서 개별 상품그룹으로 훈련시킴 그다음에 오토인코더로 개별 Pg를 out으로 두는 것을 훈련 시키 상품 그룹을 가리지 않는 embeddings을 얻을 수 있음
7. 실험결과
– MRNet을 사용한게 효과가 좋고 SIOC인 경우 학습set에 전혀 포함되지 않았던 자료들에서 성능차이가 크게 났음
* 데이터 set 설명
plugs : 해당상품에 plug가 있는지 없는지
SIOC : 자체포자되어 있는지 아닌지
Browse Categories : 장난감의 75가지 세부 분류
Ingestible Classification : 먹을수 있는지 없는지
– nearest neighbor로 상품 유사도 검색도 됨
8. 결론
– Product Embedding을 위한 새로운 방법 제안
– 다양한 feature들을 embedding에 넣을수 있음
– 기존 방법보다 우수한 성능을 보이면서 효율적임
– 상품그룹에 상관없는 Embedding을 만들수 있음
– 상품 이미지까지 활용해서 조금더 범용적으로 만들어 볼수 있을듯 함
출처 :
– https://arxiv.org/pdf/1709.07534.pdf
– https://mukulbhutani.files.wordpress.com/2018/01/ecml-final-slides.pdf
– https://www.youtube.com/watch?v=cpCS7LBRkRU