through early and continuous delivery of valuable software. Valuable software: Product This talk focuses on product, not research. So let us talk about the product that I’m working on first.
are one of the major ad inventory buyer from Google, Facebook, Yahoo, etc… in Taiwan • Automated real time bidding • Trading desk • Ad serving About the product I’m working on
our banner ads, or b) Finishes viewing our video ads, or c) Does something (advertiser defined) after viewing our ad 2) We pay money every time we show an ad Profit = 1) - 2) So why do we need ML?
influence market price, yet ;) • We use machine learning: • To predict CTR for each ad impression (when an ad is shown) • To adjust CPC per ad impression but still maintaining the average CPC So why do we need ML? (pt. 3)
• Need real time predictions • Huge amount of predictions per second • Predictions needs to be working 24 hours a day, 365 days an year • Data is very, very, VERY messy
of them are assigned a metric to optimize. • Moral are low • Turnover rate is high • No real break through in years Our solution was to give them more time and freedom: • Everything got worse
expert, or • Hire a ML expert that have product visions Good luck doing that. Real solution: • Bring ML people into planning meetings, or business discussions • People need constant feedback to do stuff good.
They are able to give solutions to non-ML problems • They can identify what product problems are solvable using data • They can work on stuff with the most value We start to bring ML people into one team • They can work in teams and have solutions with better quality
3% better than the current one running online. • His model was a bit complex • No one in the engineering team understands ML • He couldn’t find help to make it into production Solution was that he worked on it for three years to make it production ready: • Still did not went online • He learned a lot during the three years • But at a huge expense of the company
write production code. • Hard to understand • A lot of experimental stuff • People are too scared to remove it Our solution was to wrap it with more code. • Stuff are even harder to understand • Development velocity went down vastly
return new Error(Error.NameLengthError); } vs for (i = 0; i < x.length; i += 1) { w[i] += w[i] + a[i] * (y - p) * x[i]; } ML code is super hard to understand!
that is able to do production level coding Good luck doing that. Real solution: • Bring ML people into development teams • Individuals and interactions over processes and tools
• Motivate ML people to achieve better • Try to bring the whole team together • Try to build a feature team • No need to let everyone know everything • Try giving ML people 10 to 20% of their time to think about/do deeper stuff
blend into the whole team, it really helps • Need a quick solution? Use Kaggle! If you don’t know ML. • You don’t really need to know a lot to do a lot • Learn tools like • Tensorflow • Scikit Learn • Online resources • https://www.youtube.com/user/hsuantien