• 머신러닝 시스템의 설계 순서
    • 요구사항 명확화 → 피처 설정 → 데이터 준비 → 모델 개발 → 평가 → 배포 및 서비스 제공
  • 머신러닝의 유형
    • 지도 학습: 훈련 데이터 셋을 사용하여 학습
      • 회귀 모델: 연속적인 숫자의 값을 예측하기 위한 모델
      • 분류 모델: 불연속 클래스 라벨을 예측하기 위한 모델
    • 비지도 학습: 데이터 사이의 의미 있는 패턴을 식별하기 위한 학습
    • 강화학습: 환경과 상호작용에서 시행착오를 반복하여 수행하는 방법을 찾아내기 위한 학습
  • 데이터 엔지니어링: 데이터의 수집, 저장, 검색 및 처리를 위한 파이프라인을 설계하고 구축하는 작업
  • 피처 엔지니어링
    • 주제에 가장 적합하고 가치있는 데이터를 선택하고 모델에서 사용할 수 있는 형식으로 변환하는 작업
    • 누락 데이터의 삭제 또는 기본값 대체 같은 작업을 요구
    • 피처 스케일링: 피처를 표준 범위와 분포를 같도록 스케일링하는 프로세스
      • 정규화, 표준화, 로그 스케일링, 이산화와 같은 수학적 지식이 요구된다
      • 이산화를 위해서는 범주형 피처 인코딩을 위해 정수, 원/핫 인코딩, 임베딩과 같은 작업이 필요하다
  • 데이터 준비
    • 훈련에 필요한 데이터 셋을 준비하는 작업
    • 데이터를 수동 또는 자동 라벨링이 필요 할 수 있다
    • 라벨이 왜곡되는 경우(포지티브와 네거티브의 차이가 큰 경우)에는 리샘플링과 손실 함수를 적용하여 데이터의 균형을 맞추는 작업이 필요 할 수 있다
  • 모델 엔지니어링
    • 가장 적합한 머신러닝 알고리즘과 아키텍처를 선택하는 작업
    • 모델 압축: 추론 처리 시간과 모델 크기를 줄이기 위한 작업
      • 지식 증류 방식: 작은 모델이 큰 모델을 모방 할 수 있도록 훈련
      • 가지치기: 유용성이 가장 낮은 매개변수를 찾아 0으로 설정
      • 양자화: 32bit 부동 소수점보다 더 적은 비트로 모델 파라미터를 표현하여 성능을 높이는 설정
  • 유즈 케이스
    • 시각 검색 시스템: 사용자가 선택한 이미지와 시각적으로 유사한 이미지를 찾고 검색하는 시스템
      • 표현 학습: 이미지와 같은 비정형 데이터를 임베딩이라는 N 차원 공간의 포인트로 맵핑하는 학습
      • 신경망 모델: 비정형 처리에 적합하고 표현 학습에 필요한 임베딩 생성이 가능한 모델
      • 구조
        • 임베딩 생성 서비스: 입력된 이미지의 임베딩을 계산하는 서비스
        • 최근접 이웃 서비스: 입력된 임베딩과 가장 유사한 이웃을 검색하는 서비스
        • 재 순위화 서비스: 비즈니스 수준의 로직과 정책을 반영하여 이미지의 순서를 재 정렬 하는 서비스
    • 블러링 시스템: 주요 개인정보를 자동으로 흐리게 처리하는 시스템
      • 트랜스포머 기반 아키텍처가 좋은 성능을 보이나 여기서는 1,2 단계 네트워크로 설계
      • 데이터 증강: 원본 데이터에 약간 수정된 복사본을 추가하여 새로운 데이터로 만들어 훈련 셋을 증가시키는 방법
      • 영역 제안 네트워크(RPN): 이미지를 스캔하여 가능성 있는 후보 영역 제안
      • 분류기: 후보 영역을 처리하여 객체 클래스로 분류
      • NMS: 겹치는 영역에서 가장 적합한 영역을 선택하도록 설계된 후처리 알고리즘
      • 구조
        • 데이터 파이프라인: 원본 데이터 → 데이터 증강 → 전처리 → 모델 훈련
        • 배치 파이프라인: 전처리 → 모델 적용 → NMS → 블러링 → 블러링 이미지 저장
    • 유튜브 동영상 검색: 텍스트와 가장 연관있는 동영상 검색 시스템 설계
      • 시각 검색: 동영상과 텍스트의 임베딩 백터를 스칼라 곱으로 유사도를 계산한다
        • 텍스트의 경우 트랜스포머 모델 중 자연어 처리(NLP) 작업이 가능한 모델로 임베딩 벡터 계산
        • 동영상: 동영상 및 샘플 프레임 전처리 → 프레임 임베딩 → 프레임 임베딩 평균 집계로 계산
      • 텍스트 검색: 역색인 전문 검색 엔진으로 유사한 동영상 목록을 찾는다
      • 구조
        • 텍스트 인덱싱 파이프라인: 역색인을 통해 해당 동영상 정보를 데이터베이스에 적재
        • 동영상 인덱싱 파이프라인: 동영상 및 해당 텍스트의 임베딩 벡터를 계산하여 데이터베이스에 적재
        • 예측 파이프라인: 입력된 검색 텍스트 임베딩 계산 → 동영상은 최근접 벡터 검색, 텍스트는 역색인 엔진에서 결과를 추출 → 두 결과를 융합 → 재순위 서비스로 재정렬 후 결과 제공
    • 유해 콘텐츠 감지: 유해 콘텐츠를 감지하기 위한 시스템 설계
      • 융합: 콘텐츠는 여러 데이터를 가지고 있어 모두 고려하여 결과를 예측해야 함
        • 늦은 융합: 머신러닝 모델이 독립적으로 서로 다른 양식을 처리한 후에 예측을 결합하여 처리
        • 이른 융합: 다양한 게시물의 양식을 결합한 다음에 모델로 예측을 처리
      • 개별 컨텐츠는 적절하더라도 합치면 유해할 수 있어 이른 융합을 사용
      • 적합한 머신러닝 계층
        • 단일 이진 분류기: 융합된 피처를 단일 모델로 판단하는 분류기
        • 유해 등급 별 이진 분류기: 선별한 유해 등급 당 한 개의 이진 분류기를 사용
        • 다중 라벨 분류기: 단일 모델로 판단하지만 각 유해 등급에 대한 확률을 계산하는 분류기
        • 다중 작업 분류기: 모델이 여러 작업을 동시에 학습하는 분류기
          • 공유 계층 단계: 입력 피처를 새로운 피처로 변환하는 은닉 계층. 각 유해 클래스에 대한 예측 수행
          • 작업별 계층 단계: 분류 헤드의 집합으로 각 유해 등급 별 계층에 따라 가장 적합한 방식으로 피처를 변환하여 처리
      • 모델: 다중 작업 분류기를 사용하는데 유용한 신경망 모델을 이용
        • 하이퍼 파라미터 튜닝: 모델에서 최상의 성능 찾기 위해 최적의 값을 찾는 방식. 일반적으로 그리드 서치 방식을 이용
        • 손실 함수 선택
          • 손실 함수: 예측의 정확성 측정
          • 순전파: 예측을 위한 계산 수행
          • 역전파: 다음 반복에서 손실을 줄일기 위해 모델의 매개 변수를 최적화
    • 동영상 추천 시스템: 사용자가 좋아할 만한 동영상을 추천하는 시스템 설계
      • 필터링 방식
        • 콘텐츠 기반: 과거에 관련성 있다고 판단한 동영상과 유사한 동영상을 추천
        • 협업 기반: 비슷한 사용자가 비슷한 동영상에 관심이 있을 것이라는 아이디어에 기반하여 추천
        • 하이브리드: 콘텐츠, 협업 기반 필터링을 순차적이나 병렬로 결합하여 추천
      • 모델
        • 행렬 인수분해
          • 사용자-동영상 피드백 행렬을 2개의 저차원 행렬의 곱으로 분해한다
          • 2개의 저차원 행렬의 곱이 원래의 피드백 행렬에 근사치에 가깝도록 최적화한다
        • 투-타워 신경망
          • 각각 사용자와 동영상 피처를 입력받아 개별 임베딩을 생성한다
          • 공유 임베딩 공간에서 임베딩 사이의 거리(스칼라 곱)는 관련성을 나타낸다
    • 이벤트 추천 시스템: 사용자가 참여할 만한 개인화된 이벤트 목록을 표시하는 시스템
      • LTR(Learning to Rank): 순위 문제를 해결하기 위한 알고리즘 중 하나
        • pointwise 방식: 쿼리와 항목을 입력으로 받아 분류 또는 회귀를 통해 관련성을 예측
        • pairwise 방식: 쿼리와 항목2개 쌍을 입력으로 받아 어떤 항목이 더 관련성이 높은지 예측
        • listwise 방식: 쿼리와 전체 항목을 입력으로 받아 어떤 항목이 더 관련성이 높은지 예측
      • 모델 선택
        • 로지스틱 회귀: 하나 또는 여러 특징의 선형 조합을 사용하여 이진 결과의 확률 모델링
        • 의사결정 트리: 의사 결정과 그에 따른 가능한 결과를 나타내는 트리 모델을 사용
        • GBDT: 의사 결정 트리를 개선하기 위해 그레디언트 부스트를 활용하는 방식
        • 신경망: 비선형적 의사 결정 경계가 있는 복잡한 작업 학습에 적합
    • 소셜 플랫폼 광고 클릭 예측: 광고 클릭률 예측 시스템 설계
    • 여행 예약 유사 상품 추천 시스템: 현재 보고 있는 항목과 유사한 항목을 추천하는 시스템 설계
    • 맞춤형 뉴스 피드: 개인화된 뉴스 피드 시스템 설계
    • 친구 추천: 공통점을 기반으로 연결 할 수 있는 사용자 목록