Taro Logo

2018 Cognitive Software Developer Interview Experience

January 1, 2018
Negative ExperienceNo Offer

Process

I had to take an online interview. The interview actually had the same exact questions as the "Entry-Level Cognitive / AI / Machine Learning Software Developer" position. The questions were thusly more difficult than is needed for an intern.

They were all machine learning oriented and required some fairly in-depth knowledge of machine learning techniques and terminology. I definitely should have taken an ML course or something before considering either of those positions.

Questions

What about your background qualifies you for this position?

What technology have you been learning on your own? What are the pros and cons of this technology?

Implement Max Pooling Algorithm

In Neural Networks used for Visual Recognition, some layers perform a Max Pooling operation on an image represented as an NxM matrix of intensities (most often it is squared, but we do not make this assumption in this task). Max Pooling consists of the following: given a window of size KxL, "slide" the window through the array without overlapping and return the maximum values for each window.

It’s best explained with an example:

Given a 4x4 matrix:

1 1 2 4 5 6 7 8 3 2 1 0 1 2 3 4

and a square window of size 2x2, the subregions are:

1 1 | 2 4 5 6 | 7 8

3 2 | 1 0 1 2 | 3 4

The corresponding Max Pooled values for each subregion are:

6 8 3 4

A square window of size 1x1 will return the original matrix.

For this task, we will make the following assumptions:

  • Matrices will only contain integers in the range (-1000, 1000).
  • Matrices are always 2-dimensional (but not always square) and non-empty.
  • We will always use a square window (so we’ll provide only 1 size).
  • The output should be the sum of Max Pooled values (e.g., 21 for the example above).
  • If the window cannot fit into the matrix without overlapping, the output should be the string “NONE”.

Input: The rows of the matrix, each on a separate line, followed by a blank line, and then a single number for the Max Pooling window size.

Output: Print to standard output the sum of the Max Pooled values, or the string “NONE” if assumptions are not fulfilled.

Test 1 Input 20 200 -13 134 120 32 -120 124

Expected Output: NONE

Test 2 Test Input 20 200 -13 134 120 32 -120 12

Expected Output Output: 320

Test 3 Test Input: 1 1 2 4 5 6 7 8 3 2 1 0 1 2 3 4

Expected Output 21

Programming Challenge Description: Crawl an HTML page to extract file names containing certain patterns from hyperlinks

Given a one-line HTML "page", find all hyperlinks (e.g., URLs specified within <a href=http://sample.url/> and not as plain text) and return all the names of zip files that contain the word "data" and come from www.example.com web site. The output should be a comma-separated list without spaces. If no such file was detected, print an empty line (e.g., "").

Example:

Input: <a href=http://www.example.com/global_data.zip > some text </a> Some other text <a href=http://www.example.com/local_data.zip> some more text </a>

Output: global_data.zip,local_data.zip

Input: Your program should read lines of text from standard input. Each line may or may not contain one or more target files.

Output: Print to standard output a single line containing a comma-separated list of such file names without spaces. If no such file was detected, print an empty line (e.g., "").

Test 1 Test Input  World Data Part 1
World Data Part 2 Expected Output world_data1.zip,world_data2.zip

Test 2 Test Input

Programming Challenge Description: Find the most similar pair using cosine

Given a sequence of passages, find the most similar pair using the cosine similarity measure. If there are ties (more than one pair have the same similarity score), return the one with the leftmost passage. If there’s only 1 passage in a sequence, return it. Do not return similarity of a passage with itself.

How to represent a passage in the vocabulary space:

The vocabulary space includes all words encountered in any of the passages, ignoring their case. Any non-alphanumeric characters are also ignored, and spaces trimmed. A passage is represented as a vector of its word frequencies in a vocabulary space. For example, if we have a set of passages "I like ice cream", "My sister likes ice cream too", the vocabulary space would include "coordinates": [I, like, likes, ice, cream, my, sister, too]. Note that (1) we do not ask to bring different wordforms to a common lexeme (as "like" and "likes") so they are considered different words; (2) we consider complex words as separate lexemes (e.g., "ice" and "cream" from "ice cream"). Then the first passage will be represented as [1, 1, 0, 1, 1, 0, 0, 0] and the second passage will be represented as [0, 0, 1, 1, 1, 1, 1, 1].

The cosine measure (click Attachment above for equation image):

The cosine between 2 vectors A and B equals the scalar product of the vectors divided by the product of vector lengths. For example, in a 3-dimensional space for vector A=(1, 2, 2) and vector B=(1, 0, 0), the cosine measure is (11 + 20 + 2*0) / ((1^2 + 2^2 + 2^2)^(1/2) * (1^2 + 0^2 + 0^2)^(1/2)) = 1/3 The larger the cosine (reminder: cosine max value is 1), the more similar passages are.

Input: A single line comprising the passages (strings) to be processed, delimited by '|' characters. The '|' characters are not considered part of any passage.

Output: The comma-separated (no space) numbers of the most similar passages. For a single passage, return 0.

Test 1 Test Input: IBM cognitive computing|IBM "cognitive" computing is a revolution| ibm cognitive computing|'IBM Cognitive Computing' is a revolution? Expected Output 0,2

Test 2 Test Input The cat is on the mat | The cat likes the mat | The dog is on the mat | The dog chews the mat Expected Output 0,2

Please take 5 to 10 minutes to explain your approach to the previous question. What concepts did you use, and how did you solve the problem?

In the field of artificial intelligence and cognitive science, experts have classified several types of neural networks. Can you please tell me about one or more of these types, and what applications they may have?

Before we say goodbye, is there anything else you'd like to tell us about yourself?

Question 3 of 3

Please read through this problem statement and in 10 mins or less describe your approach and thought process for how you would address creating this solution.

Problem Space: Recognizing "product names" within a very large Twitter text feed data set.

Problem Definition: Build a system that takes a Twitter feed as input and then outputs each of the instances of "product names" mentioned within this Twitter Feed.

In your response, please cover these 3 specific topics:

  1. What general approach would you use? How many approaches can you think of?
  2. How do you plan to collect the data and evaluate the system before you actually create it? What metrics would you utilize?
  3. What machine learning algorithms would you use for training? If you used logistic regression, how would you extract features?

Was this helpful?

Interview Statistics

The following metrics were computed from 1 interview experience for the IBM 2018 Cognitive Software Developer role in United States.

Success Rate

0%
Pass Rate

IBM's interview process for their 2018 Cognitive Software Developer roles in the United States is extremely selective, failing the vast majority of engineers.

Experience Rating

Positive0%
Neutral0%
Negative100%

Candidates reported having very negative feelings for IBM's 2018 Cognitive Software Developer interview process in United States.

IBM Work Experiences