[Paper review]PinText : A Multitask Text Embedding System in Pinterest

오영주·2022년 2월 10일
2
post-custom-banner

PinText

Abstract

  • bert 등의 pretrained model 은 산업환경에 맞지 않다며, 새로운 방법의 multitask text embedding solution을 제안함.
  • word level semantic vectors 생성함. 이때 randomly sampled background 에 비해 positive engagement pair 에 더 큰 similarity 를 주도록 강제해서 학습하는 방식

Introduction

  • pin, user text - pin's title, description, board name, url을 데이터로 이용
  • 원하는 result - text embedding하고 word level embedding vector 를 average 해서 pin, user, search query 를 하나의 space 에 놓는 것
    • 다른 type 의 object 들에 대한 retrieval, classification 등을 nearest neighbor search 의 통합된 방법으로 해결
  • pretrained word embedding(bert 등)에 대한 저자의 부정적 의견
    • 연구에서의 요구사항과 산업에서의 요구사항은 다르다는 견해
    • key design philosophy
      1. storage cost
        • embedding 의 갯수는 multiple versions of embedding 과 cosine similarity 같은 realtime cost를 증가시킴
        • → storage 를 아끼기 위한 all in one solution 를 원함
      2. memory cost
        • top 10 language 에 대한 fasttext(character 기반모델) 모델의 경우 50기가
        • → 메모리에 올리기 좋은 크기의 word 기반 모델
      3. supervised information
        • guide model learning 이 더 효율적임
      4. throughput and latency
        • latency critical realtime computation
  • 위와 같은 needs로 in-house text embedding system이 필요하다고 생각함
  • repin, click engagement 를 positive training data 로 활용 (supervised learning)
  1. text embedding in nlp
    • sota 에서는 sequential text 를 이용한 모델이 대부분임
    • But, internal data distribution 이 public corpus 와 매우 다름
      • pinterest 의 데이터는 long sentence 보다는 concrete annotation term
    • But, objective function 이 매우 다름
      • cbow, skip gram 등은 co-occurance 를 기반으로 학습하게 됨
      • facebook 의 starspace 등을 참고해서 supervised embedding training type 을 사용하고자 함
  2. multitask learning
    • 결과 모델은 세가지 태스크에 적합해야하므로, multitask learning 을 진행할 예정
    • classification 에는 흔한 task 이지만, word embedding 에서는 흔치 않음
  3. transfer learning
    • off-the-shelf text features independent on specific task - 이걸 top 에 올리고 downstream task 를 진행하는 transfer learning 과 연관이 있다고 볼 수 있음
    • e.g. elmo, gpt, bert...
    • 그러나 pinterest 에 적합하지 않음
      1. 종종 not sequential 함
      2. inference efficiency 가 매우 중요함
    • retrieval 이 중요 task 이기 때문에 bert의 next sentence prediction task 에는 적합하지 않음
    • 태생적으로 retrieval task 를 handling 하는 starspace 를 참고할 예정

System design

  • 세개의 모듈로 구성 : offline model training, index building, online serving
  • offline training
    • kafka로 user engagement data 수집
    • training data 구성
  • index building
    • kubernetes cluster (embedding vector를 distributed way 로 만든다)
    • user, pin, query entity 의 candidate embedding 에 lsh 적용(pre-compute token), 여기에 inverted index 적용
    • embedding vector 와 knn 결과를 caching
  • online serving
    • embedding vector lsh token 사용해서 retreival 등에 사용

Multitask text embedding

  • task definition
    • q, p
    • positive pair - repin, long click
    • q 에 해당하는 task
      • home feed 에서 user
      • search 에서의 search query
      • related pin 에서의 subject pin
    • p - a set of words {w } where each word wi appears in the union of pin’s text metadata:
      • title, description, boardname, url
    • u - a set of words {w } where each word wi appears in the union of user’s interests
  • Multitask formulation
    • L : hinge loss
    • S : cosine similarity
    • → positive entity 의 similarity 가 random 에 비해 크게 학습되도록 함
    • details
      1. importance of each task - 따로 주지 않음 (objective function 이 natural engaged traffic 을 반영하게 하고자 함)
      2. tradeoff btw coverage and precision - positive pair 에 대해서 강한 filter를 주면 precision 은 늘어나지만, coverage 가 좁아짐
      • 처음엔 약한 filter로 낮은 precision 으로 학습을 시켜보고, 점차 filter 강화
      • coverage가 높은 모델의 결과로 다음 모델학습에서 initialization embedding dictionary로 사용함.
profile
data scientist
post-custom-banner

0개의 댓글