Enviar búsqueda
Cargar
[Elasticsearch] 검색의 연관성 좀 더 높여보기
•
32 recomendaciones
•
6,346 vistas
Hosang Jeon
Seguir
"Searching with relevancy" - boosting 과 function_score query 를 이용하여 검색의 연관성(relevancy) 높이기
Leer menos
Leer más
Ingeniería
Denunciar
Compartir
Denunciar
Compartir
1 de 32
Descargar ahora
Descargar para leer sin conexión
Recomendados
[Langcon2020]롯데의 딥러닝 모델은 어떻게 자기소개서를 읽고 있을까?
[Langcon2020]롯데의 딥러닝 모델은 어떻게 자기소개서를 읽고 있을까?
ssuseraf7587
CoreDot TechSeminar 2018 - Session3 Doh Seungheon
CoreDot TechSeminar 2018 - Session3 Doh Seungheon
Core.Today
Hadoop 기반 문서 검색
Hadoop 기반 문서 검색
치완 박
Python을 활용한 챗봇 서비스 개발 2일차
Python을 활용한 챗봇 서비스 개발 2일차
Taekyung Han
Python을 활용한 챗봇 서비스 개발 1일차
Python을 활용한 챗봇 서비스 개발 1일차
Taekyung Han
제11회공개sw개발자대회 금상 TensorMSA(소개)
제11회공개sw개발자대회 금상 TensorMSA(소개)
Susang Kim
[2D2]다국어음성합성시스템(NVOICE)개발
[2D2]다국어음성합성시스템(NVOICE)개발
NAVER D2
[224] backend 개발자의 neural machine translation 개발기 김상경
[224] backend 개발자의 neural machine translation 개발기 김상경
NAVER D2
Recomendados
[Langcon2020]롯데의 딥러닝 모델은 어떻게 자기소개서를 읽고 있을까?
[Langcon2020]롯데의 딥러닝 모델은 어떻게 자기소개서를 읽고 있을까?
ssuseraf7587
CoreDot TechSeminar 2018 - Session3 Doh Seungheon
CoreDot TechSeminar 2018 - Session3 Doh Seungheon
Core.Today
Hadoop 기반 문서 검색
Hadoop 기반 문서 검색
치완 박
Python을 활용한 챗봇 서비스 개발 2일차
Python을 활용한 챗봇 서비스 개발 2일차
Taekyung Han
Python을 활용한 챗봇 서비스 개발 1일차
Python을 활용한 챗봇 서비스 개발 1일차
Taekyung Han
제11회공개sw개발자대회 금상 TensorMSA(소개)
제11회공개sw개발자대회 금상 TensorMSA(소개)
Susang Kim
[2D2]다국어음성합성시스템(NVOICE)개발
[2D2]다국어음성합성시스템(NVOICE)개발
NAVER D2
[224] backend 개발자의 neural machine translation 개발기 김상경
[224] backend 개발자의 neural machine translation 개발기 김상경
NAVER D2
La mda 딥러닝 논문읽기 모임, 2021 google IO
La mda 딥러닝 논문읽기 모임, 2021 google IO
taeseon ryu
파이썬을 활용한 챗봇 서비스 개발 3일차
파이썬을 활용한 챗봇 서비스 개발 3일차
Taekyung Han
임태현, Text-CNN을 이용한 Sentiment 분설모델 구현
임태현, Text-CNN을 이용한 Sentiment 분설모델 구현
태현 임
파이썬을 활용한 자연어분석 기초
파이썬을 활용한 자연어분석 기초
김용범 | 무영인터내쇼날
Open domain dialogue Chatbot(잡담봇 삽질기)
Open domain dialogue Chatbot(잡담봇 삽질기)
NAVER Engineering
De text a deep text ranking framework with bert
De text a deep text ranking framework with bert
taeseon ryu
Senti prompt sentiment knowledge enhanced prompt tuning for aspect-based sent...
Senti prompt sentiment knowledge enhanced prompt tuning for aspect-based sent...
taeseon ryu
RDF와 Graph의 이해 및 오라클 Spartial&Graph 소개
RDF와 Graph의 이해 및 오라클 Spartial&Graph 소개
철민 권
NLU Tech Talk with KorBERT
NLU Tech Talk with KorBERT
LGCNSairesearch
Más contenido relacionado
La actualidad más candente
La mda 딥러닝 논문읽기 모임, 2021 google IO
La mda 딥러닝 논문읽기 모임, 2021 google IO
taeseon ryu
파이썬을 활용한 챗봇 서비스 개발 3일차
파이썬을 활용한 챗봇 서비스 개발 3일차
Taekyung Han
임태현, Text-CNN을 이용한 Sentiment 분설모델 구현
임태현, Text-CNN을 이용한 Sentiment 분설모델 구현
태현 임
파이썬을 활용한 자연어분석 기초
파이썬을 활용한 자연어분석 기초
김용범 | 무영인터내쇼날
Open domain dialogue Chatbot(잡담봇 삽질기)
Open domain dialogue Chatbot(잡담봇 삽질기)
NAVER Engineering
De text a deep text ranking framework with bert
De text a deep text ranking framework with bert
taeseon ryu
Senti prompt sentiment knowledge enhanced prompt tuning for aspect-based sent...
Senti prompt sentiment knowledge enhanced prompt tuning for aspect-based sent...
taeseon ryu
RDF와 Graph의 이해 및 오라클 Spartial&Graph 소개
RDF와 Graph의 이해 및 오라클 Spartial&Graph 소개
철민 권
NLU Tech Talk with KorBERT
NLU Tech Talk with KorBERT
LGCNSairesearch
La actualidad más candente
(9)
La mda 딥러닝 논문읽기 모임, 2021 google IO
La mda 딥러닝 논문읽기 모임, 2021 google IO
파이썬을 활용한 챗봇 서비스 개발 3일차
파이썬을 활용한 챗봇 서비스 개발 3일차
임태현, Text-CNN을 이용한 Sentiment 분설모델 구현
임태현, Text-CNN을 이용한 Sentiment 분설모델 구현
파이썬을 활용한 자연어분석 기초
파이썬을 활용한 자연어분석 기초
Open domain dialogue Chatbot(잡담봇 삽질기)
Open domain dialogue Chatbot(잡담봇 삽질기)
De text a deep text ranking framework with bert
De text a deep text ranking framework with bert
Senti prompt sentiment knowledge enhanced prompt tuning for aspect-based sent...
Senti prompt sentiment knowledge enhanced prompt tuning for aspect-based sent...
RDF와 Graph의 이해 및 오라클 Spartial&Graph 소개
RDF와 Graph의 이해 및 오라클 Spartial&Graph 소개
NLU Tech Talk with KorBERT
NLU Tech Talk with KorBERT
[Elasticsearch] 검색의 연관성 좀 더 높여보기
1.
Copyright All Rights
Reserved job planet 2014 v.1.0
2.
20141230
3.
! Hosang
4.
Jeon
5.
hosang.jeon@jobplanet.co.kr 검색의 연관성 좀
더 높여보기
6.
Copyright All Rights
Reserved job planet 2014 Table
7.
of
8.
Contents 1. 엘라스틱서치는
9.
스코어를
10.
어떻게
11.
계산하는가?
12.
2. 부스팅
13.
(Boosting)
14.
이란?
15.
3. function_score
16.
쿼리
17.
4. 스코어
18.
결합하기
19.
Copyright All Rights
Reserved job planet 2014 1.
20.
엘라스틱서치는
21.
스코어를
22.
어떻게
23.
계산하는가?
24.
Copyright All Rights
Reserved job planet 2014 TF-IDF
25.
:
26.
스코어
27.
계산의
28.
필수
29.
요소 TF
30.
(Term
31.
Frequency)
32.
:
33.
용어
34.
빈도
35.
! • 하나의
36.
문서
37.
내에서의
38.
단어의
39.
빈도
40.
• 높을수록
41.
연관성이
42.
높음 IDF
43.
(Index
44.
Document
45.
Frequency)
46.
:
47.
역문서
48.
빈도
49.
! • 전체
50.
문서에서
51.
해당
52.
단어의
53.
빈도
54.
• #
55.
of
56.
matched
57.
documents
58.
• 낮을수록
59.
연관성이
60.
높음
61.
Copyright All Rights
Reserved job planet 2014 Term
62.
Frequency
63.
(TF) “직장인,
64.
회사원,
65.
봉급생활자는
66.
급여를
67.
받고
68.
일하는
69.
사람을
70.
총칭하는
71.
말이다.” “이곳은
72.
뽐뿌
73.
직장인
74.
포럼입니다.
75.
직장이야기,
76.
직장인
77.
고민,
78.
직장인
79.
연봉,
80.
직장인
81.
일상
82.
등
83.
직 장인들을
84.
위한
85.
이야기
86.
공간입니다.” 직장인 TF
87.
:
88.
1 TF
89.
:
90.
4
91.
Copyright All Rights
Reserved job planet 2014 Inverse
92.
Document
93.
Frequency
94.
(IDF) “직장인이
95.
10명
96.
중
97.
6명이
98.
명절
99.
전후
100.
이직을
101.
고려한다고
102.
한다.
103.
이유야
104.
어 쨌든
105.
선물세트를
106.
2개나
107.
주어서
108.
양손은
109.
무겁지만…⋯ “일단
110.
토론을
111.
잘하려
112.
리
113.
인지하는
114.
것이
115.
엇이고
116.
충분한
117.
면
118.
주제를
119.
정확히
120.
이해해야
121.
한다.
122.
찬성과
123.
반대
124.
입장
125.
모두의
126.
장단점을
127.
수렴할
128.
수
129.
있어야
130.
함은
131.
물론이다.” “자연을
132.
가까이
133.
한다.
134.
후지산,
135.
카와구치코,
136.
사이코,
137.
쇼우지코,
138.
모토소코,
139.
아오키가하라쥬카이의
140.
대자연에
141.
둘러싸였습니다.
142.
한번은
143.
올라가봐야
144.
한 다.” 한다 DF : 1 직장인 DF
: 3 IDF = 1/DF
145.
Copyright All Rights
Reserved job planet 2014 Inverse
146.
Document
147.
Frequency
148.
(IDF) DF
149.
는
150.
용어가
151.
등장하는
152.
문서의
153.
개수만을
154.
고려할
155.
뿐,
156.
하나의
157.
문서에서
158.
해 당
159.
용어가
160.
얼마나
161.
자주
162.
등장하는지는
163.
고려하지
164.
않는다. 한다 DF : 1 직장인 DF
: 3 IDF = 1/DF
165.
Copyright All Rights
Reserved job planet 2014 Lucene
166.
scoring
167.
formula Score(q, d) = q t TF(t,d)
* IDF(t,d)2 * Norm(d, field) * Boost(t) • q : query • d : document • t : term
168.
Copyright All Rights
Reserved job planet 2014 Lucene
169.
scoring
170.
formula Score(q, d) = q t TF(t,d)
* IDF(t,d)2 * Norm(d, field) * Boost(t) 쿼리 q 에대한 문서 d 의 스코어는 쿼리상의 모든 용어 t 에 대하여 (TF의 제곱근 X IDF의 제곱 X 각 필드의 normalization factor X 용어 t의 부스팅) ! 값의 합이다. 사람이 이해할 수 있는 말로 표현하자면… 그냥 대략 이렇다는 정도만…
171.
Copyright All Rights
Reserved job planet 2014 2.
172.
부스팅
173.
(Boosting)
174.
이란?
175.
Copyright All Rights
Reserved job planet 2014 부스팅이란? XX증권에
176.
대한
177.
뉴스를
178.
검색하고
179.
싶다면? 뉴스
180.
title에
181.
‘XX증권’이라는
182.
단어가
183.
등장하는
184.
경우 뉴스
185.
description에
186.
‘XX증권’이라는
187.
단어가
188.
등장하는
189.
경우 title
190.
에
191.
검색어가
192.
등장하는
193.
경우가
194.
XX증권에
195.
관련된
196.
뉴스일
197.
가능성 이
198.
좀
199.
더
200.
높기
201.
때문에
202.
title
203.
필드를
204.
부스팅한다.
205.
Copyright All Rights
Reserved job planet 2014 부스팅
206.
값은
207.
어떻게
208.
사용되는가? • 스코어
209.
계산식에서
210.
부스팅
211.
값은
212.
정규화(Normalization)
213.
되기
214.
때문에
215.
숫자
216.
그대로
217.
곱셈되지는
218.
않는다.
219.
! • 하지만
220.
대략적으로
221.
특정
222.
필드의
223.
부스팅
224.
값은
225.
3이라고
226.
지정한다면
227.
그
228.
필 드가
229.
다른
230.
필드들에
231.
비하여
232.
대략
233.
세배정도
234.
중요하다고
235.
이해해도
236.
좋다. Score(q, d) = q t TF(t,d)
* IDF(t,d)2 * Norm(d, field) * Boost(t)
237.
Copyright All Rights
Reserved job planet 2014 부스팅의
238.
두
239.
가지
240.
방법 1. 인덱싱
241.
시점에서의
242.
부스팅
243.
! 2. 쿼리
244.
시점에서의
245.
부스팅 인덱싱
246.
시점에
247.
정의된
248.
부스팅은
249.
수정하기
250.
위해서
251.
문서를
252.
다시
253.
인덱싱해 야하기
254.
때문에
255.
가급적
256.
쿼리
257.
시점에서
258.
부스팅을
259.
사용하기를
260.
권장한다.
261.
Copyright All Rights
Reserved job planet 2014 쿼리시점에서의
262.
부스팅 1. 필드별
263.
부스팅
264.
! 2. 용어별
265.
부스팅
266.
Copyright All Rights
Reserved job planet 2014 필드별
267.
부스팅 curl -XPOST ‘localhost:9200/my-index/_search?pretty’
-d ‘{ “query”: { “multi_match”: { “query”: “직장인”, “fields”: [“title^3”, “description”] } } }’ title
268.
필드가
269.
3만큼
270.
부스팅
271.
되었다.
272.
Copyright All Rights
Reserved job planet 2014 용어별
273.
부스팅 curl -XPOST ‘localhost:9200/my-index/_search?pretty’
-d ‘{ “query”: { “query_string”: { “query”: “직장인^3 AND 연봉” } } }’ “직장인”
274.
검색어가
275.
“연봉”
276.
검색어보다
277.
3만큼
278.
부스팅
279.
되었다.
280.
Copyright All Rights
Reserved job planet 2014 3.
281.
function_score
282.
쿼리
283.
Copyright All Rights
Reserved job planet 2014 function_score
284.
쿼리 • 용어나
285.
필드를
286.
부스팅하여
287.
스코어를
288.
조정하는
289.
것은
290.
한계를
291.
가지고
292.
있다.
293.
294.
! • 좀더
295.
유연하게
296.
스코어링을
297.
조절할
298.
수
299.
있는
300.
방식이
301.
바로
302.
function_score 를
303.
이용한
304.
쿼리이다.
305.
Copyright All Rights
Reserved job planet 2014 function_score
306.
쿼리의
307.
구조 curl -XPOST ‘localhost:9200/my-index/_search?pretty’
-d ‘{ “query”: { “function_score”: { “query”: { “match”: { “description”: “직장인” } }, “functions”: [] } } }’ 아무런
308.
스코어링도
309.
하지
310.
않는
311.
function_score
312.
쿼리
313.
예시 “functions”
314.
에
315.
정의될
316.
함수들은
317.
쿼리의
318.
결과에
319.
대해서만
320.
적용된다.
321.
Copyright All Rights
Reserved job planet 2014 function_score
322.
쿼리에서
323.
사용하는
324.
함수의
325.
유형 1. boost_factor
326.
! 2. field_value_factor
327.
! 3. script_score
328.
! 4. random_score
329.
! 5. decay
330.
functions
331.
Copyright All Rights
Reserved job planet 2014 boost_factor
332.
함수 • 가장
333.
간단한
334.
함수로서,
335.
단순히
336.
상수를
337.
곱한다.
338.
• 필터를
339.
이용하여
340.
부스팅할
341.
문서를
342.
결정한다. curl -XPOST ‘localhost:9200/my-index/_search?pretty’
-d ‘{ “query”: { “function_score”: { “query”: { “match”: { “description”: “직장인” } }, “functions”: [ { “boost_factor”: 1.5, “filter”: {“term”: {“description”: “연봉”}} } ] } “직장인”
343.
검색결과에서
344.
description에
345.
“연봉”
346.
이라는
347.
용어를
348.
포함하고
349.
있는
350.
문서의
351.
스코어를
352.
1.5배
353.
한다.
354.
Copyright All Rights
Reserved job planet 2014 field_value_factor
355.
함수 • 숫자형
356.
필드의
357.
값을
358.
스코어에
359.
이용
360.
• 좋아요
361.
버튼을
362.
누른
363.
카운트
364.
등을
365.
검색결과에
366.
이용할
367.
때
368.
사용 curl -XPOST ‘localhost:9200/my-index/_search?pretty’
-d ‘{ “query”: { “function_score”: { “query”: { “match”: { “description”: “직장인” } }, “functions”: [ { “field_value_factor”: { “field”: “review_count”, “factor”: 2.5, “modifier”: “log” } ] } } }’ _score
369.
=
370.
log(2.5
371.
X
372.
doc[‘review_count’].value)
373.
Copyright All Rights
Reserved job planet 2014 script_score
374.
함수
375.
• 가장
376.
자유도가
377.
높은
378.
스코어링
379.
방식 curl -XPOST ‘localhost:9200/my-index/_search?pretty’
-d ‘{ “query”: { “function_score”: { “query”: { “match”: { “description”: “직장인” } }, “functions”: [ { “script_score”: { “script”: “Math.log(doc[”salaries”].values.size() * myweight”, “params”: { “myweight”: 2 } } } ] } } }’
380.
Copyright All Rights
Reserved job planet 2014 random_score
381.
함수 • 문서를
382.
랜덤하게
383.
정렬하고
384.
싶을
385.
때
386.
사용
387.
• seed
388.
값을
389.
동일하게
390.
주면
391.
동일한
392.
결과가
393.
나타남 curl -XPOST ‘localhost:9200/my-index/_search?pretty’
-d ‘{ “query”: { “function_score”: { “query”: { “match”: { “description”: “직장인” } }, “functions”: [ { “random_score”: { “seed”: 1234 } } ] } } }’
394.
Copyright All Rights
Reserved job planet 2014 decay
395.
함수들 • 특정
396.
필드의
397.
값을
398.
이용하여
399.
스코어를
400.
점진적으로
401.
줄여나가는
402.
함수
403.
! • Ex)
404.
시간이
405.
오래된
406.
정보일
407.
수록
408.
스코어를
409.
줄여나가기
410.
! • Ex)
411.
거리상
412.
먼
413.
위치일
414.
수록
415.
스코어를
416.
줄여나가기
417.
Copyright All Rights
Reserved job planet 2014 decay
418.
함수들 1. linear
419.
2. gauss
420.
3. exp 세
421.
가지
422.
종류의
423.
decay
424.
함수들 스코어가
425.
줄어드는
426.
곡선의
427.
형태를
428.
결정
429.
Copyright All Rights
Reserved job planet 2014 decay
430.
함수들 모든
431.
decay
432.
함수들은
433.
아래와
434.
같은
435.
형식을
436.
따름 { “TYPE”: { “FIELD_NAME”: { “origin”:
“…”, “offset”: “…”, “scale”: “…”, “decay”: “…” } } }
437.
Copyright All Rights
Reserved job planet 2014 decay
438.
함수들 origin
439.
:
440.
함수
441.
곡선의
442.
중심.
443.
즉,
444.
가장
445.
스코어 가
446.
높은
447.
지점.
448.
449.
예를
450.
들어,
451.
geo-location
452.
을
453.
이용하는
454.
경우
455.
사용자의
456.
현재
457.
위치가
458.
origin
459.
이
460.
됨 offset
461.
:
462.
origin으로부터
463.
스코어가
464.
줄어들지
465.
않는
466.
구간의
467.
거리.
468.
469.
예를
470.
들어,
471.
offset이
472.
1km
473.
이면
474.
origin으로부터
475.
1km
476.
이내의
477.
거리에서는
478.
스코어가
479.
줄어들지
480.
않는다. scale
481.
482.
decay
483.
:
484.
이
485.
두
486.
값의
487.
조합으로
488.
스코어값이
489.
줄어드는
490.
기준이
491.
정해진다.
492.
예를
493.
들어,
494.
scale
495.
값이
496.
3km
497.
이고
498.
decay
499.
값이
500.
0.3이면
501.
origin에서부터
502.
3km
503.
멀어질
504.
수록
505.
스코어가
506.
0.3배로
507.
줄어든다.
508.
Copyright All Rights
Reserved job planet 2014 decay
509.
함수들 gaussian
510.
decay
511.
함수
512.
예제 curl -XPOST ‘localhost:9200/my-index/_search?pretty’
-d ‘{ “query”: { “function_score”: { “query”: { “match”: { “description”: “직장인” } }, “functions”: [ { “gauss”: { “geolocation”:{ “origin”: “23.232112,-42.324211”, “offset”: “100m”, “scale”: “2km”, “decay”: 0.5 } } } ] }
513.
Copyright All Rights
Reserved job planet 2014 4.
514.
스코어
515.
결합하기
516.
Copyright All Rights
Reserved job planet 2014 스코어
517.
결합하기 SCORE_MODE • “functions”
518.
배열
519.
안의
520.
여러
521.
함수의
522.
스코어들을
523.
결합하는
524.
방법
525.
526.
• multiply(default),
527.
first,
528.
sum,
529.
avg,
530.
max,
531.
min • 함수의
532.
스코어를
533.
쿼리
534.
결과의
535.
스코어와
536.
결합하는
537.
방법
538.
• multiply(default),
539.
replace,
540.
sum,
541.
avg,
542.
max,
543.
min BOOST_MODE
544.
Copyright All Rights
Reserved job planet 2014 감사합니다.
Descargar ahora