분류 전체보기
-
MATRIX FACTORIZATION TECHNIQUES FOR RECOMMENDER SYSTEMS 논문 리뷰Research/Personalized Recommender Systems 2020. 6. 12. 00:08
Netflix Prize Competition에서 보여줬듯이 matrix factorization 모델은 전통적인 nearest-neighbor 보다 실제 상용 추천 에서 더 우수하며 implicit feedback(구매 내역, 검색 내역, 검색 패턴 등 사용자 패턴을 파악하는 간접적인 피드백), teporal effects, confidence levels(신뢰 구간)과 같은 추가 정보를 통합할 수 있습니다. 현대의 소비자들은 선택의 늪에 빠져있습니다. 전자 소매 업체 및 컨텐츠 제공자들은 오감을 만족시키는 새로운 기회를 가진 방대한 제품 선택권을 제공합니다. 가장 적합한 제품과 소비자를 매칭하는 것은 사용자의 만족감과 충성도를 향상시키는 핵심입니다. 그러므로 더 많은 소매업체들이 사용자의 취향에 맞는..
-
구현을 통한 Bloom Filter 알아보기 with Python3Study/Data Structure 2020. 6. 11. 22:39
Bloom Filter를 구현하기에 앞서 Bloom Filter의 정의를 보겠습니다. 위키피디아에 따르면 "Bloom Filter는 원소가 집합에 속하는지 여부를 검사하는데 사용되는 확률적 자료구조이다. Bloom Filter의 핵심은 바로 '확률적 자료구조'라는데 있습니다. '블룸 필터에 의해 어떤 원소가 집합에 속한다고 판단된 경우 실제로는 원소가 집합에 속하지 않는 긍정 오류가 발생하는 것이 가능하지만, 반대로 원소가 집합에 속하지 않는 것으로 판단되었는데 실제로는 원소가 집합에 속하는 부정 오류는 절대로 발생하지 않는다는 특성이 있다'라고 합니다. 예를 들어 원소 'dog'이 집합에 속한다고 알려주지만 실제로는 'dog'이 집합의 원소가 아닐 수 있다는 것 입니다. 그리고 'cat'이라는 원소가 ..
-
Trie 자료구조Study/Data Structure 2020. 6. 11. 19:21
https://en.wikipedia.org/wiki/Trie를 참고하면 digital tree 또는 prefix tree라고 하는 trie는 일종의 검색 트리입니다. 동적인 set을 저장하거나 연관있는 배열을 저장할 때 쓰입니다. key는 일반적으로 문자열을 저장합니다. binary search tree와는 다르게 노드는 관련된 키를 저장하지 않습니다. 대신 트리의 위치가 키를 정의하는 방식입니다. 그래서 키는 트리 구조 전체에 분산되어 있습니다. 노드의 모든 하위 항목에는 해당 노드와 연관된 문자열의 공통 접두사가 있습니다. 루트는 빈문자열과 연관되어 있습니다. 위 그림과 같이 "te"의 하위 항목인 "tea", "ted", "ten"은 "te"라는 공통 접두사가 있다고 보시면 됩니다. 아래는 위키피..
-
Recommendation Systems: User-based Collaborative Filtering using N Nearest Neighbors[번역]Research/Personalized Recommender Systems 2020. 5. 31. 23:18
Recommendation Systems: User-based Collaborative Filtering using N Nearest Neighbors Introduction Collaborative Filtering은 추천시스템에서 널리 쓰이는 기술이며 연구 분야가 급격히 진화하고 있습니다. Memory-based 그리고 Model-based 이 두 방법이 가장 자주 사용됩니다. 이 글에서 우리는 memory-based 방법인 UB-CF(User-Based Collaborative Filtering)을 다룰 것입니다. UB-CF의 주된 아이디어는 비슷한 특징을 가진 사람들은 비슷한 취향이라는 것을 가정합니다. 예를 들어 친구 밥에게 영화를 추천 한다면, 밥이랑 당신이 많은 영화를 같이봤고 거의 비슷하게..
-
머신러닝을 위한 Probability and Distribution 알아보기Study/통계 2020. 5. 29. 19:56
Probability 확률이라는 하는 것이 결국 MAP, MLE를 통해 알아본 근간이기 때문에 확률에 대해서 알아 볼 필요가 있습니다. $\Omega$라는 세상의 모든 사건들 중에 $E_1$이라는 사건과 $E_2$라는 사건이 발생한다고 가정을 한다면 이렇게 $E_1$과 $E_2$가 발생할 수 있는 확률이라는 것이 무엇인지 정의 해보는 것 입니다. 그것을 다음과 같이 정의해보겠습니다. $P(E) \in R $ 함수 모양을 하고 있는데 함수의 인자로 E(Event)가 들어가는 것 입니다. 함수에 E를 넣었더니 그 결과값은 R이라고 하는 continuous value가 나오고 그 값은 $P(E) \geq 0 $ 이라는 것 입니다. 그리고 또 다른 제약 조건이 있는데 $\Omega$라는 이 세상의 삼라만상 모든..
-
MLE(Maxinum Likelihood Estimation)에 대한 이해Study/통계 2020. 5. 28. 19:09
위키피디아에 MLE의 정의를 보면 '어떤 확률변수에서표집한 값들을 토대로 그 확률변수의모수를 구하는 방법, 어떤 모수가 주어졌을 때, 원하는 값들이 나올가능도를 최대로 만드는 모수를 선택하는 방법'이라 합니다. 어느정도 이해한 지금의 상황에선 위의 뜻이 좋은 설명이라고 생각하지만 처음 MLE를 접했을 때 잘 이해되지 않는 부분이 있었습니다. 이해를 위해 나름대로 기록한 내용을 적어 보려고 합니다. Thumbtack Question 압정은 동전과를 모양이 다르기 때문에 쉽게 50:50 확률이라고 보기 힘듭니다. 실제로 압정을 던져서 앞이 3번 뒤가 2번 나왔으니 3/5, 2/5의 확률이라고 대답하기엔 부족한 점이 있습니다. Binomial Distribution Binomial Distribution은 이..
-
MAP - Maximum a Posteriori 최대 사후 확률Study/통계 2020. 5. 7. 12:06
MLE(Maximum Likelihood Estimation)는 주어진 관측결과의 발생 가능성을 가장 높게 만들어 주는 모수를 찾아냈습니다. MAP는 MLE와 전혀 다른 개념을 가지고 있는데 MAP는 주어진 관측결과와 '사전지식(사전확률)'을 결합해서 최적의 모수를 찾아내는 방법입니다. 어떤 모수 $\theta$의 사전 확률 분포가 $p(\theta)$로 주어져 있고, 그 모수에 기반한 조건부 확률분포 $f(x|\theta)$와 그 분포에서 수집된 값 $x$가 주어져 있습니다. 이떄 모수의 사후 확률분포는 베이즈 정리에 의해 다음과 같이 계산할 수 있습니다. 여기서 x가 주어져 있기 때문에 분모는 $\theta$에 대해 상수가 됩니다. 여기에서 최대 사후 확률 모수는 다음과 같이 정의됩니다. 최대 사후 ..
-
알고리즘 소개Study/Algorithm 2020. 5. 6. 12:24
알고리즘은 주어진 문제를 해결하기 위한 단계적 절차 또는 방법이다. 알고리즘은 명확하게 기술되어야 하고 유한한 시간 내에 모든 유효한 입력에 대해 올바른 해를 주어야 한다. 주어진 문제를 해결하는 여러 개의 알고리즘들 중 시간적으로 효율적인 알고리즘을 선택해야 한다. 문제를 알고리즘으로 해결하는 단계별 과정들은 다음과 같다. 1. 문제 이해: 주어진 문제를 완전히 이해해야 한다. 2. 알고리즘 설계: 주요 알고리즘 설계 기법을 참고하여 알고리즘을 설계햐야 한다. 3. 정확성 증명: 알고리즘이 정확하다는 것을 증명해야 한다. 4. 알고리즘 분석: 알고리즘의 시간(혹은 공간) 효율성을 분석해야 한다. 5. 알고리즘 구현: 알고리즘은 컴퓨터 프로그램으로 구현해야 한다. 알고리즘은 자연어나 의사 코드로 표현한다..