Answers.Body: <p>The most straightforward approach I would recommend would be the one-hot encoding solution without a feature for ''other author''. If you use drop-out during training, the network should learn how to deal with input vectors that don't have any author-features set to 1. Then, whenever you have an unknown author, you simply have no 1s at all for any of the author-features, and it should still have learned how to deal with that.</p>
  
  <p>Another possible approach would be a one-hot encoding <em>with</em> a feature for ''other author''. In order to still get training data for that weight, you could simply use data augmentation. The most straightforward data augmentation approach for this would be to create copies of the instances in your training data, but for those copies set the ''other author'' feature to 1 instead of the actual author.</p>
  
  <p>The most complex solution I can think of would be taking the string representation of the author, trying to have your program find information about that author online (for example try to look up a wikipedia page), push all that text through an LSTM. The ''output layer'' of the LSTM can then be merged with your other features (those two together will be your ''input vector''), stack a few more layers on top of that, and train the entire thing end-to-end. Unless the competition with your friend involves a serious amount of money, this is probably going to be too complicated to be worth it though.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-11-24T14:52:54.360Z
Answers.LastActivityDate: 2017-11-24T14:52:54.360Z
Answers.UserDisplayName: Dennis Soemers
Answers.Body: <p>I would try to find some proxy features <em>about</em> the author, as opposed to encode the identity of the author. Likely good features of an author include averages of other features about the work (such as size, media types etc), and critically for your prediction, some stats on previous sale prices of any works. Remember for historical training data to include the proxy data as it would of appeared at the time of sale.</p>
  
  <p>Having these proxies is likely to work much better than one-hot-encoding an author identity and getting the ML algorithm to assign weights based on the identity alone, especially for authors with only small amounts of data to represent them.</p>
  
  <p>There is little reason as far as I know, to expect the character string of an author's name to correlate with value of the artwork. There <em>may</em> be some good vs bad <em>brand name</em> effect, but I think that will be very hard to predict even in isolation from other factors, and including historic sales data should take account of this and similar effects, except for artists with no known history.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-11-25T08:28:25.820Z
Answers.LastActivityDate: 2017-11-25T08:36:50.553Z
Answers.LastEditDate: 2017-11-25T08:36:50.553Z
Answers.UserDisplayName: Neil Slater
Body: <p>I'm building a neural net to predict the value of a piece of art with a wide range of inputs (size, art medium, etc.) and I would like to include the author as an input as well (it is often a huge factor in the value of a single piece of art).</p>
  <p>My current concern is that the name of the author isn't an ideal numerical input for a NN (i.e. If I just code each author with an increasing integer value I will be indirectly assigning more value to authors further down the list -_-). My thoughts were to create separate inputs for all the authors in my dataset and then just use one-hot encoding to better represent the input to the NN.</p>
  <p>This approach, however, runs into a problem when an author that is not included in my training data is used as an input to the NN (i.e. a new author). I can get around this with an &quot;other author&quot; input field, but I am worried that this won't be accurate as I would not have trained the the NN for this input (all pieces of art with a valuation have an author).</p>
  <p>I haven't fully thought this through but I thought of perhaps training 2 NN's, one for a valuation without an author and one for valuation with an author to ensure I have enough training data for an &quot;authorless valuation&quot; to still be reasonably accurate.</p>
  <p>I am still trying to conceptualize the best NN architecture before I get stuck into the implementation so if anyone has any suggestions/comments I would be very grateful!</p>
  <p>P.S. I am doing this as a small competition with a friend to test a NN vs the traditional commercial valuation techniques.</p>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-11-25T16:07:54.303Z
Comments.Text: Not related to your question, but you might consider including features based on the previous offers / other works of the artist / and events in the art market world. Those usually have a big impact in the pricing of a piece.
Comments.UserDisplayName: Alpha
Tags: <neural-networks><features><network-design>
Title: How to design a neural network that gets the author name of a piece of art as input?
UserDisplayName: Vince Britz
ThreadText: # How to design a neural network that gets the author name of a piece of art as input?
  
  (Asked by: username_0 on 2017-11-24)
  
  I'm building a neural net to predict the value of a piece of art with a wide range of inputs (size, art medium, etc.) and I would like to include the author as an input as well (it is often a huge factor in the value of a single piece of art).
  
  My current concern is that the name of the author isn't an ideal numerical input for a NN (i.e. If I just code each author with an increasing integer value I will be indirectly assigning more value to authors further down the list -\_-). My thoughts were to create separate inputs for all the authors in my dataset and then just use one-hot encoding to better represent the input to the NN.
  
  This approach, however, runs into a problem when an author that is not included in my training data is used as an input to the NN (i.e. a new author). I can get around this with an "other author" input field, but I am worried that this won't be accurate as I would not have trained the the NN for this input (all pieces of art with a valuation have an author).
  
  I haven't fully thought this through but I thought of perhaps training 2 NN's, one for a valuation without an author and one for valuation with an author to ensure I have enough training data for an "authorless valuation" to still be reasonably accurate.
  
  I am still trying to conceptualize the best NN architecture before I get stuck into the implementation so if anyone has any suggestions/comments I would be very grateful!
  
  P.S. I am doing this as a small competition with a friend to test a NN vs the traditional commercial valuation techniques.
  
  **Tags:** neural-networks, features, network-design
  
  > **Comments:**
  > **username_1**: Not related to your question, but you might consider including features based on the previous offers / other works of the artist / and events in the art market world. Those usually have a big impact in the pricing of a piece.  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_2 on 2017-11-24. Score: 4
  
  The most straightforward approach I would recommend would be the one-hot encoding solution without a feature for ''other author''. If you use drop-out during training, the network should learn how to deal with input vectors that don't have any author-features set to 1. Then, whenever you have an unknown author, you simply have no 1s at all for any of the author-features, and it should still have learned how to deal with that.
  
  Another possible approach would be a one-hot encoding *with* a feature for ''other author''. In order to still get training data for that weight, you could simply use data augmentation. The most straightforward data augmentation approach for this would be to create copies of the instances in your training data, but for those copies set the ''other author'' feature to 1 instead of the actual author.
  
  The most complex solution I can think of would be taking the string representation of the author, trying to have your program find information about that author online (for example try to look up a wikipedia page), push all that text through an LSTM. The ''output layer'' of the LSTM can then be merged with your other features (those two together will be your ''input vector''), stack a few more layers on top of that, and train the entire thing end-to-end. Unless the competition with your friend involves a serious amount of money, this is probably going to be too complicated to be worth it though.
  
  
  ---
  
  ### Answer by username_3 on 2017-11-25. Score: 3
  
  I would try to find some proxy features *about* the author, as opposed to encode the identity of the author. Likely good features of an author include averages of other features about the work (such as size, media types etc), and critically for your prediction, some stats on previous sale prices of any works. Remember for historical training data to include the proxy data as it would of appeared at the time of sale.
  
  Having these proxies is likely to work much better than one-hot-encoding an author identity and getting the ML algorithm to assign weights based on the identity alone, especially for authors with only small amounts of data to represent them.
  
  There is little reason as far as I know, to expect the character string of an author's name to correlate with value of the artwork. There *may* be some good vs bad *brand name* effect, but I think that will be very hard to predict even in isolation from other factors, and including historic sales data should take account of this and similar effects, except for artists with no known history.
  
  
  ---
  
  