machine learning(66)
-
일론머스크 고마워! 트위터의 추천알고리즘
참고영상: 유튜브 코딩애플 https://youtu.be/zJI4bgEJ8IU 깃허브: GitHub - twitter/the-algorithm: Source code for Twitter's Recommendation Algorithm GitHub - twitter/the-algorithm: Source code for Twitter's Recommendation Algorithm Source code for Twitter's Recommendation Algorithm - GitHub - twitter/the-algorithm: Source code for Twitter's Recommendation Algorithm github.com 공식문서: 논리구조 및 알고리즘 설명 Twitter's Recom..
2023.04.06 -
[AI] 어텐션 메커니즘(Attention Mechanism)이란? - 개념 및 예제
어텐션 메커니즘 (Attention Mechanism) seq2seq 모델의 문제점 : 전체 문장에 대해서 context를 단 한 번에 넘겨줌 매 순간마다 데이터를 다 넣어주기 위해 사용 Seq2seq model 전체 문장에 대한 정보를 한꺼번에 벡터 하나로 만들어서 넘겨주니까 token에서의 정보는 하나도 안 남아있고, 전체 문장에 대한 Context만 넘어감 Attention은 Seq2seq model을 보완하고자 만든 것 Attention 쿼리에 대해서 모든 키와의 유사도를 각각 구하고, 유사도를 키와 맵핑되어 있는 각각의 value에 반영 Query : t 시점의 디코더 셀에서의 은닉 상태 Keys : 모든 시점의 인코더 셀의 은닉 상태 Values : 모든 시점의 인코더 셀의 은닉 상태 → At..
2023.03.28 -
[AI] Annoy (Approximate Nearest Neighbors Oh Yeah) 설명 및 예제
Annoy 임베딩 들은 similarity를 직접 구하는 게 많이 사용되는데 특히 추천 같은 경우에서는 다른 사람들의 리스트와 내 리스트가 비슷한 경우에는 제일 비슷한 사람의 리스트에서 내가 보지 않은 리스트들을 추천해줌 (예로 들어 넷플릭스) 모든 유저랑 내 기록이랑 similarity 구하는데 유저가 많으면 너무 오래 걸리기 때문에 그런 문제를 해결하기 위해서 나온 Annoy 라이브러리 Nearest Neighbor (근접 이웃) 새로운 데이터를 입력 받았을 때, 가장 가까이 있는 것이 무엇이냐를 중심으로 새로운 데이터의 → 이제까지는 분류모델을 학습을 했는데 각각의 데이터가 있으면 새로 들어온 데이터의 제일 근접한 같은 분류를 하기도 함 Annoy (Approximate Nearest Neighbo..
2023.03.28 -
[AI] Embedding + LSTM 분류 예제
Embedding + LSTM 분류 실습 초반에 LSTM 분류를 원핫인코딩으로 했던걸, 글로브 벡터 입력으로 받도록 해서 수정 from collections import Counter import urllib.request # spam 메일 데이터 받아오려고 씀 import pandas as pd import numpy as np import tensorflow as tf import nltk from nltk.tokenize import sent_tokenize from nltk import WordPunctTokenizer nltk.download('punkt') from google.colab import drive drive.mount('/content/drive') # spam classific..
2023.03.28 -
[AI] 벡터화 및 One-Hot Encoding 실습
벡터화 자연어가 기계가 이해할 수 있도록 숫자로 변환해주는 과정 원-핫 인코딩(One-Hot Encoding) 단어 집합의 크기를 벡터의 차원으로 하고, 표현하고 싶은 단어의 인덱스에 1의 값을 부여하고, 다른 인덱스에는 0을 부여하는 벡터 표현 방식 원-핫 인코딩 과정 각 단어에 고유한 인덱스 부여 표현하고 싶은 단어의 인덱스에 1, 아닌 단어에는 0 부여 원-핫 인코딩 실습1 from my_tokenizer import tokenize # 사전 생성 def make_vocab(tokens): word2index = {} for voca in tokens: if voca not in word2index.keys(): word2index[voca] = len(word2index) return word2i..
2023.03.28 -
[AI] 데이터 전처리의 이해 및 실습
전처리 이해 토큰화 주어진 데이터를 토큰(Token)이라 불리는 단위로 나누는 작업 토큰이 되는 기준은 다를 수 있음(어절, 단어, 형태소, 음절, 자소 등) 정제 불필요한 데이터(Noise data)를 제거하는 작업 정규화 표현 방법이 다른 단어들을 통합시켜서 같은 단어로 만들어주는 작업 문장 토큰화 문장분리 단어 토큰화“Hello, World!” -> “Hello”, “,”, “World”, “!” 구두점 분리, 단어 분리 토큰화 실습 # 문장 분리 from nltk.tokenize import sent_tokenize text = "Hello, world. These are NLP tutorials." print(sent_tokenize(text)) import nltk from nltk impor..
2023.03.28