目录
- 贪心搜索(一般来说计算最快的)
- 穷举搜索(一般来说是最好的,但可能算不动)
- 束搜索(Beam Search)
 
- 总结
贪心搜索(一般来说计算最快的)
在seq2seq中使用贪心搜索来预测序列
     将当前时刻预测概率最大的词输出。
但贪心很可能不是最优的:

穷举搜索(一般来说是最好的,但可能算不动)
最优算法:对所有可能的序列,计算它的概率,然后选取最好的那个。
如果输出字典大小为n,序列最长为T,那么需要考察 
      
       
        
         
         
           n 
          
         
           T 
          
         
        
       
         n^T 
        
       
     nT个序列
     n=10000,T=10: 
       
        
         
          
          
            n 
           
          
            T 
           
          
         
        
          n^T 
         
        
      nT= 
       
        
         
         
           1 
          
          
          
            0 
           
          
            40 
           
          
         
        
          10^{40} 
         
        
      1040
     计算上不可行
束搜索(Beam Search)
保存最好的K个候选
在每个时刻,对每个候选新加一项(n种可能),在kn个选项中选出最好的k个。

时间复杂度:O(knT)
     k=5,n=10000,T=10 ➡ knT=5× 
      
       
        
        
          1 
         
         
         
           0 
          
         
           5 
          
         
        
       
         10^5 
        
       
     105
每个候选的最终分数是:

总结
束搜索在每次搜索时保存k个最好的候选。
k=1时是贪心搜索。



















