SlideShare a Scribd company logo
1 of 36
추천 시스템 overview (1)
이현성 라이앤캐쳐스
ita9@ryencatchers.com
ita9naiwa@gmail.com
Currently it’s a draft!
Target audiences
who don’t know math at all (but I hope she graduated highschool)
who have little experiences in programming. (know what array/2d array is,)
index
• 데이터 사이언스란
• 추천 시스템이란
• 추천 방법에 따른 분류 : 어디서 데이터를 얻을 것인가.
• 유저와 아이템의 interaction에서
• 유저와 아이템의 information에서
• 학습 방법에 따른 분류 : 어떻게 데이터에서 meaningful한 insight을 뽑아 낼 것인가.
• Traditional approaches
• Linear models, TF/IDF, LDA, Factor-based models
• Deep-learning inspired approaches
• Multi-layer perceptron, AutoEncoder, and others...
데이터 사이언스란
In the practitioners’ perspective
데이터 사이언티스트는 두 가지 일을 합니다.
1. Summarize data into information
(forms of ‘encoded’ data, or statements)
1. to help decision making
2. to store data efficiently
3. to do some arithmetic calculation on data
2. Predict about future data from known data known data.
1. to recommend items(recommender systems)
2. to classify users (consequently to help decision making)
데이터 사이언티스트가 하는 모든 일은 이 두 가지 일이거나,
두 가지 일을 하기 위한 일입니다.
비블리에 적용할 수 있는 데이터 사이언
스
• Summarize data into information
• 유저의 view, click log로 유저의 Retention/CTR을 계산
• 유저의 취향을 분석
• UI A, UI B로 A/B test 후 결과 확인하기
• Predict about future data from known data known data
• 유저가 현재까지 읽은 책을 바탕으로 미래에 좋아할 만한 책을 추천
Summarizing Data into information
복잡한 데이터를 summarize해 의사결정에 도움
기존 UI 새 UI
CTR 0.03 0.028
Weekly
retention
0.16 0.032
Summarizing Data into information
• 복잡한 데이터를 숫자 list로 변
환한다
• Memory efficient
• Able to calculate similarity
• And more…
[0.05, 0.74, −1.21, … , 0.03, 1.05]
[0.05, 0.74, −1.21, … , 0.03, 1.05]
Unstructured data(text, image, sound)를 vector로 바꾸기
용량이 큰 텍스트, 이미지 파일을 적은 용량으로 표현 가능하다
[0.2, 2.04, … , 0.15, 0.02]
Unstructured data(text, image, sound)를 vector로 바꾸기
• 비교하기 힘든 객체(text-image, text-text,혹은 유저-item)의 비
교를 할 수 있다.
문서 𝐴의 벡터 표현 ∶ 𝑣 𝐴[0.1, 1.5,2.4]
그림 𝐵의 벡터 표현 ∶ 𝑣 𝐵[−0.3, 0.89,1.15]
문서 A와 그림 B의 유사도 𝑠𝑖𝑚 𝐴, 𝐵 ≔
𝑐𝑜𝑠𝑖𝑛𝑒 𝐴, 𝐵
≔
0.1 ∗ −0.3 + 1.5 ∗ 0.89 + 2.4 ∗ 1.15
0.12 + 1.52 + 2.42 0.32 + 0.892 + 1.152
text를 vector로 바꾸는 법
Linear Dirichlet Allocation
LDA
• 단어는 어떤 토픽을 반영(연관되어 있다)
하며, 각 단어가 토픽을 반영할 확률이 존
재한다.
• 토픽이 A,B,C라면
• Genetics라는 단어는 [A : 0.3, B : 0.4, C : 0.3]
이렇게, 각각의 토픽을 반영할 확률이 존재한다.
• 단어들의 합으로 이루어진 text도, 각각의
토픽을 반영할 확률이 존재한다.
• 문서 X는 토픽을 반영할 확률이 [A : 0.15, B :
0.25, C : 0.6]이다.
LDA
• 각각의 문서를 문서가 토픽을 반영할 확률
분포 (i.e. [0.3, 0.2,0.5]) 표현하는 방법이
LDA이다.
• LDA는 어떤 문서를 k차원 vector로 변환
하며, 그 vector 각각의 값은 0과 1사이이
며 합은 1이다. K는 토픽의 개수를 의미한
다.
• 비슷한 토픽을 갖는 문서를 비슷하다고 판단하는 방
법
• (칠판이 있으면 설명을 칠판으로 더 하기)
image를 vector로 바꾸는 법
Convolutional Neural Network
CNN
이미지는 2차원 배열. 2차원 배열은 행렬
• 이미지는 2차원 배열로 생각할 수 있다.(RGB 채널을 갖는 컬러
이미지라면 2차원 배열 3개… 이런 식으로)
• 2차원 배열은 행렬로 생각할 수 있다
• (손으로 예제를 그려서 설명하기)
• 행렬에 행렬을 곱하면 행렬이 나온다.
• 즉, 어떤 행렬에 특수한 행렬을 여러 번 곱해주는 방법으로 transfor한
다.
• 사실 곱셈 말고 여러 특수한 연산이 적용된다
• max-pooling, stride, kernels and the others...
추천 시스템이란
Information Retrieval (Document Search)
• 데이터 마이닝, 데이터베이스에서 가장 핫한 분야!
• Example
• 문서는 임의의 길이의 text를 말한다.
• Query 또한, 임의의 길이의 text이다.
𝑞 := ‘ant ant bee’
𝑑1 := ‘dog bee dog hog dog ant dog’
𝑑2 := ‘cat gnu dog eel fox’
𝑞라는 문장이 있을 때, 내가 가진 문서[d1,d2] 중 가장 잘 어울리는(정답)인 문
장은 무엇일까?
Information Retrieval (Search)
• 문제 정의
• Let 𝑑 to be arbitrary document, (텍스트, 이미지 등등 어느 것이라도 가능하다)
Let 𝑞 to be a query object(주로 텍스트)
𝑞, 𝑑 are sentences, or text
• For given query 𝑞
Return a set of relevant documents of size k 𝐷 𝑘
•
Where 𝐷 𝑘 ≔ 𝑑 ∈ 𝐷 𝑠𝑖𝑚 𝑑, 𝑞 𝑖𝑠 ℎ𝑖𝑔ℎ 𝑒𝑛𝑜𝑢𝑔ℎ}
• You need to define similarity measure between a document 𝑑 and a query 𝑞
• thus rank documents given query 𝑞
𝑠𝑖𝑚 𝑑, 𝑞 계산하기
• We need a model 𝑓 such that
Model 𝑓 ∶ 𝔻 → ℝ 𝑑
𝑤ℎ𝑒𝑟𝑒 𝔻 𝑖𝑠 𝑠𝑒𝑡 𝑜𝑓 𝑎𝑙𝑙 𝑑𝑜𝑐𝑢𝑚𝑒𝑛𝑡𝑠.
Then we can calculate similarity of non-numeric entities in transformed space
𝑠𝑖𝑚 𝑑1, 𝑑2 ≔ 𝑐𝑜𝑠 𝑓 𝑑1 , 𝑓 𝑑2 =
𝑓 𝑑1
𝑇
𝑓 𝑑2
𝑓 𝑑1 | 𝑓 𝑑2
This model 𝑓 have many names
Hashing, Embedding, Mapping, Transformation, Projection
즉, 정보 검색은
• 질문을 받고, 그 질문에 대한 문서(혹은 정답에 가장 가까운) 답
을 돌려주는 것
• 혹은, 질문과 ‘비슷한’ 문서를 찾아내는 것
정보 검색에서 흔히 사용되는 mapping models
• There are various mapping models
• TF-IDF, BM25 (counting based vector mapping)
• They fail to catch semantic information.
Same themes can be represented in different words.
• 기본적으로, 두 document에서 같은 단어가 자주 나오면 비슷하다고 판단하는 방법
• LSA(PCA), LDA (unsupervised statistical inference, or probabilistic topic models)
• These models are trained in an unsupervised manner.
Their Objective function are only loosely coupled with calculating 𝑠𝑖𝑚 𝑑, 𝑞 .
• 이 종류의 모델이 optimize하는 goal이랑 문서 간의 similarity는 별로 상관이 없는 것으로 알려져 있다.
(그래서 생각보다 성능이 별로)
https://janav.wordpress.com/2013/10/27/tf-idf-and-cosine-similarity/
this page explains tf-idf clearly
https://www.youtube.com/watch?v=NcC1XyD5dvA
Very detailed explanation on Latent Semantic Analysis (PCA)
https://www.youtube.com/watch?v=FkckgwMHP2s
David Blei (who created LDA) explains LDA and other probabilistic topic models(difficult)
추천 시스템은 정보 검색 분야 중 특별한
경우
• Query 𝑞가 문서가 아니라 유저인 경우
정보 검색 중 특별한 케이스를 다룬다.
• 특정 유저 𝑢에 대해, 𝑢와 비슷한(혹은 유저 𝑢가 좋아할 만한) 문서(책, 영화 등 어떤 물건)을 찾아내는 것.
• 유저 𝑢 와 아이템 𝑖의 비슷한 정도는
𝑠𝑖𝑚 𝑢, 𝑖 = f u, i 으로 정의한다.
• 모델을 만들고 트레이닝한다는 것은, 유저와 아이템의 실제 유사도와 비슷한(data가 말해주는) 유사도를 만들어내는 함수 f u, i 를 찾아내는 것을 의
미한다.
• 실제로는,
모델 만들기 : confine function space 𝔽 where 𝑓 belongs to
모델 training: searching function 𝑓 ∈ 𝔽 that fits with given dataset 𝐷
어떠한 데이터를 사용하는가?
1. Collaborative filtering
2. Content-based Recommendation
유저와 아이템의 similarity를 만드는 모델 f를 어떤 데이터를 이용해
만들 것인지에 관한 이야기.
유저와 아이템의 interaction에
서
Collaborative filtering
Interactions between user and items
In usual Collaborative filtering recomm
enders,
the only concern is the relationship bet
ween users and items.
유저와 아이템 간의 interaction에는 다
음과 같은 것이 존재한다.
• User 𝑢 like or dislike item 𝑖
• User 𝑢 have watched item 𝑖
• User 𝑢 give 5-star to item 𝑖
• If user u interacted(e.g., clicked,
purchased, …) an item I
• 𝑦 𝑢𝑖 = 1
• Otherwise
• 𝑦 𝑢𝑖 = 0
• We can construct interaction matrix for
all users against all items.
26
i1 i2 i3 i4 i5
u1 0 0 1 1 0
u2 1 0 1 0 1
u3 0 1 0 1 1
u4 1 0 1 0 0
Interactions between user and items
In usual Collaborative filtering recomm
enders,
the only concern is the relationship bet
ween users and items.
유저와 아이템 간의 interaction에는 다
음과 같은 것이 존재한다.
• User 𝑢 like or dislike item 𝑖
• User 𝑢 have watched item 𝑖
• User 𝑢 give 5-star to item 𝑖
• 유저가 아이템에 매긴 점수 자체를 이용해
interaction matrix를 만들 수 있다.
27
i1 i2 i3 i4 i5
u1 ? ? 3 5 ?
u2 1 3 ? 5 ?
u3 3 2 ? ? ?
u4 ? 2 ? 4 1
Collaborative Filtering의 특징
• 유저와 아이템 간의 interaction을 이용한다.
• 즉, interaction이 없는
새로 나온 아이템, 새로 가입한 유저에 대해서는 추천을 할 수 없다.
• 충분한 interaction이 있는 데이터에 대해서는 content-based
recommendation보다 성능이 우수하다고 알려져 있다.
• Collaborative Filtering 모델의 연구 동향:
다른 side information(item content, user의 친구 리스트) 등을 이용해 성능을 향상시키는 방법
이 메인이다.
유저와 아이템의 information
에서
Content-based Recommendation
User preferences / Item description
이현성
• 20대 초반 남성
• 컴퓨터공학 전공
• 만화를 좋아함
• 영미권 소설을 좋아함
• 자전적, 혹은 faction을 좋아
하지 않음.
• 남자 캐릭터보다 여자 캐릭터를 더 좋아
함
…
이방인(책)
• 작가는 알베르 카뮈
• 역자는 김화영
• 프랑스 소설 (1942년)
…
User preferences / Item description
이현성
• 20대 초반 남성
• 컴퓨터공학 전공
• 만화를 좋아함
• 영미권 소설을 좋아함
• 자전적, 혹은 factio을 좋아하지 않음.
• 남자 캐릭터보다 여자 캐릭터를
더 좋아함
…
피규어들
이현성의 description 중 중요한 부분이 다르다
이현성
• 20대 초반 남성
• 컴퓨터공학 전공
• 만화를 좋아함
• 영미권 소설을 좋아함
• 자전적, 혹은 factio을 좋아하지 않음.
• 남자 캐릭터보다 여자 캐릭터를 더 좋아함
피규어를 추천할 때 중요했던 부분
이현성
• 20대 초반 남성
• 컴퓨터공학 전공
• 만화를 좋아함
• 영미권 소설을 좋아함
• 자전적, 혹은 faction을 좋아하지 않음.
• 남자 캐릭터보다 여자 캐릭터를 더 좋아함
책을 추천할 때 중요했던 부분
결론 : 무작정 데이터가 많다고 해서, 좋은 성능을 낼 수 있는 것은 아니다(일반적으로 그런 경향이 있긴 하다)
Content-based recommendation의 특징
• 유저와 아이템의 정보를 컴퓨터가 이해하기 힘들다.
• Image, text 같은 컴퓨터가 이해하기 힘든 information이 많다.
• -> 최근 deep-learning 기술로 이를 해결하고는 있지만, 여전히 힘든 일이다.
• 여전히 (interaction이 충분히 많은 경우) 성능이 collaborative filtering
보다 좋지 않다.
• Content based recommendation 연구 동향
새로운 모델(지금 이 순간에도 새로운 모델이 제안되고 있다)을 제안해
모델의 content를 컴퓨터가 더 잘 이해할 수 있게 만드는 것이 메인
Recommendation algorithms
• Represent users and items in latent space numerically
EX)
• Represent a user U as vector
𝑢 = 0.3, 1.05, −0.5, 0.9 𝑇
• Represent a item I as vector
𝑖 = 1.05, −0.5, 2.6, 0.9 𝑇
• Targets(what we want to predict) are calculated using numerically represented using
user, item, and other contents information.
EX)
• Predicted rating of user U on item I
𝑦 𝑢,𝑖 = 𝑑𝑜𝑡 𝑢, 𝑖 = 𝑢 𝑇
𝑖 = 0.3 ∗ 1.05 + 1.3 ∗ 1.2 − 0.5 ∗ 2.6 + 0.6 ∗ 0.9 = 0.78
34
중간 요약
• 추천 시스템은 두 부분으로 이루어져 있다.
1. 유저와 아이템을 숫자(vector)로 표현하기
• 유저와 아이템을 숫자로 표현하는 모델을 만들기 위해 이용하는 data의 종류에 따라
collaborative filtering과 content-based recommendation으로 나뉜다.
2. 숫자로 표현된 유저와 아이템을 이용해 유사도, 혹은 점수를 계산하기.
• 점수를 계산하는 방법은 linear model(matrix factorization), Deep learning(MLP,
AutoEncoder, Convolutional Neural Network 등)
두 방법론
유저와 아이템의 information
유저와 아이템의 log
유저를 숫자로 표현
(vector representation)
아이템을 숫자로 표현
(vector representation)
유저와 아이템 간의 유사도/점수
(similarity or score)
어떤 데이터를 사용할 것인가?
어떻게 주어진 데이터를
(유사도를 잘 맞추는) 숫자
로 변환할 것인가?

More Related Content

What's hot

GloVe:Global vectors for word representation
GloVe:Global vectors for word representationGloVe:Global vectors for word representation
GloVe:Global vectors for word representationkeunbong kwak
 
B6 문맥인식기술활용
B6 문맥인식기술활용B6 문맥인식기술활용
B6 문맥인식기술활용NAVER D2
 
Siamese neural networks for one shot image recognition paper explained
Siamese neural networks for one shot image recognition paper explainedSiamese neural networks for one shot image recognition paper explained
Siamese neural networks for one shot image recognition paper explainedtaeseon ryu
 
[226]대용량 텍스트마이닝 기술 하정우
[226]대용량 텍스트마이닝 기술 하정우[226]대용량 텍스트마이닝 기술 하정우
[226]대용량 텍스트마이닝 기술 하정우NAVER D2
 
Query suggestions as summarization in exploratory search
Query suggestions as summarization in exploratory searchQuery suggestions as summarization in exploratory search
Query suggestions as summarization in exploratory searchtaeseon ryu
 
[IT21 글로벌 컨퍼런스] 대화시스템 개발을 위한 자연어처리기술 - 서희철
[IT21 글로벌 컨퍼런스] 대화시스템 개발을 위한 자연어처리기술 - 서희철[IT21 글로벌 컨퍼런스] 대화시스템 개발을 위한 자연어처리기술 - 서희철
[IT21 글로벌 컨퍼런스] 대화시스템 개발을 위한 자연어처리기술 - 서희철NAVER Engineering
 
임태현, Text-CNN을 이용한 Sentiment 분설모델 구현
임태현, Text-CNN을 이용한 Sentiment 분설모델 구현임태현, Text-CNN을 이용한 Sentiment 분설모델 구현
임태현, Text-CNN을 이용한 Sentiment 분설모델 구현태현 임
 
From A Neural Probalistic Language Model to Word2vec
From A Neural Probalistic Language Model to Word2vecFrom A Neural Probalistic Language Model to Word2vec
From A Neural Probalistic Language Model to Word2vecJungkyu Lee
 
악플분류 모델링 프로젝트
악플분류 모델링 프로젝트악플분류 모델링 프로젝트
악플분류 모델링 프로젝트DataScienceLab
 
Lab Seminar - Reading Wikipedia to Answer Open-Domain Questions (DrQA)
Lab Seminar - Reading Wikipedia to Answer Open-Domain Questions (DrQA)Lab Seminar - Reading Wikipedia to Answer Open-Domain Questions (DrQA)
Lab Seminar - Reading Wikipedia to Answer Open-Domain Questions (DrQA)hkh
 
Deep neural networks for You-Tube recommendations
Deep neural networks for You-Tube recommendationsDeep neural networks for You-Tube recommendations
Deep neural networks for You-Tube recommendationsseungwoo kim
 
딥러닝 기본 원리의 이해
딥러닝 기본 원리의 이해딥러닝 기본 원리의 이해
딥러닝 기본 원리의 이해Hee Won Park
 
Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...
Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...
Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...Haezoom Inc.
 
집단지성 프로그래밍 06-의사결정트리-01
집단지성 프로그래밍 06-의사결정트리-01집단지성 프로그래밍 06-의사결정트리-01
집단지성 프로그래밍 06-의사결정트리-01Kwang Woo NAM
 
Convolutional neural networks for sentence classification
Convolutional neural networks for sentence classificationConvolutional neural networks for sentence classification
Convolutional neural networks for sentence classificationkeunbong kwak
 
머신러닝의 자연어 처리기술(I)
머신러닝의 자연어 처리기술(I)머신러닝의 자연어 처리기술(I)
머신러닝의 자연어 처리기술(I)홍배 김
 
Deep learning framework 제작
Deep learning framework 제작Deep learning framework 제작
Deep learning framework 제작Tae Young Lee
 
한글 언어 자원과 R: KoNLP 개선과 활용
한글 언어 자원과 R: KoNLP 개선과 활용한글 언어 자원과 R: KoNLP 개선과 활용
한글 언어 자원과 R: KoNLP 개선과 활용r-kor
 
파이썬으로 익히는 딥러닝 기본 (18년)
파이썬으로 익히는 딥러닝 기본 (18년)파이썬으로 익히는 딥러닝 기본 (18년)
파이썬으로 익히는 딥러닝 기본 (18년)SK(주) C&C - 강병호
 
Open domain dialogue Chatbot(잡담봇 삽질기)
Open domain dialogue Chatbot(잡담봇 삽질기)Open domain dialogue Chatbot(잡담봇 삽질기)
Open domain dialogue Chatbot(잡담봇 삽질기)NAVER Engineering
 

What's hot (20)

GloVe:Global vectors for word representation
GloVe:Global vectors for word representationGloVe:Global vectors for word representation
GloVe:Global vectors for word representation
 
B6 문맥인식기술활용
B6 문맥인식기술활용B6 문맥인식기술활용
B6 문맥인식기술활용
 
Siamese neural networks for one shot image recognition paper explained
Siamese neural networks for one shot image recognition paper explainedSiamese neural networks for one shot image recognition paper explained
Siamese neural networks for one shot image recognition paper explained
 
[226]대용량 텍스트마이닝 기술 하정우
[226]대용량 텍스트마이닝 기술 하정우[226]대용량 텍스트마이닝 기술 하정우
[226]대용량 텍스트마이닝 기술 하정우
 
Query suggestions as summarization in exploratory search
Query suggestions as summarization in exploratory searchQuery suggestions as summarization in exploratory search
Query suggestions as summarization in exploratory search
 
[IT21 글로벌 컨퍼런스] 대화시스템 개발을 위한 자연어처리기술 - 서희철
[IT21 글로벌 컨퍼런스] 대화시스템 개발을 위한 자연어처리기술 - 서희철[IT21 글로벌 컨퍼런스] 대화시스템 개발을 위한 자연어처리기술 - 서희철
[IT21 글로벌 컨퍼런스] 대화시스템 개발을 위한 자연어처리기술 - 서희철
 
임태현, Text-CNN을 이용한 Sentiment 분설모델 구현
임태현, Text-CNN을 이용한 Sentiment 분설모델 구현임태현, Text-CNN을 이용한 Sentiment 분설모델 구현
임태현, Text-CNN을 이용한 Sentiment 분설모델 구현
 
From A Neural Probalistic Language Model to Word2vec
From A Neural Probalistic Language Model to Word2vecFrom A Neural Probalistic Language Model to Word2vec
From A Neural Probalistic Language Model to Word2vec
 
악플분류 모델링 프로젝트
악플분류 모델링 프로젝트악플분류 모델링 프로젝트
악플분류 모델링 프로젝트
 
Lab Seminar - Reading Wikipedia to Answer Open-Domain Questions (DrQA)
Lab Seminar - Reading Wikipedia to Answer Open-Domain Questions (DrQA)Lab Seminar - Reading Wikipedia to Answer Open-Domain Questions (DrQA)
Lab Seminar - Reading Wikipedia to Answer Open-Domain Questions (DrQA)
 
Deep neural networks for You-Tube recommendations
Deep neural networks for You-Tube recommendationsDeep neural networks for You-Tube recommendations
Deep neural networks for You-Tube recommendations
 
딥러닝 기본 원리의 이해
딥러닝 기본 원리의 이해딥러닝 기본 원리의 이해
딥러닝 기본 원리의 이해
 
Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...
Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...
Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...
 
집단지성 프로그래밍 06-의사결정트리-01
집단지성 프로그래밍 06-의사결정트리-01집단지성 프로그래밍 06-의사결정트리-01
집단지성 프로그래밍 06-의사결정트리-01
 
Convolutional neural networks for sentence classification
Convolutional neural networks for sentence classificationConvolutional neural networks for sentence classification
Convolutional neural networks for sentence classification
 
머신러닝의 자연어 처리기술(I)
머신러닝의 자연어 처리기술(I)머신러닝의 자연어 처리기술(I)
머신러닝의 자연어 처리기술(I)
 
Deep learning framework 제작
Deep learning framework 제작Deep learning framework 제작
Deep learning framework 제작
 
한글 언어 자원과 R: KoNLP 개선과 활용
한글 언어 자원과 R: KoNLP 개선과 활용한글 언어 자원과 R: KoNLP 개선과 활용
한글 언어 자원과 R: KoNLP 개선과 활용
 
파이썬으로 익히는 딥러닝 기본 (18년)
파이썬으로 익히는 딥러닝 기본 (18년)파이썬으로 익히는 딥러닝 기본 (18년)
파이썬으로 익히는 딥러닝 기본 (18년)
 
Open domain dialogue Chatbot(잡담봇 삽질기)
Open domain dialogue Chatbot(잡담봇 삽질기)Open domain dialogue Chatbot(잡담봇 삽질기)
Open domain dialogue Chatbot(잡담봇 삽질기)
 

Similar to 추천 시스템 개요 (1)-draft

[PyCon KR 2018] 땀내를 줄이는 Data와 Feature 다루기
[PyCon KR 2018] 땀내를 줄이는 Data와 Feature 다루기[PyCon KR 2018] 땀내를 줄이는 Data와 Feature 다루기
[PyCon KR 2018] 땀내를 줄이는 Data와 Feature 다루기Joeun Park
 
Machine Learning Foundations (a case study approach) 강의 정리
Machine Learning Foundations (a case study approach) 강의 정리Machine Learning Foundations (a case study approach) 강의 정리
Machine Learning Foundations (a case study approach) 강의 정리SANG WON PARK
 
제 11회 보아즈(BOAZ) 빅데이터 컨퍼런스 - 코끼리(BOAZ) 사서의 도서 추천 솔루션
제 11회 보아즈(BOAZ) 빅데이터 컨퍼런스 - 코끼리(BOAZ) 사서의 도서 추천 솔루션제 11회 보아즈(BOAZ) 빅데이터 컨퍼런스 - 코끼리(BOAZ) 사서의 도서 추천 솔루션
제 11회 보아즈(BOAZ) 빅데이터 컨퍼런스 - 코끼리(BOAZ) 사서의 도서 추천 솔루션BOAZ Bigdata
 
[2021 Google I/O] LaMDA : Language Models for DialogApplications
[2021 Google I/O] LaMDA : Language Models for DialogApplications[2021 Google I/O] LaMDA : Language Models for DialogApplications
[2021 Google I/O] LaMDA : Language Models for DialogApplicationstaeseon ryu
 
정보검색과 Elasticsearch (크몽)
정보검색과 Elasticsearch (크몽)정보검색과 Elasticsearch (크몽)
정보검색과 Elasticsearch (크몽)크몽
 
알고리즘 마케팅 CH5
알고리즘 마케팅 CH5알고리즘 마케팅 CH5
알고리즘 마케팅 CH5kyuchul kim
 
검색엔진에 적용된 딥러닝 모델 방법론
검색엔진에 적용된 딥러닝 모델 방법론검색엔진에 적용된 딥러닝 모델 방법론
검색엔진에 적용된 딥러닝 모델 방법론Tae Young Lee
 
De text a deep text ranking framework with bert
De text  a deep text ranking framework with bertDe text  a deep text ranking framework with bert
De text a deep text ranking framework with berttaeseon ryu
 
데이터를 얻으려는 노오오력
데이터를 얻으려는 노오오력데이터를 얻으려는 노오오력
데이터를 얻으려는 노오오력Youngjae Kim
 
2016년 인문정보학 Sql세미나 1/3
2016년 인문정보학 Sql세미나 1/32016년 인문정보학 Sql세미나 1/3
2016년 인문정보학 Sql세미나 1/3in2acous
 
Korean manual for nodexl fb, flickr, twitter, youtube, wiki
Korean manual for nodexl fb, flickr, twitter, youtube, wikiKorean manual for nodexl fb, flickr, twitter, youtube, wiki
Korean manual for nodexl fb, flickr, twitter, youtube, wikiHan Woo PARK
 
데이터를 비즈니스에 활용하기 왜 어려울까?
데이터를 비즈니스에 활용하기 왜 어려울까?데이터를 비즈니스에 활용하기 왜 어려울까?
데이터를 비즈니스에 활용하기 왜 어려울까?Glen Park
 
데이터분석과저널리즘 정제에서 분석까지
데이터분석과저널리즘 정제에서 분석까지데이터분석과저널리즘 정제에서 분석까지
데이터분석과저널리즘 정제에서 분석까지Gee Yeon Hyun
 
Week14 wrapup
Week14 wrapupWeek14 wrapup
Week14 wrapupEun Yu
 
29th Meetup 실습 설명 및 실습 자료 링크
29th Meetup 실습 설명 및 실습 자료 링크29th Meetup 실습 설명 및 실습 자료 링크
29th Meetup 실습 설명 및 실습 자료 링크HyeonJeong Jo
 
데이터분석과통계2 - 최재걸님
데이터분석과통계2 - 최재걸님데이터분석과통계2 - 최재걸님
데이터분석과통계2 - 최재걸님NAVER D2
 
LLG Data Journalism Module3 Review
LLG Data Journalism Module3 ReviewLLG Data Journalism Module3 Review
LLG Data Journalism Module3 Reviewneuroassociates
 
How to Create Value from Data, and Its Difficulty
How to Create Value from Data, and Its DifficultyHow to Create Value from Data, and Its Difficulty
How to Create Value from Data, and Its DifficultyDataya Nolja
 
News clustering and Recommendation system using Word Embedding
News clustering and Recommendation system using Word EmbeddingNews clustering and Recommendation system using Word Embedding
News clustering and Recommendation system using Word EmbeddingJunyoung Park
 

Similar to 추천 시스템 개요 (1)-draft (20)

[PyCon KR 2018] 땀내를 줄이는 Data와 Feature 다루기
[PyCon KR 2018] 땀내를 줄이는 Data와 Feature 다루기[PyCon KR 2018] 땀내를 줄이는 Data와 Feature 다루기
[PyCon KR 2018] 땀내를 줄이는 Data와 Feature 다루기
 
Machine Learning Foundations (a case study approach) 강의 정리
Machine Learning Foundations (a case study approach) 강의 정리Machine Learning Foundations (a case study approach) 강의 정리
Machine Learning Foundations (a case study approach) 강의 정리
 
제 11회 보아즈(BOAZ) 빅데이터 컨퍼런스 - 코끼리(BOAZ) 사서의 도서 추천 솔루션
제 11회 보아즈(BOAZ) 빅데이터 컨퍼런스 - 코끼리(BOAZ) 사서의 도서 추천 솔루션제 11회 보아즈(BOAZ) 빅데이터 컨퍼런스 - 코끼리(BOAZ) 사서의 도서 추천 솔루션
제 11회 보아즈(BOAZ) 빅데이터 컨퍼런스 - 코끼리(BOAZ) 사서의 도서 추천 솔루션
 
[2021 Google I/O] LaMDA : Language Models for DialogApplications
[2021 Google I/O] LaMDA : Language Models for DialogApplications[2021 Google I/O] LaMDA : Language Models for DialogApplications
[2021 Google I/O] LaMDA : Language Models for DialogApplications
 
Mahout
MahoutMahout
Mahout
 
정보검색과 Elasticsearch (크몽)
정보검색과 Elasticsearch (크몽)정보검색과 Elasticsearch (크몽)
정보검색과 Elasticsearch (크몽)
 
알고리즘 마케팅 CH5
알고리즘 마케팅 CH5알고리즘 마케팅 CH5
알고리즘 마케팅 CH5
 
검색엔진에 적용된 딥러닝 모델 방법론
검색엔진에 적용된 딥러닝 모델 방법론검색엔진에 적용된 딥러닝 모델 방법론
검색엔진에 적용된 딥러닝 모델 방법론
 
De text a deep text ranking framework with bert
De text  a deep text ranking framework with bertDe text  a deep text ranking framework with bert
De text a deep text ranking framework with bert
 
데이터를 얻으려는 노오오력
데이터를 얻으려는 노오오력데이터를 얻으려는 노오오력
데이터를 얻으려는 노오오력
 
2016년 인문정보학 Sql세미나 1/3
2016년 인문정보학 Sql세미나 1/32016년 인문정보학 Sql세미나 1/3
2016년 인문정보학 Sql세미나 1/3
 
Korean manual for nodexl fb, flickr, twitter, youtube, wiki
Korean manual for nodexl fb, flickr, twitter, youtube, wikiKorean manual for nodexl fb, flickr, twitter, youtube, wiki
Korean manual for nodexl fb, flickr, twitter, youtube, wiki
 
데이터를 비즈니스에 활용하기 왜 어려울까?
데이터를 비즈니스에 활용하기 왜 어려울까?데이터를 비즈니스에 활용하기 왜 어려울까?
데이터를 비즈니스에 활용하기 왜 어려울까?
 
데이터분석과저널리즘 정제에서 분석까지
데이터분석과저널리즘 정제에서 분석까지데이터분석과저널리즘 정제에서 분석까지
데이터분석과저널리즘 정제에서 분석까지
 
Week14 wrapup
Week14 wrapupWeek14 wrapup
Week14 wrapup
 
29th Meetup 실습 설명 및 실습 자료 링크
29th Meetup 실습 설명 및 실습 자료 링크29th Meetup 실습 설명 및 실습 자료 링크
29th Meetup 실습 설명 및 실습 자료 링크
 
데이터분석과통계2 - 최재걸님
데이터분석과통계2 - 최재걸님데이터분석과통계2 - 최재걸님
데이터분석과통계2 - 최재걸님
 
LLG Data Journalism Module3 Review
LLG Data Journalism Module3 ReviewLLG Data Journalism Module3 Review
LLG Data Journalism Module3 Review
 
How to Create Value from Data, and Its Difficulty
How to Create Value from Data, and Its DifficultyHow to Create Value from Data, and Its Difficulty
How to Create Value from Data, and Its Difficulty
 
News clustering and Recommendation system using Word Embedding
News clustering and Recommendation system using Word EmbeddingNews clustering and Recommendation system using Word Embedding
News clustering and Recommendation system using Word Embedding
 

More from hyunsung lee

Learning deep structured semantic models for web search
Learning deep structured semantic models for web searchLearning deep structured semantic models for web search
Learning deep structured semantic models for web searchhyunsung lee
 
Deep learning based recommender systems (lab seminar paper review)
Deep learning based recommender systems (lab seminar paper review)Deep learning based recommender systems (lab seminar paper review)
Deep learning based recommender systems (lab seminar paper review)hyunsung lee
 
Catching co occurrence information using word2vec-inspired matrix factorization
Catching co occurrence information using word2vec-inspired matrix factorizationCatching co occurrence information using word2vec-inspired matrix factorization
Catching co occurrence information using word2vec-inspired matrix factorizationhyunsung lee
 
아이템 추천의 다양성을 높이기 위한 후처리 방법(논문 리뷰)
아이템 추천의 다양성을 높이기 위한 후처리 방법(논문 리뷰)아이템 추천의 다양성을 높이기 위한 후처리 방법(논문 리뷰)
아이템 추천의 다양성을 높이기 위한 후처리 방법(논문 리뷰)hyunsung lee
 
Session-Based Recommendations with Recurrent Neural Networks (Balazs Hidasi, ...
Session-Based Recommendations with Recurrent Neural Networks(Balazs Hidasi, ...Session-Based Recommendations with Recurrent Neural Networks(Balazs Hidasi, ...
Session-Based Recommendations with Recurrent Neural Networks (Balazs Hidasi, ...hyunsung lee
 
Neural collaborative filtering-발표
Neural collaborative filtering-발표Neural collaborative filtering-발표
Neural collaborative filtering-발표hyunsung lee
 
Word vectorization(embedding) with nnlm
Word vectorization(embedding) with nnlmWord vectorization(embedding) with nnlm
Word vectorization(embedding) with nnlmhyunsung lee
 
2013313990 이현성 졸업작품 제안서
2013313990 이현성 졸업작품 제안서2013313990 이현성 졸업작품 제안서
2013313990 이현성 졸업작품 제안서hyunsung lee
 
Derivation of cost function for logistic regression
Derivation of cost function for logistic regressionDerivation of cost function for logistic regression
Derivation of cost function for logistic regressionhyunsung lee
 

More from hyunsung lee (9)

Learning deep structured semantic models for web search
Learning deep structured semantic models for web searchLearning deep structured semantic models for web search
Learning deep structured semantic models for web search
 
Deep learning based recommender systems (lab seminar paper review)
Deep learning based recommender systems (lab seminar paper review)Deep learning based recommender systems (lab seminar paper review)
Deep learning based recommender systems (lab seminar paper review)
 
Catching co occurrence information using word2vec-inspired matrix factorization
Catching co occurrence information using word2vec-inspired matrix factorizationCatching co occurrence information using word2vec-inspired matrix factorization
Catching co occurrence information using word2vec-inspired matrix factorization
 
아이템 추천의 다양성을 높이기 위한 후처리 방법(논문 리뷰)
아이템 추천의 다양성을 높이기 위한 후처리 방법(논문 리뷰)아이템 추천의 다양성을 높이기 위한 후처리 방법(논문 리뷰)
아이템 추천의 다양성을 높이기 위한 후처리 방법(논문 리뷰)
 
Session-Based Recommendations with Recurrent Neural Networks (Balazs Hidasi, ...
Session-Based Recommendations with Recurrent Neural Networks(Balazs Hidasi, ...Session-Based Recommendations with Recurrent Neural Networks(Balazs Hidasi, ...
Session-Based Recommendations with Recurrent Neural Networks (Balazs Hidasi, ...
 
Neural collaborative filtering-발표
Neural collaborative filtering-발표Neural collaborative filtering-발표
Neural collaborative filtering-발표
 
Word vectorization(embedding) with nnlm
Word vectorization(embedding) with nnlmWord vectorization(embedding) with nnlm
Word vectorization(embedding) with nnlm
 
2013313990 이현성 졸업작품 제안서
2013313990 이현성 졸업작품 제안서2013313990 이현성 졸업작품 제안서
2013313990 이현성 졸업작품 제안서
 
Derivation of cost function for logistic regression
Derivation of cost function for logistic regressionDerivation of cost function for logistic regression
Derivation of cost function for logistic regression
 

추천 시스템 개요 (1)-draft

  • 1. 추천 시스템 overview (1) 이현성 라이앤캐쳐스 ita9@ryencatchers.com ita9naiwa@gmail.com
  • 2. Currently it’s a draft! Target audiences who don’t know math at all (but I hope she graduated highschool) who have little experiences in programming. (know what array/2d array is,)
  • 3. index • 데이터 사이언스란 • 추천 시스템이란 • 추천 방법에 따른 분류 : 어디서 데이터를 얻을 것인가. • 유저와 아이템의 interaction에서 • 유저와 아이템의 information에서 • 학습 방법에 따른 분류 : 어떻게 데이터에서 meaningful한 insight을 뽑아 낼 것인가. • Traditional approaches • Linear models, TF/IDF, LDA, Factor-based models • Deep-learning inspired approaches • Multi-layer perceptron, AutoEncoder, and others...
  • 4. 데이터 사이언스란 In the practitioners’ perspective
  • 5. 데이터 사이언티스트는 두 가지 일을 합니다. 1. Summarize data into information (forms of ‘encoded’ data, or statements) 1. to help decision making 2. to store data efficiently 3. to do some arithmetic calculation on data 2. Predict about future data from known data known data. 1. to recommend items(recommender systems) 2. to classify users (consequently to help decision making) 데이터 사이언티스트가 하는 모든 일은 이 두 가지 일이거나, 두 가지 일을 하기 위한 일입니다.
  • 6. 비블리에 적용할 수 있는 데이터 사이언 스 • Summarize data into information • 유저의 view, click log로 유저의 Retention/CTR을 계산 • 유저의 취향을 분석 • UI A, UI B로 A/B test 후 결과 확인하기 • Predict about future data from known data known data • 유저가 현재까지 읽은 책을 바탕으로 미래에 좋아할 만한 책을 추천
  • 7. Summarizing Data into information 복잡한 데이터를 summarize해 의사결정에 도움 기존 UI 새 UI CTR 0.03 0.028 Weekly retention 0.16 0.032
  • 8. Summarizing Data into information • 복잡한 데이터를 숫자 list로 변 환한다 • Memory efficient • Able to calculate similarity • And more… [0.05, 0.74, −1.21, … , 0.03, 1.05] [0.05, 0.74, −1.21, … , 0.03, 1.05]
  • 9. Unstructured data(text, image, sound)를 vector로 바꾸기 용량이 큰 텍스트, 이미지 파일을 적은 용량으로 표현 가능하다 [0.2, 2.04, … , 0.15, 0.02]
  • 10. Unstructured data(text, image, sound)를 vector로 바꾸기 • 비교하기 힘든 객체(text-image, text-text,혹은 유저-item)의 비 교를 할 수 있다. 문서 𝐴의 벡터 표현 ∶ 𝑣 𝐴[0.1, 1.5,2.4] 그림 𝐵의 벡터 표현 ∶ 𝑣 𝐵[−0.3, 0.89,1.15] 문서 A와 그림 B의 유사도 𝑠𝑖𝑚 𝐴, 𝐵 ≔ 𝑐𝑜𝑠𝑖𝑛𝑒 𝐴, 𝐵 ≔ 0.1 ∗ −0.3 + 1.5 ∗ 0.89 + 2.4 ∗ 1.15 0.12 + 1.52 + 2.42 0.32 + 0.892 + 1.152
  • 11. text를 vector로 바꾸는 법 Linear Dirichlet Allocation
  • 12. LDA • 단어는 어떤 토픽을 반영(연관되어 있다) 하며, 각 단어가 토픽을 반영할 확률이 존 재한다. • 토픽이 A,B,C라면 • Genetics라는 단어는 [A : 0.3, B : 0.4, C : 0.3] 이렇게, 각각의 토픽을 반영할 확률이 존재한다. • 단어들의 합으로 이루어진 text도, 각각의 토픽을 반영할 확률이 존재한다. • 문서 X는 토픽을 반영할 확률이 [A : 0.15, B : 0.25, C : 0.6]이다.
  • 13. LDA • 각각의 문서를 문서가 토픽을 반영할 확률 분포 (i.e. [0.3, 0.2,0.5]) 표현하는 방법이 LDA이다. • LDA는 어떤 문서를 k차원 vector로 변환 하며, 그 vector 각각의 값은 0과 1사이이 며 합은 1이다. K는 토픽의 개수를 의미한 다. • 비슷한 토픽을 갖는 문서를 비슷하다고 판단하는 방 법 • (칠판이 있으면 설명을 칠판으로 더 하기)
  • 14. image를 vector로 바꾸는 법 Convolutional Neural Network
  • 15. CNN
  • 16. 이미지는 2차원 배열. 2차원 배열은 행렬 • 이미지는 2차원 배열로 생각할 수 있다.(RGB 채널을 갖는 컬러 이미지라면 2차원 배열 3개… 이런 식으로) • 2차원 배열은 행렬로 생각할 수 있다 • (손으로 예제를 그려서 설명하기) • 행렬에 행렬을 곱하면 행렬이 나온다. • 즉, 어떤 행렬에 특수한 행렬을 여러 번 곱해주는 방법으로 transfor한 다. • 사실 곱셈 말고 여러 특수한 연산이 적용된다 • max-pooling, stride, kernels and the others...
  • 18. Information Retrieval (Document Search) • 데이터 마이닝, 데이터베이스에서 가장 핫한 분야! • Example • 문서는 임의의 길이의 text를 말한다. • Query 또한, 임의의 길이의 text이다. 𝑞 := ‘ant ant bee’ 𝑑1 := ‘dog bee dog hog dog ant dog’ 𝑑2 := ‘cat gnu dog eel fox’ 𝑞라는 문장이 있을 때, 내가 가진 문서[d1,d2] 중 가장 잘 어울리는(정답)인 문 장은 무엇일까?
  • 19. Information Retrieval (Search) • 문제 정의 • Let 𝑑 to be arbitrary document, (텍스트, 이미지 등등 어느 것이라도 가능하다) Let 𝑞 to be a query object(주로 텍스트) 𝑞, 𝑑 are sentences, or text • For given query 𝑞 Return a set of relevant documents of size k 𝐷 𝑘 • Where 𝐷 𝑘 ≔ 𝑑 ∈ 𝐷 𝑠𝑖𝑚 𝑑, 𝑞 𝑖𝑠 ℎ𝑖𝑔ℎ 𝑒𝑛𝑜𝑢𝑔ℎ} • You need to define similarity measure between a document 𝑑 and a query 𝑞 • thus rank documents given query 𝑞
  • 20. 𝑠𝑖𝑚 𝑑, 𝑞 계산하기 • We need a model 𝑓 such that Model 𝑓 ∶ 𝔻 → ℝ 𝑑 𝑤ℎ𝑒𝑟𝑒 𝔻 𝑖𝑠 𝑠𝑒𝑡 𝑜𝑓 𝑎𝑙𝑙 𝑑𝑜𝑐𝑢𝑚𝑒𝑛𝑡𝑠. Then we can calculate similarity of non-numeric entities in transformed space 𝑠𝑖𝑚 𝑑1, 𝑑2 ≔ 𝑐𝑜𝑠 𝑓 𝑑1 , 𝑓 𝑑2 = 𝑓 𝑑1 𝑇 𝑓 𝑑2 𝑓 𝑑1 | 𝑓 𝑑2 This model 𝑓 have many names Hashing, Embedding, Mapping, Transformation, Projection
  • 21. 즉, 정보 검색은 • 질문을 받고, 그 질문에 대한 문서(혹은 정답에 가장 가까운) 답 을 돌려주는 것 • 혹은, 질문과 ‘비슷한’ 문서를 찾아내는 것
  • 22. 정보 검색에서 흔히 사용되는 mapping models • There are various mapping models • TF-IDF, BM25 (counting based vector mapping) • They fail to catch semantic information. Same themes can be represented in different words. • 기본적으로, 두 document에서 같은 단어가 자주 나오면 비슷하다고 판단하는 방법 • LSA(PCA), LDA (unsupervised statistical inference, or probabilistic topic models) • These models are trained in an unsupervised manner. Their Objective function are only loosely coupled with calculating 𝑠𝑖𝑚 𝑑, 𝑞 . • 이 종류의 모델이 optimize하는 goal이랑 문서 간의 similarity는 별로 상관이 없는 것으로 알려져 있다. (그래서 생각보다 성능이 별로) https://janav.wordpress.com/2013/10/27/tf-idf-and-cosine-similarity/ this page explains tf-idf clearly https://www.youtube.com/watch?v=NcC1XyD5dvA Very detailed explanation on Latent Semantic Analysis (PCA) https://www.youtube.com/watch?v=FkckgwMHP2s David Blei (who created LDA) explains LDA and other probabilistic topic models(difficult)
  • 23. 추천 시스템은 정보 검색 분야 중 특별한 경우 • Query 𝑞가 문서가 아니라 유저인 경우 정보 검색 중 특별한 케이스를 다룬다. • 특정 유저 𝑢에 대해, 𝑢와 비슷한(혹은 유저 𝑢가 좋아할 만한) 문서(책, 영화 등 어떤 물건)을 찾아내는 것. • 유저 𝑢 와 아이템 𝑖의 비슷한 정도는 𝑠𝑖𝑚 𝑢, 𝑖 = f u, i 으로 정의한다. • 모델을 만들고 트레이닝한다는 것은, 유저와 아이템의 실제 유사도와 비슷한(data가 말해주는) 유사도를 만들어내는 함수 f u, i 를 찾아내는 것을 의 미한다. • 실제로는, 모델 만들기 : confine function space 𝔽 where 𝑓 belongs to 모델 training: searching function 𝑓 ∈ 𝔽 that fits with given dataset 𝐷
  • 24. 어떠한 데이터를 사용하는가? 1. Collaborative filtering 2. Content-based Recommendation 유저와 아이템의 similarity를 만드는 모델 f를 어떤 데이터를 이용해 만들 것인지에 관한 이야기.
  • 26. Interactions between user and items In usual Collaborative filtering recomm enders, the only concern is the relationship bet ween users and items. 유저와 아이템 간의 interaction에는 다 음과 같은 것이 존재한다. • User 𝑢 like or dislike item 𝑖 • User 𝑢 have watched item 𝑖 • User 𝑢 give 5-star to item 𝑖 • If user u interacted(e.g., clicked, purchased, …) an item I • 𝑦 𝑢𝑖 = 1 • Otherwise • 𝑦 𝑢𝑖 = 0 • We can construct interaction matrix for all users against all items. 26 i1 i2 i3 i4 i5 u1 0 0 1 1 0 u2 1 0 1 0 1 u3 0 1 0 1 1 u4 1 0 1 0 0
  • 27. Interactions between user and items In usual Collaborative filtering recomm enders, the only concern is the relationship bet ween users and items. 유저와 아이템 간의 interaction에는 다 음과 같은 것이 존재한다. • User 𝑢 like or dislike item 𝑖 • User 𝑢 have watched item 𝑖 • User 𝑢 give 5-star to item 𝑖 • 유저가 아이템에 매긴 점수 자체를 이용해 interaction matrix를 만들 수 있다. 27 i1 i2 i3 i4 i5 u1 ? ? 3 5 ? u2 1 3 ? 5 ? u3 3 2 ? ? ? u4 ? 2 ? 4 1
  • 28. Collaborative Filtering의 특징 • 유저와 아이템 간의 interaction을 이용한다. • 즉, interaction이 없는 새로 나온 아이템, 새로 가입한 유저에 대해서는 추천을 할 수 없다. • 충분한 interaction이 있는 데이터에 대해서는 content-based recommendation보다 성능이 우수하다고 알려져 있다. • Collaborative Filtering 모델의 연구 동향: 다른 side information(item content, user의 친구 리스트) 등을 이용해 성능을 향상시키는 방법 이 메인이다.
  • 30. User preferences / Item description 이현성 • 20대 초반 남성 • 컴퓨터공학 전공 • 만화를 좋아함 • 영미권 소설을 좋아함 • 자전적, 혹은 faction을 좋아 하지 않음. • 남자 캐릭터보다 여자 캐릭터를 더 좋아 함 … 이방인(책) • 작가는 알베르 카뮈 • 역자는 김화영 • 프랑스 소설 (1942년) …
  • 31. User preferences / Item description 이현성 • 20대 초반 남성 • 컴퓨터공학 전공 • 만화를 좋아함 • 영미권 소설을 좋아함 • 자전적, 혹은 factio을 좋아하지 않음. • 남자 캐릭터보다 여자 캐릭터를 더 좋아함 … 피규어들
  • 32. 이현성의 description 중 중요한 부분이 다르다 이현성 • 20대 초반 남성 • 컴퓨터공학 전공 • 만화를 좋아함 • 영미권 소설을 좋아함 • 자전적, 혹은 factio을 좋아하지 않음. • 남자 캐릭터보다 여자 캐릭터를 더 좋아함 피규어를 추천할 때 중요했던 부분 이현성 • 20대 초반 남성 • 컴퓨터공학 전공 • 만화를 좋아함 • 영미권 소설을 좋아함 • 자전적, 혹은 faction을 좋아하지 않음. • 남자 캐릭터보다 여자 캐릭터를 더 좋아함 책을 추천할 때 중요했던 부분 결론 : 무작정 데이터가 많다고 해서, 좋은 성능을 낼 수 있는 것은 아니다(일반적으로 그런 경향이 있긴 하다)
  • 33. Content-based recommendation의 특징 • 유저와 아이템의 정보를 컴퓨터가 이해하기 힘들다. • Image, text 같은 컴퓨터가 이해하기 힘든 information이 많다. • -> 최근 deep-learning 기술로 이를 해결하고는 있지만, 여전히 힘든 일이다. • 여전히 (interaction이 충분히 많은 경우) 성능이 collaborative filtering 보다 좋지 않다. • Content based recommendation 연구 동향 새로운 모델(지금 이 순간에도 새로운 모델이 제안되고 있다)을 제안해 모델의 content를 컴퓨터가 더 잘 이해할 수 있게 만드는 것이 메인
  • 34. Recommendation algorithms • Represent users and items in latent space numerically EX) • Represent a user U as vector 𝑢 = 0.3, 1.05, −0.5, 0.9 𝑇 • Represent a item I as vector 𝑖 = 1.05, −0.5, 2.6, 0.9 𝑇 • Targets(what we want to predict) are calculated using numerically represented using user, item, and other contents information. EX) • Predicted rating of user U on item I 𝑦 𝑢,𝑖 = 𝑑𝑜𝑡 𝑢, 𝑖 = 𝑢 𝑇 𝑖 = 0.3 ∗ 1.05 + 1.3 ∗ 1.2 − 0.5 ∗ 2.6 + 0.6 ∗ 0.9 = 0.78 34
  • 35. 중간 요약 • 추천 시스템은 두 부분으로 이루어져 있다. 1. 유저와 아이템을 숫자(vector)로 표현하기 • 유저와 아이템을 숫자로 표현하는 모델을 만들기 위해 이용하는 data의 종류에 따라 collaborative filtering과 content-based recommendation으로 나뉜다. 2. 숫자로 표현된 유저와 아이템을 이용해 유사도, 혹은 점수를 계산하기. • 점수를 계산하는 방법은 linear model(matrix factorization), Deep learning(MLP, AutoEncoder, Convolutional Neural Network 등)
  • 36. 두 방법론 유저와 아이템의 information 유저와 아이템의 log 유저를 숫자로 표현 (vector representation) 아이템을 숫자로 표현 (vector representation) 유저와 아이템 간의 유사도/점수 (similarity or score) 어떤 데이터를 사용할 것인가? 어떻게 주어진 데이터를 (유사도를 잘 맞추는) 숫자 로 변환할 것인가?

Editor's Notes

  1. 오픈 소스는 오픈 소스의 코드를 읽고 이해하고 참여할 수 있는 사람에게만 도움이 된다는 규남님 말처럼,