I don’t agree with your comment about “sticking to text”. Visual components make sense for form filling type transactions, presenting image/text combos like articles, and guiding the user through explicit follow up actions.
I've probably invested 40 hr in the project, but half of it was spent on iterating through bad examples, and identifying them as negative labels for training data. I also found that the open source data sets tend to have full portraits instead of just the face which took some more data clean-up. My end goal is just to have the system be able to detect faces in a video stream, and have the camera follow you around, but I'm not comfortable moving on until the false positive rate goes down. It's not a huge problem for my use case, but I was hoping to be able to detect all faces in any size pic regardless of how far a face is in the image. I find ML development to be a little more annoying because sometimes tuning the hyper parameters can feel like magic as opposed to actually learning something. I kinda want to go back to the data and get rid of all the portrait style pics. Thinking about that as a weekend project doesn't exactly get me up in the morning though XD. Probably worth going through the fast AI course too because my ML experience ends with the ml course from Andre Ng
I used a convolutional neural net for face recognition on a hobby project, but I kept getting issues where the probability of matching a face was high so long as a face was actually in the image. Unfortunately, this didnt work well with a sliding window algo because Id get a bunch of windows with a high probability of a face with the only difference being a slight shift in increment / size. Would it be better to just use a multi layer perceptron? Also, does anyone else find it amusing when their face recognition systems identify things like toes or gates with high confidence? I end up spending some time zooming in to make sure it's not one of those hidden faces in random images
I don't really understand your distinction between intents and commands. I've created apps that leverage a variety of bot frameworks, and most of them seem to fall under your "command" criticisms, but are labeled as intents. I think I understand the heart of your argument which is akin to saying google handles intents / actions as if it were filling inputs on a web form that ultimately goes to an api for response generation.
Having said that, I don't know how you can say that Siris backend is much better from an intent perspective without being able to leverage it properly because of the shortcomings related to the UI. From what I've seen, it doesn't even handle context well. Now it sounds like Siri will be used to do proactive things which is certainly new and different from Google Assistant. Yet, I suspect that logic is just being branded as Siri because it is a push to label Siri as your intelligent assistant as opposed to the weird robot thing you can use to check the weather
Does it really make sense splitting ASR and NLP up into distinct concepts? While I understand in the past they have solved different problems, it's my understanding that to get accurate ASR, grammar files or corpus can be provided to improve the recognition. I've also seen things like Siri autocorrect what is being transcribed as the sequence of words evolves.
Another example is how as an Alexa skill maker, you have to provide utterance / intent mappings. Is that just used to accurately classify intent / entities? Or is it also used to identify which skill to pass a user utterance to as a part of the alexa skill service because there could be very little variation between skill names or inquiries amazon is supposed to actually fulfill when a person is talking ??
During the conference call, Musk remarks about how he hates when people spread comments about Tesla surviving because of EV credits, and then goes into his argument prefaced with "these fools don't realize"
I think there are a few benefits of using chatbot over another user interface type.
1- Being where your customers are. If you are planning on leveraging a chatbot as opposed to a mobile app or website, having some kind of presence of Facebook messenger could increase user engagement because of the lower amount of friction from switching or downloading new apps to interact with a business. It's especially relevant when you consider that social platforms are used for customer support more and more so augmenting this channel with some kind of automated support option makes sense from an ROI perspective.
2. Simpler user experiences. Now this one is definitely idealistic, and where a lot of hype is coming from. But, the general idea is to take websites and mobile apps and create a single interface into the content/services where the hope is that users will have a lower learning curve because they can use everyday language. In reality, bots that I've seen are mostly text based IVRs that confuse the users, and don't make experiences any more enjoyable.
3. Personalization and NL analytics. Assuming your chatbot allows for free form text. You could potentially build more comprehensive profiles of users by mining their conversations and behavior. You could certainly do this today with web and app metrics, twitter posts, support emails, and transcribed voice calls, but now you have a Facebook or social profile tied to a customer which is another dimension of data you can use where in the past you may have had no linkage between your app accounts vs a users social profile.
By no means a comprehensive list, and if you incorporate voice recognition on top of a "chatbot", you can provide an easier way for users to interact with systems when they may not be able to use their hands (driving, lost an appliance remote, running)
Are there any open source project like this? I would imagine it's a machine learning model to match intent and then a custom NER that extracts slots. I'm sure the actual models are pretrained on lots of data, and the process is probably a lot more complex. Given the abundance of vendors in this space, it has to at least be a possibility .
The assistant piece of Allo is not too bad at all for a first drop. I noticed that it handled context decently between users who invoked the assistant in their chats. If you ask about a type of takeout in a specific place, and then the other party in the chat says "what about another type" without referring to the place, it handles the situation. However, if the first person says something right after the results are returned. It ignores the context.
The Google team also added the ability to not return the same response for any given request, unless the request falls into generic search. It's not necessary, but gives it that human kind of element, and keeps it interesting.
I didn't try any kind of logical reasoning since it seemed to be heavily reliant on Google search, which is still keyword based to a degree. One day this will probably change, but it's a hard problem to solve given an open domain.
I thought I would see more direct integration with APIs as opposed to defaulting to search. I don't think I saw any in-fact beyond what is offered through search. EG - book me a ride with uber just goes to the search results.
I'm wondering if this team is working together with the home product. If there is also a heavy reliance on search, I can't imagine the user experience will be that great.