☕ Zoom In

Zoom is entering new markets. A large investing firm makes a big bet on mobile advertising. Using Machine Learning for arranging Biology studies. Plus an answer to our Facebook Interview question.

Hi Everyone!

Hope you’re enjoying the holidays!

Tech Dive

Our last tech dives were on Distributed Systems and Database Sharding!

Industry News

Zoom Explores Email, Calendar Services

Zoom is interested in extending their services beyond video calling. The company is rumored to be developing their own email service and calendar client, which could both launch as soon as early 2021.

The company is working on building an entire platform suite of services, in an effort to compete with Microsoft’s product offerings.

The company has done exceptionally well during 2020 and is now worth more than $100 billion dollars.

Using ML to curate Biological Studies?

Curating biological studies is a very labor-intensive process performed by researchers in life science fields. Curators must recognize experiment methods and identify the research protocols used to get the figures published in the research papers.

Researchers at UCLA have now published a new dataset with the goal of automating this process. MELINDA - A Multimodal Dataset for Biomedical Experiment Method Classification is a dataset with over 5,371 labeled data records.

The input labels consist of a figure from a research article and an associated caption. The output label is the experiment methodology used in that paper. The dataset comes from PubMed Central, an archive of freely available life science journals.

Researchers achieved the best results with a multimodal model, VL-BERT, that achieved between 66.49% and 90.83% accuracy. This is still quite far from the 100% accuracy that can be achieved from humans.

Blackstone will invest close to $400 million in mobile app marketer Liftoff

Earlier this year, Apple made the decision to allow users to opt-out of in-app ad tracking (by blocking IDFA identifiers). This was controversial amongst many app developers as users have no incentive to “opt-in” so this would effectively kill off IDFA, or identifier for advertisers, in iOS 14.

What is IDFA?

IDFA is the only means for advertisers to precisely track and target users within apps on iOS devices. It’s similar to a web cookie, except that it is tied to your device instead of your browser. IDFA enables an advertiser to get notified when a user of a phone has taken a specific action like clicking on an ad in a browser and then installing, using, or interacting with ads in an app.

IDFA only provides data in aggregate and no individually identifiable data is available.

Blackstone Investing

Blackstone is one of the world’s largest asset managers with more than $550 billion dollars in AUM.

The fund is now investing $400 million dollars in mobile app marketing platform Liftoff.

The bet is quite interesting as the future path for mobile app marketing is hazy (with Apple’s decisions around IDFA).

Liftoff was founded in 2012 and currently delivers more than a billion ads each day to users in 90 countries and across more than 500,000 mobile publishers. They use machine learning to find engaged users at scale for marketers and also provide a way for advertisers to A/B test. Half of Liftoff’s business is in the mobile gaming space.

Interview Question

You are given two strings as input.

Write a function to find out if these two strings are at most one edit away from each other.

An edit is defined as either

  • inserting a character

  • removing a character

  • replacing a character

Input - "whale", "wrale"Output - TrueInput - "rake", "care"Output - FalseInput - "rake", "rake"Output - True

We’ll send a detailed solution tomorrow, so make sure you move our emails to primary, so you don’t miss them!

Gmail users—move us to your primary inbox

  • On your phone? Hit the 3 dots at the top right corner, click "Move to" then "Primary"

  • On desktop? Back out of this email then drag and drop this email into the "Primary" tab near the top left of your screen

Apple mail users—tap on our email address at the top of this email (next to "From:" on mobile) and click “Add to VIPs”

Previous Solution

As a refresher, here’s the previous question

You are given two strings s and t.

Return the minimum window in s which will contain all the characters in t.

If there is no such window in s that covers all characters in t, return an empty string.

Input: s = "ADOBECODEBANC", t = "ABC" Output: "BANC"

Solution

The technique used to solve this problem is called Sliding Window.

The essence of the pattern is that we maintain a sliding window that keeps track of which characters in t we have covered. Maintaining the sliding window takes our time complexity down from quadratic to linear.

We start with an empty sliding window at index 0.

Then, we use the following rule (or invariant)

  • if our sliding window does not contain ALL the characters in t, expand the window by adding in characters from the left of s.

  • if our sliding window DOES contain ALL the characters in t, make the window smaller by removing characters from the right of s.

We will terminate when we’ve reached the end of string s and there are no more characters to process.

Now, how should we implement the sliding window? We want the ability to check if the sliding window contains all the characters in t in constant time.

We’ll do this by using two hash tables. One hash table will be modelWindow which is a hash table with the counts of all the characters in t.

Then, we’ll have window which represents our sliding window as we iterate across string s.

We will keep track of whether window contains all the characters in t with a variable contains. contains keeps track of how many characters in window match the count (or exceeds the count) of a character in modelWindow. When contains is equal in length to modelWindow, then we know that window contains all the characters in t.

We will keep track of the smallest window that contains all the characters in t.

If you want more practice questions for Sliding Window, check out Pattern 2 here.