본문 바로가기

분류 전체보기

(52)
[알고리즘 코테] 이진 탐색 순차 탐색 앞에서부터 하나씩 찾아보는 탐색 알고리즘 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 차례대로 확인하는 방법 데이터 조회 특징 보통 정렬되지 않은 리스트에서 데이터를 찾아야 할 때 사용됨. 구현이 간단하여 자주 사용됨. 시간 복잡도 : 0(N), 데이터의 개수가 N개일 때 최대 N번의 비교 연산이 필요함. 이진 탐색 배열 내부의 데이터가 정렬되어 있어야만 사용할 수 있는 탐색 알고리즘 탐색 범위를 절반씩 좁혀가며 데이터를 하나씩 확인하는 방법 데이터 조회 특징 찾으려는 데이터와 탐색 범위의 중간점에 있는 데이터를 반복적으로 비교해서 원하는 데이터를 찾음. 시간 복잡도 : O(logN), 한 번 확인할 때마다 확인하는 원소의 개수가 절반씩 줄어들음. 구현 방법 : 반복..
[알고리즘 코테] DFS/BFS DFS(Depth First Search) / BFS(Breadth First Search) 1) 방문 리스트 : 방문 처리 목적 / 정점의 개수만큼 길이 생성 visited = [0] * 정점의 개수 2) 인접 행렬 / 인접 리스트 : 노드, 간선 연결 저장 3) stack / queue : 실시간 현황 💡 자료구조 : 스택 (선입후출, FILO) 루트 노드를 스택에 넣고 방문 처리 한다. 스택 최상단 노드의 인접 노드 중 방문하지 않은 노드 하나를 스택에 넣고 방문 처리한다. 만약 인접 노드를 모두 방문한 경우 스택을 Pop 한다. 2 단계를 더 이상 수행할 수 없을 때 까지 (스택이 빌 때 까지) 반복한다. 💡 자료구조 : 큐 (선입선출, FIFO) 루트 노드를 큐에 넣고 방문 처리한다. 방문 처리..
[패스트캠퍼스 - 30개 프로젝트로 끝내는 추천시스템 강의 Chapter10. 기획안 기반 추천시스템 개발 실습] 1) 고객 페르소나 및 가설 정의 buttom-up : 수집 데이터 기반 ex) LDA로 네 가지 범주로 나눔. top-down : 의사결정자, 전문가 기반 가설 ex) 마케팅, 인터넷 사업부, 출판 기획팀, 영업팀, 전략기획팀, 온라인 MD 등 다양한 부서에게 의견을 묻고 판단함. 모델러, 직관적 접근 기반 → 이를 기반으로 최종 가설 설정 내부 정책상 문제, 기술적/적용 한계 가설, 부적절한 상품 추천, 데이터 보호 및 개인정보 침해, 회사 가치관 부합, 브랜드 이미지 훼손, 한시적 트렌드성 가설, 예산 초과 가설, 사용자 경험 저하 가설 등을 고려 2) 가설 기반 데이터 마트 설계/구축 쇼핑 : 고객데이터, 구매이력, 리뷰데이터, 장바구니 도서 : 상품데이터, 도서명 검색량 데이터 검색량 데이터, ..
[알고리즘 코테] 정렬 대표적인 정렬의 종류 1) O(n²)의 시간 복잡도 버블 정렬(Bubble Sort) : 바로 옆에 있는 것과 비교해서 정렬함. 구현은 쉽지만 효율성이 매우 낮다고 알려짐. 선택 정렬(Selection Sort) : 가장 작은 데이터를 선택해서 정렬되지 않은 데이터 중 가장 앞 쪽에 있는 데이터와 위치를 바꾸는 방법 삽입 정렬(Insertion Sort) : 데이터를 앞에서부터 하나씩 확인하며 데이터를 적절한 위치에 삽입하는 방법 2) O(n log n)의 시간 복잡도 : divide and conquer 합병 정렬, 병합 정렬(Merge Sort) 퀵 정렬(Quick Sort) : 기준 데이터를 설정하고 그 기준보다 큰 데이터와 작은 데이터의 위치를 바꾸는 방법, 최악의 경우는 O(n²)이지만 평균적으..
[알고리즘 코테] 그리디 Greedy : 탐욕스러운, 욕심이 많은 그리디 알고리즘 : 단순 무식하게, 탐욕적으로 문제를 푸는 알고리즘 → 현재 상황에서 지금 당장 좋은 것만 고르는 방법 창의력, 문제를 풀기 위한 최소한의 아이디어를 떠올릴 수 있는 능력 필요 ! 가장 큰 순서대로, 가장 작은 순서대로 - 기준 제시 정렬 알고리즘과 짝을 이뤄 출제 대표 예제. 거스름돈 당신은 음식점의 계산을 도와주는 점원이다. 카운터에는 거스름돈으로 사용할 500원, 100원, 50원, 10원짜리 동전이 무한히 존재한다고 가정한다. 손님에게 거슬러 줘야 할 돈이 N원일 때 거슬러줘야 할 동전의 최소 개수를 구하라. 단, 거슬러 줘야 할 돈 N은 항상 10의 배수이다. 가장 큰 화폐 단위부터 거슬러 주기 → 500, 100, 50, 10 n = 1..
[패스트캠퍼스 - 30개 프로젝트로 끝내는 추천시스템 강의 Chapter06. 추천시스템이 필요한 이유] 추천 모델을 넘어 추천 시스템이 필요한 이유 콘텐츠 기반 vs 협업 필터링 vs 하이브리드 MF vs Neighborhood based Factorization Machine Deep learning Model - Wide and Deep, DeepFM 정해진 데이터 -> 정해지지 않은 데이터에서 추천에 필요한 데이터를 직접 만들어내기 올바르지 못한 알고리즘 선택 오프라인 기반의 추천 결과 -> 추천 결과를 일정 레이턴시 안에 유저에게 전달할 수 있는 서빙 (온라인 : 실시간) 비즈니스를 고려하지 않은 메트릭 -> 실제 비즈니스의 가치를 창출해내는 기술 다양한 추천 Product를 고려하지 않고 부족한 확장가능성 -> 새로운 추천 프로덕트를 빠르게 만들고 유지보수할 수 있는 확장 가능성 가장 큰 어려움 ..
[패스트캠퍼스 - 30개 프로젝트로 끝내는 추천시스템 구현 강의 Chapter05. Cold Start 문제] Cold Start 문제 해결 방법 콜드 스타트 문제 지금껏 배운 대부분의 알고리즘은 고객의 과거 기록을 활용하여 잠재된/미래의 선호를 예측하는 것을 시도함. 고객에 대해 아는 것이 거의 없다면 어떻게 추천해 줄 수 있을지 논의해보자 ! 콜드 스타트? 유저의 선호도나 행동에 대한 기록이 적거나 전혀 없을 때, 새로운 유저에 대해 정확하고 적절한 추천을 하는 데 따르는 어려움 신규 유저가 유입되었을 때, 신규 아이템이 추가되었을 때 아이템에 대한 소비 패턴이 밝혀지지 않은 경우 콜드 스타트의 3가지 종류 1) user 콜드 스타트 : 새로운 유저가 플랫폼에 가입한 경우 추천 시스템이 사용자의 선호도, 관심사 또는 과거 행동에 대한 충분한 정보를 가지고 있지 않은 상황 2) item 콜드 스타트 : 새로운 ..
[CF, Sequential Recommendation Model] Collaborative Filtering Model 1) VAE - "VAE : Auto-Encoding Variational Bayes" (2013) AutoEncoder와 유사하지만, 새로운 데이터를 생성한다는 점에서 차이점을 가진 모델 Encoder에서는 Variational Inference에서 Gaussian 분포를 가정하여 입력 x를 잘 설명하는 feature(평균, 표준편차)를 추출함. Decoder에서는 입력데이터의 분포를 잘 근사하는 새로운 x를 생성함. 새롭게 생성한 x가 input x를 잘 복원했는지 Reconstruction Error와 정규분포를 잘 따르는지 KL-Divergence를 측정하여 모델을 최적화시키는 과정으로 학습함. 2) LightGCN - "LightGCN : S..