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...
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]
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
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는 토픽의 개수를 의미한
다.
• 비슷한 토픽을 갖는 문서를 비슷하다고 판단하는 방
법
• (칠판이 있으면 설명을 칠판으로 더 하기)
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
오픈 소스는 오픈 소스의 코드를 읽고 이해하고 참여할 수 있는 사람에게만 도움이 된다는 규남님 말처럼,