Тема: Spark - сегментация пользовательской аудитории в онлайн-рекламе.
Одной из задач проведения рекламной кампании является формирование предложения для посетителя какого-либо веб-ресурса, в соответствии с его текущим потребностями.
Интересы и потребности посетителей с достаточно высокой степенью вероятности удается определить не всегда, из-за чего может возникнуть ряд вопросов: как найти тех, кто кликнул на баннер, но так и не совершил никакой покупки; как определить тех, кто видел баннер несколько раз, но так на него и не отреагировал и т.п. В докладе будет рассказано про практический опыт решения таких и схожих задач при помощи Apache Spark.
Ключевые вопросы:
• Введение в RTB;
• Потоки данных;
• Типы данных;
• Монетизация данных;
• Hadoop vs. Spark;
• Что дальше.
1. Сегментация
пользователей
в
online-‐рекламе
Apache
Spark:
Сергей
Жемжицкий,
CTO,
CleverDATA
для
практического
семинара
«Hadoop
на
практике:
проекты
и
инструменты»
22
апреля,
2015
2. cleverdata.ru
|
info@cleverdata.ru
Interna'onal
market
business
development
since
2012
One
of
three
leading
IT
companies
in
Russia
43
branches
in
Russia
and
abroad
+5500
employees
100K
projects
for
10K
customers
Data
management
innova've
pladorm
(Data
Exchange
Service)
Cloud
Service
In-‐house
development
Internet
advergsing
solu'ons
Data
Management
PlaDorms
Customers
Base
Management
Web
Analygcs
Markegng
automa'on
Big
Data
Data
Mining
Digital
Intelligence
Operagonal
Intelligence
Low
Latency
and
NoSQL
Cloud
Compugng
3. cleverdata.ru
|
info@cleverdata.ru
Агенда
• Введение
в
RTB;
• Потоки
данных;
• Типы
данных;
• Монетизация
данных;
• Hadoop
vs.
Spark;
• Что
дальше.
4. cleverdata.ru
|
info@cleverdata.ru
publishers
AD
NETWORK
AD
NETWORK
AD
NETWORK
AD
NETWORK
AD
NETWORK
AD
NETWORK
advergsers
D
S
P
S
S
P
Real
Time
Bidding
(RTB)
5. TRACKING
DATA
cleverdata.ru
|
info@cleverdata.ru
publishers
COOKIE
SYNCs
ACCESS
LOGS
PARTNER’S
DATA
3rd
PARTY
DATA
CLICK
STREAMS
advergsers
S
S
P
D
S
P
DMP
Data
Management
Pladorm
(DMP)
6. cleverdata.ru
|
info@cleverdata.ru
3rd
party
data
Relagonal
Data
Store
raw
data
3rd
party
data
3rd
party
data
Raw
Data
Store
&
Processing
RealTime
Data
Store
user
profiles
aggregates
Типовые
потоки
данных
7. cleverdata.ru
|
info@cleverdata.ru
Типовые
потоки
данных
::
RTB
3rd
party
data
Relagonal
Data
Store
RTB
SRV
Exchange
SSP
bid
req.
bid
resp.
pixels
::
impressions
::
clicks
bid
requests
user
profiles
raw
data
3rd
party
data
3rd
party
data
Raw
Data
Store
&
Processing
RealTime
Data
Store
user
profiles
aggregates
8. cleverdata.ru
|
info@cleverdata.ru
1st-‐party
data
3rd
party
data
Relagonal
Data
Store
RTB
SRV
Exchange
SSP
bid
req.
bid
resp.
pixels
::
impressions
::
clicks
bid
requests
user
profiles
raw
data
3rd
party
data
3rd
party
data
Raw
Data
Store
&
Processing
RealTime
Data
Store
user
profiles
aggregates
9. cleverdata.ru
|
info@cleverdata.ru
1st-‐party
data
• Зачем
монетизировать?
• Как
монетизировать?
• Чем
монетизировать?
10. cleverdata.ru
|
info@cleverdata.ru
Зачем
монетизировать?
Найти
всех
пользователей,
которые
участвовали
в
рекламной
кампании
“Star
Wars”
[и]
видели
один
из
баннеров
“Darth
Vader”
или
“Luke
Skywalker”
в
течении
последних
6
дней
[и]
кликнули
на
этот
баннер
[и]
посетили
страницу
покупки
светового
меча
Darth’а
Vader’а
[и]
но
так
ничего
и
не
купили
Для
того,
чтобы
сделать
ретаргетинг
персонифицированным
баннером
со
скидкой
на
меч
в
40%
11. cleverdata.ru
|
info@cleverdata.ru
find
all
users
who
have
taken
part
in
campaign[s]
“Star
Wars”
[and]
viewed
banner[s]
“Darth
Vader”
or
“Luke
Skywalker”
during
[last]
6
day[s]
[and]
clicked
banner[s]
“Darth
Vader's
lightsaber”
[and]
visited
buying
area
of
“Darth
Vader's
lightsaber”
[and]
not
visited
order
confirmed
area
of
“Darth
Vader's
lightsaber”
Как
монетизировать?
[impression]
[click]
[tr.
pixel]
[tr.
pixel]
id
cookie
event_id
event_type
campaign_id
gmestamp
…
1
c1
“Darth
Vader”
impression
“Star
Wars”
2015-‐04-‐20
14:25:11.462
…
2
c1
“Darth
Vader's
lightsaber”
click
“Star
Wars”
2015-‐04-‐21
06:31:12.157
…
3
c1
“Darth
Vader's
lightsaber”
tr.
pixel
“Star
Wars”
2015-‐04-‐22
18:57:19.628
…
[cookies]
12. cleverdata.ru
|
info@cleverdata.ru
Как
монетизировать?
reduce
find
all
users
who
have
taken
part
in
campaign[s]
“Star
Wars”
viewed
banner[s]
“Darth
Vader”
or
“Luke
Skywalker”
during
[last]
6
day[s]
clicked
banner[s]
“Darth
Vader's
lightsaber”
visited
buying
area
of
“Darth
Vader's
lightsaber”
not
visited
order
confirmed
area
of
“Darth
Vader's
lightsaber”
(c1,
0)
(c1,
1)
(c1,
2)
(c1,
3)
Ø
map
(c1,
0;1;2;3)
true(0)
and
true(1)
and
true(2)
and
true(3)
and
not
false(4)
C1
17. cleverdata.ru
|
info@cleverdata.ru
Hadoop
и
Spark:
Side
by
Side
::
Hadoop
Инициализация
ü protected
void
setup(Map.Context
context)
ü protected
void
setup(Reduce.Context
context)
ü protected
void
setup(XXX.Context
context)
ü org.apache.hadoop.conf.Configured
ü distributed
cache
Параллелизм
ü mapred.reduce.tasks
ü mapreduce.job.reduces
ü spli›able
formats
Зависимости
ü org.apache.hadoop.ugl.Tool
ü org.apache.hadoop.ugl.ToolRunner
18. cleverdata.ru
|
info@cleverdata.ru
Hadoop
и
Spark
::
Side
by
Side
::
Spark
Инициализация
ü mapRegion
ü broadcast
vars
Параллелизм
ü spark.default.parallelism
ü num-‐executors
и
executor-‐cores
в
yarn
ü numTasks
в
groupByKey,
reduceByKey,
aggregateByKey…
Зависимости
-‐-‐jars
hadoop-‐ugls.jar,ad-‐segmenter.jar
-‐-‐files
app.conf
-‐-‐driver-‐java-‐opgons=-‐Dconfig.resource=app.conf
-‐-‐conf
config.resource=app.conf
-‐-‐conf
spark.driver.extraJavaOpgons=-‐Dconfig.resource=app.conf
-‐-‐conf
spark.executor.extraJavaOpgons=-‐Dconfig.resource=app.conf
19. cleverdata.ru
|
info@cleverdata.ru
Что
дальше
и
почему
Spark?
• Spark
Streaming;
• Micro
Batches;
• λ-‐архитектура.
без
серьезного
хирургического
вмешательства